金色观察|EIP4844:以太坊数据分片前的中间方案
以太坊 未来会先经历合并,然后是上海硬分叉,然后就是未来的分片链。这些都是以太坊在数据可用性上要经历的过程。
在这个漫长的过程里,EIP-4844是一个关键的更新。该提案目前处于草案状态,可能还会进行修改。
EIP-4844的技术要求属于proto-danksharding,是一种拓展数据可用性的方法。主要的技术变动是向以太坊引入了一种新的交易类型,信标节点接受blob数据,可以验证blob。
以太坊的分片是将数据分解成两个或更多更小块的过程。然后这些块分布在单独的数据库节点上,称为物理分片。
以太坊目前采用的分片策略是“以汇总为中心”的方法。在这个思路下,包含对链下数据的处理过程,所以这个思路下肯定还需要让整个基础设施利用2层的扩展能力。
不过Rollups的目标是漫长的,其思路中目前主要能实现的是对交易大小的压缩,在有限的块大小内,压缩更多的交易进入,来降低交易gas成本。
在数据分片的长期目标里,还有一项不能忽视,就是数据分片后,每个块的数据可用性空间大小,数据分片会为使用rollups的链增加每块约16MB的专用数据空间。这样的目标达到后,可以让链下或layer2的数据很好的和rollup配合,提高数据交易处理能力。
但漫长的数据分片还没到来前,EIP4844做了一个中间方案,这个方案可以将信标链每个块的数据可用性空间扩展到最大2MB。即在信标链的块里添加一部分Blob数据,可能达到数据存储极限,不过理论上,每个块1 MB的限制加上每个事务额外的300字节,最大1.4 MB。但利用gas计算,应该是1.8M。所以会有一个目标是1MB,上限2MB的规范。
Blob这种交易格式的数据会成为信标链的一部分,并被所有共识节点完全下载(但可以在相对较短的延迟后删除)。
这里要注意的是,节点验证blob是检查blob是否可用,即是否可以从网络下载。这些blob中的数据空间预计将由支持高吞吐量操作的2层协议使用。
此外,据EIP详细资料表示,这些数据并不占用区块头,这些数据是进入区块体。所以代表的是这一选择不是要创造额外空间,而是为数据块分配更多空间。因为在块里添加blob并不是为了访问,而是代表数据是否存在并且可以从网络L2基础设施(如 Arbitrum 、Optimism等)访问。
blob在信标链上会保存一段时间,以保证一些交易需求。
通过这样的blob的数据使用,理想状态下一个128kb数据块的成本将为1gas,在今天的gas价格和Ether价格下为0.01美分。
此外,可能还需要认识到EIP-4488和proto-danksharding之间的一些区别,EIP-4488尝试最小化当前所需的更改,而proto-danksharding需要进行大量更改,经过这个的过程后,未来升级到完全分片所需的更改很少。实现完全分片(包括数据可用性采样等)是一项复杂的任务,这种复杂性包含在共识层中。一旦proto-danksharding推出,执行层客户团队、rollup开发人员和用户无需做进一步的工作就可以完成向完整分片的过渡。
以太坊基金会认为,这为以太坊网络提供了一个实质性的扩展解决方案,直到完成最终的分片升级。