宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > SOL > 正文

模块化结构下 EIP-4844 的设计逻辑

作者:

时间:1900/1/1 0:00:00

注:本文基于Optimism团队研究员、前以太坊基金会研究员Protolambda于今年7月在EthCCParis所做的演讲进行编译,并参考了其他优秀的文章进行整理(在文末列出)。

引入

合并(TheMerge)的关键里程碑已于9月15日完成,根据Vitalik在2021年底发布的以太坊协议开发路线图,下一个重要阶段是TheSurge——解决以太坊可扩展性问题,降低交易费并提高吞吐量。TheSurge围绕以rollup为中心的路线图开发,在继承以太坊网络安全性的同时,进一步提高L2rollup的可扩展性。

cr:https://twitter.com/ethereumcn/status/1466731320537612296?s=46&t=9yOAkX-0nd_xvSJIJ8_Pmw

本文主要介绍这一技术路线图中的一个关键工作:EIP-4844Proto-danksharding,它如何使得rollup所需要使用的数据变得更加便宜以及获得更多存储数据的容量(capacity)。EIP-4844是对以太坊网络的一次升级,它将使得rollup的开销降低10-100倍。它通过向以太坊引入一种新的交易类型来实现,这种交易类型携带短暂存在的blob数据。这种新的数据存储方式是为了存放rollup的一些数据,它会比目前calldata的方式便宜得多。此外,4844是完整版Danksharding(在前面的基础上再扩容10-100倍!)的前提条件。

以太坊分片技术路线图

对于以太坊分片设计的现状,前以太坊基金会开发者Protolambda做了一个简洁的描述:

带有“crosslink”的可执行的“分片链”已被淘汰,而是更新为:在信标链中实现EVM;使用“数据可用性采样”的以rollup为中心的以太坊路线图,扩容以太坊基础层而无需增加应用环境的复杂性。

Celestia 模块化框架产品 Rollkit 推出比特币 Rollup:3月9日消息,Celestia 旗下模块化框架产品 Rollkit 宣布推出比特币主权 Rollup,使用比特币作为数据可用性层。

Rollkit 是由 Celestia 开发的新框架,于 2 月 21 日推出,旨在模块化区块链的不同组件,使开发人员能够部署 Rollup,自定义和选择数据可用性层作为区块链数据的来源,以及处理交易的执行层。[2023/3/9 12:51:01]

之所以做这样的简化,主要有两个原因:

避免添加更多的L1复杂性。分片的规范已重写多次,许多研究都过于抽象乃至实现的日子遥遥无期,并且让L1变得僵化。

而如果能够巧用封装复杂性和应用区块链模块化结构,以太坊基础层作为rollup的数据可用性层,将计算的重任交给作为执行层的L2。这样L1只专注于解决数据问题,不同的rollup团队解决各自的开发问题,从而大大地提升扩容的效率。

封装复杂性和模块化在以太坊上的应用

模块化区块链是扩容中一个非常重要的概念。模块化意味着“封装复杂性”,这允许我们在不同的模块中添加可扩展性。根据Vitalik的文章《协议设计中的封装复杂性和系统复杂性权衡》中的解释,当一个系统包含着一些复杂的子系统,但对外提供一个简单的“接口”时,就会出现“封装复杂性”;当系统的不同部分甚至不能完全分离,并且相互之间具有复杂作用时,就会出现“系统复杂性”。

2020年10月,Vitalik发布了文章《以Rollup为中心的以太坊路线图》,确定了为L2rollup扩容协议保驾护航的基本思路:将执行层(L2)和数据层(L1)分离,以太坊共识层(L1)为其提供安全保障。

分离执行层和数据层的好处是,数据层的发展可以保持相对稳定,而执行层(即rollup)则可以更加多自主性、更加创新地快速迭代,无需获得L1核心开发者社区的的许可进行升级。

上面简单介绍了以rollup为中心的以太坊路线图中的区块链分层情况,那在PoW与PoS、L1与L2之间的模块化架构是怎样的呢?

