随着合并和上海升级的完成,以太坊已经成功地从工作量证明过渡到 POS 共识协议。以太坊发展路线图上的下一个大项目是以太坊改进提案(EIP)4844,被称为 "proto-danksharding",提案旨在改善建立在以太坊之上的 Rollup 的可扩展性。EIP 4844以以太坊核心开发者 Protolambda 和 Dankrad Feist 的名字命名,引入了一种新的交易类型,称为blobs,增加了以太坊区块的数据和存储要求,并创建了一个新的收费市场,将blobs与常规交易分开定价。
通常情况下,向以太坊发布大量数据的成本很高,部分原因是以太坊网络将数据作为交易历史的一部分永久地存储在一个被称为 CALLDATA
的字段中。通过EIP 4844,每个区块将创建一个额外的512kB或768kB的数据空间用于 Rollup 。发布到这个空间的数据将被存储大约三周的时间。理论上, Rollup 向以太坊发布数据的成本将大大降低。随着时间的推移,开发人员打算引入数据采样技术,这样blob数据就不需要全部下载给以太坊全节点进行验证,进一步降低 Rollup 成本。Proto-danksharding是完全 danksharding 的前奏和 "原型",它将使以太坊节点能够下载blob数据的片段,以确定完整blob的可用性。
Blob交易不会无限期地存储在以太坊上,而是存储在以太坊的共识层(共识层),即Beacon Chain上,并在三周后从共识层节点上丢弃。Proto-danksharding 将使每个区块最多有六个blob,每个blob能够包含最多128kB的额外数据。
Proto-danksharding 为引入更先进的技术奠定了基础,以进一步降低blob成本,而不增加节点的计算负载。称为完全danksharding,对blob的完整设想是将每个块的最大blob数量从4个增加到64个。
四个 blobs 使以太坊区块大小增加512kB。六个blobs 使以太坊区块大小增加768kB。如前所述,额外的区块空间严格用于blob交易,并不像普通区块空间那样永久存储数据。EIP 4844 的完整愿景是为以太坊引入最多64个blob,并且在不大幅增加区块验证的节点计算负载的情况下做到这一点。为了实现完全的danksharding,以太坊需要实现两种技术:数据可用性采样(DAS)和擦除编码( erasure encoding)。
数据可用性抽样(DAS)
在验证第2层 Rollup 交易的背景下,DAS的目标是确保由定序器打包的所有数据片断都已经发布到链上。节点是完全随机选择的,从blob中下载一块数据并生成数据可用性证明。完整节点对数据采样的次数越多,对所有数据都已从定序器中提供而没有扣留重要数据的概率确定性就越大。对节点来说,采样数据的过程比下载整个blob数据的计算量要小,但在理论上会给出同样的数据可用性保证。通过DAS,以太坊开发者有信心在不增加节点计算负荷的情况下,增加发布到以太坊的Blobs数量和数据量。
擦除(Erasure) 编码
擦除编码技术加强了对数据的采样能力。如果一个恶意的定序器扣留了少数块数据,在1%到49%的blob数据之间的任何地方,交易抽样可能会概率性地导致某些抽样证明一开始就被返回为正确,而不是错误。擦除编码确保如果一半以上的blob被验证,其余的blob可以被重建。这种技术只有在数据被表示为多项式,即两个以上的代数项的表达式时才有效。最常见的擦除编码形式依赖于Reed-Solomon(RS)码.
KZG 承诺
在DAS和擦除编码可以在以太坊上实施之前,完全 danksharding 需要实施KZG承诺方案。Kate Zaverucha Goldberg(KZG)承诺是一种零知识(ZK)证明系统,可以在不透露整个多项式的情况下对多项式进行评估。大型数据对象,如Blobs,如果首先被表示为多项式,就可以被计算机以高效的方式操作和证明。EIP 4844 重要的是引入了KZG 承诺作为 Blobs 的验证和证明生成过程的一部分。对于依赖 ZK 证明的第二层 Rollup ,KZG承诺可以表示对交易的计算和 Rollup 协议的状态。在EIP 4844的背景下,KZG承诺可以检查blob的属性,而不需要读取blob交易的全部内容。
KZG 仪式
用于验证blob的KZG承诺方案依赖于通过可信设置一次性生成的秘密值。一些加密协议,如Zcash、Tornado Cash和Filecoin,都是依靠可信设置来安全地生成一个秘密值,用于链上的重复计算。EIP 4844的可信设置仪式于2023年1月拉开帷幕。它已经收到了来自以太坊社区的接近10万个贡献。
根据下一次以太坊升级的范围,在执行层升级上被称为Cancun,在共识层上被称为Deneb,主网以太坊上的EIP 4844的激活暂定在2023年秋季或冬季的某个时候。
参考
https://eips.ethereum.org/EIPS/eip-4844
https://github.com/ethereum/pm/blob/master/Breakout-Room/4844-readiness-checklist.md
网友评论