mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

保持以太坊可扩展性和可持续性的方案:一种状态保质期和无状态性的路线图

收藏
分享

原标题:《观点|一种状态保质期和无状态性的路线图》

以太坊的状态的规模正迅速增长。当前仅存储状态大概是 35 GB,如果加上默克尔证明就是 100 GB 了;而且现在预计每年都要增长这个数字的一半。此外,状态存储也是以太坊经济模型的一个短板:在这个机制中,用户只需付费一次就可以给共识节点施加永久的负担。为了保持以太坊的可扩展性和可持续性,我们需要一些解决方案。

有两种路径,而且都已经存在很长时间了:“弱无状态性” 和 “状态保质期”:

状态保质期:从状态中移除近期(比如,去年)无人访问的状态对象,并要求在复活状态对象时提供见证数据(witness)。可以将每个节点都需要存储的状态数据减少到扁平的约 20 ~ 50 GB。弱无状态性:仅要求区块提议者存储状态,其他节点都可无状态验证区块。在实践中,需要把状态共识形式(从默克尔树)切换到 “Verkle Tree”,以缩减见证数据的规模。

本文提出了一种多阶段的方案,来同时实现这两种方案。因为,可以证明,这会比按顺序实现这两个(无论什么顺序)容易很多。如果不实现 Verkle 树,状态保质期方案下就需要非常大的见证数据来证明一个旧状态;如果不实现状态保质期,切换到 Verkle 树就需要一个一步到位的切换流程(例如 EIP 2584),这几乎跟只实现状态保质期一样复杂。如果合二为一,同时进行,它们就解决了彼此面临的挑战:状态保质期方案包含了每年创建一棵新状态树的机制,因此 Verkle 树可以分阶段逐步建构,而无需一个一步到位的切换流程,而 Verkle 树也解决了见证数据规模的问题。

链接:“状态保质期” 和 “无状态性” 概念的历史

无状态客户端的概念,于 2017 年始发于 ethresear.ch 论坛:https://ethresear.ch/t/the-stateless-client-concept/172(亦可见 EthHub)(中文译本)状态租金(状态保质期的前身),始发于 2015 年:https://github.com/ethereum/EIPs/issues/35ReGenesis(Alexey Akhunov 的提议,可以认为是 状态保质期 + 历史过期 的一种形式):https://medium.com/@mandrigin/regenesis-explained-97540f457807 (中文译本)Verkle 树:https://notes.ethereum.org/_N1mutVERDKtqGIEYc-Flw(演讲)约束见证数据的大小:https://www.youtube.com/watch?v=qQpvkxKso2E一种状态规模管理理论(2021 年 2 月):https://hackmd.io/@vbuterin/state_size_management最小化复活冲突的状态约束方案:https://ethresear.ch/t/resurrection-conflict-minimized-state-bounding-take-2/8739实现无状态性和状态保质期的路径:https://hackmd.io/@vbuterin/state_expiry_paths

回顾:状态保质期如何工作?

这里所描述的是此提案的机制。

核心想法是,每个周期(比如以一年为一个周期)都会有一棵状态树,每当一个周期开始时,就初始化一棵空状态树,所有的状态更新都写到这颗状态树上。在一个周期内,所有的写入都会发生在最新的状态树上(所以新树和老树可能会存储同样的信息,也可能会发生冲突;那么总是以更新的树为优先)。

- 注意:我之前曾把这个约长一年的状态保质期周期称为 “epoch”,现在都称为 “period”,以免与信标链的术语相混淆 -

两个关键原则是:

只能修改最新的那棵树(也即对应于当前周期的树)。所有更老的树都不能再修改;更老的树上的对象只能在更新的树上创建副本,而且这些副本会取代更老的副本。可以预期全节点(包括区块提议者)只会保存最近的两棵树,所以只有最近的两棵树上的对象才能不需要 witness 就能读取。读取更老的对象就需要提供见证数据了。

“见证数据” 就是一个简短的证据,证明某个值(或者某一组值)存在于某棵树的某个位置上,而且验证的一方只需具有树根即可。举个例子,可以制作 一个 witness 来证明账户

0x124f...89ab

的存储空档

123

处在某时的状态下,包含的值为

50

;任何人都只需要这棵状态树的根值就可以验证这个证据。

