在密码学货币领域,默克尔树是一种很高效的方法,用于证明一大组数值中存在一个特定的数值,而且将数据存储量降到了最低。本文介绍了默克尔树,并且展示了如何通过存储多个层级的默克尔树分支而非根节点的方式来大量减少重复证明”)。哈希函数
哈希函数可以把一段任意长度的数据变成一个固定长度的值。例如,下图中“Apple”和“Orange”的哈希值如下所示:
-哈希值-哈希函数有很多特征,其中最显著的两点是:即使输入值仅有毫厘之差,得到的哈希值也会迥然不同;从数学上来说很难根据哈希值倒推出输入值。默克尔树
默克尔树指的是将多个输入值和它们的哈希值结合起来压缩成某个固定长度的值。默克尔树的顶端是各种输入值,被称为“叶节点”。每个叶节点经过哈希得到上一层分支,相邻两个分支拼接在一起之后哈希得到中间支。一层一层哈希之后,最后得到一个哈希值,即默克尔根节点。默克尔树的示例图如下:
Meta员工不满扎克伯格痴迷元宇宙:不知道要交付什么:金色财经报道,马克·扎克伯格对元宇宙的痴迷已经引发 Meta (原 Facebook)公司员工不满,他们认为“元宇宙已经成为扎克伯格唯一想谈论的事情”,以至于让许多为他工作的人感到沮丧。目前,Meta 公司已经组建特定于元宇宙的团队”,员工认为这是一个“将覆盖公司内所有团队”的团队,但不少人仍然非常困惑,一方面担心会煽动混乱和焦虑,另一方面是员工似乎并不真正知道要交付什么或做什么,Meta 迄今并没有连贯的元宇宙战略。(businessinsider)[2022/4/24 14:45:10]
-默克尔树-上图所示的默克尔树有8个输入值,分为4层。根节点就是位于最末端的0xd576...ffd9。正如上文所述,即使输入值极为近似,得到的哈希值也是迥然不同的。如果输入值发生了变化,会影响到默克尔树的各个层次,最后得出完全不同的根节点。例如,将输入值中的“Peach”改为“Pear”之后,这个默克尔树都会发生变化,如下图所示:
声音 | 多位议员Libra听证会后接受采访:没有看到取得什么进展:在美国国会众议院金融委员会关于Libra的听证会结束后,众议院两党议员都对冗长的证词表示了不满。众议院金融委员会的成员表示,并没有看到(扎克伯格出席听证)取得了什么进展。该委员会高级成员、北卡罗来纳州共和党人Patrick McHenry表示:“坦率地说,我不确定我们在这里学到了什么新东西。”该委员会的其他几位成员也同意这一观点。德克萨斯州民主党众议员Sylvia Garcia也发表了类似于McHenry的评价,她还对Facebook及Libra协会这两个实体是分开的说法提出了质疑。该委员会主席Maxine Waters则表示,她根本不支持这个计划,不明白Libra想要达到什么目的,且项目也没有得到“充分的解释”。Waters称:“我要求Libra暂停工作。扎克伯格也承诺,在没有监管机构批准之前,他们不会启动这项计划。但她‘不太确定’这是同一回事。”(CNBC)[2019/10/24]
-一处改动对整个默克尔树的影响-默克尔树是可再生的:如果把完全相同的输入值按照同样的顺序排列,默克尔树的分支和根节点始终会得出同样的哈希值。默克尔路径
动态 | “什么是比特币”今年在谷歌搜索量名列前茅:据CCN报道,根据谷歌发布的2018年搜索术语年度评论,“什么是比特币”在谷歌的搜索量名列前茅,至少在美国是这样。在去年,人们对于比特币的搜索包括一般新闻搜索和“如何购买比特币”。[2018/12/13]
默克尔路径指的是某个输入值到默克尔根节点之间所有哈希值的集合。下图显示了输入值“Peach”的默克尔路径:
-"Peach"的默克尔路径-默克尔证明
默克尔证明指的是不需要知道一个数据集合中的其他值就能证明某个值属于这个集合。
-默克尔证明-默克尔证明需要三样东西:输入值、中间支哈希值和默克尔根节点。每个输入值对应的中间支哈希值集合各不相同。区块链系统经常会用到默克尔证明,证明某个数据集合内存在某个输入值,这样就不需要将整个数据集合都存储在区块链上了。假设一个以太币合约内有一个白名单列表,只允许列表内的账户购买以太币。如果将白名单内每个账户信息都存储在区块链上,势必要付出很高的成本。在这种情况下,只需要创建一个默克尔树,再将根节点存储在区块链上即可。例如,如果将根节点存储在一个智能合约上,这个智能合约很容易就能证明某个账户包含在白名单内:这个账户需提供中间支哈希值,智能合约将这个账户的哈希值依次与中间支哈希值进行哈希计算。如果最后得出的结果与默克尔根节点一致的话,就证明这个账户确实在白名单里。请注意最后两张图中默克尔路径和默克尔证明的哈希值之间的关系。在同一棵树的同一个层级中,默克尔证明的哈希值与默克尔路径的哈希值是相互关联的。由此可见,默克尔证明能够重塑输入值的默克尔路径,这就是为什么最终结果是默克尔根节点的原因。至此,可以看出默克尔证明具有以下特征:在链上存储默克尔证明所需的空间远远小于直接存储输入值所需的空间在链上公开存储默克尔证明也不会暴露整个输入值集合要证明某个输入值集合内是否存在某个值,验证默克尔证明的成本低于核对整个输入值集合的成本重复证明
分析 | 为什么加密货币不能取代股票:据btcmanager分析,加密货币不能取代股票主要有以下原因:加密货币是货币,不是股票;加密货币主要用作支付手段而不是价值存储;加密货币的年平均回报率是不合理的;区块链技术中没有红利或账面价值的概念。[2018/8/5]
在上文的例子中,每个账户只需要发送一个默克尔证明,就能够验证自己是否在白名单上。此外,默克尔树还可以用作概率性知识证明,每一次知识证明都能使我们更加确信:默克尔树的创建者知道所有的构成值。在这种情况下,证明者通常会根据包含几十个乃至成百上千个输入值的默克尔树生成上百个证明。这些证明会连同默克尔根节点一起发送给验证者,来验证它们的有效性。让我们紧接着上面的例子来探究重复证明,下面三幅图分别是由同一个默克尔树生成的三个不同的证明:
-同一个默克尔根的重复证明-可以看出总共发送了一个默克尔根节点和三个证明,加起来共有10个哈希值:根节点有1个,其余三个证明各有3个。有没有效率更高的做法?可以看出默克尔树的第一个层次只有两个值c0b7...da30和6ff9...8e3d,但三个证明总共发送了3个哈希值。那么,如果一开始提供的部分不仅包括最低层次的哈希值,还提供更上一层次的哈希值,效率会不会更高?
-扩展式默克尔根节点的重复证明-默克尔树截顶
扩展默克尔根也可以说是给默克尔树截顶,也就是只保留默克尔根节点和少数几层中间支。默克尔树截顶的顺序是按照根节点上方的中间支层数决定的。1阶默克尔截顶包含一层中间支,如下图所示:
-1阶默克尔截顶-2阶默克尔截顶包含两层中间支,如下图所示:
-2阶默克尔截顶-如果同一个默克尔树存在多个重复证明,采用默克尔树截顶会减少证明的大小以及验证证明所需的时间。要求得默克尔截顶的最佳阶数,只需对证明数量取2的对数,再向下取整。下图是一个低阶默克尔树截顶表,显示了包含4096个输入值的默克尔树可节省的空间和时间,如下所示:
-不同阶数的默克尔树截顶所带来的优势-使用默克尔树截顶能够节省大量存储空间。例如,一个STARK测试证明如果使用的是默克尔根节点,需要564KB的存储空间,如果使用的是默克尔树截顶,只需要346KB的存储空间,减少了40%。传输并验证证明所需的时间也会减少。实现样例
https://github.com/wealdtech/go-merkletree/提供了采用Go语言实现的默克尔树截顶。
标签:LIBRA元宇宙区块链加密货币libra币多少钱一个国家为什么要打击元宇宙概念区块链工程好就业吗加密货币为什么有价值
编者按:本文来自区块律动BlockBeats,星球日报经授权发布。3月12日,EOS上出现一笔一万亿EOS转账发起,该交易数额超过了整个EOS的供应总量.
1900/1/1 0:00:00文|黄雪姣昕楠Dave出品|Odaily星球日报网信办的一纸公告激荡了整个科技界。3月30日,国家互联网信息办公室发布《境内区块链信息服务备案编号》,公布首批197个在网信办登记备案的区块链项目.
1900/1/1 0:00:003月27日,外媒Coindesk援引知情人士消息称,世界第二大比特币矿机生产商嘉楠耘智正考虑向上海证券交易所新设立的科创板或美国交易所提交上市申请,但目前并未作出最终决定.
1900/1/1 0:00:00通证通研究院×FENBUSHIDIGITAL联合出品文:宋双杰,CFA;吴振宇特别顾问:沈波;Rin导读随着市场的发展,衍生品会随需求逐渐涌现,并逐渐发展出适应相应环境的品种.
1900/1/1 0:00:00编者按:本文来自蓝狐笔记,本文来源ConsenSys,由“蓝狐笔记”社群“Dyna”翻译,Odaily星球日报经授权转载。前言:比特币和区块链具有很强的社区属性,同样,对于比特币和区块链的理解也多种多样.
1900/1/1 0:00:00四大会计师事务所之一的毕马威会计师事务所(KPMG)近日进行了一项民意调查,结果显示,大多数税务和财务高管并不考虑采用区块链技术。该调查结果于4月9日(周二)在cointelegraph上公布.
1900/1/1 0:00:00