Monad是一个EVM兼容的Layer1区块链,旨在通过MonadBFT共识机制和并行交易处理技术实现10,000 TPS的交易速度和单Slot最终确认性。它融合了以太坊的优势和新兴区块链的特点,旨在吸引开发者。
特别感谢 Monad 团队和 Monad 社区的反馈和审查
EVM (Ethereum Virtual Machine) 以确立了自己作为区块链市场中最强大的叙事。是否支持 EVM 已经成为区块链成功的决定因素,毫不夸张地说,我们仍然生活在 EVM 的时代。
Monad 旨在将 EVM 叙事与 BFT 共识算法中的最新技术相结合。在吸收以太坊生态系统的庞大社区的同时,Monad 还力求作为单体区块链实现巨大的可扩展性。
Monad 还旨在通过结合流水线共识、执行和状态访问,以及在执行期间并行化单个交易,来实现 10,000 TPS(每秒交易数)和单Slot最终性。
在最近推出的 Layer 1 单体区块链中,Monad 是首批采用 EVM 的区块链之一。因此,人们对这个区块链发布后的发展抱有相当大的期望。
以太坊虚拟机(EVM)和以太坊的智能合约语言 Solidity 已经存在了将近十年。当然,它们在刚推出时并没有产生强大的影响力,但在这长达 10 年的时间里,经过无数次的开发实例,它们已经建立了一个庞大的开发者生态系统。现在,毫不夸张地说,它们已经成为区块链市场中最引人注目的叙事。事实上,在过去的 Layer 1 区块链战争中,最关键的标准之一是,“哪个链与 EVM 兼容?”
有许多区块链拥抱了 EVM 生态系统并取得了成功。除了 EVM 的发起者以太坊之外,还有像 BSC、Polygon、Tron、Avalanche 和 Fantom 这样的 Layer 1 区块链(虽然 Polygon 现在计划完全过渡到 Layer 2,但在目前为止,将其视为 Layer 1 是合理的)。当前最具影响力的 Layer 2 区块链,如 Base、Arbitrum 和 Optimism,都采用了 EVM 生态系统,并在短时间内实现了爆炸性增长。
根据 DeFiLlama 的数据,基于 EVM 的链在 TVL(总锁定价值)衡量时占据了前 8 名。现在确实是 EVM 的时代(虽然,在撰写本文时,各种其他的虚拟机正在出现。如果你想了解更多关于它们的信息,强烈推荐阅读 Xpara 撰写的文章)。我今天要介绍的链,Monad,被认为将进一步巩固 EVM 的这种主流趋势。值得注意的是,Monad 提出了一种不同于其他 EVM 兼容链的方法,并且预计将为 EVM 生态系统带来一股新鲜的空气。
毫无疑问,以太坊是最成功的区块链,拥有最强大的社区和生态系统。然而,以太坊缺少的一件事是:“可扩展性”。虽然以太坊正在不懈地努力确保可扩展性,但从分片到 roll-up 的转变使得难以想象以太坊(作为一个基础层,以太坊可能会通过各种 roll-up 实现巨大的可扩展性,但以太坊几乎不可能在这一点上成为具有可扩展性的单体 layer 1)具有广泛的可扩展性。但让我们来设想一下:如果我们所知的以太坊在另一个平行宇宙中实现了 10,000 TPS,那将是多么令人兴奋?这就是我第一次接触 Monad 时脑海中浮现的想法。虽然 Monad 和以太坊之间存在着显著差异,但两者都渴望实现可扩展性并拥抱庞大的 EVM 社区,因此才有了这样的想象。
Monad 与以太坊有哪些相似之处,它们又有何不同?
首先,要理解 EVM 字节码兼容性,我们必须了解字节码。以太坊智能合约是用像 Solidity 这样的编程语言编写的。然而,在它们在以太坊网络上执行之前,它们必须被编译成 EVM 字节码,因为只有字节码才能被虚拟机理解。因此,如果一个区块链声称自己是 EVM 字节码兼容的,那就意味着该区块链可以像以太坊的 EVM 一样执行字节码。
所以,由于 Monad 完全 EVM 字节码兼容,它可以处理以太坊过去的交易在 Monad 的交易环境中并产生相同的结果(支持上海分叉以来的所有操作码)。
虽然这可能看起来和前一点相似,但还是有区别的。拥有以太坊 RPC(远程过程调用)兼容性意味着精确地解释以太坊的 RPC 请求,并具有与以太坊 RPC 规范一致的端点。简单来说,它意味着 在以太坊生态系统中构建的各种工具可以被自由地使用。为了更清楚地说明,因为 Monad 与以太坊 RPC 兼容,它可以与有用的以太坊生态系统工具(如 Etherscan 和 MetaMask)无缝地交互。此外,它使用 ECDSA(椭圆曲线数字签名算法)作为地址,并遵循以太坊的交易格式。
然而,Monad 不仅仅是与以太坊的相似之处。
虽然更多细节将在后面介绍,但从一开始,Monad 和以太坊在它们的 共识机制 上就有着根本的区别。以太坊采用了一种名为 Gasper 的共识机制,它是 Casper FFG 最终性机制和 LMD-GHOST 分叉选择规则 的结合。相比之下,Monad 使用其专有的共识机制 MonadBFT,它可以被看作是 HotStuff 和 Diem BFT 的变体。广义上讲,两者都可能属于 PoS 的范畴,但它们的功能不同。就其共识机制而言,Monad 可能更类似于 Aptos(它也源自 Diem BFT,使用 AptosBFT)。
它们的交易处理方法也各不相同。以太坊按顺序处理交易,而 Monad 则专注于并行处理。此外,与以太坊基于 Go 的客户端不同,Monad 的客户端是用以性能为中心的语言(如 C++ 和 Rust)编写的。最后,交易执行也不同:以太坊的交易在共识之前计算,而 Monad 的交易则在共识之后发生。深入研究这些差异表明,Monad 对以太坊的改变是提高区块链性能所必需的修改。
Sei、Sui 和 Aptos。所有这些链都可以(或计划)并行处理交易,并且因最大化区块链速度而闻名。然而,Monad 令人感兴趣的地方在于它巧妙地将以太坊的优势与这些新链的优势融合在一起。虽然 Sei、Sui 和 Aptos 没有选择 EVM 生态系统(主要是由于 EVM 的安全问题),而是选择了它们自己的专有语言和 VM(Sei 使用 WASM,Sui 和 Aptos 都使用 MOVE),但 Monad 选择了 EVM。虽然预测未来是不确定的,但 Monad 是否会比其同行更快地吸引开发者?
因此,我将 Monad 命名为实现了 10,000 TPS 的以太坊。目前尚不清楚整个以太坊社区是否会采用 Monad。然而,在一个 EVM 兼容性经常让我们想起 roll-up 链的时代,仅仅是基于 EVM 的单体区块链方法的实现就值得关注。
现在,让我们深入研究 Monad 技术的具体细节。
Monad 快速的可扩展性主要来源于其共识机制。当然,MonadBFT 可以被看作是从传统 BFT 机制发展而来的变体,类似于 Aptos BFT 和 Diem BFT 的演变方式。让我们深入研究 MonadBFT 的具体细节。
来源: Diem BFT
要理解 Monad BFT 的复杂性,必须理解如何在其中达成共识。首先,我们应该从一些术语开始:
Quorum Certificate(QC,仲裁证书)是网络中 2/3 的 stake weight(权益权重)的阈值签名,证明前一个区块的有效性。
Timeout Certificate(TC,超时证书)是网络中 2/3 的 stake weight(权益权重)的阈值签名,证明前一轮超时(2/3 的 stake weight 没有及时收到有效的区块提议)。
我们将初始轮次称为 K 轮,后续轮次称为 K+1、K+2 等。K 轮的 QC 称为 QC(K),后续轮次的 QC 称为 QC(K+1)、QC(K+2) 等。前一轮 K 的 QC 或 TC 称为 QC(K-1) 或 TC(K-1)。
MonadBFT 作为一系列轮次进行:
轮次由领导者驱动,领导者按定期生成的时间表分配给轮次。
每一轮通常由两个部分组成:领导者向所有的验证者发送提议,验证者将与投票相关的消息发送回下一个领导者。
如果一切运行顺利(“happy path”),消息传递将是一对多多对一(线性通信)。如果验证者没有及时收到来自领导者的提议,那么他们将开始向彼此发送消息,以协调跳过领导者并进入下一轮(二次通信)。
提案携带新的区块提议以及关于先前轮次的一些聚合投票信息;同时包含两者使得这种机制成为 流水线的。
当验证者收到有效的提议时,他们会将签名的 YES 投票 直接 发送给下一个预定的领导者。当 2/3 的 stake weight 投了 YES 票时,新的领导者就能够在先前的提议之上建立 QC。或者,在不太可能发生的情况下,如果验证者没有及时收到有效的提议,他们会生成一个签名的超时消息并将其多播给 所有 的对等节点。如果 任何 验证者收到 quorum(2/3 的 stake weight)个超时消息,他们会将这些消息聚合到一个 TC 中,并将其转发给下一个领导者。这个 TC 还包括每个验证者所见过的最高 QC 的引用;此信息将在稍后使用。
因此,第 K+1 轮的领导者要么收到足够的 YES 投票以在第 K 轮上生成一个 QC,要么收到一个为第 K 轮预先组装的 TC。然后,第 K+1 轮的领导者将发送一个包含 (1) 一个新的交易区块;(2) 来自先前轮次的最新 QC(在 happy path 中,是新生成的第 K 轮的 QC,或者在超时路径中,是 TC 中引用的最高 QC);以及 (3)(仅在先前轮次超时的情况下)TC 的提议。
当验证者收到第 K+1 轮的 QC 时(即在第 K+2 轮的提议中),他们可以认为来自第 K 轮的提议已经完成,并开始在本地执行交易。让我们稍微解释一下:
任何持有第 K 轮的 QC 的人都拥有 2/3 的 stake weight 在区块 K 及其所有祖先上投了 YES 票的证据,即区块 K 具有有效的交易集合。
但是仅仅持有第 K 轮的 QC 并不足以提交区块 K,因为你需要证明其他人也知道 2/3 的 stake weight 在区块 K 上投了 YES 票的事实。现在执行区块 K 中的交易是不安全的,因为你不知道其他人是否都知道这些交易是有效且可提交的。
持有第 K+1 轮的 QC 意味着你拥有 2/3 的 stake weight 拥有第 K 轮的 QC 的证据,因此 quorum 知道区块 K 中的交易拥有 quorum。而且——重要的是——超时程序意味着即使没有人收到区块 K+2(因此没有人知道 QC(K+1)),当他们超时时,他们将确保下一个领导者至少听到 QC(K) 的消息,因此 QC(K) 将继续存在。这使得最终确定区块 K 并执行其交易是安全的。
如前所述,MonadBFT 中的每个共识都有轮次。每一轮由两个阶段组成。在第一阶段,共识中的领导者向投票者发送消息。在第二阶段,投票者将签名的回复发送回领导者。这里一个有趣的点是 与 HotStuff 的不同之处。最初,HotStuff 经历了三个轮次。然而,这种方法增加了共识过程中的延迟,导致 MonadBFT 将其简化为两个轮次。之所以能够从三个轮次切换到两个轮次,是因为在发生网络中断的情况下(例如,如果领导者的提议未收到,或者未在规定的时间内收到),验证者直接与其他所有的验证节点进行通信(产生二次 (n^2) 通信开销)以协调跳过该轮次。
线性通信和二次通信之间的区别:在二次通信方法中,一旦领导者将提议传播到每个节点,从提议中验证的投票数据必须 广播给所有其他节点。这个过程会产生一个网络成本,该成本与节点的数量大致成二次关系(大约 n²)(领导者的提议广播 n 次乘以每个节点的投票数据传播到其他 n 个节点)。相比之下,线性通信方法的优势在于仅会产生线性 (n) 网络成本。这是因为它 仅传播到下一轮的领导者(领导者的提议广播 n 次乘以投票数据传播到下一轮的领导者一次)。通过线性通信,可以提高区块链的吞吐量并减少延迟。
当没有网络问题时,Monad BFT 使用线性通信方法。
来源: HotStuff
简单来说,流水线指的是不在一个轮次中处理共识的所有阶段,而是在多个轮次中处理。例如,假设有一个区块 N,下一个区块是 N+1。即使在区块 N 中基于多数投票者对领导者发送的消息的回复创建了 QC(Quorum Certificate),也没有强制要求必须在区块 N 中最终确定 QC;它可以结转(搭载)到 N+1。
虽然 MonadBFT 看起来与 DiemBFT 相似,但它引入了独特的功能,例如共享 Mempool、延迟执行、Carriage Cost 和 Reserve Balance。
“Mempool”是“Memory”和“Pool”的缩写,它是一种节点保存尚未验证的信息的机制。换句话说,它可以被看作是一种交易在被包含到一个区块之前聚集的等候室。在区块链中,并非所有的节点都具有相同的 mempool。因此,在 Monad 的情况下,如果节点没有相同的数据,它们会使用 gossip 协议来请求和接收数据,从而共享 mempool 中的信息。目前,Monad 使用简单的 gossip 协议共享 mempool,但未来,他们计划切换到一种叫做“Broadcast Tree”的通信方法。这种结构允许节点在不直接交互的情况下进行通信,通过树形结构传输消息,使它们能够在没有冗余广播的情况下传播消息,从而使共享 mempool 数据的过程更加高效。
这与 Monad 的可扩展性有关。Monad 面临着每秒处理 10,000 个交易的挑战。例如,如果一个区块包含 10,000 个交易,每个交易都是 500 字节,那么该区块的大小将是 5MB。如此大小的区块对网络带宽造成了巨大的压力。 Monad 通过确保提案(由领导者每轮发布)仅引用交易的哈希值,而不是完整的交易,来解决这个问题,从而减少带宽消耗(一个交易可能是 500 字节,但它的哈希值只有 32 字节)。由于共识过程中的区块提案仅引用哈希值,因此所有验证者必须彼此共享交易 mempool。这样,即使区块提案不包含所有的数据,它也可以有效地传播。
Monad 的另一个独特方面是其将交易执行与共识分离,从而使共识过程更加高效。正如我们已经了解到的模块化区块链一样,计算和共识是不同的过程。共识涉及确定如何将交易包含到一个区块中,而执行涉及交易的实际执行,从而导致状态的变化。在 Monad 中,虽然领导者和验证者可能会对一个提案进行投票,但他们不一定知道交易是如何执行的。
Monad 为什么要将计算和共识分离?让我们首先讨论以太坊。以太坊 采用了一种计算先于共识的方法。 在以太坊的共识过程中,必须 1) 就一个区块中的交易达成一致,并且 2) 同意执行这些交易产生的Merkle树根。这意味着,在以太坊中,领导者必须在分享提议之前计算所有的交易,而其他的验证者也必须在对提议进行投票之前计算这些交易,从而增加了复杂性。在这种情况下,gas 限制必须保守地设置,并且共识的时间变得紧张。
为了解决这个问题,Monad 分离并并行化了计算和共识:当节点执行区块 K 的交易时,它们同时对区块 K+1 进行共识。这样,执行仅仅跟随在共识之后,从而允许与区块时间一致的适当的 gas 预算。这种分离是可行的,因为如果交易的顺序被大多数节点所同意,结果基本上就确定了。
然而,当计算和共识被分离并并行处理时,会出现一个问题:“如果在没有更新相对值的情况下设置了交易的顺序(因为执行跟随在共识之后),那么是否可能会包含来自没有 gas 的用户的交易,从而使系统面临潜在的 DDOS 攻击?”为了解决这个问题,引入了 Carriage Cost 的概念。
Carriage cost,顾名思义,就是“运输费用”。鉴于 Monad 将计算和共识分离,它收取交易费用的方式非常独特。通常,成本是在执行一个交易时产生的,但 Monad 将执行成本与运输成本分离。如果传输一个交易需要费用,但执行不需要费用,该交易就会被简单地视为失败。这种方法可以防止用户在资金不足时持续尝试发送交易。
此外,节点为每个账户建立一个“Reserve Balance”,专门留出一部分余额用于支付运输费用。创建 Reserve Balance 的原因是确保只有支付了费用的交易才会被包含到一个区块中。
到目前为止,我们已经深入研究了 Monad 的共识机制。但是 Monad 究竟是如何处理交易的?Monad 的执行策略可以被分解为两个主要的支柱:并行交易处理和 MonadDb。让我们详细地探讨每一个。
这里有两种类型的交易,我将把每种交易命名如下:
交易 A 是账户 A 从账户 B 接收 Monad 代币的交易。
交易 B 是账户 A 向账户 C 发送 Monad 代币的交易。
如果我们想象这两个交易被并行处理而不是顺序处理(交易 B 在交易 A 完成之前开始),那么账户 A 在这种并行处理之后的余额可能与交易被顺序处理时的余额不同。这种差异可能会导致交易执行错误。
为了解决这个问题,Monad 采用了 S TM (Software Transactional Memory) 方法,以及一种从 STM 中的 OCC (Optimistic Concurrency Control) 借用的方法。正如 OCC 这个术语所表明的那样,Monad 假设在并行处理交易期间所有的操作都是有效的。它首先启动执行,然后,如果在验证过程中出现任何问题,它会重新执行该交易。这个过程的结果应该与交易被顺序处理的结果相匹配。当 Monad 并行处理交易时,由于交易结果而更新的状态值会被顺序地合并,以验证被并行处理的交易是否有效。换句话说,Monad 不是在并行处理之前验证交易之间的关系,而是首先处理交易,如果出现问题,它会使用当时可用的信息来重新处理交易。
采用这种方法的原因是,基于初始执行之后可用的信息重新执行交易,而不是抢先验证交易关系然后再执行,最终证明效率更高。
目前,Monad 正在研究主动处理交易重新执行的方法。
在深入研究 MonadDb 之前,理解一个特定的概念至关重要:异步 I/O(通常缩写为 async i/o)。传统上,在处理交易的输入和输出值时,系统必须等待结果才能继续。然而,通过 async i/o,CPU 可以在不等待特定交易结果的情况下处理其他的交易。与不支持 async i/o 的传统以太坊数据库不同,MonadDb 被构建为支持它,在处理交易时提供显著的效率提升。
来源: Monad
从其描述来看,Monad 是一个需要大量的技术审议的区块链。相应地,Monad 团队由许多技术专家组成。例如,CEO Keone 是一位技术领导者,他曾经领导著名交易公司 Jump Trading 的高频交易(HFT)团队。同样,James 曾是 Jump Trading 的一名开发者,负责构建交易系统。大多数从事区块链核心开发的开发者都来自这样的背景:他们开发的平台针对低延迟和快速计算进行了优化。这种经验与 Monad 的愿景非常契合。
来源: Monad Medium
在今年 2 月,Monad 从 Dragonfly、Shima Capital、Finality Capital 和 Credibly Neutral 等著名投资者那里获得了约 1900 万美元的种子轮融资。这次融资的一个突出特点是区块链领域有影响力的天使投资者的参与。收到来自 Flashbot 的战略主管 Hasu 和 SushiSwap 的创始人 0xMAKI 等杰出的行业领导者的投资,引起了人们对 Monad 的极大关注。
Monad 如此引人注目的原因是很明确的。它支持最强大的行业叙事之一 —— 以太坊虚拟机(EVM)。在基础设施层面,它将 DiemBFT 和 HotStuff 等先进技术融入并改进为其独特的 MonadBFT。此外,它利用交易并行处理来确保网络的可扩展性。这种结合承诺了一个庞大的开发者社区,以及供他们在其中运营的充足的可扩展性和资源。虽然大多数 rollup 链都被呈现为以太坊的可扩展性解决方案,但以太坊有限的新区块空间阻止了它们保证高速度。这表明,支持 EVM 的高性能单体区块链的出现可能会再次扰乱区块链市场的格局。
当然,Monad 仍然面临着挑战。正如前面提到的,需要大量的研究来简化交易并行处理。此外,EVM 本身固有的问题,特别是安全问题,仍然没有解决。大多数新的 layer-1 单体区块链都选择了 EVM 以外的虚拟机这一事实就是其证据。
然而,Monad 团队不太可能没有意识到这些现实,他们正在继续他们的区块链开发。人们非常期待看到 Monad 将会对单体区块链市场和更广泛的区块链行业产生的影响。作为前沿技术和强大叙事的融合,Monad 有可能成为 layer-1 市场复苏的驱动力。
感谢 Kate 为此文设计的图片。
- 原文链接: 4pillars.io/en/articles/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!