第3课

Monad 的技术架构解析

本模块详细介绍 Monad 的技术设计,重点说明其如何实现高效的吞吐量与极低的交易延迟。内容涵盖并行执行引擎、异步处理模型、MonadBFT 共识机制以及定制的 MonadDB 存储系统,这些技术共同支持复杂且可扩展的链上应用。

乐观并行执行

Monad 的核心创新之一是乐观并行执行,这种技术颠覆了传统区块链按顺序处理交易的方式。像以太坊这样的区块链通常逐笔处理交易,虽然能够确保数据一致性,但却限制了网络的吞吐量和整体性能。

Monad 的虚拟机采用了全新的并行处理方式,假设区块中的大多数交易是独立的,彼此之间不会影响区块链状态的同一部分。基于这一假设,交易被分批安排在多个线程上同时运行。这种设计充分利用了现代多核处理器的性能,在网络负载较高时也能显著提升交易处理速度。

当然,并行处理可能会带来数据冲突问题,例如两笔交易尝试修改同一个账户或智能合约。对此,Monad 引入了冲突检测与解决机制。在交易并行处理后,系统会检查是否存在冲突。如果发现问题,只有相关交易会被重新执行或重新排序,以确保数据的准确性和状态的一致性。

这种设计类似于现代数据库中的乐观并发控制技术,大多数情况下假设操作无冲突并同时处理,仅在特殊情况下才进行纠正。这种方式让 Monad 的执行层既能适应高交易量场景,又能保持高效运行,非常适合去中心化金融(DeFi)、链上游戏和 NFT 市场等需要高频交互的应用场景。

乐观并行执行对 DeFi、游戏和 NFT 等领域尤为有利。在这些场景中,用户通常同时进行大量操作,但彼此之间的数据交互较少。Monad 可以高效并行处理这些交易,减少网络拥堵,同时提升应用的响应速度,无需依赖链外扩展方案。

此外,Monad 的设计对开发者非常友好。它完全兼容以太坊虚拟机(EVM),开发者可以直接使用 Solidity 编写智能合约,无需为适配并行处理而修改代码。系统会自动在后台处理并行执行逻辑,既简化了开发流程,又显著提升了网络性能。

异步执行

Monad 的异步执行技术是其并行执行模型的强力补充,它将交易执行与区块链的共识过程分离开来。在传统区块链中,共识和交易执行是捆绑在一起的,验证者必须先完成所有交易的运行,才能最终确认一个区块。这种设计不仅增加了延迟,还限制了区块生成的速度。

Monad 的设计则完全解耦了这两部分。它通过共识机制优先确定交易的顺序,然后再进行交易的执行。这样,共识层可以独立运行,而交易的执行则在后台并行完成。这种方式让验证者的效率提升,同时缩短了区块生成的时间,因为验证者不需要等待每笔交易的计算结果。

为了确保网络的一致性,Monad 让所有节点以完全相同的顺序执行交易,即使执行的时间不同,也能保证区块链状态的一致性。这种机制避免了区块链状态分裂问题,同时确保了安全性。

这种异步执行方式与乐观并行处理相辅相成。在共识快速推进并完成区块确认的同时,交易的执行在多个线程中同时进行,只有在出现冲突时才进行处理。这种设计最大限度地提升了系统的并发能力和资源利用效率,同时也确保了交易的准确性。

对于用户和开发者来说,这种架构意味着交易确认速度更快、应用响应更迅速,同时网络的扩展能力也更强。验证者由于减少了处理瓶颈,也能更高效地参与网络,进一步增强了去中心化的特性。

MonadBFT 共识机制

Monad 的共识机制使用了 MonadBFT,这是一种基于 HotStuff 拜占庭容错协议的定制版本,专为性能和安全性优化而设计。它支持低延迟的交易最终确认和高吞吐量,同时对去中心化的验证者保持友好。

传统的 HotStuff 协议通过减少区块确认所需的通信轮数来提升效率,而 MonadBFT 在此基础上进一步优化,实现了单轮共识确认区块的功能。每个区块只需一次共识轮便可完成确认,无需等待多次确认。这种设计让交易能够被即时确认,提高了应用的稳定性,同时降低了链重组的风险。

MonadBFT 的工作模式是基于领导者的。在每一轮共识中,一个验证者负责提议区块,其他验证者对其进行验证并投票。如果验证者总权益的三分之二同意该区块,该区块便被确认。这种简化流程不仅减少了系统的运行开销,还加快了区块的生成速度,特别是在网络运行正常的情况下。

