什么是稀疏默克尔树(Sparse Merkle Tree)

什么是默克尔树(Merkle Tree)

稀疏默克尔树(Sparse Merkle Tree)
参考URL: https://blog.csdn.net/hello2mao/article/details/103399776

Merkle 树的叶子是数据块的 hash 值。非叶节点是其对应子节点串联字符串的 hash。

如下图所示,A、B、C、D是数据块,H()代表哈希函数。

在这里插入图片描述

默克尔树的存在证明

默克尔树的存在证明,也叫做默克尔证明,这些证明能够表明一个叶节点是默克尔树的一部分。

例如,为了证明数据A(严格来说是A的哈希H(A))存在于此默克尔树中,只需要给出H(B)和H(H©+H(D)),就可以计算出根哈希,然后和原根哈希一比较即可。

默克尔树的不存在证明

不太容易实现。

什么是稀疏默克尔树(Sparse Merkle Tree)

稀疏默克尔树(Sparse Merkle Tree,SMT)与默克尔树基本类似,只是数据是有序的。

例如有一个四个叶子节点的SMT,然后有数据A和D,那么这SMT如下:
在这里插入图片描述可以看到,A和D被有序的放到了索引是0和3的位置,而所以是1和2的位置是null。

稀疏默克尔树的存在证明

与默克尔树的存在证明一致,只需要给出H(null)和H(H(null)+H(D))。

且SMT的值可以在O(log(n)) 时间内进行更新、插入或删除操作。

稀疏默克尔树的不存在证明

与默克尔树最大的区别在于,稀疏默克尔树可以方便的实现不存在证明。

例如需要证明C不存在,那么只需证明索引3处是null即可,也就转化为常规的默克尔证明,只需给出H(H(A)+H(null))和H(D),如下图所示:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值