月亮链 月亮链
Ctrl+D收藏月亮链
首页 > DAI > 正文

加密货币:科普 | 使用覆盖层改变以太坊状态树的格式_以太坊交易流程

作者:

时间:1900/1/1 0:00:00

作者:?GuillaumeBallet

翻译&校对:?裴奇?&阿剑

来源:以太坊爱好者

账户和合约存储数据的方式是影响以太坊的众多问题之一。以太坊协议选用了MerklePatriciaTree来组织账户及合约数据。尽管这种数据结构在理论上效果很好,但在实际应用中,它带来的问题却比它能够解决的问题多。核心开发者们已经讨论多年,想要把这种数据结构换为二叉树,我将在这篇文章中阐述我对这个问题的看法以及如何实现这种转变。

我所提议的处理方法包括一段时间的过渡期,在这段时间内,网络要同时维护两种树结构。这样做的好处是,转换树结构的过程不会影响链的运行,并且可以确保所有的账户都被转换成了二进制格式。

背景

目前,以太坊的状态树是十六叉制的。十六叉制表示每个节点有16个孩子节点。理论上讲,这种方式挺好的,因为孩子节点多意味着只需要更少的“层”便可存储所有数据。

IMF今日发布的加密货币科普视频实为两年前旧闻,且存在诸多疏漏:国际货币基金组织IMF今日在推特上发布了一条关于加密货币的科普视频,这段时长两分钟的视频最初发布于2018年6月。该视频称加密货币是“货币进化的下一步”,但没有特别提到DLT、区块链,甚至是代币名称等术语。BTC、XRP和ETH只出现在说明加密交易的图形中。尽管这段视频到目前为止已经获得了超过13.7万的点击量和2900个赞,但来自加密社区的许多反应都是批评的,他们指出了信息中的漏洞和似乎具有误导性的措辞。

Reddit用户nanooverbtc称:“他们犯了很多错误,比如把私钥称为密码。”该视频也没有讨论挖矿或加密货币供应。Kraken策略师Pierre Rochard等知名人士表示:“可证明的稀缺性是比特币有趣的原因,你忘了提这一点。”(Cointelegraph)[2020/8/24]

例如,下图是用十六叉树表示的键值对?(170,v)。十六进制中,170?记作?0xaa,因此你只需要两层:第一层记录第一个?a,第二层记录第二个?a。

声音 | CNBC主持人:加密货币最大的缺点之一就是难以向外行快速科普:CNBC主持人Ran NeuNer近期发推称,加密货币最大的缺点之一就是很难向外行快速解释。当人们要求我向他们解释比特币时,我知道他们至少需要一个小时才能真正理解。[2019/9/10]

-图1.十六叉树的例子,展示了值v是如何在在对应键0xaa处是存储的。这棵树的键长度只有2个字节,只有沿着0xaa的子树被表现出来了。为了简洁,不相关的子树替换为“...”-

可以看出,上图的树很矮,而且很宽。给定相同的键值对,下图展示了二叉树存储的情形。170?在二叉树中被表示为?10101010。

动态 | 央行官微旧文重发“再科普”:范一飞详解数字货币:据中国经济网消息,今日,央行官微公众号头条重新发布央行副行长范一飞在2018年1月25日题为《关于央行数字货币的几点考虑》的文章,对央行数字货币再次进行科普。同时,微信公众号第二条发布支付司副司长穆长春8月10日在第三届中国金融四十人伊春论坛上的演讲。近年来,各主要国家和地区央行及货币当局均在对发行央行数字货币开展研究,新加坡央行和瑞典央行等已经开始进行相关试验,人民银行也在组织进行积极探索和研究。[2019/8/21]

-图2.与图1相同的键值对,存储在二叉树中。为了简洁,不相关的子树被表示为“...”-

金色财经独家分析 监管机构、媒体、业界提示风险 区块链科普道阻且长:新华社今日发文表示,近来“区块链”类案件频发,不法分子以“投资虚拟货币周期短、收益高、风险低”为借口,取用户信任并诱使其转账进行投资。无独有偶,同日消息,腾讯手机管家安全专家也提醒此类风险,并从技术上提出防建议。在美国,监管机构警示加密货币欺诈现象普遍承诺高收益而不披露潜在风险。金色财经独家分析,不法分子假借新技术之名进行,一方面是抓住民众趋利的心理,一方面反映出区块链科普的欠缺。区块链是新兴科技和底层技术并有改变社会生产关系的潜力,应该进行系统性的科普教育,当前,部分大学已经开始设置了区块链课程,但对于普通民众仍然有科普的需求,人们应该了解到系统和正确的知识,不仅要了解区块链的好,也要明确局限和弊端,以在高收益的诱惑下,保持清醒客观。[2018/4/11]

从图中可见,二叉树要深得多,也窄得多。

以太坊中,每个区块包含一个?stateRoot?字段,这是该块处理完成后表示以太坊全局状态的MPT的树根哈希值。总的来说,这个哈希值是对根节点的16个孩子节点的哈希值所组成的列表作哈希运算得到的。这些孩子节点的哈希值又是孩子的16个孩子节点的哈希值所组成的列表做哈希运算得到的,以此类推。

财政部副部长朱光耀:数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展:今日,在中国发展高层论坛2018年会上,财政部副部长朱光耀表示:“数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展。也要关注数字经济的其他影响,包括税收征管、反监管措施等要跟上。”[2018/3/25]

每次打包交易生成新区块时,矿工都会更新账户树,重新计算根哈希。根哈希存储在新区块的?stateRoot?字段,然后新区块被共识。

