以太坊Merkle树

Merkle tree作为区块链技术的最重要组成部分之一,通过利用此技术,将以太坊的所有节点运行在所有的计算机、笔记本、智能终端上。区块链上包括很多节点,每个节点有两部分组成,区块头和区块体,如果区块链的节点不使用Merkle树,那么也可以完成相应的工作,但是会限制智能手机,小型计算机的加入,具大的区块头会严重影响计算机的计算能力,从而影响其区块链的可扩展性。

Merkle Tree在一般情况下,作为哈希大量聚集数据块的一种方式,通过利用Merkle Tree将此数据快分割,形成小单位的数据块。在每一个bucket中包含部分数据块,当取出每个数据块时,再次哈希,重复此过程到根节点。 Merkle Tree最简单的形式是二进制树,每个bucker的数据块都有两个子节点的数据块,其具体描述如下: avatar 既然可以通过常规的哈希函数解决问题,为什么要用Merkle Tree?原因在于,Merkle Tree允许一个整齐的机制,这个过程我们称为Merkle proofs。 avatar Merkle proofs包含一个根节点数据块,根节点的数据块包含沿数据块到根路径的所有哈希分支。可以简单验证一个哈希值,同时也可以验证整个根节点所覆盖的范围。

比特币系统的Merkle证明

Merkle proofs最先在比特币系统中得以应用,在支付的过程中,将每一笔交易存储到相应的区块中,通过将交易存储,实现简单的支付操作,无需下载每笔交易的区块,轻型客户端可以仅仅下载区块头部,每个区块的头部包括五个内容,每个数据块的大小为80字节,通过减少数据块的数据量,使得每一个智能的机器,参与到区块链的工作过程中,不必消耗过多的计算机内存的资源。 其五部分区块内容包括如下: avatar

以太坊的Merkle证明

以太坊的每一个区块头,并非只包含一颗Merkle树,同时包含三颗Merkle树,分别对应三种对象:

参考文献

原文链接:https://blog.ethereum.org/2015/11/15/merkling-in-ethereum/

赞 赏
真诚赞赏 手有余香
用微信请lyton喝杯咖啡?

微信支付

用支付宝请lyton喝杯咖啡?

支付宝