以太坊或任何区块链的一个问题是其规模会随着时间的推移而增长。这意味着其代码的复杂性和存储要求也会增加。
区块链必须保留其整个历史中的所有数据,这些数据需要由所有客户端存储并由新客户端下载。这导致客户端负载和同步时间不断增加。
此外,代码复杂性会随着时间的推移而增加,因为“添加新功能比删除旧功能更容易”,Vitalik Buterin在他的博客中写道。
因此,Buterin 认为开发者必须积极努力阻止这些日益增长的趋势,同时保持以太坊的持久性。因此,Buterin 提出了“The Purge”计划,该计划分为三个部分,旨在简化区块链并减少其数据负载。
第 1 部分:历史过期
目前,完全同步的以太坊节点需要大约 1.1 TB 的存储空间用于执行客户端。共识客户端则需要几百 GB 以上的空间。Buterin 表示,这些数据大部分都是历史数据,例如历史区块、交易和收据的数据,其中许多数据已有数年历史。为了存储所有这些历史记录,所需的磁盘空间每年都会增加数百 GB。
Buterin 认为,这个问题可以通过一种叫做 History Expiry 的东西来解决。
区块链上的每个区块都通过哈希链接指向前一个区块。这意味着对当前区块的共识意味着对历史的共识。
Buterin 表示,只要网络对当前区块达成共识,任何相关的历史数据都可以通过 Merkle 证明由单个参与者提供,任何人都可以验证其完整性。这意味着每个节点可以存储一小部分数据,而不是每个节点都存储所有数据,从而减少存储需求。
Buterin 基本上建议采用 torrent 网络的运营模式,其中每个参与者只存储和分发网络存储和分发的一小部分数据。
以太坊已经采取措施减少存储要求——某些信息现在有有效期。例如,共识块存储六个月,blob 存储 18 天。
EIP-4444是朝着这个方向迈出的又一步——它旨在将历史区块和收据的存储期限限制为一年。然而,长期目标是有一个固定的期限,比如 18 天,在此期间每个节点必须存储所有内容,然后将旧数据以分布式方式存储在对等网络上。
第 2 部分:状态到期
Buterin 表示,消除客户端存储整个历史记录的需求并不能完全解决存储需求膨胀的问题。这是因为客户端必须每年增加约 50GB 的存储容量,因为“状态不断增长:账户余额和随机数、合约代码和合约存储”。
可以通过三种方式创建新状态对象:创建新帐户、向新帐户发送 ETH 以及设置之前处于休眠状态的存储槽。一旦创建了状态对象,它就会永远处于该状态。
Buterin 认为,随着时间的推移,自动使状态对象过期的解决方案需要高效、用户友好且对开发人员友好。这意味着该解决方案不应需要大量计算,用户不会因为多年未动用代币而失去对代币的访问权限,并且开发人员在此过程中不会遇到太大的不便。
Buterin 提出了两种“已知的最不坏的解决方案”:
- 部分状态到期解决方案
- 基于地址期限的状态到期提案。
部分状态到期
部分状态过期提案基于将状态划分为“块”的原则。这要求每个人都存储“顶层映射”,其中哪些块是空的或永远不空。块内的数据只有在最近被访问时才会被存储。如果块中的数据未被存储,“复活”机制允许任何人通过提供数据是什么的证据来恢复块中的数据。
基于地址周期的状态到期
基于地址周期的状态到期建议拥有一个不断增长的状态树列表,而不是只有一个存储整个状态的树。任何被读取或写入的状态都会更新到**的状态树中。每个周期(可能是一年)都会添加一个新的空状态树。
在这种情况下,较旧的状态树将被冻结,完整节点只需存储**的两棵树。如果状态对象成为过期树的一部分,则可以读取或写入,但交易需要 Merkle 证明。交易完成后,它将被添加回**的树。
随着时间的推移,所有协议都会变得复杂,无论它们最初有多简单。
Buterin 写道:“如果我们不想让以太坊陷入日益复杂的黑洞,我们需要做以下两件事之一:(i)停止做出改变并使协议僵化,(ii)能够真正 删除 功能并 降低 复杂性。”
Buterin 表示,消除以太坊的复杂性需要进行一些小的修复,例如删除 SELFDESTRUCT 操作码、删除旧交易类型和信标链委员会、改革 LOG 等。Buterin 还建议简化 gas 机制、消除 gas 可观察性并改进静态分析。
文章标题:Vitalik Buterin表示,The Purge可以帮助降低以太坊的复杂性和存储要求
文章链接:https://www.btchangqing.cn/666084.html
更新时间:2024年10月27日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。