base 依赖_( )存储底层数据_理解Substrate数据存储的底层实现Merkle Patricia Trie

本文详细介绍了Merkle Tree及其在区块链中的作用,特别是Substrate采用的Patricia Merkle Trie。Merkle Patricia Trie结合了Trie的前缀共享特性和Merkle Tree的哈希验证,用于高效存储和验证状态数据。Substrate的MPT通过节点哈希进行数据库索引,支持child trie以隔离存储,同时具备区块裁剪功能以优化存储性能。
摘要由CSDN通过智能技术生成

通过本文,你会了解到:

  • 区块链应用为什么使用Merkle Tree的数据结构;
  • Substrate采用的Patricia Merkle Trie的特点和应用。

Merkle Tree介绍

Merkle Tree是一种数据结构,用来验证计算机之间存储和传输数据的一致性,如果不使用这一数据结构,一致性的验证需要消耗大量的存储和网络资源,如比对计算机之间的所有数据;使用Merkle Tree,只需要比对merkle root(根节点)就可以达到相同的效果。整个过程,简单的描述如下:

  • 将数据通过哈希之后放置在叶子节点之中;
  • 将相邻两个数据的哈希值组合在一起,得出一个新的哈希值;
  • 依次类推,直到只有一个节点也就是根节点;
  • 在验证另外的计算机拥有和本机相同的数据时,只需验证其提供的根节点和自己的根节点一致即可。

Merke Tree使用了加密哈希算法来快速验证数据一致性,常用的加密哈希算法有SHA-256,SHA-3,Blake2等,它们可以做到,

  • 相同的输入有相同的输出;
  • 对任意数据可以实现快速计算;
  • 从哈希值无法推断出原信息;
  • 不会碰撞(即不同输入对应相同输出);
  • 输入即使只有很小的改变,输出也会有极大不同。

5722e995232723acfae25b357505544d.png

在区块链应用Bitcoin网络中,存储的数据为转移Bitcoin的交易,如“Alice发送给Bob 5个比特币”,通过使用Merkle Tree,除了上面提到的验证各个节点之间的数据一致性,还可以用来快速验证一个交易是否属于某个区块。轻节点只需要下载很少的数据就可以验证交易的有效性,例如下图所示,用户要验证交易T(D)在某个区块之中,需要依赖的数据仅仅是HC, HAB, HEFGH, 和 merkle root即HABCDEFGH。

91daced05fb18501a905c9048130a5c6.png

Merkle Patricia Trie原理

Trie

Patria Trie也是一种树形的数据结构,也称为Prefix Tree,Radix Tree,或者简称为Trie<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值