为了保证网络持续运行,MonadBFT 设计了领导者轮换和超时机制。如果当前领导者未能提议区块,系统会自动切换到下一位验证者。这种机制确保即使部分验证者离线或无法响应,网络仍能正常运行。

在安全性方面,MonadBFT 遵循拜占庭容错的标准,允许最多三分之一的验证者行为恶意而不会影响网络的安全性。一旦区块被确认,它会被加密保护,无法被篡改,除非恶意行为者控制了大多数验证者的权益。

MonadBFT 与异步执行模型紧密结合。由于区块在执行交易之前已经被确认,系统可以在不延迟区块生成的情况下独立处理交易执行。这种设计降低了验证者的工作压力,同时保持了高性能运行,不需要依赖中心化排序服务或可信中介。

MonadDB

MonadDB 是 Monad 区块链的核心存储系统,专门用于管理链上数据,包括账户余额、合约存储和其他重要状态信息。它的设计目标是快速、高效,并与 Monad 的并行执行引擎完美兼容。

MonadDB 采用了一种版本化的键值存储系统,能够同时保存多个状态快照。这种设计特别适合 Monad 的并行执行模式,因为多个交易在同时处理时可能会发生冲突,需要回滚或调整。通过存储不同版本的状态,MonadDB 可以帮助系统快速隔离并解决数据冲突问题。

为了保证区块链的安全性和验证效率,MonadDB 使用了 Merkle Patricia Trie 数据结构。这种结构不仅能够快速验证状态变化,还可以生成新的根哈希,供所有节点验证。它支持轻客户端、无信任同步和基于证明的状态验证,为区块链的安全性和扩展性提供了坚实基础。

为了应对高交易量需求,MonadDB 优化了数据读取和写入速度,结合缓存、高速磁盘存储以及并发访问控制,确保数据的快速存取。这些优化让 Monad 的执行层能够高效运行,无需担心数据访问带来的延迟。

对开发者来说,MonadDB 的复杂性完全被抽象化。开发者只需使用 Solidity 编写智能合约,与区块链交互,无需关注底层的状态存储机制。即使在复杂合约或高负载情况下,MonadDB 也能确保数据的准确性和稳定性。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
目录
第3课

Monad 的技术架构解析

本模块详细介绍 Monad 的技术设计,重点说明其如何实现高效的吞吐量与极低的交易延迟。内容涵盖并行执行引擎、异步处理模型、MonadBFT 共识机制以及定制的 MonadDB 存储系统,这些技术共同支持复杂且可扩展的链上应用。

乐观并行执行

Monad 的核心创新之一是乐观并行执行,这种技术颠覆了传统区块链按顺序处理交易的方式。像以太坊这样的区块链通常逐笔处理交易,虽然能够确保数据一致性,但却限制了网络的吞吐量和整体性能。

Monad 的虚拟机采用了全新的并行处理方式,假设区块中的大多数交易是独立的,彼此之间不会影响区块链状态的同一部分。基于这一假设,交易被分批安排在多个线程上同时运行。这种设计充分利用了现代多核处理器的性能,在网络负载较高时也能显著提升交易处理速度。

当然,并行处理可能会带来数据冲突问题,例如两笔交易尝试修改同一个账户或智能合约。对此,Monad 引入了冲突检测与解决机制。在交易并行处理后,系统会检查是否存在冲突。如果发现问题,只有相关交易会被重新执行或重新排序,以确保数据的准确性和状态的一致性。

这种设计类似于现代数据库中的乐观并发控制技术,大多数情况下假设操作无冲突并同时处理,仅在特殊情况下才进行纠正。这种方式让 Monad 的执行层既能适应高交易量场景,又能保持高效运行,非常适合去中心化金融(DeFi)、链上游戏和 NFT 市场等需要高频交互的应用场景。

乐观并行执行对 DeFi、游戏和 NFT 等领域尤为有利。在这些场景中,用户通常同时进行大量操作,但彼此之间的数据交互较少。Monad 可以高效并行处理这些交易,减少网络拥堵,同时提升应用的响应速度,无需依赖链外扩展方案。

此外,Monad 的设计对开发者非常友好。它完全兼容以太坊虚拟机(EVM),开发者可以直接使用 Solidity 编写智能合约,无需为适配并行处理而修改代码。系统会自动在后台处理并行执行逻辑,既简化了开发流程,又显著提升了网络性能。

异步执行

Monad 的异步执行技术是其并行执行模型的强力补充,它将交易执行与区块链的共识过程分离开来。在传统区块链中,共识和交易执行是捆绑在一起的,验证者必须先完成所有交易的运行,才能最终确认一个区块。这种设计不仅增加了延迟,还限制了区块生成的速度。

