Monad介绍
Monad是全新的第一层区块链,采用了权益证明(PoS)机制,并兼容以太坊虚拟机(EVM),旨在提升整个以太坊生态系统的性能和去中心化程度。
Monad的设计目标是通过对虚拟机的优化和拜占庭容错(BFT)共识机制的算法改进,实现比现有智能合约区块链更高数倍的吞吐量。它作为一个去中心化的计算平台,旨在为用户提供高效、安全和可扩展的区块链基础设施。
通过Monad,用户可以期待每秒可达到10,000次智能合约交易(tps)的高吞吐量。这一改进将为以太坊生态系统带来巨大的增长和创新机会,为开发者和用户提供更广泛的应用场景和更出色的用户体验。
从用户角度来看,Monad 的行为与以太坊非常相似。用户可以使用相同的钱包(例如 MetaMask)或区块浏览器(例如 Etherscan)来签署或查看交易。为以太坊构建的相同应用程序可以移植到 Monad,而无需更改代码,因此预计用户将能够在 Monad 上使用以太坊中的许多应用程序。Monad 中的地址与以太坊中的地址也相同,因此用户可以重用现有密钥。
此外与以太坊一样,Monad 具有线性块,以及块内交易的线性排序。同时,Monad 是一个由一组去中心化的验证者维护的权益证明网络。任何人都可以运行一个节点来独立验证交易的执行情况,并且已采取了极大努力来将硬件要求降至最低。
Monad技术结构
并行EVM与超标量流水线
并行EVM指的是Monad引入了并行执行技术(Parallel Execution)来优化以太坊虚拟机(EVM)的运行方式。
简单来说,以太坊虚拟机(EVM)是负责执行智能合约代码的环境。在传统的方式下,每个交易都会依次被执行,这样就会导致处理速度较慢。而Monad引入了并行执行技术,让多个交易可以同时进行处理,从而提高了整个系统的执行效率。
举个例子,想象一下你在游乐园排队玩过山车。在传统的方式下,每个人都要依次排队,等前面的人玩完了才能轮到自己。但是如果游乐园增加了更多的过山车,那么就可以让更多的人同时玩,排队的速度就会加快。这就好比Monad的并行EVM,让虚拟机可以同时处理多个交易,加快了交易的执行速度。
总的来说,Monad的并行EVM通过利用多核心和多线程技术,与以太坊Layer2常采取的Rollup不同,Monad从根本上改善了以太坊网络的性能,加速了交易处理和共识达成的速度,让区块链网络可以更高效地处理交易,也提高了系统的效率和可扩展性。
超标量流水线技术Superscalar Pipelining)是一种高效的任务处理方式,可以将任务分解为多个阶段,并同时执行这些阶段,从而提高了整个处理过程的效率。
例如,在执行一笔交易时,可以将其划分为几个阶段,比如解析交易、验证签名、执行代码等。在超标量流水线的模式下,这些阶段可以同时进行,而不是依次执行。这就类似于在工厂里设置了不同的生产阶段,让产品可以同时在不同阶段进行加工。比如,做一件衣服,可以分为裁剪、缝纫、包边等阶段,不同的工人可以同时进行不同的工序,最后完成一件完整的衣服。
Monad的技术优化
Monad在以下四个领域进行了技术优化,分别是执行方面的并行执行、MonadDb和共识方面的MonadBFT、延迟执行
并行执行(Parallel Execution)指的是Monad基础层面上采用了乐观执行(Optimistic Execution),这意味着在区块链中,交易的执行会在实际验证之前就开始进行,从而减少了因验证失败而导致的交易重复执行的情况。
举个例子来说明:假设有两个交易 A 和 B,它们都试图修改同一账户的余额。在传统的悲观执行中,系统会依次执行这两个交易,并在执行之前检查账户的余额。如果在执行交易 A 时,账户余额不足以执行交易,则交易 A 会失败,并且系统会回滚交易 A 的执行,然后执行交易 B。这种方式会导致交易 A 和 B 都要重新执行一次,从而增加了系统的开销。
而在Monad中采用的乐观执行方式不同,在执行交易时,系统会假设交易 A 和 B 都能够成功执行,并且并行执行它们。在实际验证之前,系统不会对账户余额进行检查。如果在执行完交易后,发现某个交易失败了(比如余额不足),那么系统会回滚所有交易的执行,并且重新执行失败的交易。但是如果所有的交易都能够成功执行,那么系统就可以直接将这些交易的结果合并到区块中,从而减少了重复执行的次数,提高了系统的效率。
MonadDb是一个为存储区块链状态而设计的定制数据库,旨在解决现有以B-Tree或LSM-Tree数据结构实现的数据库在存储区块链状态时的子优化问题。简单来说,MonadDb通过原生使用Merkle Patricia Trie(MPT) 数据结构,直接在磁盘和内存中实现Patricia Trie,从而提高了状态存储的效率。此外,MonadDb利用最新的异步 I/O 技术和其他优化技术来提高效率和性能,例如,当一个事务需要从磁盘读取状态时,它不会阻塞等待操作完成,而是会启动异步I/O操作——告诉系统执行某个I/O操作,并让程序可以继续执行其他任务,而不必等待该操作完成。
MonadBFT是一种高性能共识机制,用于在拜占庭参与者存在的部分同步条件下就交易排序达成一致。它基于 HotStuff 进行改进,并参考了 Jolteon/DiemBFT/Fast-HotStuff 中的改进点,特别是在领导者超时的情况下利用二次通信复杂性,将三轮通信减少至两轮。
简单来说,MonadBFT就像是一群人在讨论决定下一个要执行的任务。每个人都有权力提出一个任务,但需要其他人的支持才能最终确定。在这个过程中,有一个人被选为领导者,负责提出任务并组织讨论。每一轮讨论中,领导者会提出一个任务(比如交易顺序),其他人会对这个任务进行反馈,如果大多数人同意,那么任务就被确认并执行。
延迟执行(Deferred Execution)是指在Monad中,执行交易的过程被延迟到这些交易被包含在共识过程中一段时间后再进行。这种做法允许共识和执行过程相互解耦,使得验证节点在执行交易时更加灵活。值得注意的是,在Monad中,共识过程确立了交易的顺序,但是交易的具体执行可以稍后进行。例如,共识过程确定了哪些交易应该被包含在区块中,并确定了它们的顺序,但是具体执行这些交易的过程可以在稍后进行,而不是必须在共识时立即执行。
通俗解释延迟执行便是,A和B商讨好了要去看电影,但是具体什么时间去看电影以及去哪里看电影等细节,可以稍后再确定,这样做好处是可以先确定活动的大致计划,然后再根据实际情况来具体执行,更加灵活方便。而延迟执行反映在Monad上则是可以提高系统的效率和灵活性,验证节点可以在更合适的时候执行交易,而不必被迫在共识时立即执行,从而更好地适应不同的网络环境和工作负载。
结语
随着Monad内部测试网Devnet的成功上线,并展示出其在EVM上实现的10,000 TPS的高吞吐量,Monad正在稳步迈向其主网的发布。预计在今年第四季度,Monad将正式推出主网,为公链带来新的增长和创新机遇。作为一个兼容EVM的去中心化计算平台,Monad不仅为开发者和用户提供了更高效、安全和可扩展的区块链基础设施,也为整个区块链领域带来了更多的可能性和发展前景。
通过Monad的技术创新,我们看到了一种新的可能性,即在不牺牲安全性和去中心化的前提下,实现更高效的区块链网络。用户和开发者可以继续使用熟悉的工具和钱包(如MetaMask),并轻松将现有的以太坊dApp迁移到Monad平台,享受更快的交易处理和更低的费用。这种兼容性确保了Monad不仅能够吸引新用户,还能保留和支持现有的以太坊Dapp。
总之,Monad对以太坊的改善,不仅在技术层面上带来了巨大的突破,还为整个区块链生态系统注入了新的活力。我们期待Monad在未来的发展中,能够进一步推动区块链技术的创新,开创一个更加高效、去中心化和广泛应用的区块链新时代。