链资讯 链资讯
Ctrl+D收藏链资讯
首页 > FTX > 正文

以太坊核心开发者:MPT十六叉树将被替换

作者:

时间:

想象一下,你正在翻译一本5000页的书籍,作者一直打电话告诉你他对故事做了调整,这会影响到你已经翻译过的页面……而这可能会一直持续下去,这就是以太坊从当前使用的MPT十六叉树转变为二叉树结构中遇到的一个类似困境。对此,以太坊核心开发者Guillaume Ballet提出了一种方案,可以在大约几天的时间内,通过3个步骤完成这一转换手术。

对于该提案,以太坊联合创始人vitalik评论称:

以下是译文:

影响以太坊的众多问题之一是账户和合约数据的存储方式,以太坊目前选择的结构称为默克尔帕特里夏树(Merkle Patricia Tree,或简称MPT)。尽管从理论上讲,它是很有意义的,但在实践中,它带来的问题要比其解决的问题要更多。多年来,核心开发人员一直在讨论向二叉树(binary tree)的转换,在本文中,我将阐明我对这一问题的看法,然后给出一个解决它的方法。

提议的过程引入了一个过渡期,在此期间,两种树结构都会存在。这样做的好处是,在转换树结构时,主链可以保持运行,并且还可以确保将所有帐户转换为二叉树格式。

基于StarkWare的DeFi社交钱包Magnety已上线测试网:6月26日消息,据Magnety官方发推称,基于StarkWare的DeFi社交钱包Magnety已上线测试网,用户可以在测试网上追踪资产表现、创建个性化个人资料等操作。[2022/6/26 1:32:11]

背景

目前,以太坊的账户是被存储到一棵十六叉树当中的。所谓十六叉,就表示一个节点有16个子节点,理论上这是很好的,因为这意味着你需要更少的"阶段"来存储你所有的数据。

例如,这就是以十六叉树的形式表示键与值对(170,v)的过程。在十六进制中,170表示为0xaa,因此你只需要两层:其中之一用于第一个a,另一层则用于第二个a。

图1: 这是一棵十六叉trie树示例,显示了值“v”如何存储在键0xaa处。此树只有2字节长的键,并且只沿0xaa键的子树被展开。为了简洁起见,不相关的子树被替换为“…”。

注意,这棵树很浅,也很宽。然后将其与以下相同键与值对的二叉树表示法进行比较。在二进制中,170表示为10101010。

印度财政部长:央行正制定分阶段实施CBDC战略,加密货币在印度不受监管:3月16日消息,周二,印度财政部长Pankaj Chaudhary告诉印度联邦院,政府没有引入加密货币的计划。 他在一份书面回复中表示,目前,加密货币在印度不受监管。他表示: “印度储备银行(印度央行)不发行加密货币。传统纸币是由印度储备银行根据1994年《印度储备银行法案》的规定发行的法币。传统纸币的数字版本被称为央行数字货币(CBDC)。”此外,他在另一份回复中说,印度储备银行目前正在制定分阶段实施战略,以引入CBDC并检查可以在很少或没有中断的情况下实施的用例。引入CBDC有可能带来显着的好处,例如减少对现金的依赖、由于交易成本降低而提高铸币税等。(经济时报)[2022/3/16 13:59:58]

图2: 和图1中相同的键值对,以二叉树形式进行存储。为了简洁起见,不相关的子树被表示为“…”。

你可以看到,这棵树要深得多,也窄得多。

在以太坊中,每个区块都包含一个stateRoot字段,它是MPT根的哈希值。总而言之,这个哈希,是通过对根的16个子项的哈希列表进行哈希运算而获得的。这些子哈希列中的每一个,又依次是其子哈希列表的哈希,依此类推。

数据:灰度总持仓量达541.01亿美元:11月2日消息,Tokenview链上数据显示,当前灰度总持仓量达541.01亿美元,主流币种溢价率以及日持仓变化分别为:

BTC:-13.98%;-104

ETH:-2.24%;-642

ETC:-51.08%;-3013

LTC:-7.43%;-323

BCH:-16.88%;-65[2021/11/2 6:26:30]

每次生成一个新区块时,矿工都会更新帐户树并重新计算其根哈希值。哈希存储在新区块的stateRoot字段中,然后新区块被密封。

图3为区块头的state root字段指向十六叉树的根。

问题就出现在这里了:通过对所有节点进行哈希运算来重新计算哈希根花费的时间太长,因此,为了计算根节点,矿工将从数据库中检索同级哈希(sibling hash)。尽管从数据库中获取所有子叶并对整棵树进行哈希运算所需的时间不多,但此操作仍然需要大量时间。这是因为必须要从数据库中获取每个哈希。

在十六叉树中,通常每个阶段要获取15个同级哈希。在上面的示例中,这就是30个哈希。

即使更深入,二叉树每个阶段也只需要一个同级哈希。在上面的示例中,就只有8个哈希!这就是为什么在实践当中,二叉树实际上要更好的原因。

覆盖转化法

不幸的是,要将以太坊从十六叉树切换到二叉树,并不是一件容易的事。有很多数据需要转换,并且执行更改需要花费超过15秒的区块时间。

除此之外,想象一下,你正在翻译一本5000页的书籍,作者一直打电话告诉你他对故事做了调整,这会影响到你已经翻译过的页面……而这可能会一直持续下去。

