在polygon zkEVM的第一篇文章里,我们总结了Polygon zkEVM 的整体框架以及交易执行流程,同时也分析了Polygon zkEVM是如何实现计算扩容的同时继承了L1的安全性的;在这篇文章里,我们将依托上篇文章建立的框架,深入polygon zkEVM关于Sequencer和Bridge更多的技术细节,同时也探讨未来潜在的去中心化Sequencer架构的不同特点。
<aside> 💡 在这篇文章中L2等价于Rollup,L1等价于Ethereum
</aside>
在上一篇文章里,我们介绍Ploygon zkEVM的过程中,实际上缺失了很重要的一个部分,就是polygon zkEVM 的原生桥(bridge)。
Polygon zkEVM的在L1和L2分别维护了一棵Exit Tree,名字分别为L1 Exit Merkle tree和L2 Exit Merkle tree。
但是为了更好的管理这两棵树,polygon zkEVM 很聪明的将这两棵树结合在了一起,如下图:
也就是用分别把L1 Exit Tree Root 作为Global Exit Tree的左叶子节点,把L2 Exit Tree Root 作为Global Exit Tree 的右叶子节点。
不过需要注意这里L1 Tree Root 和 L2 Tree Root是Sparse Merkle Tree(SMT),而Global Exit Tree是Binary Merkle Tree。
在Polygon zkEVM的合约设计中,还是尽可能的将Bridge和Consensus合约尽可能的解耦。
目前其在L1部署的合约主要分为3个,如下图所示:
需要注意,他们之间不是继承关系,都是独立的合约,不过PolygonZkEVMBridge和PolygonZkEVM都会调用PolygonZkEVMGlobalExitRoot来更新或验证Global Exit Tree Root 。