模块化区块链网络 Dymension 已上线测试网 Dymension Hub 35-C:2月16日消息,使用 Cosmos 和 Celestia 技术的模块化区块链网络 Dymension 已上线测试网 Dymension Hub 35-C,近 100 个创世验证节点开始运行。此外,Dymension 的核心团队也已部署支持 IBC 的 rollup,使 35-C 成为模块化测试网,RollApp X 会将数据发布至 Celestia Mocha 测试网,并将状态更新发布到 Dymension Hub 35-C 测试网。

此前消息,Dymension 于 2 月 9 日完成 670 万美元种子轮融资,Big Brain Holdings 和 Stratos 领投。[2023/2/16 12:10:35]

cr:Protolambda

图中展示了合并前的单一型PoW链vs.合并后的L1共识层(PoS)和L1执行层(EVM)之间的模块化关系。而PoS和EVM之间的合并技术是通过一个叫做”EngineAPI“的东西实现的。下图是合并后完整客户端的样子,中间的API使得以太坊共识层(PoS)和执行层(PoW)之间可以实现通信。这是以太坊主网上的首个模块化设计。

cr:DannyRyan

那么L1和L2之间是如何连接的呢?

Lido V2引入Staking Router模块化架构,允许任何人创建Lido staking模块:金色财经报道,Lido发布推文称,作为Lido V2的一部分,引入了Staking Router模块化架构。Staking Router是一种升级,它将Lido staking operator registry转变为模块化 + 可组合的即插即用架构,允许Lido以更自下而上的理念转向更模块化的架构。任何人都可以提出一个模块,每个验证者池都被视为自己独立的模块。虽然Staking Router负责在所有模块之间分配资源,但每个模块都管理自己的内部运营商注册表、存储密钥以及参与者之间的权益 + 奖励分配。[2023/2/11 11:59:54]

cr:Protolambda

可以看到上图中,L1和L2之间会有一个API,它们分别是两套软件。

cr:Protolambda

这是以太坊加上欺诈证明和有效性证明之后的示意图,相当于将L2作为一个执行层连接以太坊EVM,然后你维持当前的L2执行层。但这也会有一个问题,因为就算可以堆叠执行层,但是这样效率不高,所以我们需要一个数据层。

Optimism推出模块化组件OPStack,支持构建自定义链“op-chains”:10月18日消息,以太坊二层解决方案Optimism推出模块化组件OP Stack,支持组装构建自定义链“op-chains”以适应任何用例,此外通过共享排序和消息传递层,未来“op-chains”之间的界限将会消失,形成一个单一的逻辑链“Superchain”,从而将集体的资源开放给插入“Superchain”的许多不同的“op-chains”。[2022/10/18 17:30:00]

cr:Protolambda

如上示意图,L1作为数据层,L2负责执行计算。

数据可用性是扩容的关键瓶颈

以太坊目前面临的一大瓶颈就是数据可用性,这是我们接下来一年里增加可扩展性所需要提高的范畴。

首先我们看一笔rollup交易包含哪些开销:

执行开销(网络中所有节点执行交易并且验证其有效性的开销)

存储/状态开销(使用新的值更新区块链“数据库”的开销)

数据可用性开销(将数据发布至L1的开销)

其中,前两笔开销都是Rollup网络上的花费,占总开销的比例非常低。而数据可用性开销才是扩容的关键瓶颈。

我们为什么需要这种数据呢?

保证数据的可用性可以让任何人都可以无需许可地重构状态。

L2提供的可扩展性是通过将执行检查和保证数据安全这两项工作分离而获得的。这让我们有机会同步以及获取验证状态的数据,而这个过程中定序器不会对其有直接影响。

目前,rollup上传数据到L1都是以calldata的形式。这种方式非常贵,calldata是一种没有修剪过的非常没有效率的数据形式,需要以一种迂回的方式将数据存放在以太坊,一个非0字节就需要花费16gas。所以出现了两种粗暴的降低这种开销的方法:

calldata压缩,不少rollup项目都已经开始研究压缩calldata的算法并集成到他们的系统中。

