区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)

Posted huanghanyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)相关的知识,希望对你有一定的参考价值。

目的:解决由于区块链过长,导致节点硬盘存不下的问题。

方法:只需保留交易的哈希值。

区块链作为分布式账本,原则上网络中的每个节点都应包含整个区块链中全部区块,随着区块链越来越长,节点的硬盘有可能放不下。区块链中引入了默克尔树解决这个问题。

区块链中,为节省空间,只保存交易的哈希值,不保存交易本身的信息,哈希值对于校验来说足够了。

默克尔树很简单,具体来说,一个区块中的所有交易都会求取哈希值,得到的哈希值,再两两组合成新文本求取哈希值,以此类推,直到生成最后一个哈希值,即根哈希值,这些哈希值组成的二叉树就是默克尔树。如下图所示:

技术图片

区块头现在包含:
– 前一区块的哈希值
– 一个Nonce
– 默克尔树的根哈希值

由于这个根哈希值包含了区块中所有交易的哈希值,因此可以去除这些交易以节省存储空间。

现在你的区块链看起来就像下图

技术图片

可以看到区块链中,只保存了区块头,这可以大大节省存储空间。这一策略被普通节点使用,普通节点只用于收付款,例如虚拟币钱包。但对于矿工节点,就需要保存区块的完整内容。

以上是关于区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)的主要内容,如果未能解决你的问题,请参考以下文章

区块链入门到实战(13)之区块链 – 付款确认

区块链初学者:哈希算法与默克尔树1小时入门 | 视频

区块链技术之密码学技术之默克尔树

区块链中的密码学之默克尔树(十五)

区块链入门到实战之区块链 – 链接区块

区块链入门到实战之区块链 – 应用发展阶段