这就是目前以太坊遇到的问题,因为用户可以更新已转换的地址,这意味着你必须重新开始转换过程。

解决此问题的建议是设一个过渡期,在此期间,在十六叉树的顶部放置一棵覆盖二叉树,它的作用是保存状态发生的所有更改,直到基树转换为二叉树。

这种过渡会分成三步进行:

在这种方法中,确定在区块高度H1处,区块具有两个stateRoots:一个用于“基础”十六叉树,一个用于“覆盖”二叉树。

图4: 在转换过程中,区块具有2个状态根(state Root):一个是传统十六叉树的只读根,第二个是“覆盖”二叉树的根。

十六叉树被认为是只读的,因此对状态的任何更新都将是对覆盖树的更新。

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

而在同时,十六叉树正在后台转换。现在可以不用担心插入,因为所有更改都存储在顶部树中。

后台转换过程完成后,矿工将通过转换结果替换只读的十六叉树基础根来宣布他们已准备好进行切换。对状态的读写操作与步骤1相同。

图5:转换的第二个阶段,区块头将十六叉树基础根替换为其二叉树转换基础根,以向网络发送信号,告知它们已准备就绪。

当一个足够大的序列区块对转换后的基础根具有相同的值时,这意味着大多数矿工都完成了转换,并对转换后的树的外观达成了共识。接下开,就进入到合并过程。

合并过程会逐渐进行:每次生成新区块时,都会从叠加层中删除n个键,然后将其重新插入到基础树中。该过程将持续进行,直到从叠加层中删除所有键为止。在此阶段,覆盖状态根将从区块头中删除。

除此之外,如果交易执行写入覆盖树中找到的键,则该键将从覆盖树中删除,并直接写入到基础树。

下一步

我们已经创建了一个初步的原型,以便估计完成转换所需的时间。我们相信,整个过程可以在合理的时间内(大约几天)完成。随着算法的改进,我将发布更多的细节。

致谢

这项提议得益于Alexey Akhunov,Vitalik Buterin,Anna George,Sina Mahmoodi,Tomasz Stanczak以及Martin H. Swende提供的宝贵意见。

相关讨论:https://ethresear.ch/t/overlay-method-for-hex-bin-tree-conversion/7104

标签:BTCSTASTATSTATEBTCLstake币局Noah Decentralized State CoinChain Estate DAO

FTX热门资讯
市场巨震下宕机频发 加密行业应对压力的脆弱性亟待解决

中国人民银行的官方公众号上,发布了最新一期“3·15”金融消费权益保护系列图文,内容提醒投资者警惕虚拟货币交易平台“套路”,其中包括恶意宕机、操纵市场。 官方提醒大众警惕虚拟货币交易中的“套路”很多次了,不法分子假借各种名号投资者,严重损害了区块链和数字货币在普通大众眼中的形象,导致对各界行业缺乏信任感。

比特币半年内出现两次极端行情 它们有什么共同点?

短短的半年时间内,区块链行业出现了两次极端行情。 第一次是在2019年9月25日晚上,24小时之内比特币跌幅最高达到20%多,一些中小市值跌幅高达50%,事件发生在深夜,下跌引发了连环爆仓事件,有媒体称之为9.28惨案。 第二次是2020年3月12日,同样的事情,同样的节奏,这一次来的更凶。

金色趋势丨BTC第三次不破不立黄金坑的机会已经到来

BTC历史上常有不破不立之说,不少大行情的起点经常以跌破此前的重要趋势线形成阶段新低作为起点,走出戏剧性的反转行情。因为,跌破此前的低点意味着估值来到罕见的低位,本身就具有相当程度的投资价值。另一方面,跌破之后往往会让一部分投资者陷入恐慌绝望,低点失守之后这些最后的空头割肉出逃、缴械投降,意味着最后做空力量的宣泄和衰竭,孕育着否极泰来的新希望。

金色专访 | 火币大学于佳宁:“区块链+”赋能新基建的乘数效应

近期“新基建”频频在政府会议及各类文件中被提及,成为了资本市场的热议话题,吸引了无数投资者的目光。 如何理解新基建?又有哪些企业机构值得关注?近日,金色财经独家专访了火币大学校长于佳宁,聊聊他眼中的新基建。 如何理解新基建? 在于佳宁看来,新基建是一个广泛的概念,不应该狭义理解为因出现在新闻上而被广泛提及的7个领域。

从MVRV 、RVT及活跃地址数了解近期比特币市场与网络状态

最近币市和美股的绑定似乎解开了,走出了一个 V 型的反转。V型的反弹表明,可能有很多人在恐慌性的抛售之后又回来了。 在恐慌中,所有资产都是相关的。坏消息来时,人们竞相卖出,然后才花一些时间评估情况,再采取进一步的行动。 投资的本质是管理未来不确定性来的资本风险——包括不仅亏钱的风险,也包括错失机会的风险。

区块链变革生产关系?大数据还没做好充当生产资料的准备

去年年底在一次区块链论坛上,银保监会监事陈伟钢提出:大数据是生产资料,人工智能是生产力,区块链是生产关系。这一结论已经被科技界广泛认知。 大数据、人工智能、区块链当是相辅相成、融合发展的,但目前的情况是,这三种技术仍在各走各的路。