Vitalik:用 calldata 扩展和分片降低以太坊rollup成本_合约招商_数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟

数字货币代理_海外数字货币招商代理_数字货币招商_元宇宙代理加盟
数字货币平台火爆招募数字货币合约代理

Vitalik:用 calldata 扩展和分片降低以太坊rollup成本

更新时间:2021-11-28 19:42:02点击:74

data-v-9033fe72 data-v-0aea98aa注:原文作者是以太坊联合创始人vitalik buterin。

Rollup是以太坊唯一可靠的扩展解决方案,是短期和中期解决方案,也可能是长期解决方案。 几个月来,以太坊L1的交易费用一直很高,为了促进整个生态系统向rollup的转移,必须要做一些必要的事情。 Rollup帮助许多以太网用户大幅降低了成本。 L2据l2fees.info报道,Optimism和Arbitrum提供的成本约为以太基底层本身的3-8倍,但ZK rollup方案具有良好的数据压缩性能,可以避免包括签名,因此可以使用这些L2

但是,这样的费用对很多用户来说太贵了。 长期以来,改善当前形式的rollup的解决方案被认为是数据片,将向链中的rollup添加约1-2 MB/s的专用数据区域。 本文介绍了实现此解决方案的实用方法,以便尽快打开rollup数据区域,并随着时间的推移添加更多的区域和安全性。

步骤1: tx calldata扩展

由于目前现有的rollup使用的是tx呼叫数据,所以如果希望在短期内增加rollup的容量以降低成本,而不要求rollup团队进行其他工作,则只需要降低tx呼叫数据的成本。 这是安全的,因为今天的平均块大小远远没有威胁到网络的稳定性。 但是,为了防止非常不安全的边缘状况,可能需要附加逻辑。

请参见EIP 4488或备选方案EIP 4490 (更简单但效果更好)。

EIP 4488需要将rollup的可用数据空间增加到每个插槽约1 MB的理论最大值,从而将rollup成本降低一半。 这比后面的步骤实施得更快。

步骤2: 一些分片

同时,我们可以开展工作,推出“合适”的瓷砖。 虽然以完整的形式实现适当的切片需要很长的时间,但是我们能做的就是一点一点地做到这一点,从所有的部分中受益。 实现的第一个自然部分是瓷砖规格的“业务逻辑”,通过将瓷砖的初始数量维持在非常低的水平(例如4 ),避免了大部分网络相关的困难。 各瓷砖将在各自的子网播出。 默认情况下,认证者信任委员会,但只能根据需要在各子网上进行选择,并在看到信标块确认的切片块的完整body主体后接受信标块。

瓷砖的规格本身并不特别难。 这是在类似于Altair实现和部署的时间范围内实现的,因为与最近发布的Altair硬叉相似的模板代码修改(Altair信标修改规范文件的长度为728行,分片信标修改规范文件的长度为888行)

为了使平铺数据实际上可以用于rollup,rollup必须将证书放入平铺数据中。 这有两个选择。

添加BEACONBLOCKROOT操作码。 rollup添加代码,用于验证基于历史信标链的区块根的Merkle证明。 添加面向未来的状态和历史访问的预编译,以防止rollup在未来承诺计划发生更改时更改代码。 这将使rollup数据空间增加到每个插槽约2 MB。 每个切片添加250 kB * 4个切片和在步骤1中扩展的呼叫数据。

第 3 步:N 个分片,受委员会保护

在这一步中,将活动分片的数量从4个增加到64个,分片数据现在进入子网。 因此,此时P2P层必须足够坚固,才能分割成更多的子网。 数据可用性的安全性基于诚实,取决于委员会的安全性。

这将在每个插槽中添加约16 MB的rollup数据区域。 每个切片为250 kB * 64个切片。 此时,假设rollup已从执行链中迁移。

第4步:数据可用性抽样 (DAS)

在此步骤中,添加数据可用性采样(DAS )以确保更高级别的安全性,从而即使在发生大量未经授权的攻击时也能保护用户。 数据可用性采样可以分阶段进行。 首先,允许网络以非绑定方式进行测试,然后作为接受信标块的要求,也可以在其他客户端之前在一些客户端上实施。

