Monad如何在保持去中心化的同时扩展EVM? MonadBFT是Monad中使用的共识算法,它是Hotstuff的第一个抗尾叉实现(这是什么意思?) 以下是MonadBFT如何在保持高性能的同时扩展到数千个验证者的方式 🧵
1/7 共识机制 区块链用来确保新块被大多数验证者达成一致的机制。 到目前为止,共识算法无法扩展到几百个验证者以上,因为复杂性通常是基于验证者数量的平方增加。 由于每个验证者都与所有其他验证者进行沟通以达成对区块的共识:n 个验证者 x n 条消息 = n 平方条消息。 因此,随着验证者数量的增加,复杂性显著增加。
2/7 Hotstuff 是一种共识算法,通过避免全对全的消息传递并允许单个“领导者”与所有验证者进行通信,从而可以线性扩展(与验证者数量成正比)。 因此,Hotstuff 的扩展效率优于传统的 PBFT 共识,但它容易受到尾分叉攻击。 MonadBFT 是 Hotstuff 的第一个抗尾分叉实现。
3/7 什么是尾分叉? 尾分叉发生在下一个领导者(提议下一个区块的验证者)故意或意外地未能在其新区块提案中包含前一个领导者有效区块的QC(合格证书)。(QC代表合格证书,是所有验证者对前一个区块达成一致的证明) 因此,尽管前一个区块是有效的并且得到了大多数支持,但仍然未被提交,最终被孤立或被同一高度的不同区块替代。 这破坏了激励机制:诚实的提议者如果他们的区块被跳过,可能无法获得区块奖励或费用,从而鼓励不公平行为并削弱网络的安全性。
4/7 MonadBFT 是如何工作的? → 一位领导者(Alice)向所有其他节点广播一个签名的区块提案(fan out),其他节点通过向下一个领导者 Bob 发送签名的证明来确认其有效性(fan in)。 → Bob 将证明汇总成一个“法定证书”(QC) → Bob 将 QC 广播给所有节点,节点通过向第三位领导者(Charlie)发送消息来证明已接收到 QC,Charlie 汇总这些证明。由于这些证明是关于 QC 的,我们称这个新的 QC 为 QC-on-QC。 → Charlie 将 QC-on-QC 发送给每个人。收到 QC-on-QC 后,大家都知道 Alice 的区块已经被最终确认。
5/7 流水线处理 在上述故事中,Bob 和 Charlie 仅发送 QC 或 QC-on-QC,但实际上提案是流水线处理的:Bob 的消息包含了 Alice 的区块的 QC 以及一个新区块的内容。 Charlie 的消息包含了 Bob 的区块的 QC(这是 Alice 的区块的 QC-on-QC),并且还包含了一个新区块的交易。 当验证者为 Bob 的消息发送证明时,他们是在证明 Bob 的区块的有效性和 QC 的有效性。 这种流水线处理提高了网络的吞吐量,因为每个时隙都会生成一个新区块。
6/7 Raptorcast: Monad的区块传播协议 MonadBFT要求领导者将区块提案发送给每个验证者。 然而,区块可能相当大:10,000笔交易/秒 * 200字节/笔交易 = 2 MB/秒。直接发送给200个验证者将需要400 MB/秒。 理想情况下,验证者不应该有如此高的上传带宽。这就是Raptorcast的用武之地。 → 区块由领导者进行纠删编码(纠删编码意味着消息被分解为一组块,并且可以从这些块的足够大子集解码) → 领导者将不同的块集分发给网络中的所有验证者(持有更高股份的验证者会相应地收到更多) → 每个验证者将他们的块重新广播给网络中的所有其他验证者 通过这种方式,整个网络的带宽被用来传播区块提案。
5.73K