用户登陆
正在加载
区块链的梅克尔树结构浅析
互联网 · 2020-10-12 23:12:45

梅克尔树(Merkle trees)结构是拉尔夫.梅克尔(Ralph Merkle)在1979年发明并以他的名字命名的,由于在比特币系统里梅克尔树实际上是由一大堆数据通过不断地哈希运算组成的树形结构,故此应该叫梅克尔哈希树。

梅克尔树最典型的是两分叉形式,即两个交易组成一组,比特币系统就使用了这种形式。

以下图为例,交易1通过哈希运算得出哈希1值,交易2通过哈希运算得出哈希2值,然后再将哈希1值与哈希2值进行合并,在哈希运算得出哈希12值,以此类推,直到全部合并且哈希算完,得到只有一个哈希值的梅克尔树根。

在梅克尔哈希树结构中,交易1、交易2等被称作叶子。由于二叉梅克尔树要求叶子是偶数才能合并,当出现单独一个叶子没法合并时候,就采用将其复制的方式进行自我合并。以此类推,当叶子上面的子节点也出现相同情况时候,也是同样以复制方式自我合并,只有形成树根了才是一个单独的哈希值。

梅克尔树结构以及把梅克尔树根放在区块头的设计,对维持比特币系统以分布式网络存在有着十分重要的作用。因为比特币系统一年生产几万个区块,而每个节点都要对交易进行验证记账,储存数据的空间就要越来越大,长期下去就只有少数节点有足够的能力做到,到那时候系统只剩下这少数节点时候,去中心化网络就演变成了中心化,这并不是中本聪所希望看到的。

对此中本聪让没有足够存储能力的大多数节点只需要保存区块头就行了,一个区块头只有80字节,几万个区块的区块头加起来也没有10MB,对普通电脑来说绰绰有余了,这些节点就会始终存在,确保了整个网络始终处于分布式状态。

放在区块头的梅克尔树根还可以对交易进行验证,当需要验证一笔交易时候,系统会向存储了所有交易的节点发出请求,该节点(又称全节点)就会将该笔交易的叶子组合、子节点组合发送过来(并不会发送全部交易),最后算出来的梅克尔树根哈希值与区块头保存哈希值的对比,相互一致了就证明交易验证通过。

另外,每一个区块的梅克尔树根哈希值,都放进下一个区块的区块头里成为父区块哈希值,相当于下一个区块保存了上一个区块的所有交易。这样一环扣一环的链接,让任何虚假交易或伪造区块都难以混进系统的区块链接中,除非从创世区块开始修改交易内容,这个难度大于上青天,确保比特币系统拥有足够的安全性。


免责声明:
本网站所提供的所有信息仅供参考,不构成任何投资建议。用户在使用本网站的信息时应自行判断和承担风险。币界网不对用户因使用本网站信息而导致的任何损失负责。用户在进行任何投资活动前应自行进行调查和研究,并谨慎决策。币界网不对用户基于本网站信息做出的任何投资决策负责。用户在本网站发布的任何内容均由其个人负责,与币界网无关。
相关资讯
以太币与非同质化代币(NFT)的兴起
互联网 · 2023-11-27 09:53
img
XRP作为长期投资的可能性
互联网 · 2023-11-27 09:37
img
Solana的开发者社区与生态建设
互联网 · 2023-11-24 16:17
img
KAS币的全球化进程与法律合规性
互联网 · 2023-11-24 16:01
img
AWG是什么币种,AWG币怎么样?
互联网 · 2023-11-24 15:45
img
KAS币在供应链管理中的潜在应用
互联网 · 2023-11-24 15:29
img
Solana的技术路线图与未来发展
互联网 · 2023-11-24 15:14
img
免责声明:本网站、超链接、相关应用程序、论坛、博客等媒体账户以及其他平台和用户发布的所有内容均来源于第三方平台及平台用户。币界网对于网站及其内容不作任何类型的保证,网站所有区块链相关数据以及其他内容资料仅供用户学习及研究之用,不构成任何投资、法律等其他领域的建议和依据。币界网用户以及其他第三方平台在本网站发布的任何内容均由其个人负责,与币界网无关。币界网不对任何因使用本网站信息而导致的任何损失负责。您需谨慎使用相关数据及内容,并自行承担所带来的一切风险。强烈建议您独自对内容进行研究、审查、分析和验证。
s_logo
App内打开