您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 伊犁哈萨克分类信息网,免费分类信息发布

理解Merkle pollards

2024/2/5 10:19:04发布15次查看
在加密货币的世界中,merkle树被用作一种有效的方法来证明在一个大值集合中以最小的存储空间存在一个特定的值。本文介绍了merkle树,并展示了如何通过存储多个级别的分支 (称为“merkle pollards”)来显著减少对同一棵树的重复证明。这样说来,手游传奇发布网的作用不止一点,相反,还有很大的发挥空间。
哈希
哈希函数将可变大小的数据块(在本例中是水果的名称)转换为固定大小的值(称为“哈希值”)。下面是一个显示“apple”和“orange”哈希值的例子:
哈希函数有各种各样的功能,但最重要的是, 即使稍微不同的值也会产生非常不同的哈希值,而且从哈希值返回到值在数学上非常困难(通常意味着没有比猜测哈希值并查看匹配的方法更快)。
merkle树
merkle树是一种将多个值及其哈希值组合在一起以将它们缩减为单个固定大小值的方法。
树的顶部是值,称为“叶”。将每个叶哈希以创建顶级分支,将相邻的分哈希值在一起以创建中间分支。最终,这将产生一个哈希值,称为merkle根。下面是一个merkle树的图形示例:
上面的例子显示了一个具有8个值和4个级别的树;根在底部,标记为0xd576…ffd9。
如前所述,即使是稍微不同的值也会生成非常不同的哈希值。此更改将对树的所有级别产生后续影响,并最终生成不同的根。例如,将单个值“peach”更改为“pear”会导致merkle树发生如下所示的变化:
单个更改对树的影响(以灰色显示)
merkle树是可复制的: 给定相同的值以相同的顺序,merkle树的分支和根总是具有相同的哈希值。
merkle路径
merkle路径就是从值到merkle根的哈希值集合。下面的例子显示了值“peach”的merkle路径:
peach的merkle路径
merkle证明
merkle证明是一种证明某个值是一组数据的一部分而不需要公开任何其他值的方法。
merkle证明
merkle证明需要三样东西:一个值(用红色表示)、中间哈希值(用绿色表示)和merkle根(用蓝色表示)。对于每个值,都有一组不同的中间哈希值。
区块链中通常使用merkle证明来表明一个值在一个集合中,而不需要将整个集合存储在区块链上。例如,以太坊代币合约可能具有白名单特性,允许选择帐户购买代币。与其将每个白名单上的帐户都存储在区块链上(如果白名单上有成千上万个帐户,那么这将非常昂贵),还不如创建帐户的merkle树,只存储在区块链的根上。
注意merkle路径中的哈希值与最后两个图所示的证明中的哈希值之间的关系:证明中的每个哈希值都是树中同一级别路径中的哈希值的兄弟级。这生动地展示了证明提供了为值重新创建路径的能力,这就是为什么最终结果将是merkle根。
如上所述,使用merkle证明的一些好处是:
· 与存储值相比,所需的链上存储要小得多
· 完整的值集不会通过在链上公开存储
· 通过确认一个证明来确认一组值中存在一个特定值的成本比对照该集合进行检查要低(更快和更便宜)
重复证明
在上面的示例中,每个帐户只发送验证它们是否在白名单上所需的单个证明。merkle树的另一种用途是作为知识的概率证明(通常称为starks)的一部分,其中每个证明都增加了merkle树的创建者(称为“证明者”)知道构成树的所有值的可能性。在这种情况下,验证者通常对包含数万甚至数十万值的单个merkle树生成数百个证明。merkle的根和证明一起发送给验证者以确认它们的有效性。
在我们的原始示例的上下文中检查重复证明,下面是针对同一棵树的三个证明:
使用相同的merkle根进行重复证明
可以看到,发送merkle根(一次)加上证明总共需要发送10个哈希值:一个哈希值用于根,三个哈希值用于每个证明。
这更有效吗?可以看到,在树的第一层,只有两个值c0b7…da30和6 ff9……8e3d,证明总共发送了三个哈希值(每个证明一个)。
使用扩展的merkle根进行重复证明
可以看到,总共发送扩展的merkle根(一次)和证明现在涉及到发送9个哈希值:根3个哈希值,每个证明2个哈希值。虽然这种减少看起来很小,但随着证明数量的增加,它会显著增加。
merkle pollards
我们把延伸的merkle根称为merkle pollards。它被定义为merkle根加上若干层中间分支。merkle pollards是树根以上形成该pollards的分支数(一棵树的merkle pollards阶数为0,相当于树根)。一级merkle pollard包含一级中间分支,如下图所示:
2阶merkle pollards包含两层中间分支,如下图所示:
merkle pollards在许多重复证明的情况下对同一merkle树使用merklepollard减少这两个证明的大小和时间验证证明。计算merkle pollards最优阶数的数学就是证明数以2为底对数的底数。下面是一个低阶表,以及由此节省的空间和时间:
merkle pollard的好处在不同的订单使用节省的merkle pollard可以迅速增加。例如,使用merkle pollards将使用564kb的merkle根的测试完全证明减少到346kb,减少了40%。在转递和核查证明所花的时间内也看到了减少。
更多区块链信息:wwwqukuaiwangcomcnnews
伊犁哈萨克分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录