图解默克尔树 | 深入浅出区块链技术博客
source link: https://learnblockchain.cn/article/556?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
iden3.io 的 blog 最近发表了一篇关于默克尔树的图解文章,相当不错,特摘取了文章的图解部分。
iden3.io 的 blog 最近发表了一篇关于默克尔树的图解文章,相当不错,特摘取了文章的图解部分。
默克尔树规范
包含数据的区块组成了树的叶子。
首先,为每个数据区块创建父节点,其值为它们后代数据区块的哈希。
然后,两两分组父节点,将它们值的哈希保存于上一级的树节点中。
重复此过程直至一个节点,其为树的根。
假设叶子节点数据被恶意篡改
将导致上一级节点的哈希值与之不匹配
因此不得不继续篡改该节点
同理,不得不依次篡改上一级节点
最终,来到了根节点,无法篡改,因为此节点在链上一直处于被跟踪的状态。
证明数据的有效性
现要证明 data0 是默克尔树的一员
首先需要找到从数据区块到根节点的一条路径
然后找到该路径上 data0 兄弟区块
忽略树的其余部分,因为这些区块已经有足够信息参与计算
递归重新计算根的值,若与链上的根的值相等,则 data0 属于默克尔树一部分
先计算 data0 哈希,放于标记为 0 的区块中
将 data0 的哈希结合标记为 1 的区块值计算,结果放入 4
最终结合 4 和 5 算出根的值
比较两者结果即可做出判断
关于默克尔树的其他内容,请阅读原文。
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。
- 发表于 2020-02-04 17:36
- 阅读 ( 1692 )
- 学分 ( 107 )
- 分类:入门/理论
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK