区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)
Posted huanghanyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)相关的知识,希望对你有一定的参考价值。
目的:解决由于区块链过长,导致节点硬盘存不下的问题。
方法:只需保留交易的哈希值。
区块链作为分布式账本,原则上网络中的每个节点都应包含整个区块链中全部区块,随着区块链越来越长,节点的硬盘有可能放不下。区块链中引入了默克尔树解决这个问题。
区块链中,为节省空间,只保存交易的哈希值,不保存交易本身的信息,哈希值对于校验来说足够了。
默克尔树很简单,具体来说,一个区块中的所有交易都会求取哈希值,得到的哈希值,再两两组合成新文本求取哈希值,以此类推,直到生成最后一个哈希值,即根哈希值,这些哈希值组成的二叉树就是默克尔树。如下图所示:
区块头现在包含:
– 前一区块的哈希值
– 一个Nonce
– 默克尔树的根哈希值
由于这个根哈希值包含了区块中所有交易的哈希值,因此可以去除这些交易以节省存储空间。
现在你的区块链看起来就像下图
可以看到区块链中,只保存了区块头,这可以大大节省存储空间。这一策略被普通节点使用,普通节点只用于收付款,例如虚拟币钱包。但对于矿工节点,就需要保存区块的完整内容。
以上是关于区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)的主要内容,如果未能解决你的问题,请参考以下文章