前文回顾
- Merkle原理及应用
- Merkle代码实现
- Patricia原理及应用
- Patricia代码实现
什么是MPT(Merkle Patricia Tree)树
MPT树是一种数据结构,用于在以太坊区块链中高效地存储和检索账户状态、交易历史和其他重要数据。MPT树的设计旨在结合Merkle树和Patricia树的优点,以提供高效的数据存储和验证
MPT树的结构

MPT树由四种类型的节点组成:
-  **扩展节点(Extension Node)**:存储一个前缀和一个指向下一个节点的引用。它的作用是为了压缩树的高度,提高存储效率。
-  **分支节点(Branch Node)**:包含16个子节点的数组,每个子节点对应一个16进制字符(0到f)。这些子节点可以是叶子节点、扩展节点或其他分支节点,用于构建树的层次结构。
-  **叶子节点(Leaf Node)**:包含键值对,存储着具体的数据。在以太坊中,这些数据通常是账户的状态信息,如余额、合约代码等。
-  **空节点(Null Node)**:表示空指针或空链接,用于表示树的末端。
MPT树的工作原理
MPT树的工作原理如下:
-  根据 键值对构建树:将键值对插入到MPT树中,根据键的字节表示构建树的路径
-  哈希计算:每个节点存储其 子节点的哈希值,以确保数据的完整性和安全性
-  路径压缩:利用 扩展节点将具有相同前缀的节点合并,以减少树的高度和存储空间
-  快速检索:通过树的 根节点可以快速检索任意键的值,而不必遍历整个树
MPT树的应用
MPT树在以太坊区块链中广泛应用于存储账户状态、交易历史和区块数据。它是以太坊的核心数据结构之一,对于实现快速的状态验证、高效的数据检索和安全的数据存储