基础与密码学

默克尔树

默克尔树是一种为一大堆条目集体取指纹的方法,它能让你证明某一条目确实属于这一堆,而无需把整堆都摊开给人看。做法是:先给每个条目算一个哈希;再把这些哈希两两配对、合起来再算哈希;接着把这些结果再两两配对算哈希,如此一层层往上爬,直到顶端只剩一个哈希。这个顶端的值叫作默克尔根,它是下方所有条目的一份小巧摘要。

巧妙之处在于“成员证明”。要让别人相信某一笔特定交易就在某个区块里,你不必把每一笔交易都交出去——只需交出从你这条目一路爬到根所需的那几个配对哈希即可。验证者把这几步合并重算一遍,若结果与已知的根一致,这条目就必定真实、未被改动。这就像要证明你的名字在一本巨大的账册里,你只需出示通往封面那一枚封印的一小串收据,而不必把每一页都翻开。

正是这一点,让轻量设备无需保存整条链也能信任它。手机钱包只要拿一份小小的默克尔证明去比对区块的根,就能确认自己的付款已被收进某个区块,而不必下载好几个 GB 的数据。同样的结构也让篡改无所遁形:任何一个条目一改,它的指纹就变,这变化会一路向上传导,连根都跟着变。

区块的头部只存这一个默克尔根,可单单这一个值就锁定了区块里包含的每一笔交易。

又称
hash tree默克尔树哈希树默克爾樹