Router Protocol推出模块化跨链桥Voyager:金色财经报道,区块链通信基础设施Router Protocol今天宣布推出Voyager,这是一种具有增强的安全功能和快速交易速度的跨链桥。在Voyager上处理跨链转移逻辑的合约与处理储备资产的合约是分开的,从而最大限度地减少了额外的常见攻击向量。Voyager还使用链上验证,这比使用链下共识的协议更安全。除了大量的安全功能外,用户还可以利用网桥的高速性能——Voyager上超过50%的交易在不到一分钟的时间内处理完毕,80%的交易在不到两分钟的时间内完成。(cryptoninjas)[2022/7/1 1:42:59]

EIP-4488,将每个非0字节的calldata开销从16gas降低到3gas。

但是使用calldata的方式始终是不可持续的,因为这会带来L2不需要的遗留开销。那么有没有更优雅的方法呢?

数据可用性、数据可恢复性、长期数据可用性等等这些不同类型的名词,它们之间的差异就是可用性的时长各不同。譬如说,你希望这些数据的可用时间足够长来挑战定序者、重构状态。事实上,你不需要数据是永远可用的。在以太坊的假设中,存储超过一年的数据,用户可能在某个地方找到它,可能会将它同步到某个点,而不需要一直追溯到创世区块。

而EIP-4844这个提案则是让我们能够对数据做一些修剪,因为在这个提案下,数据只需要保留其可用性足够长的时间,让诚实的网络参与者重构完整状态并且挑战定序器。

EIP-4844Proto-danksharding

EIP-4844提议什么呢?

将数据可用性添加至以太坊且不会破坏可组合性,也就是说我们可以在L1有一个执行层,同时可以在上面添加数据可用性。

cr:Protolambda

如图所示,我们现在有L1共识层、L1执行层、L1数据层、L2执行层。在这样的分层架构下,我们获得了封装性,然后我们不同的团队可以针对不同的问题,并单独地提高某一层的可扩展性。

引入新的交易类型Blob-carryingTransaction

EIP-4844引入一种新的交易类型,这种交易类型与普通以太坊交易相比多了一个blob的位置用来存放L2的数据。比较独特的是,Blob数据在一个月之后就会被节点删除,从而很大地节省了存储空间。

那么我们如何添加这种数据呢?

图:一个“Blob”的生命周期,cr:Protolambda

我们称这种数据为“blob”,这是一种非常模糊的数据形式,类似于一种字符串。“Blob”会被附加到一笔交易中,这笔交易就像其他交易一样在以太坊系统中运行。

但附加的内容具有自己的生命周期。请看上图图示:首先,rollup运营者会纳入普通的交易,生成L2交易捆,目前是通过calldata的方式将交易batch直接发送至L1。而有了4844之后,新增了一种携带“blob”数据的交易类型“blob交易”。这个“blob交易”负责支付交易费,将承诺(commitment)包含进交易中以有效地证明该blob中存在的任意数据。但是附加的内容(即blob数据)本身是与“blob交易”分离的,可以把这种数据看作是一个挎斗(sidecar)。

