写在前面:
想象一下,你正在翻译一本5000页的书籍,作者一直打电话告诉你他对故事做了调整,这会影响到你已经翻译过的页面……而这可能会一直持续下去,这就是以太坊从当前使用的MPT十六叉树转变为二叉树结构中遇到的一个类似困境。对此,以太坊核心开发者GuillaumeBallet提出了一种方案,可以在大约几天的时间内,通过3个步骤完成这一转换手术。
(图片来自:tuchong.com)
以下是译文:
影响以太坊的众多问题之一是账户和合约数据的存储方式,以太坊目前选择的结构称为默克尔帕特里夏树(MerklePatriciaTree,或简称MPT)。尽管从理论上讲,它是很有意义的,但在实践中,它带来的问题要比其解决的问题要更多。多年来,核心开发人员一直在讨论向二叉树的转换,在本文中,我将介绍我对这一问题的看法,然后给出一个解决它的方法。
IMF:完全禁止加密资产长远来看并非有效方式:6月22日消息,国际货币基金组织(IMF)发布报告称,拉丁美洲和加勒比地区(LAC)对央行数字货币的兴趣上升,而加密货币的使用情况却各不相同。加密资产带来的风险因不同国家的情况而异。IMF已经就适当政策应对的关键要素提供指导,以减轻风险,同时利用加密资产相关技术创新的潜在好处。如果设计得当,CBDC可以增强支付系统的可用性、弹性和效率,并增加拉丁美洲和加勒比地区的金融包容性。
虽然考虑到加密资产的风险,一些国家已经完全禁止加密资产,但从长远来看这种方法可能不会有效。相反,该地区应该专注于解决加密需求的驱动因素,包括公民未得到满足的数字支付需求,并通过在国家统计数据中记录加密资产交易来提高透明度。[2023/6/22 21:54:53]
提议的过程引入了一个过渡期,在此期间,两种树结构都会存在。这样做的好处是,在转换树结构时,主链可以保持运行,并且还可以确保将所有帐户转换为二叉树格式。
Aave 社区发起在 Immunefi 推出漏洞赏金计划的提案:金色财经报道,Aave 社区发起在 Immunefi 推出漏洞赏金计划的提案,智能合约方面的漏洞赏金最高为 100 万美元,最低为 1000 美元,将以 GHO 的形式支付。[2023/4/4 13:42:56]
背景
目前,以太坊的账户是被存储到一棵十六叉树当中的。所谓十六叉,就表示一个节点有16个子节点,理论上这是很好的,因为这意味着你需要更少的"阶段"来存储你所有的数据。
例如,这就是以十六叉树的形式表示键与值对的过程。在十六进制中,170表示为0xaa,因此你只需要两层:其中之一用于第一个a,另一层则用于第二个a。
图1:这是一棵十六叉trie树示例,显示了值“v”如何存储在键0xaa处。此树只有2字节长的键,并且只沿0xaa键的子树被展开。为了简洁起见,不相关的子树被替换为“…”。
Uniswap推出Mini Portfolio功能,用户可以查看和管理自己资产:3月23日消息,Uniswap推出Mini Portfolio功能,用户可以查看资产余额、代币价格历史记录、NFT详细信息、管理LP池、并用银行卡或信用卡购买加密货币。[2023/3/23 13:20:25]
注意,这棵树很浅,也很宽。然后将其与以下相同键与值对的二叉树表示法进行比较。在二进制中,
170表示为
10101010。
图2:和图1中相同的键值对,以二叉树形式进行存储。为了简洁起见,不相关的子树被表示为“…”。
你可以看到,这棵树要深得多,也窄得多。
在以太坊中,每个区块都包含一个stateRoot字段,它是MPT根的哈希值。总而言之,这个哈希,是通过对根的16个子项的哈希列表进行哈希运算而获得的。这些子哈希列中的每一个,又依次是其子哈希列表的哈希,依此类推。
数据:BTC月度波动率降至24.6%,ETH降至39.8%:金色财经报道,据区块链分析公司Glassnode最新数据显示,比特币月度波动率已降至24.6%低点,以太坊降至39.8%。比特币网络处理的美元总价值也出现“自由落体式”下降,日转账量已经从2022年第三季度的约400亿美元的高度跌至58亿美元/日,回到了2020年牛市前的水平,比特币大额转账(1000万美元以上)已经从FTX崩溃前的42.8%主导地位下降到19.0%。比特币的交易所流入量目前在3.5亿到4亿美元/天之间,以太坊交易所出现复苏从截至2021年5月仅30%增长到42%。[2023/1/13 11:10:39]
每次生成一个新区块时,矿工都会更新帐户树并重新计算其根哈希值。哈希存储在新区块的stateRoot字段中,然后新区块被密封。
Chainlink将于12月推出质押奖励功能,并计划成为Web3版AWS:9月28日消息,预言机项目Chainlink宣布将于12月推出质押奖励功能,最初的质押池规模为2500万个LINK代币,用户可参与质押的数量将根据持有的LINK以及社区参与程度确定。
同时,Chainlink还推出了面向早期项目的BUILD计划,这将使他们优先获得服务和高级支持,以换取对其原生代币的贡献。Truflation、Space & Time和Bitscrunch等项目已经签约。
该项目首席执行官Sergey Nazarov表示,Chainlink提供的各种服务——包括价格数据馈送、天气数据、游戏应用程序的随机数生成,以及进行了的跨链通信——意味着Chainlink正在成为一个去中心化的数据服务平台,类似于AWS的Web3版本。(Decrpt)[2022/9/28 5:59:16]
图3区块头的stateroot字段指向十六叉树的根。
问题就出现在这里了:通过对所有节点进行哈希运算来重新计算哈希根花费的时间太长,因此,为了计算根节点,矿工将从数据库中检索同级哈希。尽管从数据库中获取所有子叶并对整棵树进行哈希运算所需的时间不多,但此操作仍然需要大量时间。这是因为必须要从数据库中获取每个哈希。
在十六叉树中,通常每个阶段要获取15个同级哈希。在上面的示例中,这就是30个哈希。
即使更深入,二叉树每个阶段也只需要一个同级哈希。在上面的示例中,就只有8个哈希!这就是为什么在实践当中,二叉树实际上要更好的原因。
覆盖转化法
不幸的是,要将以太坊从十六叉树切换到二叉树,并不是一件容易的事。有很多数据需要转换,并且执行更改需要花费超过15秒的区块时间。
除此之外,想象一下,你正在翻译一本5000页的书籍,作者一直打电话告诉你他对故事做了调整,这会影响到你已经翻译过的页面……而这可能会一直持续下去。
这就是目前以太坊遇到的问题,因为用户可以更新已转换的地址,这意味着你必须重新开始转换过程。
解决此问题的建议是设一个过渡期,在此期间,在十六叉树的顶部放置一棵覆盖二叉树,它的作用是保存状态发生的所有更改,直到基树转换为二叉树。
这种过渡会分成三步进行:
第1步-转换
在这种方法中,确定在区块高度
H1处,区块具有两个
stateRoots:一个用于“基础”十六叉树,一个用于“覆盖”二叉树。
图4:在转换过程中,区块具有2个状态根:一个是传统十六叉树的只读根,第二个是“覆盖”二叉树的根。
十六叉树被认为是只读的,因此对状态的任何更新都将是对覆盖树的更新。
当一笔交易读取或更新一个帐户时,系统首先搜索覆盖树。如果在那里找不到帐户,系统将在旧的十六叉树中搜索该值。
而在同时,十六叉树正在后台转换。现在可以不用担心插入,因为所有更改都存储在顶部树中。
第2步-基转换
后台转换过程完成后,矿工将通过转换结果替换只读的十六叉树基础根来宣布他们已准备好进行切换。对状态的读写操作与步骤1相同。
图5:转换的第二个阶段,区块头将十六叉树基础根替换为其二叉树转换基础根,以向网络发送信号,告知它们已准备就绪。
当一个足够大的序列区块对转换后的基础根具有相同的值时,这意味着大多数矿工都完成了转换,并对转换后的树的外观达成了共识。接下开,就进入到合并过程。
第3步-合并两颗树
合并过程会逐渐进行:每次生成新区块时,都会从叠加层中删除n个键,然后将其重新插入到基础树中。该过程将持续进行,直到从叠加层中删除所有键为止。在此阶段,覆盖状态根将从区块头中删除。
除此之外,如果交易执行写入覆盖树中找到的键,则该键将从覆盖树中删除,并直接写入到基础树。
下一步
我们已经创建了一个初步的原型,以便估计完成转换所需的时间。我们相信,整个过程可以在合理的时间内完成。随着算法的改进,我将发布更多的细节。
致谢
这项提议得益于AlexeyAkhunov,VitalikButerin,AnnaGeorge,SinaMahmoodi,TomaszStanczak以及MartinH.Swende提供的宝贵意见。
相关讨论:https://ethresear.ch/t/overlay-method-for-hex-bin-tree-conversion/7104
标签:CHABLOCENTLOCKpccschainblockchain怎么用Valuables BY CENTBlocksport
作者|COLINHARPER翻译|Jeren@Heartbit 翻译时对原文有部分改动 相信很多接触过加密货币的人应该都认识比特币的Logo.
作者:Joyce 来源: 区块链前哨 3月25日,韩国罕见地对一名犯罪分子进行了公开游行,这个人就是韩国“N号房”运营者之一“赵博士”.
来源:每日经济新闻 每经记者:潘婷每经编辑:卢九安成也区块链,败也区块链,币圈投资人对区块链三个字的感情是复杂的。前一秒还一夜暴富,后一秒就可能成为了资金盘中的一员,甚至连交易所也经常跑路爆雷.
作者:白平浩党史教研部副教授);杨柠聪 来源:党政研究 〔摘要〕区块链技术在政府治理中的应用是物理技术与社会技术的统一.
作者:May 来源:比推bitpush.news据彭博社报道,亿万富翁投资者、GalaxyDigitalCEOMikeNovogratz将最近的比特币暴跌作为购买机会.
比特币诞生于12年前,当时正处于上一次全球金融恐慌最严重的时候,它从一开始就被定位为一个可以避开中心化银行服务局的避风港.