默克尔树是一种二叉树,包含了一组节点,它们的含有基础信息的树根有大量的叶子节点,一组中间节点,每一个节点都是它的 2 个子节点的哈希,然后,最终的一个根节点,也是由它的 2 个子节点的哈希形成,代表着这树的“顶端”。
01: 在默克尔树中只要提供少数的几个节点就可以给出一个分支有效性的证明

02: 试图改变默克尔树的任一部分都将会导致链条上在某处发生不一致的情况

默克尔树技术原理分析
这个默克尔树的目的是允许在一个区块中的数据能够被零散的传递: 一个节点只能从一个源来下载一个区块的头信息,树的一小部分关联着另一个源 ,并且任然可以保证所有的数据都是正确的。之所以这样做行得通,是因为哈希值都是向上传导的:
如果一个恶意的用户试图在默克尔树的底部替换一个假的交易, 这个更改将导致上面的节点发生变化,然后上面的节点的变化又会导致上上面的节点发生变化,最终改变这个数根节点,因此也改变了这区块的哈希,导致这个协议把它注册成一个完全不同的区块 (几乎可以肯定是一个无效的工作证明).
这默克尔树协议对比特币的长期可持续发展是必不可少的。
比特币网络中的一个“完整节点” , 截止到 2014 年,占用了大约 15G 的磁盘空间,并且每月正在以 10 亿字节的速度递增。目前,这对于电脑来说是没有问题的,但是在手机上却是不现实的。在以后的将来,只有商业的和业余爱好者才能参与玩比特币。一个称之为 “简化支付验证(simplified payment verification)” (SPV)的协议 允许另一种类型的节点存在,这种节点称之为 “轻节点(light nodes)”, 其下载区块的头信息,在这区块头信息上验证工作证明,然后只下载与之交易相关的“分支” 。 这使得轻节点只要下载整个区块链的一小部分,就可以安全地确定任何一笔比特币交易的状态和账户的当前余额。参考文献:
1、什么是默克尔树?
2、基于区块链技术的公证中心分布式改造研究
3、区块链技术和应用练习及答案
0 条评论