(Sidecar在不改变主应用的情况下,会起来一个辅助应用,来辅助主应用做一些基础性的甚至是额外的工作。这个sidecar通常是和主应用部署在一起,所以在同样环境下运行。这其中还有一些性能上的考虑,sidecar如果和主程序网络通信上有延迟就会造成性能问题。这个辅助应用不一定属于应用程序的一部分,而只是与应用相连接。这就像是挎斗摩托车,每个摩托车都有自己独立的辅助部分,它随着主应用启动或停止。因为sidecar其实是一个独立的服务,我们可以在上面做很多东西,例如sidecar之间相互通信、或者通过统一的节点控制sidecar,形成网络服务ServiceMesh。来源:https://blog.csdn.net/lxlmycsdnfree/article/details/126286243)

blobdatavs.calldata

要想知道两者的区别,我们首先要了解以太坊合并前以及合并后的区块组成。

cr:DannyRyan

上图为合并后的信标区块,执行层被包裹在共识层里,而EL最核心的部分就是ExecutionPayload(执行负载)。

EL和CL分别负责两个主要功能,前者执行EVM,后者负责PoS共识。信标区块中包含EL?的ExecutionPayload,外层的状态根为信标链状态的更新,EL内的状态根则是EVM账户状态更新。

现在我们重新来看Calldata和blobdata之间的区别。

首先,这两种数据类型有不同的生命周期。Calldata存在于“executionpayload”中(普通的L1交易),而blob数据存储于共识层中。也就是说“blob”存储在一个Prysm节点或者Lighthouse节点中,而不是在Geth中。然后这些共识层节点会在特定一段时间之后对blob数据进行修剪。

“Blob”在网络的运作流程如下图所示:

cr:Protolambda

定序器提供数据->

L1敲定数据->

将Blobsidecar从Blob交易中分离出来->

Blob交易中的执行发生在ExecutionPayload中->

rollup验证状态所需要的数据则去到另一侧的数据库中,L2验证者可以下载这些sidecar并同步L2。

Blob有两个显著的特点:

第一就是不被合约读取,下图是一笔blob交易的样子,可以看到EVM不会读取blob。

cr:Protolambda

就像前面所介绍那样,blobdata存储在共识层节点中,和calldata需要被合约读取所消耗的资源相比要便宜得多。

第二就是,一个月后,共识层节点会对blob内的值进行删除。区块空间一直以来主要都由交易占用着,而随着L2的发展,L1基础层转而成为L2的数据层,calldat就会占用更多的区块空间。能够定期删除blob数据的话,可以很好地解决L1状态膨胀的问题。

总结

随着Rollup技术的逐渐完善,数据可用性成为各个解决方案更进一步扩容的瓶颈。而L1作为一个为Rollup保驾护航的基础层,它不仅可以为rollup提供安全保障,还可以充当rollup的数据层,让可扩展性实现指数级的提升。Proto-danksharding作为完整版Danksharding的前提条件,通过引入携带“blobdata”的交易类型这样的一个新设计,让基础层更无压力地存放L2数据,同时不影响数据可用性的安全性。

标签:ROLROLLBLO以太坊Control2XYBankRollBlockchain幸运以太坊币值多少钱

SOL热门资讯
金色观察 | 为什么每个人都在谈论Art Gobblers

文/SpartanLabs;译/金色财经xiaozou如果你在过去几天关注过NFT新闻,那你肯定听说过ArtGobblers。?那么,ArtGobblers是什么??它们是如何运作的?对NFT的未来又有什么影响?? 让我们来一探究竟.

1900/1/1 0:00:00
DAO 犯罪 是组织「背锅」还是成员「替罪」?

原文标题:《肖飒团队|DAO犯罪,是组织「背锅」还是成员「替罪」?》 撰文:?肖飒法律团队 图片来源:由无界版图AI工具生成随着信息技术的不断迭代优化以及科学技术的不断革新,新的产业形式新的社会关系正在不断形成.

1900/1/1 0:00:00
金色早报 | 美媒:特朗普或于当地时间7日晚宣布参加2024年总统选举

头条 ▌?CZ否认“与SBF开战”,称其公布清仓FTT的决策仅为回应市场猜测11月8日消息,Binance创始人CZ在社交媒体上发文表示,公布清仓FTT的事仅为回应市场上出现的猜测和疑问,该行为秉承公开透明的原则,并不是什么阴谋论.

1900/1/1 0:00:00
zkEVM战局简析:zkSync、StarkNet、Scroll和挑战者们

编者按:10月28日,由MatterLabs构建的以太坊扩容解决方案正式发布了zkSync2.0的第一阶段BabyAlpha,虽然出于测试需求,该网络暂时不会向外部参与者开放,但作为首个启动主网的EVM兼容型zk-rollup.

1900/1/1 0:00:00
金色观察 | FTX波及的机构有哪些 都损失了多少钱

文/ChasePeterson-Withorn,Forbes2021年6月,FTX从Paradigm、软银和红杉资本等风险投资者那里以180亿美元的估值筹集了10亿美元.

1900/1/1 0:00:00
如何发挥「NFT+DAO」的可组合性?

撰文:Kyle 来源:WebX实验室 NFT+DAO这样的想法目前对Web3可持续发展爱好者非常有吸引力,对于项目团队也是如此.

1900/1/1 0:00:00