默克尔树是一 种二叉树,包含了一组节点,它们的含有基础信息的树根有大量的叶子节点,一组中间节点,每一 个节点都是它的 2 个子节点的哈希,然后,最终的一个根节点,也是由它的 2 个子节点的哈希形 成,代表着这树的“顶端”。这个默克尔树的目的是允许在一个区块中的数据能够被零散的传递: 一个节点只能从一个源来下载一个区块的头信息,树的一小部分关联着另一个源 ,并且任然可以保 证所有的数据都是正确的。之所以这样做行得通,是因为哈希值都是向上传导的: 如果一个恶意的 用户试图在默克尔树的底部替换一个假的交易, 这个更改将导致上面的节点发生变化,然后上面的节点的变化又会导致上上面的节点发生变化,最终改变这个数根节点,因此也改变了这区块的哈 希,导致这个协议把它注册成一个完全不同的区块 (几乎可以肯定是一个无效的工作证明).
默克尔树结构