区块链 · 数字资产知识 · 行业资讯
文章库关于本站

研究与报告

区块链技术默克尔树怎么理解|从一条记录核对到一个根值

摘要

默克尔树把多条记录通过哈希关系联系起来,使验证者能够核对某条记录与已知根值的关系。它节省核验所需的数据,但不能单独证明链外事实。

区块链技术默克尔树的科技主题配图

从逐层摘要理解树结构

理解区块链技术默克尔树,可以先把它想象成分层核对表:底层对应若干数据,向上逐层按确定规则计算摘要,最终得到一个根值。这里的树描述数据关系,并不是把文件压缩成可以随意还原的一小段文字。

计算规则、数据顺序和编码方式必须约定一致。同样的业务文字,如果编码或组织方式不同,得到的根值也可能不同,所以不能脱离具体协议比较两串字符。

证明提供的是一条核对路径

假设四份教学记录分别放在底层四个位置,验证其中一份时,不一定要把另外三份原文全部发送给验证者;可以提供所需的相邻摘要,让它沿规定路径计算到根。这只是简化模型,不是某条链的完整编码规范。

验证者还需要一个已经可靠取得的目标根值。若记录、证明和所谓可信根全由同一个未经核实的页面提供,计算一致只能说明这组材料内部相符,不能自动证明它来自目标区块。

区块链 区块高度的科技主题配图

不同区块链采用的结构有差别

比特币开发文档说明区块头包含交易默克尔根。以太坊相关文档则介绍用于状态组织的修改型默克尔帕特里夏树。它们都利用哈希关联支持核验,但具体节点结构和编码细节并不相同。

因此,学习普通二叉树示意图以后,不宜直接把示意算法当成生产网络实现。实际解析交易或状态证明时,应明确网络、数据类型和所依据的协议版本。

篡改检测依赖规则和哈希性质

当数据发生改变时,按相同规则重新计算的相关摘要通常会改变;实际安全性还依赖所用哈希函数的抗碰撞等性质。不能把这种计算上的可靠性表述成数学上绝无任何两份数据共享摘要。

如果验证失败,可以依次检查原始字节、顺序、路径和目标根,定位不一致发生在哪一步。核验过程不应只看网页显示一个绿色对号,还需要知道对号依据的是哪组输入。

记录被包含,不等于描述的事情必然真实

默克尔证明主要帮助确认数据与特定根之间的关系。若一条记录写着某件货物已交付,包含证明并不会替代收货验收;若记录描述一份声明,也不会代替对声明签发者的判断。把完整性、来源和事实真实性分开核对,是理解这项技术最重要的边界,也是阅读各种链上凭证时通用的检查思路。

← 返回全部文章

延伸阅读 · 相关栏目

行业资讯研究与报告政策资料交易平台观察