04.区块链的那些事儿-以太坊中的 Patricia Tree

本节主要讨论以太坊中存储的 Patricia Tree

比特币只有1棵Merkle树,而以太坊的每一个区块头,并非只包含1Merkle Tree,而是包含了3棵Merkle Tree,分别对应了三种对象:

  • 交易(Transactions)
  • 收据(Receipts)展示每一笔交易影响的数据条
  • 状态(State)

整体结构如下所示:



最为简单的一种Merkle Tree大多数情况下都是一棵二叉树。在以太坊中所使用的Merkle Tree较为复杂,我们称之为“梅克尔.帕特里夏树”(Merkle Patricia tree),存储数据的逻辑如下所示



以太坊中的状态树基本上包含了一个键值映射,其中的键是地址,而值包括账户的声明、余额、随机数nounce、代码以及每一个账户的存储(其中存储本身就是一颗树)。

不同于交易历史记录,状态树需要经常地进行更新:账户余额和账户的随机数nonce经常会更变,更重要的是,新的账户会频繁地插入,存储的键( key)也会经常被插入以及删除。我们需要这样的数据结构,它能在一次插入、更新、删除操作后快速计算到树根,而不需要重新计算整个树的Hash。


作者:温春水  致力于研究区块链技术

微信:wencs1314  QQ群:612968783 

加群和微信,免费获得高质量区块链学习资料




猜你喜欢

转载自blog.csdn.net/tsyx/article/details/79575131