比特币:什么是稀疏默克尔树多值证明

编者按:本文来自:以太坊爱好者,作者:JimMcDonald,翻译&校对:裴奇&阿剑,Odaily星球日报经授权转载。译者注:以太坊网络是一台富状态的世界计算机,其状态包括状态余额、交易流水号、合约代码及合约存储内容等。在技术上,这些状态数据是靠一种叫做“默克尔树”的结构来组织的,因此,以太坊世界状态及其访问、更新,便可表达为一棵默克尔树及其访问、更新。同样地,所有跟默克尔树相关的数据证明及验证操作,都可以在以太坊协议的语境下被理解为状态的证明及验证操作。实际上,默克尔树是我们理解、利用、改进以太坊协议不可或缺的一环。本文介绍了一种可以证明多个值存在于同一棵默克尔树上的方法,因此也可以说,这就是在介绍如何证明多个以太坊状态隶属于同一时刻的世界状态的方法。科普|什么是默克尔截顶

美SEC主席:SEC会牵头定义什么是证券,加密货币不需要额外的立法:金色财经报道,美国证券交易委员会主席Gary Gensler在接受记者采访时表示,加密货币不需要额外的立法,但如果国会采取立法行动,立法者不要破坏现有法律很重要。 Gary Gensler还表示,证券交易委员会牵头定义什么是证券,不一定是立法。

Gary Gensler称,只有一个机构,也即由众议院金融服务委员会和参议院银行委员会两个委员会监督的SEC,以及法院可以来定义什么是证券,而不是由各个加密交易所来选择。此外他拒绝回答 SEC 是否计划对币安提起诉讼,同时指出该机构已对其他交易所采取行动。(TheBlock)[2023/3/30 13:34:05]

稀疏默克尔树多值证明是对默克尔树截顶的一种替代方案,可在为证明一棵默克尔树上存在多个值时提供空间上较为节约的证明。什么是默克尔证明、默克尔树截顶,我已在前一篇··文章中解释过了;推荐您先阅读并理解这些概念再来阅读本文。接下来,文本将用下图的默克尔树来解释多值证明:

“虚拟的NFT凭什么那么贵”登上微博热搜榜第45位:金色财经报道,微博热搜数据显示,“虚拟的NFT凭什么那么贵”登上微博热搜榜,目前排名第45位,当前热度为145279。[2022/4/14 14:24:26]

-图1:一棵默克尔树-稀疏多值证明最早由VitalikButerin提出。多值证明

多值证明就是把一棵默克尔树中的一组证明打包在一起,从而节省存储空间。例如,下面是上图所示默克尔树的3条默克尔证明:

周小川谈比特币:要搞清楚对实体经济的好处是什么:中国人民银行前行长周小川表示,不管数字货币还是数字资产,都要为实体服务。“我们经历过2008年的全球金融危机,发现金融脱离了实体,比如影子银行、衍生品这些纯粹变成了金融机构之间的投机交易,和实体没有联系了,就容易出问题,以至当是一些国际大行的领导、交易员们看不懂,很难做好内部控制。“

周小川表示,要区分数字货币和数字资产,对于比特币这类数字资产,并非现在要下结论,但是”要提醒,要小心“,在中国,金融创新的东西都要说清楚它对实体经济的好处”。[2021/4/19 20:34:00]

《参考消息》援引外媒文章:为什么比特币屡创历史新高:《参考消息》12月28日援引德新社12月26日报道比特币屡创历史新高观点称,受美国支付公司PayPal推动,数字货币重新成为投资者关注焦点,越来越多专业投资者对加密货币感兴趣,疫情以及相关的政府债务激增也是人们对数字货币产生更大兴趣的一个原因。此外,该报另外援引阿根廷经济新闻网观点称;1.比特币有可能成为传统货币的对冲和支撑;2.大量黄金投资者参与;3.比特币可能一直是泡沫,直到所有人理解它的意义,如果不理解就只会看到泡沫一遍遍重复,4.未来货币将是加密货币。[2020/12/28 15:54:09]

