您的位置 首页 投资

默克尔树

什么是Merkle树? Merkle树是一种用于计算机科学应用的数据结构。在比特币和其他加密货币中,Merkle树可以更高效、更安全地对区块链数据进行编码。 它们也被称为“二进制哈…

什么是Merkle树?

Merkle树是一种用于计算机科学应用的数据结构。在比特币和其他加密货币中,Merkle树可以更高效、更安全地对区块链数据进行编码。

它们也被称为“二进制哈希树”

打破默克树

在比特币的区块链,一组交易通过一种算法运行,生成一个散列值,散列值是一串数字和字母,可以用来验证给定的一组数据是否与原始的一组交易相同,但不能用来获得原始的一组交易。然而,比特币的软件不会同时通过哈希函数运行整个交易数据块——平均相当于10分钟的交易量。更确切地说,每个事务都被散列,然后每对事务被连接并散列在一起,以此类推,直到整个块有一个散列。(如果有奇数个事务,则一个事务被加倍,并且它的散列与其自身连接。)

从视觉上看,这个结构像一棵树。在下图中,“T”表示事务,“H”表示散列。注意,图像高度简化;一个平均块包含500多个事务,而不是8个。

Image by Julie Bang © Investopedia 2020

最下面一行的散列称为“叶”,中间的散列称为“分支”,最上面的散列称为“根”。给定块的Merkle根存储在标头中:例如,块# 482819的Merkle根为e 045 b 18 E7 a3 d 708d 686717 B4 f 44 db 2099 aabcad 9 bebf 968 de 5 f 7271 b 458 f 71 c 8。根与其他信息(软件版本、前一个块的哈希、时间戳、难度目标和随机数)相结合,然后通过哈希函数生成块的唯一哈希:000000000000000 bfc 767 ef 8 BF 28 c 42 CBD 4 bdba FD 9 aa 1 b5 C3 c 33 C2 b 089594(在块#482819的情况下)。这个散列实际上并不包含在相关的块中,而是下一个;它不同于默克根。

Merkle树很有用,因为它允许用户在不下载整个区块链(2017年8月底超过130千兆字节)的情况下验证特定交易。例如,假设您想要验证事务TD是否包含在上面图表中的块中。如果你有根hash(habcdeffgh),这个过程就像一个数独游戏:你查询网络关于HD的信息,它返回HC,HAB,和HEFGH。Merkle树允许您使用三个散列来验证所有内容:给定HAB、HC、HEFGH和根HABCDEFGH,HD(唯一丢失的散列)必须出现在数据中。

Image by Julie Bang © Investopedia 2020

默克树是以拉尔夫·默克的名字命名的,他在1987年的一篇题为“基于传统加密函数的数字签名”的论文中提出了这些树Merkle还发明了密码散列法。

本文来自网络,不代表爱财富网立场,转载请注明出处:http://www.htuba.com/news/333.html

作者: 爱财富网

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部