EN
返回档案库

案例库 · 软件与 IT · 技术决策 · 1979

默克尔哈希树:用少量哈希证明一条记录在巨型文件中

拉尔夫·默克尔1979年提出的哈希树,将整个数据集提交到一个根哈希,验证任意单条记录只需约log n个哈希,而非整个文件。

斯坦福大学

那一手

证明一条记录属于大型数据集,过去通常需要发送整个数据集。这对于备份、交易文件或网络缓存来说并不现实。

默克尔1979年的学位论文和1989年的论文描述了一棵树,其中每个数据块都被哈希,哈希值成对组合,直到只剩一个根哈希。验证一个成员只需路径上的log n个哈希,而非整个文件。

这棵树将成员测试转化为对根哈希的相等性测试,任何位置的变化都会表现为路径变化。这就是无需看到每个字节就能为整个数据结构作保的方式。

为什么管用

  • 证明规模是对数级的,因此即使数据集极大,验证仍然廉价。
  • 根哈希提交了整个数据集,因此任何篡改都能被发现。
  • 验证者只需要根哈希和短路径,无需信任服务器。
  • 它是单向哈希链,因此不会泄露关于数据的任何信息。
值了多少通过两两哈希将叶节点提交到一个根节点神来之笔

可以搬走什么

要证明一个巨大整体的某个事实,不要发送整体。将它压缩成一个摘要,然后只给出连接该单一主张与摘要的短路径。

后来呢

默克尔树是Git、加密货币区块链、证书透明度和分布式存储的基础。它让客户端通过仅信任一个短的根,就能验证大型未认证存储中的一小部分。

资料来源

发现哪里写错了?告诉我们。

同一路聪明