状态保质期产生了一种混合的状态机制:共识节点需要保存最近被人访问和修改过的状态,但可以使用基于见证消息的无状态客户端方法来验证更老的状态。也就是说,也可以维护一个 “归档节点”,存储所有历史状态树,或者 一个完全无状态的节点,使用见证数据来验证哪怕是最新的状态。不过,gas 消耗量的结构和默认的网络格式,都要围绕 “节点会存储最近的两棵状态树” 来开发。

路线图

迁移将按阶段来实现:

周期 1 硬分叉:需要一个硬分叉来开启第一个周期(此前的则都算是第 0 个周期)。分叉之后,就会出现两棵状态树:十六叉的帕特里夏树(已冻结,不可再编辑)以及一棵新的 Verkle 树(包含所有新的状态 编辑/增加,还有旧状态的副本)EIP 草案:https://notes.ethereum.org/@vbuterin/verkle_tree_eip地址扩张周期:地址从 20 字节扩充到 32 字节,而新地址的格式包含一个 “地址周期” 的概念(曾用名 “地址空间(address space)”)。这样新合约就可以无需提供见证数据而直接写入新的存储空档。这一步什么时候做都可以,只需要在最终状态保质期转型完成之前就可以了,在周期 1 分叉之前或之后都可以。VB 的方案 :https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485Ipsilon 团队的方案:https://notes.ethereum.org/@ipsilon/address-space-extension-exploration周期 2 硬分叉:需要一个硬分叉来开启周期 2,并安排未来周期的时点。周期 0 的十六叉的帕特里夏树将被一棵 Verkle 树替换,客户端仅存储其状态根。从这时开始,周期 0 的状态将需要见证数据来访问。并且,状态保质期方案也算是完整实现了。EIP 草案:https://notes.ethereum.org/@vbuterin/state_expiry_eip

(完)

(文内有许多超链接,可点击左下 ”阅读原文“ 从 EthFans 网站上获取)

原文链接:

https://notes.ethereum.org/@vbuterin/verkle_and_state_expiry_proposal

作者: Vitalik

翻译: 阿剑


免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。
相关阅读

DeFi潮流新风口:从链上数据看跨链桥的发展新方向

总锁仓额突破131亿美元,9月独立地址总数超12万个

Bitwise 向美SEC提交比特币策略ETF申请,旨在投资比特币期货和其他金融产品

PANews 9月15日消息,根据一份公开的监管文件,资产管理公司Bitwise 下属部门 Bitwise Index Services 向美国证券交易委员会(SEC)递交了比特币期货交易所交易基金 ETF申请,新基金名为Bitwise Bitcoin Strategy ETF。旨在投资比特币期货和其他金融产品。该文件称:“该基金不会直接投资于比特币,虽然该基金主要通过间接投资于在 CFTC 注册的商品交易所交易的标准化、现金结算的比特币期货合约来获得比特币敞口,但它也可能投资于集合投资工具和加拿大上市的提供比特币敞口的基金”。文件显示,ETF 还可能投资于现金、美国政府证券或货币市场基金。US Bancorp Fund Services 将担任转账代理和管理人,而美国银行将担任托管方。据了解,美国证券交易委员会(SEC)至今还未批准任何比特币 ETF 基金。此外,美证监会主席 Gary Gensler 表示该机构更有可能批准比特币期货 ETF 而不是现货 ETF,因为期货 ETF 将投资于芝加哥商品交易所(CME)提供监管的比特币期货产品,而比特币现货则不受监管。来源链接

知情人士:因需求强烈,Coinbase计划发行的债券或增加至20亿美元

PANews 9月15日消息,有知情人士称,此前计划发行15亿美元债券的Coinbase会将交易规模提升至20亿美元,因为至少已经有70亿美元的订单涌入。其他知情人士表示,等额的7年期和10年期债券将分别以3.375%和3.625%的利率发行,低于最初讨论的借贷成本。彭博社表示,固定收益投资者对该产品的热捧,代表了加密货币不再是一个专属于风险资本的行业,因为养老基金和对冲基金在内的专注投资债务的投资者都希望参与到此次的投资中。此前根据 Coinbase 提交给美国证券交易委员会(SEC)文件显示,Coinbase 将通过私募发行 15 亿美元于 2028 年和 2031 年到期的有担保高级票据,这些票据将由 Coinbase 的全资子公司 Coinbase, Inc. 提供全额无条件担保。来源链接