大自然的启示
Banyan树的启示:印度banyan树,最大的一颗可以长到1万平方米以上。其如此巨大的秘密就在于其枝干也会产生根,起到支撑,从而作为附属树干,继续生成分支。大自然给人太多启示……
Merkle Tree
Merkle Tree,通常也被称作Hash Tree,顾名思义,就是存储hash值的一棵树。Merkle树是一种数据结构,Merkle树的叶子是数据块(例如,文件或者文件的集合)的hash值。非叶节点是其对应子节点串联字符串的hash。
Merkle树是使区块链发挥作用的基本组成部分。虽然理论上可以在没有Merkle树的情况下制作区块链,但只需创建直接包含每个事务的巨型块头,这样做会带来巨大的可扩展性挑战,可以说无可置疑地使用区块链的能力超出了所有范围,从长远来看,功能强大的电脑。感谢Merkle树,可以构建在所有计算机和大小笔记本电脑上运行的以太网节点,智能手机,甚至是物联网设备
比特币中默克尔树的构建过程:
1 | 第一笔hash: |
go语言实现上面的验证过程
参考资料
[csdn 默克尔树解释]https://blog.csdn.net/wo541075754/article/details/54632929
https://github.com/ZtesoftCS/go-ethereum-code-analysis/blob/master/trie源码分析.md
本文链接: https://dreamerjonson.com/2018/12/10/golang-41-blockchain-merkletree/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
有疑问加站长微信联系(非本文作者)