Vitalik:解决以太坊L1扩展性问题新方案
本文来自:以太坊联合创始人 Vitalik
编译 | Odaily星球日报( @OdailyChina )
译者 | Ethan( @ethanzhang_web3 )
除了对网络安全的担忧之外,对提高 L1 Gas 限制最常见的批评是,这会增加运行全节点的难度。 特别是在重点关注 全节点拆分 的路线图背景下,要解决这一问题,就必须了解全节点的作用。
从历史上看,人们一直认为全节点是用于验证链上数据的;请参阅 此处 ,了解我自己对如果普通用户无法验证可能发生的情况的阐述。 如果这是唯一的问题,那么 ZK-EVM 就可以解锁 L1 扩展:唯一的限制是将区块构建和证明成本保持在足够低的水平,从而使两者都能保持 1-of-n 抗审查性和市场竞争力。
但实际上,这并不是唯一的问题。另一个主要问题是拥有一个完整的节点是非常有价值的,这样您就可以拥有一个本地 RPC 服务器,用来以一种无信任、抗审查和隐私友好的方式读取链。 本文档将讨论为实现这一目标而对当前 L1 扩展路线图进行的调整。
为什么要继续通过 ZK-EVM + PIR 实现无信任和隐私?
我在上个月发布的 隐私路线图 中将 TEE + ORAM 作为短期补丁,再加上 PIR 作为长期解决方案。 这样,再加上 Helios 和 ZK-EVM 验证,任何用户都可以连接到外部 RPC,并完全确信:(i) 他们获得的链是正确的;(ii) 他们的数据隐私得到了保护。 因此,我们不禁要问:为什么不能止步于此? 这些先进的加密解决方案难道不会让自托管节点成为过时的遗迹吗?
在此,我可以给出几个答复:
-
完全无信任的加密解决方案(即 1-server PIR)将非常昂贵。 目前的开销高得不切实际,即使经过多次效率改进,也很可能仍旧昂贵。
-
元数据隐私。 哪个 IP 地址在什么时间发出请求,以及请求的模式,这些数据本身就足以揭示用户的大量信息。
-
审查漏洞:由少数 RPC 提供商主导的市场结构将面临取消平台或审查用户的强大压力。 许多 RPC 提供商已经将整个国家排除在外。
出于这些原因,继续确保更方便地运行个人节点是有价值的。
短期优先事项
-
提高 EIP-4444 全面推广的优先级,直至每个节点仅存储约 36 天数据的最终结束状态。 这将大大降低磁盘空间需求,而磁盘空间需求正是阻碍更多人运行节点的主要问题。 此后,节点的磁盘空间需求将是:(i) 状态大小;(ii) 状态 Merkle 分支;(iii) 36 天的历史记录。
-
构建分布式历史存储解决方案,每个节点可以存储一小部分比截止日期更早的历史数据。 使用纠删码最大限度地提高稳健性。 这可以确保 "区块链是永恒的 "这一特性,而无需依赖中心化提供商或给节点运营商带来沉重负担。
-
调整 Gas 定价,使存储成本更高,执行成本更低。 特别优先的是增加创建新状态的 Gas 成本:(i) 新存储槽的 SSTORE,(ii) 合约代码创建,(iii) 向尚未有余额或 nonce 的账户发送 ETH。
中期优先事项:无状态验证
一旦我们启用了无状态验证,就有可能在不存储状态 Merkle 分支的情况下运行具有 RPC 功能的节点(即存储状态的节点)。 这将使存储需求进一步降低约 2 倍。
一种新型节点: 部分无状态节点
这是新的想法,也是在 L1 Gas 限制增长 10-100 倍的情况下允许个人节点运行的关键。
我们添加了一种节点类型,它可以无状态验证区块,验证整个链(通过无状态验证或 ZK-EVM),并保持状态的部分最新。 只要所需数据在该状态子集内,节点就能响应 RPC 请求;其他请求将失败(或必须退回到外部托管的加密解决方案;是否这样做应由用户选择)。
要保持的状态的具体部分取决于用户选择的配置。 举例如下
-
除已知为垃圾合约外的所有状态
-
与所有 EOA 和 SCW 以及所有常用的 ERC 20 和 ERC 721 代币和应用程序相关的状态
-
与过去两年中访问过的所有 EOA 和 SCW 以及一些常用的 ERC 20 代币相关的状态,再加上一组有限的交换、defi 和隐私应用程序
配置可以通过链上合约进行管理:用户可以使用 --save_state_by_config 0x 12345...67890 运行其节点,该地址将以某种语言指定节点将保存并保持最新状态的地址、存储槽或其他过滤区域列表。 请注意,用户无需保存 Merkle 分支;他们只需保存原始值。
这种类型的节点可以让用户直接在本地访问需要关注的状态,并最大限度地保护访问该状态的隐私。