原作者:VitalikButerin,《状态到期和无状态路线图》
以太坊的状态规模正在迅速增长。目前仅状态大小大约有35GB,如果包括所有Merkle证明在内,则超过100GB,并且每年大约增加一半。状态存储也是以太坊经济学的一个弱点:它也是唯一一种机制,使得参与者支付一次就可变成节点永远的负担。为了保持以太坊的可扩展性和可持续性,我们需要一些解决方案。
有两种途径的解决方案,并且已经存在很长时间:弱无状态和状态到期:
状态到期:从状态中移除最近没有被访问过的状态,并需要见证人才能恢复过期状态。这会将每个人需要存储的状态减少到大约20-50GB。
弱无状态:只需要区块提议者存储状态,并允许所有其他节点无状态地验证区块。在实践中实现这一点需要切换到Verkle树以减少见证人的规模。
以太坊创始人V神发布关于“单槽终结路径”的研究文章:金色财经报道,1月25日,以太坊创始人Vitalik发布了关于“单槽终结路径”的研究文章,文章表示,由很多论据推论,尽管以太坊现在有超过28w个验证者,但仍可以将以太坊最终确认时间减小至单个Slot时间。
实现“单槽终结”可以提升用户体验,减少以MEV为目的的重组链并减少协议复杂性和错误几率。但这是一个是长远的计划,其顺序会排在PoS、分片、Verkle树之后。目前,实现这一目标主要思路有:
1.通过超级委员会实现,即通过至少数百名的超级委员会验证者完成共识中单个slot内的验证工作。
2.让如今的巨量的验证者更快更高效的发挥作用,即让聚合签名过程更高效。
此外,对于“单槽终结”实施有具体如下4点要求。
1.加紧优化签名聚合工作;2.确定超级委员会规模;3.研究、达成一致并指定一个理想的共识和分叉机制选择;4.同意并在实施路径上执行这些。[2022/1/25 9:11:04]
本文档描述了同时实施这两个想法的多阶段提案。事实证明,这比先后连续执行这两个解决方案要容易得多。没有Verkle树的状态到期需要非常大的见证大小来证明旧状态,而切换到没有状态到期的Verkle树需要就地转换程序,这几乎与仅实现状态到期一样复杂。然而,如果同时进行,这两项改革解决了彼此面对的挑战:状态到期涉及每年创建一个新的状态树,允许Verkle树随着时间的推移逐步引入而无需就地转换,而Verkle树解决了见证人规模的问题。
V神发文探讨代币投票治理利弊,并提出替代解决方案:V神发文称,去中心化治理是必要的,但目前形式的代币投票治理存在许多公认和未公认的危险,因此扩大或超越代币投票是解决方案的关键部分。关于代币投票,V神称主要担心两种类型的问题:1.不平等和激励失调(即使在没有攻击者的情况下);2.通过各种形式的(通常是模糊的)买票形成直接攻击。第一种问题具体包括:
- 小群体的富有参与者(鲸鱼)比大群体的小型持有者更善于成功地执行决策;
- 代币投票治理以牺牲社区的其他部分为代价,赋予持有者和权力和利益;
- 利益冲突问题。
V神就此给出以下解决方案:
解决方案1:有限治理
- 仅对应用程序使用链上治理,而不是基础层;
- 将治理限制为固定的参数选择;
- 添加时间延迟;
- 对于分叉更加友好。
解决方案2:非代币驱动的治理
- 人格证明系统:该系统可验证帐户对应于唯一个人,因此治理可以分配给每人一票。可以还可查看正在开发的一些技术,ProofOfHumanity和BrightID是实现这一功能的两种尝试。
- 参与证明系统:该系统可证明帐户对应于参与过某事件、通过了某些教育培训或在生态系统中执行过一些有用工作的人。
解决方案3:风险共担
通过改变投票规则来打破公地悲剧。代币投票失败的原因是,虽然选民需要对他们的决定承担集体责任,但每个选民并不需要单独承担责任。所以V神提议创造一种投票系统来改变这种动态,让选民们独立而不是集体地为他们的决定负责。
其他方案:各种混合形式的futarchy治理、时间延迟加上选举专家治理、松耦合(咨询)代币投票等。
V神总结道,目前的代币投票形式是“safe defaults”,在更大的经济压力、更成熟的生态系统和金融市场条件下,它们的功能仍有很多有待观察的地方,现在是开始同时试验替代方案的时候了。[2021/8/16 22:17:20]
相关链接:状态到期和无状态思想的发展历史
V神发推预测21世纪20年代密码学大趋势:金色财经报道,V神今日在推特上表示:2010年代密码学的大趋势是椭圆曲线、配对和通用ZKPs/SNARK;预测21世纪20年代的大趋势将是(除了广泛采用上述技术外)格(lattices)、LWE、多线性映射、同态加密、MPC和模糊处理。[2020/4/11]
无状态客户端概念,最初的ethresear.ch帖子:https://ethresear.ch/t/the-stateless-client-concept/172?
状态租金,2015年原始提案:https://github.com/ethereum/EIPs/issues/35?
ReGenesis:https://medium.com/@mandrigin/regenesis-explained-97540f457807?
V神发火:你们再炫富,我就退出:以太坊已成为加密货币2.0代表,但以太坊创始人Vitalik Buterin却时常充满担忧,他认为,加密货币技术正朝着错误的方向前进。他不希望以太币沦为投机者的天堂,而是能够渗透进所有的工业中,将全世界的经济、社交、文化都去中心化。他警告说:数字货币随时可能归零,传统资产仍是存款首选。他不希望人们带着数千亿美元的数字纸上财富到处炫耀,并威胁道,“如果你们再这样的不成熟,我就将退出以太坊。”[2018/3/17]
Verkle树:https://notes.ethereum.org/_N1mutVERDKtqGIEYc-Flw?
关于边界见证大小的演示:https://www.youtube.com/watch?v=qQpvkxKso2E?
以太坊创始人V神发推驳斥不实观点:以太坊创始人V神刚刚发布推特称,那种认为“区块链应该做的是验证而不是交易执行,因为交易执行比验证要慢得多”的观点是“胡说”。事实是以太坊的uncle rate更多和简单tx计算相关,而不是由交易的复杂性导致的。[2018/3/4]
状态大小管理理论: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
回顾:状态到期是如何工作的?
这是对此处提议的机制以及本文档中提议的内容的描述。核心思想是每个时期都会有一个状态树,当新时期开始时,会为该时期初始化一个空状态树,任何状态更新都会进入该树。在一段时间内发生的所有写入都进入最新的树。
请注意,这些大约一年的状态到期时间在历史上有时被称为“时期”,但我正在切换到“周期”一词以避免与信标链时期混淆。
保持两个关键原则:
只能修改最近的树。所有旧树都不再可修改;旧树中的对象只能通过在新树中创建它们的副本来修改,并且这些副本取代了旧副本。
全节点预计只持有最新的两个树,因此只有最新的两个树中的对象才能在没有见证人的情况下被读取。阅读较旧的树则需要提供见证人。
“见证”是一个简短的证明,它证明一个值或一组值位于树中的某个位置,可以由只有树根的人进行验证。例如,可以做一个见证,证明账户0x124f...89ab的存储槽123在某个状态下包含值50,任何拥有该状态树根的人都可以验证该证明。
状态到期建立了一种混合状态机制:共识节点需要存储最近访问或修改的状态,但可以使用基于见证的无状态客户端方法来验证较旧的状态。也就是说,可以维护一个“归档节点”,它甚至可以存储历史状态树,或者是一个完全无状态的节点,它使用见证人来验证甚至最近的状态。然而,gas成本结构和默认网络格式是围绕节点存储最新的两个状态树的假设构建的。
路线图
这种转换路线图分阶段实施。这些阶段包括:
周期1硬分叉:我们从周期1开始实施一个硬分叉。在此分叉之后,将有两个状态树:十六进制Patricia树和一个新的Verkle树
原始EIP:https://notes.ethereum.org/@vbuterin/verkle_tree_eip
地址周期扩展:地址从20字节扩展到32字节,新的地址格式包括“地址周期”的概念。这允许新合约在不需要提供见证人的情况下填充新的存储槽。这可以在最终状态到期转换之前、周期1硬分叉之前或之后的任何时候完成。
VB的提议:https://ethereum-magicians.org/t/increasing-address-size-from-20-to-32-bytes/5485
Ipsilon团队提案:https://notes.ethereum.org/@ipsilon/address-space-extension-exploration
周期2硬分叉:我们实施了开始周期2的硬分叉,并安排了未来阶段的开始。周期0十六进制Patricia树被替换为Verkle树,并且客户端只存储根,因此周期0树中的状态现在需要见证人来证明。在此之后,状态到期计划已全面实施。
原始EIP:https://notes.ethereum.org/@vbuterin/state_expiry_eip
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。