Monad 的设计则完全解耦了这两部分。它通过共识机制优先确定交易的顺序,然后再进行交易的执行。这样,共识层可以独立运行,而交易的执行则在后台并行完成。这种方式让验证者的效率提升,同时缩短了区块生成的时间,因为验证者不需要等待每笔交易的计算结果。

为了确保网络的一致性,Monad 让所有节点以完全相同的顺序执行交易,即使执行的时间不同,也能保证区块链状态的一致性。这种机制避免了区块链状态分裂问题,同时确保了安全性。

这种异步执行方式与乐观并行处理相辅相成。在共识快速推进并完成区块确认的同时,交易的执行在多个线程中同时进行,只有在出现冲突时才进行处理。这种设计最大限度地提升了系统的并发能力和资源利用效率,同时也确保了交易的准确性。

对于用户和开发者来说,这种架构意味着交易确认速度更快、应用响应更迅速,同时网络的扩展能力也更强。验证者由于减少了处理瓶颈,也能更高效地参与网络,进一步增强了去中心化的特性。

MonadBFT 共识机制

Monad 的共识机制使用了 MonadBFT,这是一种基于 HotStuff 拜占庭容错协议的定制版本,专为性能和安全性优化而设计。它支持低延迟的交易最终确认和高吞吐量,同时对去中心化的验证者保持友好。

传统的 HotStuff 协议通过减少区块确认所需的通信轮数来提升效率,而 MonadBFT 在此基础上进一步优化,实现了单轮共识确认区块的功能。每个区块只需一次共识轮便可完成确认,无需等待多次确认。这种设计让交易能够被即时确认,提高了应用的稳定性,同时降低了链重组的风险。

MonadBFT 的工作模式是基于领导者的。在每一轮共识中,一个验证者负责提议区块,其他验证者对其进行验证并投票。如果验证者总权益的三分之二同意该区块,该区块便被确认。这种简化流程不仅减少了系统的运行开销,还加快了区块的生成速度,特别是在网络运行正常的情况下。

为了保证网络持续运行,MonadBFT 设计了领导者轮换和超时机制。如果当前领导者未能提议区块,系统会自动切换到下一位验证者。这种机制确保即使部分验证者离线或无法响应,网络仍能正常运行。

在安全性方面,MonadBFT 遵循拜占庭容错的标准,允许最多三分之一的验证者行为恶意而不会影响网络的安全性。一旦区块被确认,它会被加密保护,无法被篡改,除非恶意行为者控制了大多数验证者的权益。

MonadBFT 与异步执行模型紧密结合。由于区块在执行交易之前已经被确认,系统可以在不延迟区块生成的情况下独立处理交易执行。这种设计降低了验证者的工作压力,同时保持了高性能运行,不需要依赖中心化排序服务或可信中介。

MonadDB

MonadDB 是 Monad 区块链的核心存储系统,专门用于管理链上数据,包括账户余额、合约存储和其他重要状态信息。它的设计目标是快速、高效,并与 Monad 的并行执行引擎完美兼容。

MonadDB 采用了一种版本化的键值存储系统,能够同时保存多个状态快照。这种设计特别适合 Monad 的并行执行模式,因为多个交易在同时处理时可能会发生冲突,需要回滚或调整。通过存储不同版本的状态,MonadDB 可以帮助系统快速隔离并解决数据冲突问题。

为了保证区块链的安全性和验证效率,MonadDB 使用了 Merkle Patricia Trie 数据结构。这种结构不仅能够快速验证状态变化,还可以生成新的根哈希,供所有节点验证。它支持轻客户端、无信任同步和基于证明的状态验证,为区块链的安全性和扩展性提供了坚实基础。

为了应对高交易量需求,MonadDB 优化了数据读取和写入速度,结合缓存、高速磁盘存储以及并发访问控制,确保数据的快速存取。这些优化让 Monad 的执行层能够高效运行,无需担心数据访问带来的延迟。

对开发者来说,MonadDB 的复杂性完全被抽象化。开发者只需使用 Solidity 编写智能合约,与区块链交互,无需关注底层的状态存储机制。即使在复杂合约或高负载情况下,MonadDB 也能确保数据的准确性和稳定性。

免责声明
* 投资有风险,入市须谨慎。本课程不作为投资理财建议。
* 本课程由入驻Gate Learn的作者创作,观点仅代表作者本人,绝不代表Gate Learn赞同其观点或证实其描述。
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.