默克尔根(加密货币)的定义
Merkle根是区块链网络中作为区块一部分的所有交易的所有哈希的哈希。
分解Merkle根(加密货币)
区块链由相互链接的各种块组成(因此称为区块链)。 哈希树或Merkle树以有效和安全的方式对区块链数据进行编码。 它可以快速验证区块链数据,以及将大量数据从对等区块链网络上的一个计算机节点快速移动到另一个计算机节点。
区块链网络上发生的每笔交易都有与之关联的哈希值。 但是,这些散列不是按顺序存储在块上的,而是以树状结构的形式存储的,因此每个散列都按照父子树状关系链接到其父级。
由于特定块上存储了大量事务,因此该块中的所有事务散列也会被散列,从而产生Merkle根。
例如,考虑一个7事务块。 在最低级别(称为叶级别),将有4个交易哈希。 在叶级别之上的一级,将有2个交易哈希,每个交易哈希将与叶级别下位于它们之下的2个哈希相连。 在顶部(第二层),将有最后一个称为根的事务哈希,它将连接到它下面的两个哈希(在第一层)。
实际上,您获得了一个倒置的二叉树,该树的每个节点仅连接到其下面的两个节点(因此称为二叉树)。 它在顶部具有一个根哈希,该根哈希连接到第一级的两个哈希,每个哈希又连接到第三级(叶级别)的两个哈希,并且该结构将根据事务哈希的数量而继续。
(来源:Kiran Vaidya / Medium)
哈希从最低级别(叶级别)的节点开始,并且所有4个哈希都包含在与该级别链接的节点的哈希中。 同样,散列在第一级继续进行,这导致散列的散列达到更高的级别,直到达到单个最高根散列为止。
该根哈希称为Merkle根,由于哈希的树状链接,它包含有关该块上存在的每个事务哈希的所有信息。 它提供了单点哈希值,可以验证该块上存在的所有内容。
例如,如果必须验证声称来自区块137的交易,则他/她只需要检查区块的Merkle树,而不必担心验证区块链上任何其他区块上的任何内容,例如区块136或区块#138。
输入Merkle root,这将进一步加快验证速度。 由于它包含有关整个树的所有信息,因此只需要验证事务哈希,其同级节点(如果存在),然后向上进行处理,直到到达顶部为止。
本质上,Merkle树和Merkle根机制显着降低了要执行的哈希级别,从而实现了更快的验证和事务处理。 (有关更多信息,请参见默克尔树定义。)