本文探讨了以太坊L1层中二叉树的最新进展,对比了稀疏默克尔树(SMT)和前缀默克尔树(PMT)的优劣,并提出了优化SMT的存储、哈希计算等方面的策略。文章还介绍了状态数据编码方案,以及账户和存储槽的组织方式,同时讨论了哈希函数的选择和树的序列化方法,最后分析了Verkle树的现有进展在二叉树中的可重用性。
EIP-7864 提议对以太坊状态使用二叉树,与 EIP-3102 相比,它提出了一个单一的平衡树,并借鉴了 EIP-6800 的一些思想,例如账户数据、存储槽和代码块的打包。该提议讨论了稀疏树与非稀疏树,以及用于默克尔化的哈希函数的选择,当前草案提议使用非稀疏默克尔树,并在主干级别压缩分支,使用 BLAKE3 哈希函数。
账户和合约存储数据的方式是影响以太坊的众多问题之一。以太坊协议选用了 Merkle Patricia Tree(MPT,默克尔帕特里夏树)来组织账户及合约数据。尽管这种数据结构在理论上效果很好,但在实际应用中,它带来的问题却比它能够解决的问题多。核心开发者们已经讨论多年,想要把这种数据结构换为二叉树,我将在这篇文章中阐述我对这个问题的看法以及如何实现这种转变
Facet 通过移除状态树来,来减少共识成本。