引言
近期,以 ETH Layer 2 为首的 Optimism 和 zkSync, Polygon, Arbitrum, StarkNet 都相继推出了自己的 Stack 方案,都旨在构造一套开源的,模块化的代码,允许开发者定制属于自己的 Layer 2。
众所周知,当前的以太坊是出了名的低性能和高 Gas, OP, zkSync Era 等 Layer 2 的出现虽然解决了这些问题。但是不论是部署在 EVM 虚拟机上还是部署在 Layer 2 上,本质上都逃不过一个“兼容性”问题。这不仅是 Dapp 的底层代码要和 EVM 兼容,也是 Dapp 主权兼容。
第一部分是代码层面,由于EVM要照顾到部署在其之上各种多样的应用类型,所以在 Average User Case 上进行了优化,做到了兼顾所有类型的用户。但是对于部署在其之上的 Dapp 就没有那么友好,比如对于 Gamefi 的应用,会更加注重速度和性能;对于 Socialfi 的用户,可能会更注重隐私安全。但是由于 EVM 的一锅端性质,Dapp 必须得舍弃一些东西,这就是代码层面的兼容。
第二部分是主权层面,由于所有的 Dapp 都共享基础设施,所以出现了应用治理和底层治理两个概念,而应用治理无疑是受制于底层治理,有些 Dapp 的特定需求需要通过底层 EVM 升级的方式来支持,因此 Dapp 缺乏主权性。比如 Uniswap V4 的新功能需要底层 EVM 支持 Transient Storage, 依赖于 EIP-1153 加入坎昆升级。
为了解决上述问题以太坊 L1 低处理性能以及主权问题,Cosmos(2019年) 和 Polkadot(2020年)应运而生。两者都希望能够帮助开发构建自己的定制链,让区块链& Dapp 掌握主权自治,并实现高性能的跨链互操作性,实现一个全链互通网络。
在4年后的今天,L2s 们也相继推出自己的超链网络方案,从 OP Stack,到 ZK Stack,再有 Polygon2.0,Arbitrum Orbit 最后 StarkNet 也不甘落伍推出了 Stack 构想。
全链网络先驱 CP(Cosmos & Polkadot) 和百花齐放 L2s 们,会发生怎么样的碰撞和火花?为了给大家提供一个全面而深入的视角,我们将通过三篇文章系列来深度探讨这一主题。本篇,作为这个系列的第一章节,将对各家技术方案的进行梳理,第二章节将会对各自方案的经济模型、生态进行处理梳理,并总结出在 Layer 1 和 Layer 2 Stack 选择需要考虑的特点,最后一个章节,我们就 Layer 2 如何发展自己的超级链进行探讨,并对整个系列文章进行总结。
一. Cosmos
Cosmos 是一个独立的并行区块链的去中心化网络,通过提供通用的开发框架 SDK,使得开发人员可以轻松的构建自己的区块链,多个独立的,不同的应用特定的区块链相互链接,相互通信,从而形成一个可互操作和可扩展的全链网络。
1.结构框架
如前所述,当生态中拥有大规模的应用链,而每条链之间都是用 IBC 协议进行通信和传输Token,那么整体的网络就会像蜘蛛网一样繁琐且难理清。
所以为了解决这个问题,Cosmos 提出了一个分层架构, 其中包含两类区块链: Hubs(中心枢纽链)和 Zones(区域链)。
Zones 是常规的应用链, Hubs 是专门为将 Zones 连接在一起而设计的区块链,主要服务于Zones 之间的通信。当一个 Zone 创建与 Hub 的 IBC 连接时,Hub 可以自动访问 (即发送和接收) 连接到它的所有 Zone,这样的结构极大的降低了通信复杂度。
此外需要注意的是,Cosmos 和 Cosmos Hub 是两个完全不同的东西,Cosmos Hub 只是其中的一条链,存在与 Cosmos 生态中,主要作为 $ATOM 的发行者和通信中心。你可能会将 Hub 理解成生态的中心,但其实任何链都可以成为 Hub。如果 Hub 成为了生态的中心,这其实是和 Cosmos 的初心相违背的。因为 Cosmos 本质上是致力于每条链自治,拥有绝对的主权,如果以 Hub 作为权力中心,那么主权就不再称为主权。所以在理解 Hub 时,需要格外注意这一点。
2.关键技术
2.1 IBC
IBC(Inter-Blockchain Communication),即跨链通信,它允许异构链之间相互转移 Token 和数据。Cosmos 生态系统中,SDK 底层框架是相同的,必须使用 Tendermint 共识引擎。但是,异构性仍然存在,因为链在框架内可能具有不同的功能、用例和实现细节。
那么如何实现异构性质的链之间的通信呢?
只需要共识层面具有最终确定性即可。最终确定性(Instant Finality)是指只要有1/3以上的验证者都是正确的确定的,那么区块就不会分叉,可以确保交易一旦出块就是最终的。不论异构链在应用案例和共识方面有什么差异,只要保证他们的共识层面都满足最终确定性,那么链与链之间的互操作就有统一的规则进行确定。
以下是一个跨链通信的基本流程,假设要从A链转移10个$ATOM到B链:
-
跟踪(Tracing):每个链运行着一个其他链的轻节点,所以每条链都可以验证其他的链。
-
绑定(Bonding): 先将A链上的10个 $ATOM 锁定,用户无法使用,并发送锁定证明
-
锁定证明(Relay):AB链之间有个中继器,来发送锁定证明
-
验证(Validation): 在B链针对A链的区块进行验证,如果是正确的,那么就会在B链上创建10个 $ATOM。
此时 B 链上的 $ATOM 并不是真的 $ATOM,只是作为一个凭证,A 链上锁定的 $ATOM 无法使用,B 链上的可以正常使用。当用户消耗掉 B 上的凭证之后,A 链上的锁定的 $ATOM 也会被销毁。
然而,跨链通信所面临的最大挑战不是如何将一条链上的数据在另一条链上表示出来,而是如何处理链分叉和链重组这样的情况。
因为 Cosmos 的每条链上都是独立自治的个体链,都有自己专属的验证者。所以很有可能会存在分区作恶,比如 A 链向 B 链传输消息,那么就需要提前验证一下 B 链的 Validators 再决定是否要信任该链。
举个例子,假设图中的小红点代表着一种 ETM 的代币,且 ABC 三个分区的用户都想要使用 EVMOS 来运行分区内的 Dapp,因为通过跨链通信进行了资产转移,都收到了 ETM。
如果此时 Ethermint 分区发动双花攻击,那么 ABC 分区无疑会收到影响,但也仅局限于此。剩余与 ETM 无关的网络不会收到任何攻击,这也是 Cosmos 保证了,即使发生了这种的恶意信息传输,却仍然无法影响整个网络。
2.2 Tendermint BFT
Cosmos 采用 Tendermint BFT 作为 Cosmos 的底层共识算法和共识引擎,将区块链的底层基础设施和共识层合并打包成通用的引擎的解决方案,并利用 ABCI 技术,支持将任何编程语言进行封装,从而适配底层的共识层和网络。因而开发者可以自由选择任何他们喜欢的语言。
2.3 Cosmos SDK
Cosmos SDK 是 Cosmos 推出的模块化框架,简化了在共识层上构建 Dapp 的操作。开发者可以轻松的创建特定的应用/链,不需要重新开始编写每个模块的代码,极大的减轻了开发压力,并且现在已经允许开发人员将部署在 EVM 上的应用移植到 Cosmos 上。
Source:https://v1.cosmos.network/intro
除此之外,利用 Tendermint 和 Cosmos SDK 构建的区块链也在做引领行业发展的新生态和新技术,例如隐私链 Nym,提供数据可用性的 Celestia 等等。正是由于 Cosmos 提供的灵活性和易用性,使得开发者能够专注于项目的创新,而无需考虑重复的工作。
2.4 Interchain Security & Account
1) Interchain Security
因为 Cosmos 不同于以太坊生态,有 L1 和 L2,Cosmos 生态中的每条应用链都相互平等,不存在递进或者上下层关系。不过也由于这个原因,链间安全性没有以太坊那样完善。在以太坊中,所有交易的最终确定性都由以太坊确认,继承了底层安全性。但是对于自行构建安全性的单体区块链而言,应该如何维护安全性呢?
Cosmos 推出了 Interchain Security,本质上是通过共享大量现有节点,从而实现共享安全性。比如单体链可以和 Cosmos Hub 共享一组验证节点,为单体链产生新区块。节点由于同时服务于 Cosmos Hub 和单体链,因而可以收到两条链的费用和奖励。
Source:https://medium.com/tokenomics-dao/token-use-cases-part-1-atom-a-true-staking-token-5fd21d41161e
如图所示,原本 X 链内部产生的交易由X的节点进行产生区块,进行验证。如果和 Cosmos Hub($ATOM) 共享节点,原本 X 链上产生的交易,将由 Hub 链的节点进行验证计算,为 X 产生新区块。
按理来说,选择拥有大量节点,较为成熟的链比如 Hub 链,是共享安全的首选。因为如果要攻击此类链,攻击者们需要拥有大量的 $ATOM 代币进行质押,增加了攻击难度。
不仅如此, Interchain Security 机制也极大的降低了新链的创建壁垒。一般而言,一条新的链如果没有特别优秀的资源,可能需要花费大量的时间吸引验证者,培养生态。但是在 Cosmos 中,因为可以和 Hub 链共享验证者,所以这极大的减轻了新链的压力,加速了发展进程。
2) Interchain Account
在 Cosmos 生态中,因为每条应用链都自行治理,所以应用程序不能相互访问。因而 Cosmos 提供了一个跨链账户,允许用户直接从 Cosmos Hub 直接访问所有支持 IBC 的 Cosmos 链,这样用户就可以在 A 链访问 B 链的应用,实现全链交互。
二.Polkadot
和 Cosmos 一样,Polkadot 致力于构建一个基础设施,能够让开发自由部署新的链,并实现链与链之间的互操作性。
1.结构框架
1.1中继链:
中继链也可称之为主链,可以理解为太阳系中的太阳,作为整个网络的核心部分,所有的分支链都围着它转。如图所示,一条中继链(Relay Chain)上链接了许多功能不一的链如交易链、文件存储链、物联网链等等,
Source:https://medium.com/polkadot-network/polkadot-the-foundation-of-a-new-internet-e8800ec81c7
此为 Polkadot 的分层扩展方案,一个中继链链接着另外一个中继链,实现无限的可扩展性。(注:在今年6月底,波卡创始人 Gavin 提出了波卡2.0,或将改变一种新的理解波卡的角度。)
1.2平行链:
中继链有若干个平行链插槽(Para-Chain Slots),平行链通过这些插槽与中继链相连,如图所示:
Source:https://www.okx.com/cn/learn/slot-auction-cn
不过想要获得插槽,参选的平行链必须抵押他们的 $DOT。一旦获得插槽,平行链就可以通过这个插槽与 Polkadot 主网进行交互,共享安全性。值得一提的是,插槽数量有限,逐步增长,初期预计会支持100个插槽,并且插槽会按照治理机制周期性重新洗牌分配,以维持平行链生态的活跃性。
获得插槽的平行链可以享受波卡生态的共享安全以及跨链流动性。同时平行链也要为波卡主网提供一定的收益与贡献作为回报,比如承担网络的大部分交易处理。
1.3平行线程:
平行线程是与平行链相类似的另一种处理机制,不同点在于,平行链一条一个插槽,有专用的插槽,可以持续不间断地运行。但是平行线程,是指在平行线程之间共享插槽,轮流使用这个插槽来运行。
当一个平行线程获得了插槽使用权,就可以暂时像平行链一样工作,处理交易,生成区块等。 但是当这个时间段结束后,就要释放插槽,让其他平行线程使用。
所以平行线程不需要长期抵押资产,只需要在获取每个时间段时支付一定的费用,所以可以说是一种按需支付的方式来使用插槽。当然,如果一个平行线程得到了足够多的支持和投票,就可以升级成为平行链,获得固定的插槽。
平行线程相比于平行链而言,成本较低,降低了 Polkadot 的进入门槛,但是无法保证什么时候能获得插槽使用权,不太稳定。所以更适合哪些临时使用或者新链的测试,那些希望能够稳定运行的链,还是需要升级成为平行链。
1.4转接桥:
平行链之间的通信只要通过 XCMP(后文会介绍)就可以实现,并且他们之间共享安全性,共识也相同。那么如果是异构链呢?
在这里需要注明的一点是,虽然 Substrate 提供的框架使得接入波卡生态的链都是同构,但随着生态的发展,必然会有一些发展成熟,体系庞大的公链也想参与到生态之中。如果让他们重新只用 Substrate 重新部署,基本不太可能。所以如果实现异构链之间的消息传输?
以一个生活中的例子举例,苹果手机如果想通过连接向安卓手机传送文件,插口不一样所以需要转化器连接,这就是转接桥的实际作用。它是中继链与异构链(外部链)之间的中介的平行链,在平行链和异构链上部署智能合约,让中继链能够与外部链进行交互,实现跨链的功能。
2.关键技术
2.1 BABE&Grandpa
BABE(Blind Assignment for Blockchain Extension)是 Polkadot 的出块机制。简单来说,它会随机选择验证者来生产新区块,每个验证者会被分配到不同的时间槽中。在这个时间槽内,只有被分配到这个槽的验证者可以出块。
补充说明:
-
时间槽是区块链出块机制中用于划分时间序列的一种方法,区块链会被划分为以固定间隔出现的时间槽。每个时间槽代表一段固定的出块时间。
-
在每个时间槽 Interval 内,只有被分配到该时间槽的节点才能出块
换句话说,就是一个专属时间段。在时间段1中,被分配到这个时间段1的验证者1负责出块。每个验证者一个时间段,不能重复出块。
这样的好处就是,随机分配最大化了公平性,因为每个人都有机会被分配。而且由于时间槽已知,大家可以提前准备,不会出现意外的出块。
通过这种随机分配的出块方式,保证了 Polkadot 生态运行的有序和公平,那么如何保证区块都采用一样的共识呢?接下来,我们将介绍 Polkadot 的另外一个机制:Grandpa
Grandpa 是一个最终确定区块的机制,它可以解决 BABE 出块时可能出现的,由于共识不同导致的分叉问题。比如 BABE 节点 1 和节点 2 在同一时段出了不同的块,这就出现了分叉。这个时候 Grandpa 就会起作用,它会询问所有的验证人:你们认为哪条链更好?
验证人会看两条链,投票选择他们认为更好的那条链。得到最多投票的那条链,最终会被Grandpa 确认,成为最终链,被否决的链会被抛弃不要。
所以 Grandpa 就好像所有的验证人的“祖父”一样,起到了最终决定者的作用,消除了 BABE 可能带来的分叉风险。它让 Blockchain 能够最终确定一个所有人都认可的链。
综上而言,BABE 负责随机生产区块,Grandpa 负责选择最终链。 两者一起协作,使得波卡生态可以安全运行。
2.2Substrate
Substrate 是一个利用 Rust 语言编写,由 FRAME 提供底层可拓展的组件,以此允许 Substrate 支持各式各样的不同的 Use Case 的开发框架。任何使用 Substrate 构建的区块链不仅与 Polkadot 原生兼容,可以与其他平行链共享安全性,并发运行,也支持开发者自行构建专属的共识机制、治理模型等等,根据开发者的需求不断更迭。
此外,Substrate 在自我升级时提供了很大的便利,因为其在运行时,是一个独立的模块,可以与其他的组件分离开来。因而,在更新功能时可以直接替换掉这个正在运行的模块。而作为共享共识的平行链,只要和中继链保持网络、共识同步,就可以直接更新运行逻辑而不用产生硬分叉。
2.3XCM
如果用一句话来解释 XCM 的话,那就是:一种跨链通信格式,允许不同的区块链进行交互。
例如波卡有很多平行链,如果平行链 A 想跟平行链 B 通信,它就需要用 XCM 格式打包信息。XCM 就像一种语言协议,大家都使用这种协议来沟通,就可以无障碍地交流了。
XCM 格式(Cross-Consensus Message Format),是波卡生态中用于跨链通信的标准消息格式,并且由其衍生出3种不同的消息传递方式:
-
XCMP(跨链消息传递):开发中。消息可以直接传输或通过中继链转发,直接传输速度更快,通过中继链转发更可扩展但会增加延迟。
-
HRMP/XCMP-lite(水平中继路由消息传递):使用中。是 XCMP 的简化版替代方案,所有消息都存储在中继链上,目前承接主要的跨链消息传递工作。
-
VMP(垂直消息传递):开发中。是在中继链与平行链之间垂直传递消息的协议,消息存储在中继链上,由中继链解析后传递。
举个例子,由于 XCM 格式中包含多种信息,比如要转账的资产数量、接收账户等。在发送消息的时候,HRMP 通道或者中继链会传递这种 XCM 格式的消息。另一条平行链收到消息后,会检查这个格式是否正确,然后解析出消息内容,然后按照消息中的指令去执行,比如转账资产给指定账户,这样就实现了跨链交互,两条链成功通信了。
XCM 这样的通信桥梁对于波卡这样的多链生态是非常重要的。
了解完 Cosmos 和 Polkadot 之后,相信对这两者的愿景和框架有所了解。那么接下来我们会详细解释下 ETH L2s 各自推出的 Stack 方案到底是什么?
三. OP Stack
1.结构框架
据官方文档描述,OP Stack 是一系列组件构成,由 OP Collective 维护,先以主网背后的软件形式出现,最终以 Optimism 超级链及其治理的形式出现。利用 OP Stack 开发的 L2 可以共享安全性、通信层和通用开发堆栈。并且开发者可以自由定制链,以服务于任何特定的区块链用例。
从图中我们可以了解,OP Stack 的所有超链,都会通过 OP Bridge 超级链桥进行通信,并以以太坊作为底层的安全共识依托,构建超级 L2 链,并将每条超链的内部结构划分为:
1)数据可用层:使用 OP Stack 的链可以使用这个数据可用性模块来获取其输入数据。因为所有的的链都是从这一层拿数据,所以该层对安全性有重大影响,如果无法从其中检索某条数据,则有可能没办法同步链。
从该图中可以看到,OP Stack 中使用以太坊和 EIP-4844,换句话而言,本质上还是用以太坊区块链上访问数据。
2)排序层:Sequencer 决定了如何收集用户交易并将其发布到数据可用层上,在 OP Stack 中,使用单个专门排序器进行处理。不过这样可能会导致排序器不能过长的保留交易,在未来 OP Stack 会将排序器模块化,让链可以轻松改变排序器机制。
在图中可以看到一个单排序器和多排序器,单排序器可以让链制定任何人在任何时间充当 Sequencer (风险较高),多排序器是从一组预定义的可能参与者中进行选择。那么如果选择多排序器,各个基于 OP Stack 开发的链都可以明确选择。
3)派生层:该层决定了如何处理数据可用性的原始数据的经过处理的输入,并通过以太坊的 API 传输到执行层。从图片中可得,OP Stack 用 Rollup 和索引器(Indexer)构成。
4)执行层:该层定义了 OP Stack 系统内的状态结构,当引擎 API 从派生曾收到输入时,就会触发状态转化。从图中可以看出是在 OP Stack 下,执行层是 EVM。不过稍微修改了下版本,也可以支持其他类型的 VM, 例如 Pontem Network 计划用 OP Stack 开发一条 Move VM 的 L2。
5)结算层:顾名思义是用于处理区块链中提取资产的情况,但是这样的提款需要向某个第三方链证明目标链的状态,然后根据状态进行处理资产。核心在于,允许第三方链了解目标链的状态。
一旦交易在相应的数据可用性层上发布并最终确定,该交易也在 OP Stack 链上最终确定。如果不破坏底层数据可用性层,就无法再对其进行修改或删除。可能这笔交易还没有被结算层接受,因为结算层需要能够验证交易结果,但交易本身已经是不可变的。
这同时也是一种异构链的机制,异构链的结算机制不一,因而在 OP Stack 中,结算层是只读的,允许异构链根据 OP Stack 的状态做出决策。
在这层我们看到 OP Stack 用了 OP Rollup 中的故障证明。提议者可以提出他们质疑的有效状态,如果在一段时间内没有被证明是错误的,那么就会自动被视为正确。
6)治理层:从图片中可以看到 OP Stack 中用多重签名 + $OP 代币进行治理。通常多重签名是用于管理 Stack 系统组件的升级,当参与者都参与签名了之后就会执行操作。$OP 代币持有者可以对社区 DAO 进行投票参与治理。
OP Stack 像是 Cosmos 和 Polkadot 的结合体,可以像 Cosmos 一样自由化定制专属链,也可以又像 Polkadot 一样共享安全性和共识。
2.关键技术
2.1 OP Rollup
OP Rollup 通过数据可用性挑战来确保安全性,允许并行执行交易,以下为具体的实现步骤:
1)用户在 L2 上发起交易
2)Sequencer 会批量打包处理,然后将处理完的交易数据和新的状态根同步到,其部署在 L1 上的智能合约,进行安全验证。需要注意的是,Sequencer 在处理交易时,同时会生成自己的状态根,同步到 L1 上。
3)验证完毕之后,L1 将数据和状态根返回给 L2,用户的交易状态得到安全验证和处理。
4)此时,OP Rollup 将 Sequencer 生成的状态根视为乐观的,正确的。并且会开放一个时间窗口,验证者可以去挑战验证 Sequencer 生成的状态根与交易的状态根是否匹配的上。
5)如果时间窗口期间,没有验证者验证,那么交易会自动被视为正确的。如果被验证出恶意欺诈,那么处理交易的 Sequencer 会受到对应的惩罚。
2.2跨链桥接
a)同L2消息传递
由于 OP Rollup 使用的是故障证明,所以交易需要等待挑战才能完成,这个过程耗时较长,用户体验度较低。但是 ZKP(零知识证明)成本较高且容易出错,并且实现批量化的 ZKP 还需要一定时间。
因而为了解决 L2 OP 超链之间的通信问题,OP Stack 提出了模块化证明:对同一条链使用两个证明系统,利用构建 L2 Stacks 的开发人员可以自由选择任意的桥接类型。
目前 OP 提供的有:
-
高安全、高延时防故障(标配高安全桥)
-
低安全性、低延迟防错(短挑战期实现低延迟)
-
低安全性、低延迟有效性证明(使用可信链证明者代替 ZKP)
-
高安全性、低延迟的有效性证明(ZKP 准备好后)
开发可以根据自身链的需求因地制宜的选择桥接重点,比如对于高价值资产可以选择高安全性的桥接...多样化的桥接技术允许不同链之间的资产和数据高效移动。
b)跨链交易
传统的跨链交易是异步完成的,这意味着交易很可能不能完整的执行。
OP Stack 针对该类问题,提出了共享排序器的想法。比如一个用户想要执行跨链套利,那么A 链和 B 链上共享 Sequencer,就可以对交易的时序达成共识,当交易都上链之后才会支付费用,两边的 Sequencer 共同承担风险。
c)超链交易
因为以太坊 L1 的数据可用性的扩展力不够(容量有限),因而想要把交易发布到超级链上是不可扩展的。
因而在 OP Stack 中,提出了利用 Plasma 协议来扩展 OP 链可以访问的数据量,可以代替 DA (数据可用性)补充更多的 L1 数据。将交易数据可用性下沉到 Plasma 链,只在 L1 上记录数据承诺,大大提高了可扩展性。
四. ZK Stack
1.结构框架
ZK Stack 旨在与 zkSync Era 相同的底层技术(ZK Rollup)构建的一套开源、可组合性、模块化的代码,允许开发者自行定制属于自己的,由 ZK 驱动的 L2 和 L3 超链。
由于 ZK Stack 是免费和开源的,开发人员可以自由地根据自己的特定需求定制超链。无论是选择与 zkSync Era 并行运行的第 2层网络,还是在其之上运行的第3层网络,定制的可能性都将是广泛的。
据 Matter Labs 称,从选择数据可用性模式,到使用项目自己的 Token 去中心化排序器,创建者享有完全的自主权,来定制和塑造链的各个方面。
当然,这些 ZK Rollup 超链独立运行,但仅会依赖以太坊 L1 来实现安全性和验证性。
Source: zkSync Document
由图可知,各个超链都必须使用 zkSync L2 的 zkEVM 引擎,共享安全性。多个 ZKP 链并发运行,并将区块证明聚合在 L1 的结算层,这样就像堆积木一样,可以不断的扩展,构建更多的L3,L4...
2.关键技术
1)ZK Rollup
ZK Stack 底层以 ZK Rollup 作为核心技术,以下为主要的用户流程:
用户提交自己的交易,Sequencer 把交易集合成有序的批次中,并自行生成有效性证明(STARK/SNARK),进行状态更新。更新完的状态会提交给部署在 L1 上的智能合约,并进行验证。如果验证通过,那么 L1 层的资产状态也会更新。ZK Rollup 的优势在于,有能力通过零知识证明进行数学验证,在技术和安全性层面更高。
2)超链桥
如上述所示的结构框架,ZK Stack 可以实现无线扩展,不断的生成L3, L4等等。那么应该如何实现超链之间的互操作性呢?
ZK Stack 引入了超链桥,通过在L1上部署共享桥的智能合约,从而验证超链上发生的交易的Merkle 证明,本质上和 ZK Rollup 一致,只不过由原本的 L2-L1,变成了从 L3-L2。
ZK Stack 支持各条超链上的智能合约,跨链异步调用彼此,用户可以在几分钟内以无需信任的方式快速转移他们的资产,并且不会产生任何额外的成本。举个例子,为了在接收超链 B 上处理消息,发送超链 A 必须一直最终确定其状态,直至作为 A 和 B 共同基础的最早的超链。因而在实践中,超桥接的通信延迟只是几秒钟的问题,超链可以每秒完成块并且更便宜。
Source:https://era.zksync.io/docs/reference/concepts/hyperscaling.html#l3s
不仅如此,并且由于 L3 就可以利用压缩技术,将证明打包。L2 会进一步的扩大打包,这样就形成了更加可观的压缩倍数,形成更低的成本(递归压缩),就可以实现实现无需信任、快速(几分钟内)和廉价(单笔交易成本)的跨链互操作。
五. Polygon 2.0
Polygon 是一种特殊的 L2 解决方案,从技术上来说其实是 L1,作为以太坊的侧链。Polygon 团队近期宣布了 Polygon 2.0 计划,通过使用ZK支持开发者创建自己的 ZK L2 链,通过新颖的跨链协调协议进行统一,让用户感觉整个网络就像使用一条链。
Polygon 2.0 致力于支持无限数量的链,并且跨链交互可以安全、即时地发生,无需额外的安全或信任假设,以此实现无限的可扩展性和统一的流动性。
1.结构框架
Source: Polygon Blog
Polygon 2.0 由 4 个协议层组成:
1)质押层
质押层是基于 PoS(权益证明)的协议,它利用质押 $MATIC 来实现去中心化治理,来高效治理验证者和提高矿工效率。
从图中可以看出,在质押层 Polygon2.0 提出了,验证者管理器以及 Chain Manager。
-
验证者管理器:是来管理所有的 Polygon2.0 链的一个公共验证者池子。包括对于验证者的注册,质押请求,解除质押请求...可以想象为验证者们的行政部门。
-
Chain Manager:是来管理每条 Polygon2.0 链的验证者集,与前者相比更专注于链的验证管理,因为每条 Polygon 链都有其 Chain Manager 合约,而不像验证者管理器是一个公共服务。主要专注于每条对应链的验证者数量(关系到去中心化的级别),验证者的附加要求,其他条件等等。
质押层已经帮每条链制定好了对应的规则的底层架构,开发者们只要专注于自己链的开发即可。
Source: Polygon Blog
2)互操作层
跨链协议对于整个网络的互通有无是至关重要的,如何安全无缝的进行跨链消息传递是每个致力于超链方案都应该不断完善的。
目前 Polygon 采用了聚合器(Aggregator)和消息队列两种合约进行支持。
-
消息队列:主要针对当前已经存在的 Polygon zkEVM 的协议进行了改造升级。每条 Polygon 链都以固定格式维护本地的消息队列,这些消息包含在由该链生成的 ZK 证明中。一旦ZK证明在以太坊上得到验证,那么来自该队列的任何消息都可以由其接收链和地址安全地使用。
-
Aggregator:聚合器的存在是希望能够在 Polygon 链和以太坊之间提供更加高效的服务。比如,将多个 ZK 证明聚合为一个 ZK 证明并将其提交给以太坊进行验证,以减少存储费用,提高性能。
一旦 ZK 证明被聚合器接受,接收链就可以开始乐观地接受消息,因为接收链都相信 ZK 证明,这样就实现了无缝消息传递等等。
3)执行层
执行层使得任何的 Polygon 链都能够生成批量的有序交易,也称区块。大多数区块链网络(以太坊、比特币等)都以类似的格式使用它。
执行层有多个组件,比如:
-
共识:使验证者们达成一致的共识
-
Mempool:收集用户提交的交易并在验证者之间同步,用户也可以在 mempool 中查看自己的交易状态。
-
P2P:使验证者和全节点能够发现彼此并交换消息;
-
...
鉴于该层已商品化,但实现起来相对复杂,现有的高性能实现(例如 Erigon)应尽可能重用。
4)证明层
证明层为每条 Polygon 生成证明,是一种高性能、灵活的 ZK 证明协议,通常有以下几个组件:
-
通用证明器(Common Prover):高性能 ZK 证明器,提供一个干净的接口,旨在支持任意交易类型,即状态机格式。
-
状态机构造器(State machine constructure):用于定义状态机的框架,用于构建初始 Polygon zkEVM。该框架抽象化了证明机制的复杂性,简化成易于使用的,模块化的接口,允许开发者自定义参数,构建自己额大型状态机。
-
状态机(State machine):对证明者正在证明的执行环境和交易格式的模拟。状态机可以使用上述构造器来实现,也可以完全自定义,例如使用 Rust。
2.关键技术
Source: Polygon Blog
1) zkEVM validium
在 Polygon2.0 更新中,团队将原本的 Polygon POS 保留的同时,将其升级为 zkEVM validium。
Source: Polygon Blog
在这里简单的科普下,Validium 和 Rollup 都属于 Layer 2 解决方案,目的是为了扩大以太坊的交易容量和缩短交易时间。两者相比下:
-
Rollup 是把许多交易打包起来,然后作为一个 batch 提交到以太坊主链上,利用以太坊来发布交易数据并验证证明,从而完全继承了其无与伦比的安全性和去中心化性。不过将交易数据发布到以太坊,成本昂贵并且限制了吞吐量。
-
Validium 则不需要提交全部交易数据到主链。它使用零知识证明(ZKP)来证明交易是有效的,交易数据在链外提供。同时保护用户的隐私。但是 Validium 需要信任执行环境,相对中心化一些。
可以理解为,Validium 是费用更低,可扩展性越强的 Rollup。不过在升级前的 Polygon zkEVM(Polygon POS机制),其运行原理就是(ZK) Rollup,也取得了不菲的成绩。上线仅 4 个月的时间,其 TVL 就已经飙升到 3300 万美金。
Source: Defilama
基于 Polygon PoS 的 zkEVM 从长期来看,其生成证明的成本可能会成为未来扩容的阻力。虽然 Polygon 团队一直致力于降低 Batch 的成本,已经将其降低至:证明 1000 万个交易的成本仅为 0.0259 美元这样极其可观的数据。不过 Vailidium 的成本更低,为什么不用呢?
Polygon 官方已经发布文档,在未来的版本中,Validium 会承担之前 POS 的工作,同时也会保留 POS,其 POS 验证者的主要作用就是保证数据可用性和对交易进行排序。
升级后的 zkEVM Validium 将提供非常高的可扩展性和非常低的费用。因为其本身就非常适合进行大交易量,低交易费的应用程序,例如 Gamefi、Socialfi和 DeFi等等。对于开发者而言,不需要任何的操作,只需要跟着主网一起更新就可以完成 Validium 的更新。
2) zkEVM rollup
目前,Polygon PoS(即将升级成 Polygon Validium) 和 Polygon zkEVM Rollup 是 Polygon生态系统的两个公共网络。升级后情况仍然如此,两个网络都使用前沿 zkEVM 技术,一个作为汇总,另一个作为验证,带来了额外的好处。
Polygon zkEVM Rollup 已经提供了最高级别的安全性,但代价是费用稍高和吞吐量有限。不过它非常适合处理高价值交易且安全性优先的应用程序,例如高价值的 DeFi Dapp。
六. Arbitrum Orbit
Arbitrum 作为当前最主要的 L2 公链,自 2021 年 8 月上线以来,TVL 已经超过51亿美金,作为头部 L2 占据了将近54%的市场份额。
Arbitrum 于今年3月发布了 Orbit 版本,在此前 Arbitrum 发行了系列的生态产品:
-
Arbitrum One : Arbitrum 生态系统的第一个和核心主网 Rollup。
-
Arbitrum Nova:这是 Arbitrum 的第二条主网 Rollup,面向那些对成本敏感且对交易量要求很高的项目。
-
Arbitrum Nitro:这是为 Arbitrum L2 提供支持的技术软件栈,使 Rollup 能够更快、更便宜和更兼容 EVM。
-
Arbitrum Orbit:在 Arbitrum 主网之上创建和部署 L3 的开发框架。
今天我们将重点介绍 Arbitrum Orbit。
1.结构框架
原本开发者如果想要利用 Arbitrum Orbit 创建 L2 网络,比如先发出提案,由 Arbitrum DAO 投票决定,如果通过,则一条新的 L2 链就产生了。不过,在 L2 上再开发 L3,4,5…就无需许可了,任何人在 Arbitrum L2 上提供一个部署定制链的无许可框架。
Source:Whitepaper
可以看到,Arbitrum Orbit 也力图于让开发者,通过基于 Layer 2 比如 Arbitrum One, Arbitrum Nova, 或者 Arbitrum Goerli 来定制属于自己的 Oribit L3 链。开发者可以自定义本链的隐私协议,许可证,代币经济模型,社区管理等等,最大程度上给到开发者自治权力。
其中,较为值得注意的是,Oribit 允许 L3 链用本链的 Token 作为费用结算单位,从而有效发展自己的网络。
2. 关键技术
1)Rollup & AnyTrust
这两种协议分别支持 Arbitrum One 和 Arbitrum Nova,如之前介绍 Arbitrum One 是一个核心主网 Rollup;Arbitrum Nova 是第二条主网 Rollup,只不过接入了 AnyTrust 协议,可以通过引入“安全假设”(Trust Assumption) 来加快结算并降低成本。
其中 Arbitrum Rollup 是 OP Rollup,因而就不过多解释,我们将针对于 AnyTrust 协议进行详细分析。
AnyTrust 协议主要是管理数据可用性,并且是被一些列的第三方机构如 DAC (Data Availability Committee)。并且通过引入“安全假设” 来极大的降低交易费用。AnyTrust 链以侧链的形式在 Arbitrum One 上,以更低成本和更快的交易速度运行。
那么,到底什么是安全假设“Trust Assumption”? 为什么它的存在可以降低交易成本并需要更低信任?
根据 Arbitrum 的官方文档表示,AnyTrust 链由节点委员会运营,通过最小假设判断有多少委员会成员是诚实的。比如委员会由 20 个人,并且假设至少由 2 个成员是诚实的。相比于 BFT 需要 ⅔ 成员诚实而言,AnyTrust 确实将信任门槛降到最低。
在一笔交易中,由于委员会会承诺提供交易数据,所以节点就可以不用在 L1 上记录 L2 交易的所有数据,只需要记录交易批处理的哈希值,这样就可以极大节省了 Rollup 的成本。这也是为什么 AnyTrust 链可以降低交易成本。
针对于信任问题,如之前所述,假设 20 个成员中只要 2 个是诚实的,并且假设成立的话。只要 20 名委员会成员中有 19 名成员签署承诺这笔交易的正确性,就可以安全地执行。那么就算没签名的那名成员是诚实的,已签名的 19 名中一定有 1 个成员是诚实的。
假设成员不签名或者为数不少的成员拒绝合作导致无法正常运行该怎么办?AnyTrust 链依然可以运行,只不过它会退回到原先的 Rollup 协议,数据依然发布在以太坊 L1 上。当委员会正常运行,链会切换回更便宜和更快的模式。
Aribtrum 之所以推出该协议,是希望能够满足那些需要高处理速度和低成本的应用比如 Gamefi 领域的需求。
2)Nitro
Nitro 是 Arbitrum 技术的最新版本,其主要元素是验证器(Prover),通过 WASM 代码对 Arbitrum 进行传统的交互式欺诈证明。并且其各个组件都已经完备,Arbitrum 已于22年8月底完成了升级,将现有的 Arbitrum One 无缝迁移/升级到 Aribitrum Nitro。
Nitro 有以下几个特点:
-
两阶段处理事务:用户的交易被先被整合成单个有序序列,然后 Nitro 提交该序列,按照顺序进行处理交易,并实现确定性状态转换。
-
Geth:Nitro 采用当前支持率最高的以太坊客户端 Geth( go-ethereum) 来支持以太坊的数据结构、格式和虚拟机,可以更好的兼容以太坊。
-
分离执行与证明:Nitro 采用相同的源代码并将其编译两次,一次编译为本机代码以在 Nitro 节点中执行交易,再次编译为 WASM 用于证明。
-
带有交互式欺诈证明的OP Rollup:Nitro 使用 OP Rollup,包括 Arbitrum 首创的交互式欺诈证明将交易结算到第 1 层以太坊链。
Oribit 这些特点为 Arbitrum 的 L3,L4 用例提供了技术支持,Arbitrum 可以吸引那些寻求可定制化的开发者,创建自己的定制链。
七. Starknet Stack
StarkWare 联合创始人 Eli Ben-Sasson 在巴黎 EthCC 大会上表示,Starknet 即将推出 Starknet Stack,允许任何应用程序以无需许可的方式部署自己的 Starknet 应用链。
Starknet 中的 STARK 证明,Cairo 编程语言,和本机账户抽象等等关键技术为 Starknet 的高速发展提供了动力保证。当开发者利用 Stack 定制自己的 Starknet 应用链,其可扩展,可自由配置可以极大的扩大网络吞吐量,缓解主网的堵塞状况。
虽然目前 Starknet 只是初步的构想,还未发布官方的技术文档。不过 Madara Sequencer 和 LambdaClass 分别正在开发于 Starknet 兼容的 Sequencer 和 Stack 组件,以更好地与 Starknet适配。官方也正在为即将到来的 Starknet Stack 做努力,包括正在开发全节点/执行引擎/验证这等等组件。
值得注意的是,前不久 StarkNet 提交了一份“简单去中心化协议”提案,希望可以改变 L2s 当前的单点运营 Sequencer 的现状。以太坊去中心化,但 L2s 可不是,其 MEV 收入使得Sequencer 变质。
StarkNet 在提案中列举了一些方案比如:
- L1 Staking 和 Leader 竞选:社区成员可以无需许可在以太坊 Staking,以加入 Staker 集合。再根据集合资产分布和 L1 链上随机数,随机抽取一组 Staker 作为 Leader 负责一个 Epoch 的出块。这不仅降低了 Staker 用户门槛,其随机性也能有效防止 MEV 灰色收入。
- L2 共识机制:基于 Tendermint,由 Leader 作为节点参与的拜占庭共识证明共识机制。共识确认之后由 Voter 执行,Proposer 调用 Prover 生成 ZKP。
此外还有 ZK 证明进行,L1 状态更新等等的方案,结合之前就支持社区无需许可运营 Prover 代码这以重大举措,StarkNet 这份提案力图于解决 L2 不够去中心化,并尝试平衡区块链不可能三角问题,实属瞩目。
Source:https://starkware.co/resource/the-starknet-stacks-growth-spurt/
八、结束语
本章节通过对 CP 与各大 Layer 2 Stack 的技术讲解,其实可以发现当前的 Layer 2 Stack 方案在能有效地解决以太坊的扩容问题,也带来了一系列的挑战和问题,尤其是在兼容性方面。 L2s 的Stack 方案中的技术没有 CP 那样成熟,甚至 CP 三四年前的技术构想仍值得当前的 L2s 借鉴。所以在技术层面,当前 CP 仍然远超Layer 2。不过光有超前的技术也不行,在接下来的第二篇,我们将从代币价值,生态发展层面展开,讨论在 CP 与 L2 Stacks 们的各自优劣和特点,完善读者们的视角。
参考资料:
https://medium.com/@eternal1997L
https://tokeneconomy.co/the-state-of-crypto-interoperability-explained-in-pictures-654cfe4cc167
https://research.web3.foundation/Polkadot/overview
https://foresightnews.pro/article/detail/16271
https://messari.io/report/ibc-outside-of-cosmos-the-transport-layer?referrer=all-research
https://stack.optimism.io/docs/understand/explainer/#glossary
https://www.techflowpost.com/article/detail_12231.html
https://gov.optimism.io/t/retroactive-delegate-rewards-season-3/5871
https://wiki.polygon.technology/docs/supernets/get-started/what-are-supernets/
https://polygon.technology/blog/introducing-polygon-2-0-the-value-layer-of-the-internet
https://era.zksync.io/docs/reference/concepts/hyperscaling.html#what-are-hyperchains
https://medium.com/offchainlabs
声明:本报告是由 @sldhdhs3,@GryphsisAcademy 的学员,在@Zou_Block 和 @artoriatech. 的指导下完成的原创作品。作者自行对所有内容负责,该内容并不必然反映 Gryphsis Academy 的观点,也不必然反映委托撰写报告的组织的观点。编辑内容和决策不受读者的影响。请知悉,作者可能拥有本报告中提到的加密货币。本文件仅供信息参考,不应作为投资决策的依据。强烈建议您进行自己的研究,并在进行投资决策之前咨询中立的财务、税务或法律顾问。请记住,任何资产的过去表现并不保证未来的回报。