Vitalik:扩展 Rollups 的分步路线图( 二 )


将活跃分片的数量从4条增加到64条 。 此时分片数据将进入子网络 , 因此届时的P2P层必须已经足够牢固 , 使得将其分割成更多数量的子网络变得可行 。 数据可用性的安全性将基于大多数(验证者)诚实假设 , 依赖于委员会的安全性 。
这将使得每个slot的Rollup数据空间增加至约16MB(每条分片250kB*64条分片);我们假设此时Rollups将已经从以太坊执行链中迁移出来 。
Step4:数据可用性抽样(DAS)
添加数据可用性抽样(DAS)以确保更高级别的安全性 , 使得即便是在大多数(验证者)不诚实的攻击情况下 , 用户也能够得到保护 。 数据可用性抽样可以分阶段来进行:首先 , 以非约束性的方式来允许网络对其进行测试 , 然后将其作为接收信标区块的必要条件 , 甚至可能先在某些客户端上进行 。
一旦完全引入了数据可用性抽样 , 分片的铺展就完成了 。
基于分片的OptimisticRollups和ZKRollups
当前的以太坊与实施分片之后的以太坊的一个主要区别就是 , 在分片的世界里 , Rollup数据实际上不可能成为向智能合约提交Rollup区块的交易的一部分 。 相反 , Rollup数据的发布与Rollup区块的提交将必须是分开的:首先 , 数据发布将把数据放到链上(也就是放到分片链中) , 然后区块提交将会提交区块头以及一个指向底层数据的证明 。
Optimism和Arbitrum已经为Rollup区块的提交使用了一种两步式设计 , 因此这对二者来说都将是一个很小的代码更改 。
Vitalik:扩展 Rollups 的分步路线图
文章图片
对于ZKRollups , 事情有点棘手 , 因为提交交易需要提供一个直接对数据进行操作的证明 。 它们可以通过ZK-SNARK来证明分片中的数据与信标链上的承诺相匹配 , 但这一操作是非常昂贵的 。 幸运的是 , 还有更便宜的替代方案 。
如果该ZK-SNARK是一个基于BLS12-381的PLONK证明 , 那么它们可以简单地直接将分片数据承诺作为输入来进行打包 。 BLS12-381分片数据承诺是一个KZG承诺 , 与PLONK中的承诺类型相同 , 因此可以作为公共输入直接传递到证明中 。
如果ZK-SNARK使用了一些不同的机制(或者即便是BLS12-381PLONK但有着一个更大的可信设置) , 那么它可以包含自己的数据承诺 , 并使用一个等效性证明(proofofequivalence)来验证该证明中的承诺与信标链中的承诺是对相同数据的承诺 。
分片世界中 , 谁将存储历史数据?
增加数据空间的一个必要条件是移除以太坊核心协议负责永久性维护达成共识的所有数据的属性 。 因为这些数据量太大了 。 例如:
EIP-4488理论上带来的最大链大小是每12秒的slot为大约1,262,861字节 , 也即每年大约3.0TB , 但实际上每年更有可能是约250-1000GB , 尤其是在开始阶段 。 4条分片(每个slot为1MB)每年会增加额外的约2.5TB 。 64条分片(每个slot为16MB)每年将带来总计为约40TB的存储 。大多数用户的硬盘驱动器的大小在256GB和2TB之间 , 1TB似乎是中间值 。 下图是一项针对计算机硬盘空间有多大而在一组区块链研究员中开展的内部调查的结果:
Vitalik:扩展 Rollups 的分步路线图
文章图片
这意味着用户当前可以运行一个节点 , 但如果此路线图的任何一部分如果不进行修改就实施 , 那么用户将无法运行节点 。 当然还有更大的驱动器可用 , 但用户将必须竭力去购买它们 , 这大大增加了运行节点的复杂性 。 当前主要的解决方案是EIP-4444 , 此提案消除了节点运营者存储超过1年的区块或收据的这一责任 。 在分片的情况下 , 这个1年的时长将很可能进一步缩短 , 而且节点将只需要负责他们积极参与的子网络上的分片 。