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

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

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

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

整体结构如下所示:

 

04.区块链的那些事儿-以太坊中的 Patricia Tree_第1张图片

 

 

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

 

04.区块链的那些事儿-以太坊中的 Patricia Tree_第2张图片

 

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

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

 

 

 

关注公众号,并回复“区块链技术项目开发”,下载实战案例

https://img-blog.csdnimg.cn/20181107171415912.jpg

 

 

 

你可能感兴趣的:(区块链底层技术,区块链核心技术,区块链项目实战,区块链技术实战,区块链技术)