为什么需要Monad?

  • 小符
  • 更新于 2024-10-10 15:28
  • 阅读 324

Monad 是兼容以太坊的高性能 L1。Monad 在去中心化和可扩展性之间的权衡中实质性地提高了TPS,预期实现每秒 10,000 笔交易的区块链吞吐量!

随着区块链技术的不断演进,去中心化应用(DApps)越来越多地依赖于高效、可扩展的基础设施,可以看到在近年来涌现出了DeFi、NFT、游戏、社交媒体等 Web3 应用程序,并且为了提高区块链的可扩展性,工程师们在L2和分片技术上做出了不断的努力,但是因为区块链的“不可能三角”问题,目前的DApp 交易速度仍达不到大规模采用的要求,Monad旨在L1层面提高区块链的可扩展性,作为最广泛的基础设施为区块链的大规模采用做好准备。

image.png

EVM

EVM 作为状态机运行,这意味着它根据一组预定义规则从一个区块计算到另一个区块的新有效状态。以太坊网络由多个节点组成,每个节点都是其他节点的完美复制,所有节点都具有相同的状态。当用户提交交易消息后,由共识机制允许节点就交易排序和包含达成一致,待处理的交易首先进入交易池,成为待处理交易的一部分。在交易池中,矿工或验证者会根据交易的费用等因素对交易进行排序,以决定哪些交易会被优先打包,经过排序的交易随后被打包成一个新区块,当区块被成功添加到链上时,这些交易即被确认并执行,从而实现了交易的有序执行。

image.png

以太坊中的应用程序以称为 EVM 字节码的字节码格式表示,用标准字节码表示程序允许程序执行是沙箱化的并且与平台无关。Solidity 广泛用于生成EVM字节码,因其清晰的语法和易用性,Solidity 在区块链开发社区中得到了极高的欢迎和使用。它的广泛支持不仅体现在以太坊区块链上,还扩展到超过 20 个其他区块链,这使得开发者能够创建可移植性极高的代码。

交易速度

以太坊的日均交易量在2024年10月初达到了约115.7万笔(YCharts),在TPS方面,多个EVM兼容区块链的表现也有所不同。根据最新统计,以太坊的TPS约为22.70(CoinGecko)。而其他较快的区块链表现更为突出,Solana的TPS高达1053.65(CoinGecko),显示出其在处理高频交易方面的优势。

Solana创新性的提出了历史证明机制(Proof of History, PoH),同时通过将程序设计为无状态使得每个事务可以独立运行,这为并行执行提供了条件,Solana要求每个交易明确声明其读取或写入的状态,成功实现了高效的并行执行。

并行执行

所有 EVM 链都存在的困扰:顺序执行。一个区块中的交易是按照打包的顺序执行的,且一次只能执行一笔交易。现代计算机程序普遍使用并行执行,显然,顺序执行是区块链被大规模采用的阻碍。对于两个相互独立的事务,如A给B转账,C给D转账,这两个事务应该是可以并行执行的。

Solana通过将程序设计为无状态从而识别了独立的交易(事务),它使用了一种名为 Sealevel 的并行智能合约运行时来并行执行多个交易,但是因为不兼容EVM,这使的其智能合约代码没有足够的可移植性。我们仍然需要在EVM上实现并行执行。

对于EVM链,最大的难点是如何识别独立的交易,因为EVM是基于状态的,每笔交易都会更改状态,对于简单的转账交易可以是独立的,但是对于同一个智能合约的多次调用,它们之间的状态是相互依赖的,所以无法并行执行。那么可以在EVM链上实现并行处理吗?答案是肯定的,Monad 正在构建一个高性能、兼容 EVM 的L1区块链,支持并行执行。

Monad

Monad 是兼容以太坊的高性能 L1。Monad 在去中心化和可扩展性之间的权衡中实质性地提高了TPS,预期实现每秒 10,000 笔交易的区块链吞吐量。那么Monad是如何实现并行执行的呢?

Monad 支持对没有共同依赖项的EVM 交易进行并行执行。也就是说,交易和区块仍然是线性排序的,Monad 只是在线性排序中识别出可以并行执行而不会中断结果的交易,然后并行执行这些筛选出的交易,这一特点完美兼容了EVM,同时为应用程序开发人员(完全 EVM 字节码兼容性)和用户(以太坊 RPC API 兼容性)保留了无缝兼容性。以太坊上编写的应用程序可以无缝迁移部署在 Monad 上。

101_3.png

目前Monad的MVP通过流水线执行和其他创新实现了 10,000 TPS。通过实现 EVM 兼容的并行执行,Monad 在不牺牲去中心化的前提下,大幅提升了交易处理能力,为去中心化应用的大规模采用提供了可能,期待Monad有更新的突破!

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
小符
小符
0x6737...76B6
web3 builder