详解区块链模块化堆栈 OP Stack 以及实现逻辑

@Yyy1092422472热度: 30002

OP stack 将不同的功能层级进行解耦,并以API 软件堆栈的形式把所有层级组合起来,极大地简化了模块化区块链构建的流程。

原文作者:@Yyy1092422472

原文来源:Twitter

以太坊二层扩容解决方案 @optimismFND 提出了宏大的发展蓝图,高度可拓展、可互操作的区块链模块化堆栈—— OP Stack. 但目前的一些介绍文档比较晦涩难懂,很多人并不理解OP Stack 是什么以及它到底想做什么? 此推文旨在用通俗的语言讲清楚OP Stack是什么,以及它的实现逻辑。

Rollup

分层架构

简单来讲,OP Stack是为了实现模块化区块链架构的软件堆栈,也是 @optimismFND 探索模块化从理论到实践的伟大实现路径尝试。 @optimismFND 把区块链细分为以下3大功能层级:共识层、执行层和结算层。 而共识层下又分为数据可用性(DA)层和推导(Derivation)层。

Rollup

DA 层

数据可用性层,顾名思义,即数据存放的地方,更具体地,是blobs的有序数列。 一些DA层的例子:如以太坊DA以calldata 函数形式存在于链上,@CelestiaOrg 有单独的数据可用性层等。 DA函数实现:转化成字节流数据以供解析。

Rollup

推导层

推导层也是OP Stack 的重要结构之一,它能够根据DA 层和当前的Rollup 状态进行解析,生成负载以供Layer 2 执行。 L1 上的任何相关信息都能通过derive 函数整合成负载。当然也存在着L1 上没有发布任何交易的情况,此时函数输出null.

Rollup

执行层

执行层的函数实现即状态交易函数(STF: State Transaction Function)的实现。 基于初始状态和推导层产生的负载,执行层通过execute 函数实现Rollup 状态的更新。

Rollup

the loop of STF 推导层和执行层是共同运行、相辅相成的,形成一个循环往复的环状结构。 如果L1 上没有发布新数据,derive 函数输出null, 重新执行该流程直到产生负载。 执行层函数通过负载进行状态更新,更新后的状态又作为初始状态进入到derive 函数。

Rollup

结算层

结算层的作用是对交易进行验证并生成承诺,获取L2的状态跟。 具体的函数实现形式也非常直白,Valid 函数基于Rollup 的初始状态和更新状态,DA, 推导和执行函数,以生成布林值。DA 通过getBlobByIndex 函数获取。 此处的证明机制可以是OP 的欺诈证明,也可以是zk 的有效性证明。

Rollup

总结:

OP stack 将不同的功能层级进行解耦,并以API 软件堆栈的形式把所有层级组合起来,极大地简化了模块化区块链构建的流程。

从理论上讲,OP Stack 能构建任何基于其API 的模块化区块链。开发者也无需从0到1构建区块链,基于OP Stack 现成的代码库能实现模块化区块链的快速部署。

模块化堆栈给开发人员带来了更大的自主性,能够切换、替换、修改不同模块层级,就像切换API 一样。

具体的应用如某条链可以把DA 层由以太坊替换成 @CelestiaOrg 实现DA 层分离,执行层的欺诈证明模块切换成有效性证明实现OP rollup 向zk Rollup 的转换。

@optimismFND 提出区块链的终局既非多链也非单链结构,而是由一组高度集成的OP Stack 链组成的“超级链”结构。

未来,通过共享消息传递格式,基于OP Stack 的链能够进行相互通行,实现互操作性,从而实现“超级链”的愿景。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:Rollup