Game.com徐乐:现在谁都定义不了什么是区块链游戏:2017年,徐乐以1亿元的价格拿下了Game.com的域名,搭建了名为“乐乐”的游戏平台。近期,Game.com陆续上线了区块链相关的游戏业务。关于区块链游戏应该是什么形态,徐乐认为“大家都被以太猫误导了”。在他看来区块链游戏“不是游戏跑在链上合约上,也不是同时发币”,区块链游戏是一种设计游戏的新思想。以太坊养猫的游戏思想有逻辑问题,但是个很好的思想的开始。[2018/5/1]

-图2、3、4:分别对应Banana、Peach和Kumquat的默克尔证明-从上图可以看出,3个证明总共包含9个中间分支的哈希值:每条证明有3个哈希值。将这3个证明组合成如下图所示的结构,即成多值证明:

-图5:对应Banana、Peach和Kumquat的默克尔多值证明-相比于单条证明时总共需要的9个中间分支哈希值,默克尔多值证明只需要7个哈希值,这就节省了存储空间。稀疏的多值证明

虽然默克尔树的多值证明确实节省了一些存储空间,但其中一些数据可以用其他方式得到,所以移除这些数据可以进一步节省存储空间。以上图的默克尔树多值证明为例,许多中间分支的哈希值都可以被计算出来。比如验证者将已知的值Banana和Peach通过哈希函数计算后,可以得到哈希值bc4F…8d3f和59a0…421d。对于与根节点相连的两个节点的哈希值c0b7…da30和6ff9…8e3d,可以通过其孩子节点的哈希值计算出来。因为孩子节点的哈希值要么是证明中包含的,要么可以通过再上一层的哈希值计算出来。下图中黄色的节点标记了这4个可由计算得到的哈希值:

-图6:默克尔树多值证明中可以被移除的哈希值-移除这些哈希值后,可以得到默克尔树中稀疏的多值证明,如下图所示:

-图7:稀疏的默克尔树多值证明-稀疏的默克尔树多值证明将需要包含的哈希值数量从9个减少到了3个。证明效果相同时,稀疏的多值证明也比默克尔截顶更有效,因为后者需要6个哈希值。验证者得到稀疏的多值证明后,为了验证那些值是默克尔树的一部分,需要执行以下的步骤:将Banana哈希得到bc4f…8d3f将Peach哈希得到59a0…421d将Kumquat哈希得到2aab…6f791将bc4f…8d3f和59a0…421d哈希得到9c15…5dec将2aab…6f79和45cf…14d9哈希得到a6e4…87df将d596…66ef和9c15…5dec哈希得到c0b7…da30将e336…ed14和a6e4…87df哈希得到6ff9…8e3d将c0b7…da30和6ff9…8e3d哈希得到d576…ffd9至此可以把最终得到的哈希值与默克尔树的根哈希值做比较,如果二者一致,则认定所有的值都在该默克尔树中。下图对比了默克尔树中值和证明的数量变化时,默克尔树截顶和默克尔树中稀疏的多值证明在存储默克尔证明时可以节约的空间存储量:

值得注意的是,多值证明的节省量是近似值,因为能节省多少取决于被证明的值在默克尔树中的位置以及可以被移除的中间分支哈希值个数。对比稀疏多值证明与默克尔截顶

从上表中可以看出,稀疏的多值证明比默克尔树截顶节省更多的存储空间,那么为什么还要使用默克尔树截顶呢?因为稀疏的多值证明相对于默克尔树截顶,拥有一些不同的特性,主要有以下几点:在多值证明方法中,所有值的证明都是一起生成、一起得到验证的;而在截顶方法中,各个值的证明是分别生成、分别验证的稀疏的多值证明在生成及验证证明时,需要更多的内存和CPU周期稀疏的多值证明很难并行地生成和验证稀疏的多值证明的大小是可变的,而默克尔树截顶在给定默克尔树和总证明数时,其证明大小是固定的一些情况下,因为用于传输信息的编码系统不同,可能会导致稀疏的多值证明比默克尔树截顶需要更多的空间;因此建议使用之前做一下测试总的来说,还要看单个应用的需求来决定哪个更合适。但是这两种方法都比单独的默克尔证明节省更多的存储空间,因此当需要对同一棵默克尔树提供多个证明时,可以考虑使用这两种方法。实现样例

https://github.com/提供了稀疏的默克尔树多值证明的Go语言实现。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-6:900ms