-图3.区块头中的状态根字段,指向十六叉树的树根-

问题在于:如果要对所有节点做哈希,重新计算根哈希的时间就太长了,因此,为了计算根节点的哈希,矿工将从数据库中检索?同层节点的兄弟哈希值。虽然后者花费的时间没有前者那么多,这个操作还是很耗时。因为每个哈希都必须从数据库中取出。

在十六叉树中,通常每一层你都需要取出15个兄弟哈希值。在上面那个我构造的例子中,就需要30个哈希值。

尽管二叉树层次更深一点,但在每一层只需要一个兄弟哈希值。在上述例子中,仅仅需要8个哈希值!这就是为什么在实际中二叉树更优。

覆盖层转变方法

不幸的是,转换为二叉树并不简单。需要转换的数据?太多了,执行转换花费的时间将多于15秒的区块生成时间。

除此以外,设想你要翻译一本5000页的书,作者还在不停地告诉你他们对故事做了些修改,并且这些修改会影响你已经翻译过的页……那这个过程就没完没了。转换状态树的格式也是一样的问题:可能你刚完成某个地址的格式转换,用户就使用了该地址,那你又得从头转换一遍。

解决这个问题的办法是增加一个过渡期,过渡期间,在十六叉树基层上建立一棵覆盖树。这棵覆盖树是二叉树格式的,它的作用是保存状态上发生的所有变化,直到基层十六叉树完全转换为二叉树。转换分为3步进行。

第1步——转换

在这种方法下,区块高度为?

H1?时肯定会有?

两个?状态根:一个是“基层”十六叉树状态根,一个是“覆盖层”二叉树状态根。

-图4.转换过程中,区块拥有两个状态根:一个是传统十六叉树的只读根,一个是覆盖二叉树的可读写根-

十六叉树被设置为只读,因此对状态的任何更新都将在覆盖树上进行。

当一笔交易读取或者更新一个账户时,系统首先会搜索覆盖树。如果在覆盖树中找不到账户,接着将会在旧的十六叉树中搜索值。

与此同时,十六叉树在后台进行转换。此时不需要担心值插入的问题,因为所有的改变都会存储在上层的覆盖树中。

第2步——基层树切换

当后台转换过程完成,矿工对外宣告,他们已经准备好用转换结果来替换只读的十六进制基层树根。对状态的读写与步骤1阶段是一样的。

-图5.转换的第二个阶段,矿工在区块头使用转换所得二叉树的树根替换十六叉树根,向网络示意他们已经准备好了-

当足够多的一系列区块对转换所得的二叉基层树根给出了相同的值,意味着大多数矿工都完成了转换,并且认可转换后的树。合并过程则开始。

第3步——合并两棵树

合并过程不断推进:每产生一个新的区块,就从覆盖树上删除n个键,把它们重新插入二叉基层树。此过程一直持续,直到所有的键都从覆盖树上移除。到达这步时,区块头就不再保留覆盖状态树的树根。

整个步骤的核心只有一个:如果交易执行时要写的键存在于覆盖树上,这个键就会从覆盖树上删除,写操作直接在二叉基层树上进行。

下一步

为了估计完成转换所需要的时间,我已经做了一个低转换率的原型系统。我们确信,整个过程花费的时间不会太离谱,也就是说几天时间就够了。我们会随着算法的改进而公布更多细节。

致谢

此提议得益于AlexeyAkhunov、VitalikButerin、AnnaGeorge、SinaMahmoodi、TomaszStanczak以及MartinH.Swende的宝贵意见。

原文链接:https://medium.com/@gballet/ethereum-state-tree-format-change-using-an-overlay-e0862d1bf201

标签:加密货币区块链以太坊STA加密货币行情分析区块链币圈大佬排行榜以太坊交易流程townstar币总量多少

DAI热门资讯
EFI:曹寅:疫情下经济危机或是 DeFi 崛起的重要契机_Defilancer token

新冠疫情正在全球肆虐,目前除了东亚以外,疫情在各国都仍处于快速扩散状态,虽然各国政府使尽浑身解数,但没人知道何时可以控制疫情.

1900/1/1 0:00:00
EOS:Block.one官方1亿EOS将开始参与节点投票,对EOS生态影响几何?_PEOS

4月8日Block.one?发文宣布,将近一步参与到公链社区,并计划在20年5月开始参与EOS投票.

1900/1/1 0:00:00
BCH:BCH和BSV减半,哈希率均大幅下跌_ASH

来源:LongHash4月8日12:19,比特币现金区块奖励首次减半。根据写入区块链的代码,在区块高度达到630000时,矿工奖励将从每区块12.5BCH减到6.25BCH.

1900/1/1 0:00:00
区块链:观察 | 湖南打造千亿级区块链产业园,山东、重庆等四省正蓄势发力_NAN

本文来源:金融1号院,原题《总投资180亿!三一集团将参与打造湖南千亿级区块链产业园,山东、重庆等四省正蓄势发力》作者:邢萌4月8日.

1900/1/1 0:00:00
比特币:观点:比特币减半实际上是对那些高效矿工的奖励_WALL STREET BET

比特币的区块奖励减半,提醒了人们它的稀缺性。尽管比特币过去已经面临两次减半的事件,但第三次减半即将在一个多月的时间内完成.

1900/1/1 0:00:00
EFI:巴比特专栏 | 曹寅:DeFi将超越乐高时代,进入“涌现”时代_PINETWORKDEFI币

编者注:原标题为《DeFiReview特别篇-DeFi,ANewKindofFinance》前言:2020年4月11日,著名的数学家John?Conway因病去世.

1900/1/1 0:00:00