数据可用性采样完全部署后,分片部署完成。

分片环境下的Optimistic和ZK rollup

平铺世界与现状的一个主要区别在于,在平铺世界中,滚动数据不会成为实际上向智能合约提交滚动块的交易的一部分。 相反,数据公开步骤和rollup块提交步骤必须分开。

首先,数据发布步骤是将数据放置在链条上,然后平铺,然后提交步骤提交其header,指向基础数据。

由于Optimism和Arbitrum使用两级设计来提交rollup块,因此对两者来说都是较小的代码更改。

ZK rollup有点麻烦,因为要发送事务,必须证明您直接在处理数据。 他们可以证明切片内的数据与信标链上的约定一致,但这是非常昂贵的。 幸运的是,有更便宜的选择。

如果ZK-SNARK是基于BLS12-381的PLONK证书,则可以直接将切片数据作为输入提交。 BLS12-381切片数据承诺是KZG承诺,与PLONK的承诺类型相同,因此可以作为公共输入直接传递给证书。

如果ZK-SNARK使用几个不同的方案,或者即使只有BLS12-381 PLONK也有更大的可信设置,则可以使用等效性证明来证明中的承诺和比特,包括自己对数据的承诺

谁将在分片环境下存储历史数据?

增加数据空间的一个必要条件是删除以太网核心合同,以永久维护所有商定数据的属性。 数据量太大了,没必要这样做。 例如:

1、根据EIP 4488的理论上的最大链尺寸为每12秒(slot )约1,262,861字节,或者每年(~3.0 TB,但实际上是每年)~250-1000 GB的可能性更高,特别是在开始时

2、4个切片(各slot 1 MB )每年增加约2.5 TB (基本保证);

3,64个片(每个slot 16 MB )保证了每年约40 TB的存储容量;

大多数用户的硬盘大小从256 GB到2 TB,1 TB似乎是中间值。 根据区块链研究者小组的内部民意调查:

这意味着用户可以承担当前正在运行的节点的费用,但如果路线图的任何部分不做进一步修改就实施了,用户将无法承担。 虽然可以使用更大的硬盘,但用户必须全力购买,这大大增加了运营节点的复杂性。 关于这个问题,最先进的解决方案是EIP-4444,消除了节点运营商存储一年以上的数据块和收据的责任。 在瓷砖环境中,这个时间段可能会进一步缩短,节点只负责积极参与的子网上的瓷砖。

这就留下了如果以太坊核心协议不保存这些数据,谁来保存的问题。

首先,重要的是记住,即使使用瓷砖,数据量也不会很大。 是的,对于运行“默认”消费类硬件的个人来说,每年40 TB是不可接受的(实际上,每年1 TB也是如此)。 但是,它属于希望投入资源和工作来存储数据的专职人员范围之内。 例如,48 TB硬盘的价格为1729美元,14 TB硬盘的价格约为420美元。

那么谁来保存这些数据呢? 一些想法:

个人和组织的志愿者区块链浏览器(etherchain.org、etherscan.io、amberdata.io . )向用户提供数据是一种商业模式,因此所有数据都可以通过Rollup DAO指定参与者支付,保存并提供rollup相关的历史记录; 历史数据可以通过种子上传和共享,客户端可以任意保存随机的0.05%的链历史记录。 使用擦除代码。 门户网络客户端可以存储链历史的随机部分,门户网络会自动向拥有数据的节点发送数据请求。 可以在协议内激活历史数据存储。 像The Graph这样的协议可以创建激励市场,客户端可以使用准确的Merkle证书向服务器支付历史数据。 这样,人们和组织就可以存储历史数据,并根据需要执行所提供的服务。 其中已有个人、组织志愿者、块浏览器等解决方案。 特别是p2p Torrent场景是一个很好的例子,主要由志愿者驱动(存储大量数据内容)的生态系统。 剩下的基于协议的解决方案提供激励,但由于开发需要时间,因此更强大。 从长远来看,通过这些第2层协议访问历史记录很可能比今天的以太坊协议更有效。

官方微信