六大类链下扩容深度解析

关键词:区块链 33748 2022-11-30

撰文:Ellaine Xu、Hettie Jiang、June Wang、Walon Lin、Yiliu Lin

来源:Cobo Ventures

图片来源:由无界版图 AI 工具生成。

1. 扩容的必要性

区块链的未来是一个宏大的愿景:去中心化、安全性和可扩展性;但通常区块链只能实现其中两个,同时满足这三个要求被称为区块链的不可能三角问题(如下图所示)。多年来,人们一直在探索如何解决这一难题,如何在保证去中心化和安全性的前提下,提高区块链的吞吐量和交易速度,即解决扩容问题,是当前区块链发展过程中讨论的热点话题之一。

让我们先笼统地定义区块链的去中心化、安全性和可扩展性:

去中心化:任何人都可以成为节点参与区块链系统的生产和验证,节点数量越多,则去中心化程度越高,从而确保网络不受一小群大型中心化参与者的控制。安全性:为了获取区块链系统控制权所付出的成本越高,则安全性越高,那么链就可以抵抗较大比例的参与者对其的攻击。可扩展性:区块链处理大量交易的能力。

比特币网络的第一次重大硬分叉就是源于扩容问题。随着比特币的用户数量和交易量的增多,每个区块上限为 1MB 的比特币网络开始面临拥堵问题;2015 年开始,比特币社区就扩容问题存在分歧,一方是以 Bitcoin ABC 为代表的支持扩大区块的扩容派,另一方是以 Bitcoin Core 为代表的小区块派,认为应当使用隔离见证 Segwit 方案去优化主链结构。2017 年 8 月 1 日,Bitcoin ABC 自行开发至 8MB 的客户端系统开始运行,导致了比特币历史上第一次重大硬分叉的出现,同时也由此诞生了新币种 BCH。

同样,以太坊网络也是选择牺牲了一部分可扩展性,用来保障网络的安全性和去中心化;虽然以太坊网络并未像比特币网络一样通过限制区块大小来限定交易量,而是变相转变为对单一区块可容纳的燃料费设置上限,但是目的都是为了实现 Trustless Consensus 并确保节点的广泛分布(无论取消还是提高限额都会淘汰很多带宽、存储和计算量不足的较小节点)。

从 2017 年的 CryptoKitties,DeFi summer、再到后来 GameFi 和 NFT 等链上应用的兴起,市场对吞吐量需求不断增加,但即使是图灵完备的以太坊每秒也只能处理 15~45 笔的交易(TPS),这导致的结果是交易成本不断增加,结算时间变长,大部分 Dapps 难以承受运行成本,整个网络对于用户而言也变的又慢又贵,区块链扩容问题亟待被解决。理想状态下的扩容方案是:在不牺牲去中心化和安全性的前提下,还能尽可能提高区块链网络的交易速度(更短的 finality time)和交易吞吐量(更高的 TPS)。

2. 扩容方案的类别

我们按照「是否改变一层主网」作为标准,把扩容方案分为链上扩容和链下扩容两大类。

2.1 链上扩容

核心概念:通过改变一层主网协议达到扩容效果的解决方案,目前的主要方案是分片。

链上扩容有多种方案,此篇文章不进行展开,以下简要列举两种方案:

方案一是扩大区块空间,即增加每个区块打包的交易数量,但这会提高对高性能节点设备的要求,提高节点的加入门槛,降低了「去中心化」程度。方案二是分片,将区块链账本分成若干部分,不再是每个节点参与所有记账,而是由不同分片即不同节点负责不同记账,并行计算可以同时处理多个交易;这样可降低节点计算压力和加入门槛,提高交易处理速度和去中心化程度;但这意味着全网算力被分散,会降低整个网络的「安全性」。

改变一层主网协议的代码可能会产生难以预料的负面影响,因为底层任何细微的安全漏洞都会严重威胁整个网络的安全性,网络可能会被迫进行分叉或中断修复升级。例如,2018 年的 Zcash 的通胀漏洞事件:Zcash 的代码是基于比特币 0.11.2 版本代码修改的,2018 年一位工程师发现其底层代码存在高危漏洞,即代币可无限增发,随即团队花了 8 个月的时间进行秘密修补,漏洞修复后才公开这一事件。

2.2 链下扩容

核心概念:不改变现有一层主网协议的扩容解决方案。

链下扩容方案又可以细分为 Layer2 和其他方案:

注:表格内的术语定义来自以太坊官网,内容由 Cobo Ventures 总结梳理。

下面我们将从发展时间线、技术原理、优缺点和应用对比等方面展开介绍目前主流的链下扩容方案。

3. 链下扩容的方案

3.1 State Channels

3.1.1 概要

状态通道规定只有在通道打开、关闭或解决纠纷时,用户才需要与主网进行交互,并把用户与用户的交互放在链下进行,以此来降低用户交易的时间和金钱成本,并且实现交易次数不受限制。

状态通道是简单的 P2P 协议,适合「基于回合的应用程序」,例如,两人国际象棋游戏。每个通道都由主网上运行的多签智能合约管理,该合约控制存入通道的资产,验证状态更新,并仲裁参与者之间的争议(根据带有签名和时间戳的欺诈证明)。参与者在区块链网络部署合约后,存入一笔资金并锁定,双方签名确认后,通道正式开通。通道允许参与者之间进行不限次数的链下免费交易(只要他们的转账净值不超过存入的代币总额)。参与者轮流发送状态更新给对方,等待对方的签名确认。一旦对方签名确认,这笔状态更新就算完成。正常情况下,双方同意的状态更新不会上传主网,只有在出现争议或关闭通道时,才会依赖主网确认。需要关闭通道时,任一参与者可在主网提出交易请求,如果退出请求获得全员一致签名批准,则链上立即执行,即智能合约根据通道最终状态下每个参与者的余额,分发剩余的锁定资金;如果其他参与者没有签名批准,则所有人需等待「挑战期」的结束才能收到剩余资金。

综上,状态通道方案可以大大减少主网计算量,提升交易速度,降低交易成本。

3.1.2 时间线

上图时间线展示了 State Channels 的发展和演变的主要里程碑。

2015/02,Joseph Poon 和 Thaddeus Dryja 发布了闪电网络白皮书草案。2015/11,Jeff Coleman 首次系统性总结了 State Channel 的概念,提出比特币的 Payment Channel 是 State Channel 概念中的一个子案例。2016/01,Joseph Poon 和 Thaddeus Dryja 正式发表白皮书《The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments》提出比特币闪电网络的扩容方案 Payment Channel(支付通道),该方案仅用于处理比特币网络上的转账支付。2017/11,第一个基于 Payment Channel 框架下的有关 State Channel 的设计规范 Sprites 被提出。2018/06,Counterfactual 提出了一个非常详细的 Generalized State Channels 设计, 这是第一个完全与状态通道相关的设计。2018/10,文章 Generalised State Channel Networks 提出 State Channel Networks 和 Virtual Channels 的概念。2019/02,状态通道的概念扩展到 N-Party Channels,Nitro 是首个基于该想法建立的协议。2019/10,Pisa 为了解决所有参与者需要持续在线的问题,拓展了 Watchtowers 的概念。2020/03,Hydra 提出 Fast Isomorphic Channels。

3.1.3 技术原理

Source: L. D. Negka and G. P. Spathoulas, "Blockchain State Channels: A State of the Art" in IEEE Access, vol. 9, pp. 160277-160298, 2021, doi: 10.1109/ACCESS.2021.3131419.

图 1 展示的是传统链上的工作流程:Alice 和 Bob 与部署在主网上的智能合约进行交互,用户通过向链上发送交易来改变智能合约的状态。缺点是会带来上面讨论的时间和成本问题。

Source: L. D. Negka and G. P. Spathoulas, "Blockchain State Channels: A State of the Art" in IEEE Access, vol. 9, pp. 160277-160298, 2021, doi: 10.1109/ACCESS.2021.3131419.

图 2 展示的是大多数状态通道协议遵循的一般工作流程:乐观情况下,Alice 和 Bob 需要执行与之前相同的操作,但这次他们使用状态通道,而不是与链上合约进行交互。

第一步,Alice 和 Bob 通过从其个人 EOA 存入资金到链上合约地址(交互 1,2),这些资金被锁定在合约中,直到通道关闭时才将余额返回给用户;二人签名确认后,二人之间的状态通道正式开通。第二步,Alice 和 Bob 通过该通道理论上可在链下开展不限次数的交易(蓝色虚线),参与者通过加密的签名消息相互通信(而不是与区块链网络通信)。双方用户都需要对每笔交易进行签名,以防止双花作恶。通过这些消息,他们提出自己账户的状态更新,并接受对方提出的状态更新。第三步,如果 Alice 想关闭通道结束和 Bob 之间的交易,Alice 需要向合约提交自己账户的最终状态(交互 3),如果 Bob 签名批准,合约则会根据最终状态将锁定的资金释放返回对应用户(交互 4,5)。如果 Bob 未响应签名,合约则会在挑战期结束后将锁定的资金释放返回对应用户。

Source: L. D. Negka and G. P. Spathoulas, "Blockchain State Channels: A State of the Art" in IEEE Access, vol. 9, pp. 160277-160298, 2021, doi: 10.1109/ACCESS.2021.3131419.

图 3 显示的是悲观情况下状态通道的工作流程:起初,两个参与者存入资金(交互 1,2),然后开始交换状态更新(蓝色虚线)。假设在某个时间点,Bob 在他的轮次中不响应 Alice 发送来的状态更新签名(交互 3),此时,Alice 可以通过向合约提交自己最后一次的有效状态来发起挑战(交互 4),这个有效状态也包含了 Bob 之前的签名,从而证明最后一笔交易已经收到 Bob 的批准,最后状态已经收到 Bob 的确认。然后,合约允许 Bob 在一段时间内通过将下一个状态提交给合约进行响应;如果 Bob 响应,则二人可以继续在状态通道内进行交易;如果 Bob 在该时间段内没有响应,则合约自动关闭状态通道并将资金返回给 Alice(交互 5)。

3.1.4 优缺点

3.1.5 应用

比特币闪电网络

概述:

闪电网络是比特币网络的小额支付通道,其整体技术演变经历:2/2 多签构建单向支付通道,增加 RSMC(Revocable Sequence Maturity Contract)后可构建双向支付通道,再增加 HTLC(Hash Time Lock Contract) 后可连接支付通道拓展到多人支付,最终构建支付网络即闪电网络。通过链下小额支付通道,然后借助中间人构成交易网络,可以解决比特币网络扩容问题。闪电网络的整体使用遵循着「存款(建立通道)→ 闪电网络交易(更新通道状态)→ 退款 / 结算(结束通道)」的流程;理论上闪电网络每秒可以处理一百万笔交易。

时间线:

2015 年 2 月,Joseph Poon 和 Thaddeus Dryja 发布了闪电网络白皮书的草稿;2016 年 1 月发布正式版白皮书并成立了 Lightning Labs;2018 年 3 月 15 日,Lightning Labs 发布第一个闪电网络主网版本 Lightning Network Daemon (LND) 0.4 版本。2021 年初,闪电网络的公共容量(TVL)只有约 4000 万美元,约不到 10 万用户使用闪电网络。2021 年 6 月,萨尔瓦多宣布采用比特币作为法定货币,9 月发布基于闪电网络的钱包 Chivo。2022 年,Cash App 和包括 OKX、Kraken、Bitfinex 在内的 26 个加密货币交易平台宣布支持闪电网络,实现即时且便宜的的 BTC 存取款和转账功能。2022 年 10 月,Lightning Labs 发布了基于 Taproot 的新协议——Taro protocol(alpha 版本 ),目前正在测试网上进行测试,未来将可用于在比特币网络上铸造、发送和接收资产,并通过闪电网络执行即时、大容量和低费用的交易。2022 年 11 月 23 日,根据 1ml.com,闪电网络共有 76,236 个支付通道,通道资金 5049 $BTC($81.8M)。

生态发展:

Source:https://blog.coinbase.com/is-the-bitcoin-lightning-network-for-real-26e47029687f

如上图所示,BTC 闪电网络生态从下到上依次为:底层的 BTC 网络—核心基础设施—各种 Dapps。

核心基础设施包括

闪电网络解决方案:个人和企业可以运行、连接到闪电网络的软件程序,其中所占市场份额最大的是闪电实验室 Lightning Labs。节点和流动性服务:因为用户独立运行自己的节点较为复杂,需要提供对用户较为友好的界面,帮助管理闪电支付渠道。

核心基础设施之上是各种支付和金融服务以及应用程序,例如,Strike 建立在 LND 解决方案之上允许用户买卖 BTC,在 Twitter 上使用 BTC 打赏创作者和允许 Shopify 商家接受 BTC 等。

截止 2022 年 11 月,基于比特币闪电网络的 Dapps 已增涨至超 20 个类别和 100 多个应用,应用类别主要包括比特币闪电网络支付、钱包、节点管理、浏览器扩展程序、播客和流媒体等。当前与节点基础设施相关的技术基础层已经基本成熟,钱包支持增加,金融服务和支付集成继续增长,更多的娱乐应用在闪电网络上构建,闪电网络生态系统正在蓬勃发展。

以太坊雷电网络

概述:

雷电网络是基于以太坊的小额支付通道,与闪电网络非常相似,都是通过建立状态通道的方式来对链上交易进行拓展,目的是在以太坊上实现近乎即时、低费用和可扩展的 ERC20 代币支付。

时间线:

2017 年成立,创始人 Heiko Hees 曾是以太坊的核心开发者以及顾问。2017 年 10 月 17 日以荷兰拍卖形式为其代币 $RDN 发起了 ICO,筹集了超过 3000 万美元。2020 年 5 月第一个 Raiden Light Client - Alderaan 在以太坊主网上线,是基于 Typescript 的雷电网络的实现;2021 年底,由于长时间缺乏开发进展、信息披露和用户使用情况,多个交易所将 $RDN 摘牌,包括 Bitkub,NiceHash 和 Binance。

目前这项技术未获得广泛采用,原因包含:

1)使用门槛过高:以太坊上的 Gas 费用过高时,开启通道的成本过高,这成为采用 Raiden 网络的一大障碍。

2)更先进的扩容技术出现:Raiden Network 于 2015 年开始研发,当时是以太坊唯一的扩容方案。但目前出现了 Rollup 等更好的扩容方案,导致 Raiden Network 本身的用例受限。

生态发展:

目前雷电网络的生态发展缓慢,团队正在改造 Raiden Network,使其运行在以太坊 Layer2 Rollup 网络上,从而进一步降低创建 State Channel 的 Gas 费用;2022 年 5 月团队宣布 Raiden Network 在 Arbitrum 上线,成为一个 rollup native protocol,L2 之上运行的 L2;该方案把初始创建通道的费用降低了 35%,使其更适用于高频小额支付场景;雷电网络未来将以 Rollups 为中心进行转变,作为与 Rollups 共存的补充方案。

Celer Network

概述:

Celer Network 本质上是一个增加了激励层(代币 $CELR)的闪电网络,可通过链外扩展技术和激励性经济模型构建快速、易于使用、低成本和安全的高频交互类型的区块链 Dapps,如电子竞技平台等。因为其用户入场费和奖金的发放有极高的交互频率,非常适合状态通道技术的应用。

假设 Alice 和 Carl 之间通过状态通道进行下棋游戏,二人需要首先在主网存款创建通道,链下有一个管理游戏规则的合约,并且该合约的地址会在有条件的支付中被引用,举例,「如果合约判定 Carl 赢得游戏,Alice 将支付 Carl1 美元」;每个链下合约都有一个唯一可识别的链下地址,只有在需要时合约才在区块链上进行部署,并且由内置的链下地址转换器分配对应的链上地址,其他合约或对象可以明确的引用它。二人之间所有的游戏状态转换(账户余额)经双方签名确认,也都发生在链下,这些状态在需要时(出现争议时)可在链上验证。通过 Celer Network 提供的链下地址转换器OAT(Off-chain Address Translator),每一个链下地址可以唯一映射一个链上的智能合约;因此,Alice 和 Carl 之间的游戏,只要双方持续合作,没有争议产生,整个游戏(合约 + 状态)都无需上链操作。

Source: https://www.celer.network/doc/CelerNetwork-Whitepaper.pdf

如上图所示,Celer Network 基于以太坊实现的链下扩容框架由三层组成,从下到上为:

cChannel:广义状态通道和侧链套件cRoute:链下支付路由,使用的创新路由算法 DBR(Distributed Balanced Routing)提高了性能cOS:链下应用程序的开发框架和运行环境

时间线:

2018 年创立,团队成员来自 MIT、Princeton、UCBerkeley 和 UIUC 的计算机博士。2019 年 3 月,代币 $CELR 在币安 Launchpad 发布。2019 年 7 月,Celer Network 在以太坊主网上线,发布世界上第一个 Generalized State Channel Network;同时上线电子竞技游戏平台 CelerX,CelerX 是 iOS 和 Android 上第一个 L2 Dapp,其用户可以通过 Celer Pay 进行即时零手续费支付,畅玩各种技能类游戏。

生态发展:

随着区块链生态系统朝着多链发展,状态通道被赋予桥接 Layer1 和 Layer2 的新使命。Celer Network 扩展了其广义状态信道网络的核心技术,转变为支持跨链的 L2 扩容聚合平台,目前已推出的产品包含 DeFi 协议 Layer2.finance,信息跨链协议 Celer IM 和资产跨链桥 cBridge。cBridge 已支持多达 139 种 token 和 38 条链。

2022 年 11 月 11 日,MetaMask Bridges Beta 集成 cBridge,11 月 17 日 cBridge 的总交易数达到 1M,当日同时宣布 cBridge 和 Celer IM 集成 zkSync 2.0 测试网。

3.1.6 应用比较

3.2 Sidechains

3.2.1 概要

侧链的概念首次于 2012 年比特币开发人员在聊天室中被提出,而第一篇关于比特币的侧链文章是由一位 Blockstream 的研究员撰写并于 2014 年出版。

2014 年的论文当中提出,侧链是为了加快比特币交易而出现的一种区块链形态,可以使用更复杂的合约,或是通过改善共识机制(如 PoS),或是区块参数让侧链符合特定作用。侧链的交易结果最终在传送回主链时,会记录在验证者端。这种区块链模式并非新的区块链形态,而是附着于主链上并协助主链解决问题的基础建设。

3.2.2 时间线

2012/01,比特币侧链的概念在聊天室中被提出2014/10,比特币侧链的论文初次发表:Symmetric Pegged and Asymmetric Pegged2017/04,POA Network 基于以太坊 Proof of Authentication 共识的一条侧链上线测试网2017/10,Matic Network 启动2017/12,POA Network 主网上线2018/01,Skales 测试网上线2018/10,xDai Chain 测试网上线2020/06,Skale 主网上线2020/06,以太坊侧链 Matic PoS Chain 主网上线2021/02,Matic Network 品牌更名为 Polygon Network2021/02,Axie Infinity 游戏侧链 Ronin 主网开始运行2021/12,xDai Chain 与 Gnosis Dao 合并成 Gnosis Chain2022/03,POA Network 合并入 Gnosis Chain

3.2.3 技术原理

在侧链的技术原理当中,2014 年的论文提到双向锚定(Symmetric Pegged)与不协调锚定(Asymmetric Pegged)两种方式让侧链可以与主链进行沟通。双向锚定或不协调锚定的讯息传递只会在主链跟侧链的代币进行跨链时发生。由于侧链用到了跨链技术,因此,下文会先行讨论两种最根本的跨链技术原理,然后讨论侧链技术在应用层面的优缺点。

Symmetric Pegged

双向锚定(Symmetric Pegged)是指主链上(Parent Chains)跟侧链上的验证者,彼此都实时记录对方当前的状态(区块头信息)。在信息传递时,双向锚定会运用双向 SPV(Simplified Payment Verification)的技术。当主链的 token 要发送到侧链上时,会产出一个 special output(SPV-Locked Output),而只有侧链上的验证者可以用 SPV 证明解锁。SPV 技术是指只保留区块头信息,而从全节点获取 merkle proof 来验证交易的技术。

主要流程:

用户将原生资产发送给 SPV-Locked Output(一个特殊地址)。 等待 confirmation peirod,结束后即可向侧链提交 SPV 证明,侧链可以依据此准备发出链上资产。           

SPV 证明用于验证交易是否已经发生。它包括一个展示工作证明的区块头列表以及一个加密证明(Merkle proof),证明一个输出(SPV-Locked Output)是在列表中的一个区块中创建的。

用户继续等待 contest period,以避免双花攻击。如果有人在此期间提交重组证明(reorganisation proof),其中包含了一个有更多总工作的链,而不包括创建 SPV-Locked Output 的区块,则之前的 SPV 证明无效。所有确认程序完成后,用户即可在侧链上使用新铸的封装资产。

Source:https://blockstream.com/sidechains.pdf

Asymmetric Pegged

Asymmetric Pegged 是 2014 年最早提出侧链的论文当中提及的第二个方式,主要分成 forward 端与 backward 端的交易。在 Asymmetric Pegged 中,侧链的 validators 必需实时监控主链的活动,因此当主链需要将代币打给侧链时,侧链可以主动记录(forward transaction)。然而,当侧链需要将代币打回主链时,则会发生主链因为没有记录侧链信息,而无法确认侧链区块状态的问题。

因此,在这个状况下 Asymmetric Pegged 就必须引入 Certifiers 的机制,将

Smart ContractID,EpochID 与验证者 IDBackward 转移的名单验证者取款名单错误报告名单聚合所有签名

记录在 Certifiers 当中,通常 Certifiers 都需要 stake 固定资产以确保 Certifiers 不会破坏系统,这些 Certifiers 就会负责验证侧链传回的 backward transaction,并经由 aggregated signature 签名后送回主链。

然而随着目前的技术演进,越来越多的侧链会选择使用第三方公证人(Proof of Authority, PoA)的机制,让多个具名节点针对合约锁定与释放的通讯(主网的区块头信息)验证,以确代币锁定与铸造价值相等;或是使用 Relayers 建立中间层让侧链可以通过中间层确认主链的区块状态。

简单来说侧链的机制可以总结为:

资产从主链 -> 侧链:主链锁定资产,侧链生成 wrapped asset( 由共识机制保证所有节点同意生成);资产从侧链 -> 主链:侧链销毁 wrapped asset,主链解锁资产。

可见,侧链上资产的安全性,并非取决于主链,而是取决于侧链的安全性,再进一步说是侧链的共识机制。如果有人设法「凭空」在侧链上创造了与锁定在主链上的资产不符的资产,继而在侧链销毁这些资产,再向主链提出解锁并不属于他们的资产,会有窃取资金的风险。

3.2.4 优缺点

3.2.5 应用

xDai ( 现今更名为 Gnosis Chain)

概述:

代币 $xDai 的产生来自于以太坊上的 $Dai 被锁定在代币桥上,因为 $xDai = 1USD,这使得 xDai 上的交易手续费容易被计算。xDai 的验证模式采用 PoSDAO 的模式,是通过质押的方式成为节点,质押者可以获得固定的 APR 15%,即 $xDai 的年通膨率为 15%。

时间线:

2018 年 9 月,xDai 正式主网上线2021 年 11 月,Gnosis DAO 上的 GIP16 投票通过并购 xDai 的提案2022 年 4 月,xDai 与 Gnosis 正式合并且更名为 Gnosis Chain(xDai 与 Gnosis 合并的主要原因在于 Gnosis 这间公司希望可以基于 xDai 給自己生态系具备更多开发场景。)

Source: https://forum.gnosis.io/t/gip-16-gnosis-chain-xdai-gnosis-merge/1904

Gnosis Chain 目前的跨链的方式是部署节点在主链与侧链上,而主链上的验证者是通过 committee 选举出来的 certifiers,换言之 Gnosis Chain 目前是采用 asymmetric pegged 的模式并使用 PoA 的选举完成。

生态发展:

目前 Gnosis Chain 的 TVL 在 Defi Llama 的排名为第二十,拥有~$53mil 的 TVL,让人最熟悉的项目是 Dark Forest。在 Defi Llama 的收录中,目前 Gnosis Chain 共有 35 个进行中的项目,其中头部项目分布在 Defi 与跨链桥领域。

Polygon

概述:

2017 年,Matic Network 成立。2020 年 6 月同时主网发布以太坊侧链——Matic PoS Chain 和 Matic Plasma Chain(在 3.3.5 有详述),2021 年品牌升级为 Polygon。其实 Polygon 被定义为是 L2 还是侧链一直以来都存在较大的争议,原因是虽然 Polygon 创始人认为他们是一种 L2 扩容方案,但因为 Polygon 拥有自己的验证模型,其安全性与以太坊主网不同,另外技术上以太坊如果停摆,Polygon 仍然可以运行,所以在此定义 Polygon 是一个侧链。

但以 Polygon 的未来路线图来说,创始团队希望把 Polygon 逐渐往 L2 靠拢。2022 年,Polygon 在 BD 层面迅速与许多 web2 巨头公司开展合作(如 Reddit,Disney 和 Instagram) 并且开启 Hermez zkEVM 以及 Polygon Zero 的计划,逐渐朝着路线图上的目标迈进。

Polygon 有四层:以太层、安全层、Polygon 层、执行层。

Source:https://research.thetie.io/polygon-matic-research

以太层:该层是以太坊与 Polygon 沟通层,是信息交换的中间站,让 Polygon 可以有质押、解决纠纷与传递消息。(relayer 的官方性)安全层:使用 PoS 的节点对 Polygon 保证安全,并收取费用Polygon 层:Polygon 运行的最基础必要层,用来运行区块并进行交易整理与共识演算。执行层:读取与执行 Polygon 链中的移转和交易,由执行环境进行。

时间线:

2017 年 Matic Network 成立。2020 年 6 月 Matic Pos Chain 主网发布。2021 年 2 月品牌更名为 Polygon。2022 年 Polygon 宣布与 Reddit,Instagram, Disney 和 Starbucks 开展商业合作。

生态发展:

由于 Polygon 的低成本、EVM 兼容与速度快的特性,Polygon 在 2021 年发展迅速,开始在上面出现各种应用,目前的 TVL 从四月的 $110million 到现今已经 $1.07billion。生态系已经有超过 200 个项目部署,但没有太多的明星项目的诞生。

Ronin

概述:

Ronin 是一条因为 Axie Infinity 游戏爆红而产生的侧链,在 2021 年 3 月时主网上线。Axie Infinity 一开始部署在以太坊主网上,但因为以太坊高成本的交易手续费与时常拥堵的问题让 Axie Infinity 的进一步发展受到限制,因此 Axie Infinity 就开发出专门的侧链解决方案 Ronin。

Ronin 的主要特性为:快速与无缝交易,大幅度减少 Gas Fee,会把得到的 Gas Fee 用来作为锦标赛奖金,资产可以退回以太坊主网与钱包订制化的解决方案。在跨链桥被黑客攻击前,Ronin 有 $1.4billion 的锁仓量,同时内建的 NFT Marketplace 也紧追在 Looksrare 后面,可以说是承袭了 Axie Infinity 能量的一条侧链。目前上面的应用只有 Katana DEX 一个,作为 Ronin 上的代币交换平台。

Ronin 的验证机制是 PoA(Proof of Authority),有别于 PoS 可以容纳 128 个验证节点,PoA 至多只能包含 25 个节点,相较起来量体更小。节点大部分为战略性伙伴或是知名 VC:如 Binance,AnimocaBrands,SparqVenture,Ubisoft 等。有别于 PoS,PoA 是以自身名誉为担保进行的验证模块,更像是联盟链通过权威型机构来进行认证,因此验证速度与 Gas Fee 的 re-allocate 上可以有比较好的分配与调整。

时间线:

2021 年 3 月 Ronin 主网上线。2022 年 3 月 Ronin 被黑客攻击,黑客通过控制 9 个节点当中的其中 5 个节点(为 Axie Infinity 母公司)来不断盗取资金,最终让 Ronin 陷入整条链资产被掏空的困境。2022 年 4 月币安领投并注入资产让 Ronin 能够重启。2022 年 8 月 Ronin 增加 3 个 PoA 节点以提高安全性。

生态发展:

目前仅有 Axie Infinity 相关生态系会需要使用,被黑客攻击前的 DEX 和 Bridge 基本都是为了 Axie Infinity 的游戏内需而部署。

3.2.6 应用比较

3.3 Plasma

3.3.1 概要

Plasma

Plasma 本身指的是一个构建可扩展 Dapp 的框架,开发者可以使用其提供的工具进行开发。Plasma 是作为侧链的演化方案出现的,旨在将用户对侧链 Operator 的信任降至最低,即使 Operator 作恶,Plasma 也可以防止用户资金被盗。Plasma 的基本原则是,如果 Plasma 链上出现安全故障,所有用户的资产仍可以撤出 Plasma 链并退回到主网。

Plasma 链

Plasma 链,也被称为「子链」,是依赖于另一个区块链(称为「根链」/「主链」/「主网」)构建的独立运行的区块链,具有独立共识机制;每个「子链」具有一个部署在根链上可以自定义的智能合约;不同的子链在根链对应不同的合约,因此,我们可以将不同的子链用于不同的任务。在 POS 共识机制下,任何人在主网 Plasma 合约里质押代币可成为该 Plasma 链的 Operator;通常 Plasma 链处理交易的节点很少,往往是项目方自己运营 1 个节点(Operator),这会带来新的中心化问题。

Plasma 链上再部署合约,可构建子子链,这些不同的子链可形成一层一层树状的 Plasma 网络(如下图);Plasma 利用 MapReduce 算法,可将大的计算任务拆分成小任务,再分配给各个子链计算,最后一层层汇总后向上提交结果,从而可以快速、低成本处理大量复杂的计算。

Plasma 合约

Plasma 合约是指在根链如以太坊上运行的智能合约,用于处理用户资金进出 Plasma 链,负责跟踪 Plasma 链的状态承诺(State Commitments),并通过提交欺诈证明惩罚作恶行为。

Plasma 合约内的数据结构包含:

1) 合约所有者(在初始化时设置)

2)Plasma 链区块列表:每个区块的 Merkle root 和 Merkle root 提交的时间

3)用户提交的退出 Plasma 链的交易请求列表:包含了提交者地址、UTXO 位置(Plasma 区块编号,txindex,outindex)

关系

Plasma 合约起着桥梁的作用,允许用户在以太坊主网和 Plasma 链之间移动资产。用户可以将资金从根链转移到子链,再由子链处理复杂的计算,从而节省 Gas 费用。在子链部署的 DApp 不必与根链直接交互,子链的状态更新只需提交块哈希 Merkle Root 给根链,这样根链只接收最小数量的数据,且只有在遇到争议时才需要计算,可大大减少根链的计算量。

3.3.2 时间线

2017/08,Plasma 首次在 Vitalik 和闪电网络作者之一 Joseph Poon 写的白皮书 Plasma: Scalable Autonomous Smart Contracts 中被提出。2018/01,Vitalik 提出第一个正式的 Plasma 应用 Plasma MVP,采用 UTXO 模型和 Proof-of-Authority 共识机制。2018/03,Vitalik 提出 Plasma Cash,旨在解决 Plasma MVP 中的大规模退出问题。为了使得用户证明自己拥有代币的所有权更加容易,所有代币都用 NFT 表示。2018/06,Dan Robinson 提出 Plasma Debit,与 Plasma Cash 类似,不同点在于每个 Token 是用户和 Operator 之间的一个支付通道,通道可以像 Token 一样被转移,整个设计类似一个大的 Lightning hub。2018/11,BANKEX Foundation 提出 Plasma Prime,希望利用 RSA accumulators 解决 Plasma Cash 中存在的大量历史证明的问题。但目前还没有正式全面的文档来解释 Plasma Prime,仍处于构思阶段。2018 年底,ETH 的价格触底,在加密领域的乐观情绪消失的背景下,Plasma Cash 虽然比 Plasma MVP 有所改进,但仍并不是以太坊承诺的 Visa 级解决方案,其 MapReduce 算法构想的「区块链树」看起来也难以实现,因此大部分为 Plasma Cash 开发客户端的公司都停止了工作,目前开发进展都处于半成品状态,看起来 Plasma 已死。2019 年起,以太坊社区开始探索一种新的二层扩容方案「Rollups」,具体内容我们在下文 Rollups 部分展开。

3.3.3 技术原理

三个核心思想:

链外执行:Plasma 的假设是主网不需要验证所有交易,任何不需要从智能合约移入或移出资产的操作都可以在链外处理,所以 Plasma 应用的大部分工作都在主网之外处理。Plasma 链经常使用单个 Operator 来执行交易,无需等待其他节点的同意,这样可以降低成本并提高速度,在牺牲一部分去中心化的前提下提高可扩展性。状态承诺:状态承诺是一种存储 Plasma 链状态压缩版本的加密方式。在 Plasma 中,状态承诺是指一个 Plasma 链区块内所有交易组成的默克尔树(Merkle Tree)的根哈希值(Merkle Root)。Merkle Root 能够快速地验证一笔交易是否包含在一个区块中(通过 Merkle Proof),因此 Operator 可以通过上传 Merkle Root 来承诺当前区块状态。虽然 Plasma 在链外执行交易,但是在主网上执行结算的,所以 Operator 需要定期在以太坊上发布 Plasma 区块的 Merkle Root 作为「状态承诺」,以确认链外计算的最终状态,实现链外执行链上清算。这种依赖于主网验证的机制确保了 Plasma 继承了主网的部分安全性。退出机制:如果用户想从 Plasma 链撤出资金时,需要向主网的 Plasma 合约证明有可提取且数额正确的资金,用户可以提交 Merkle Proof 作为证明,Merkle Proof 可以由 Operator 提供,不过 Operator 有作恶风险。

使用流程如下图所示:

1.存款:要使用 Plasma 链,用户首先需要在以太坊的 Plasma 合约中存入 ETH 或任何 ERC-20 代币。当用户存入资金时,将在 Plasma 链上创建一个区块,该区块仅包括一笔交易,同时负责监控 Plasma 合约的 Plasma Operator 会在 Plasma 链创建相同金额的资产发送到用户在 Plasma 链上的地址,用户在 Plasma 链上收到资金后可以在 Plasma 链上交易。

2.交易:用户在 Plasma 链上通过签署加密消息来确认每笔交易,然后该交易以及对应的签名会发送给 Plasma 链的 Operator 进行打包。

3.Operator: Operator 将接收的交易打包进 Plasma 链区块,一旦 Operator 收到足够多的交易来填充一个区块,这些交易将组成一个 Merkle 树,Operator 提交 Merkle 根作为对该区块的状态承诺到以太坊主网,因为只提交数据量小且数据大小恒定的 Merkle 根,可以大大减少提交到主网产生的 Gas 费用。此外,Operator 提交主链的 Plasma 链区块哈希值,如果被任一用户挑战成功,则 Plasma 链上的错误区块会被回滚,而错误区块的创建者会被惩罚。

4.退出

4.1 发起提款请求:

为了把资产从 Plasma 链提出,用户需要向主网的 Plasma 合约发起退出交易,并和 Merkle Proof 一起提交(Merkle Proof 可通过 Operator 获取),Plasma 合约会验证 Merkle Proof 的有效性,以确保金额正确且没有被双花。

用户同时还需要在提款请求中添加保证金,如果有挑战者证明该用户的退出请求无效,则笔保证金的一部分将被没收作为奖励给挑战者。

4.2 挑战提款请求:

虽然以太坊主网有 Plasma 链的状态信息,但它无法验证该信息是否正确。恶意用户可能提出恶意提款请求,例如用户在主网实际上没有 1000ETH,但声称在主网锁定了 1000ETH,并请求从 Plasma 提出 1000ETH,或者尝试提取他们已经花费的资产,并通过提供虚假证明来支撑这些虚假请求。

为了防止以上两种作恶行为,Plasma 引入了「挑战期」(通常为一周)。在此期间内,任何人都可以向主链提交欺诈证明挑战提款请求的有效性。例如,因为一笔历史交易已被签名,所以可证明作恶用户的该笔资金在过去已经被花费,已无效。如果挑战成功,则 Plasma 合约会拒绝作恶的提款请求,挑战者将获得奖励。

然而,如果挑战期内没有任何人提供欺诈证明,用户的提款请求将被视为有效,可以从以太坊的 Plasma 合约中提取资产,会造成 Plasma 链其他诚实用户的损失,这是 Plasma 在安全性上的一大缺陷。

5.监控 Plasma Chain(缺点)

用户为了确保 Plasma 链上的资金安全,需要不时地监控 Plasma 链,通过运行一个软件,定期自动同步下载 Plasma 链的数据,确保一切正确运行;数据同步频率取决于 Plasma 智能合约里设置的参数。

如果 Plasma 链上发生恶意行为,比如恶意 Operator 试图窃取资金,那么用户的钱包将自动开始从 Plasma 链中提取资金来保障用户的资金安全;由于用户无法保障全程在线,类似闪电网络的 watchower 委托人角色的设计就变得很有必要,但目前完整机制和激励模型暂未出现。

3.3.4 优缺点

出于上述缺点,很多应用最初使用 Plasma 方案进行扩展,但后来又放弃而转向 Rollups 方案。

3.3.5 应用

Plasma Group → Optimism(Optimistic Rollup)

2017 年,Plasma 被正式提出后,三个以太坊核心开发者和研究者成立了一个非营利研究小组 Plasma Group,致力于 Plasma 框架的研究。

2019 年 1 月,Plasma Group 发布了一份 Plasma Cash 的说明书,一个月后又发布了一种通用型 Plasma 架构尝试将 Plapps(plasma apps) 在通用型 Plasma 链上部署。但随着研究的深入,Plasma 的缺点变得越发明显,尽管技术团队做了很多尝试,通用型智能合约始终无法运行在 Plasma 上,使得 Plasma 的开发在 2019 年时陷入停滞。

2019 年 6 月,John Adler 提出了一种称为「最小可行的合并共识」的设计,该设计实现了在以太坊上完全可验证的链外共识系统,而无需零知识加密。之后,Plasma Group 发布了一个扩展版的合并共识设计,即现在被大家所熟知的:Optimistic Rollup。

2020 年 1 月,在 Paradigm 和 IDEO CoLab Ventures350 万美元的支持下,Plasma Group 从一个非盈利的研究组织转变为一家营利性初创公司,Optimism 正式诞生,这也意味着团队正式放弃研究 Plasma,转向专注于 Optimistic Rollup 的研究(具体内容见下文 Optimistic Rollup 部分)。

OMG Network → Boba Network(Optimistic Rollup)

OMG Network 是最早提出「链下扩容」概念的以太坊扩容项目之一,也一度是该领域的龙头项目。2013 年,泰国金融支付企业 SYNQA 旗下的子公司 Omise 成立,主要业务是 APP 端在线支付。2017 年,Omise 成立了区块链部门 OmiseGO,同年发行 $2500 万的 $OMG 代币,发行总量 1.4 亿枚。

2020 年 6 月,OmiseGO 更名为 OMG Network 后主网上线,使用 More Viable Plasma 技术来扩充以太坊网络的容量;More Viable Plasma 设计,是 Minimal Viable Plasma 的扩展,针对用户和交易所之间的支付结算和价值交换进行了优化。随后,Bitfinex 宣布支持 OMG 网络进行 USDT 存款和取款。

2021 年 6 月,Plasma 路线式微后,OMG Network 宣布更名为 OMG Foundation,与 Enya 公司合作一起推出 Boba Network,并发布新代币 $BOBA。Boba 是基于 Optimistic Rollup 的以太坊 L2 解决方案,从此 OMG 网络不复存在,BobaNetwork 继承了 OMG 网络的社区。(Boba Network 的具体内容见下文 Optimistic Rollup 部分)

Polygon (previously Matic Network) → 全栈 L2 解决方案

2017 年,Matic Network 成立。2020 年 6 月主网同时发布以太坊侧链 Matic PoS Chain 和以太坊 Plasma 方案 Matic Plasma Chain,后者采用 Plasma 的链下扩容方案,并在 Plasma 的基础上做了一系列的改进。该扩容方案与以太坊主网通过 Plasma 桥进行跨链交互,允许用户将资产从主链转移到 Plasma 链,从而实现快速和低成本的交易。Plasma 方案虽然比 Matic PoS 侧链更安全,但缺点是用户从 Plasma 网络中提取资金需要更长的等待时间(7 天),而 Matic PoS 侧链仅需要约 3 小时;此外,Plasma 链也不能运行通用的智能合约。

虽然 Matic 方案改进了 Plasma More VP,但是仍然无法解决 Plasma 最根本的问题,包括无法确保链下数据可用性、大规模退出问题和用户需要经历挑战期等,并且原 Plasma 研究团队也都逐步转向开发 Rollup,这使 Plasma 方案的突破难上加难。

2021 年 2 月,Matic 品牌升级为 Polygon,向以太坊链下扩容方案的聚合器转变。同年 5 月,发布核心组件 Polygon SDK,一个用 Golang 语言编写的模块化和可拓展的框架,能够与以太坊实现完全的兼容,开发者可以使用 Solidity、Vyper 等语言以及以太坊工具和库等直接进行开发。这是一个模块化、灵活的框架,支持开发者自定义构建自己的链下扩容方案如 Plasma、Optimistic Rollups、zkRollups、Validium 以及侧链如 Polygon PoS 链,并且让它们轻松跨链互通并可以直接共享以太坊的安全性和网络效应。当前 Polygon Plasma 的扩容方案已逐渐被社区抛弃,Polygon 将重心移至 Rollup 技术的开发。2021 年 Polygon 通过收购 Hermez 和 Mir Protocol 一步到位集成 ZK Rollups,朝着「全栈」链下扩容解决方案又近一步。(具体内容见下文 ZK Rollups 部分 )

目前 Polygon 已逐步搭建起从 DeFi、Gamefi 到 NFT 等细分领域的多样化生态体系,拥有 37k+ 的 Dapp,1.8B 的总交易数和 135M+ 的用户。

总结:

Plasma 是一种技术上的过度方案:受制于 Plasma 技术本身存在的问题,Plasma Group 没有等到上线基于 Plasma 的项目就转入了 Optimistic Rollup 的研究;OMG Network 和 Polygon 都在主网上线 Plasma 方案后的一年内,也分别快速转入了基于 Optimistic Rollups 和 ZK Rollups 方案的开发;综上,基于 Plasma 的应用乏善可陈。

3.4 Rollups

3.4.1 概要

早在 2014 年,Vitalik 就提出了「将交易数据和状态放在链上,而计算放在链下」的 shadow chain 的概念。这是 Rollups 的雏形,但在当时似乎没有受到重视。由于 Plasma 受限的智能合约执行能力和大规模退出(mass exit)问题,以太坊研究者们开始寻找一种新的扩容解决方案 – Rollups。

2018 年 9 月,V 神提出用零知识证明来解决以太坊扩容问题。2019 年 6 月,Consensys 研究员兼 Celestia 联合创始人 John Adler 在 Ethereum Research 上发文「Minimal Viable Merged Consensus」,提出了带终止时间的欺诈证明的 Optimistic Rollups 扩容方案。随着 2019 年 12 月以太坊 Istanbul 硬分叉,calldata 存储成本下降 4 倍,Rollups 吞吐量大大提升,Rollups 上生态和各种应用迅速发展了起来,而 Rollups 也成为了目前主流的二层网络(Layer2)扩容解决方案之一。

3.4.2 技术原理

Rollups 的核心思想是将计算过程和状态存储放在链下,而在打包上链的是状态承诺和被压缩的交易数据。

Layer1 上会有一份智能合约,负责更新 Rollup 交易的状态根(状态承诺)和记录压缩后的交易内容。任何人都可以收集在二层网络上的交易,聚合压缩形成交易批次(batch)后,以 calldata 的形式发送给主链的合约。这个 batch 包括了压缩后的交易集,前一个区块状态的默克尔根(Merkle root)和新状态根(处理交易之后的状态根)。主链合约收到 batch 后,会检查前状态根和合约上的状态根是否匹配,如果匹配,就能证明 Rollup 状态是前后连接的,合约就会更新自己的状态根。

由于交易数据是压缩后存储在主网的智能合约的 calldata 里的,任何人都可以从合约里拿到交易数据,从而在链下重建二层网络的状态。用户能随时提供 Merkle proof 从而取走二层网络的资产。因此,Rollups 的安全性仍然是由一层的安全性保证的。

Source: https://vitalik.ca/general/2021/01/05/rollup.html

但 Rollups 是怎么保证上传的交易批次(batch)的正确性呢?换句话说,如何得知交易批次里的后状态根 (post-state root) 是正确的呢?如果某人能够提交一个具备任意后状态根的 batch,而无需承担任何后果,他们完全可以将 Rollups 中的所有代币都转移给自己。而这个问题,带来了两种解决方案以及其对应的两种类型的 Rollups:

欺诈证明(fraud proofs)→ Optimistic Rollups 有效证明(validity proofs)→ ZK Rollups

链下虚拟机

Rollups 的计算和状态存储是在链下的虚拟机上完成的。这个虚拟机完成交易的计算和状态的改变,同时也是 Layer2 应用的执行环境。

以太坊 Layer2 存在的主要目的是扩容 Layer1,因此,Layer2 需要尽可能地去提供和 Layer1 相似的执行环境。而这个相似程度就是由 Layer2 的虚拟机来决定的,也叫做 EVM 兼容性。EVM 兼容意味着创建一个类似 EVM 的代码执行环境,使以太坊开发者可以很容易地将智能合约迁移到 EVM 兼容的链上,而不必重写代码。

实现 EVM 兼容,最简单的方案就是 fork GETH,比如 BNB 链。但对于 Rollups 来说,他们还需要兼容证明的验证(欺诈证明和有效证明)。Optimistic Rollups 能做到比较好的 EVM 兼容性,比如 Arbitrum 的 Nitro 和 Optimism 的 OVM。而对于 ZK Rollups 的协议来说,有效证明(零知识证明)很难做到 EVM 兼容,因为我们需要把智能合约的逻辑转变成电路逻辑,而电路逻辑本身非常复杂且需要零知识证明相关知识。因此,目前所有生产级的 ZK Rollups 协议都是特定于应用的,如 Loopring,ImmutableX,dYdX,zkSync1.0,zkSwap。

谁能打包区块?

理论上来说,任何人都可以打包区块并上传给主链的合约,但为防止作恶,这个人需要在合约里质押一笔钱。如果很多人同步打包交易,而只有一个区块生成,这样会消耗额外的计算和区块资源。因此,为了提高交易速度,目前大部分 Rollups 项目都是用中心化的排序器(Centralized Sequencer)进行打包交易的;中心化排序器是最有效率的,但会出现单点故障问题。

此外,我们可以进行排序器拍卖,POS 验证节点随机抽人或者通过 DPoS 投票的方式决定打包区块的人。排序器拍卖能捕获 MEV 价值,但不能解决单点故障的问题。POS 和 DPoS 都需要锁定资金,这会降低资金使用效率。

交易压缩

压缩技巧是 Rollups 实现可扩展性的关键之一。压缩使得链上存储的数据量减少,从而降低成本。

一笔简单的 ETH 转账交易在以太坊需要~110 字节,而在 Rollups 中只需要~12 字节。其中一部分原因来自于编码,还有一部分原因来自于巧妙的压缩技巧。比如,我们可以在主链合约上存储一个地址和索引的映射表,而 20 字节的地址就可以用 3~4 个字节的索引来替代了。此外,BLS 集合算法可以将多个签名压缩成一个签名,从而减少签名大小(在 ZK Rollups 里,零知识证明替代了签名)。

下面这个图片显示了以太坊上一笔简单交易的具体压缩情况:

https://vitalik.ca/general/2021/01/05/rollup.html

交易成本

我们知道了通过交易压缩可以减少 Rollup 交易在链上的存储成本,那 Rollup 交易成本到底由什么组成呢?

Rollups 交易成本 = L1 数据存储成本 + L2 计算处理成本

其中,L1 存储成本远远大于 L2 计算的成本,所以要节约成本,我们需要找到 L1 上性价比最高的存储空间。以太坊上有三种数据存储位置:memory,storage 和 calldata。calldata 是一个不可修改的、非持久性的区域。calldata 可以被用来保存函数的输入数据。它不会改变以太坊网络本身的状态,因此 calldata 的存储成本是最便宜的。为了减少成本,Rollups 把交易数据存在 L1 合约的 calldata 里。

Rollups 要解决的核心问题就是如何在不降低安全性和去中心化下,尽可能地增大以太坊的吞吐量,从而减少用户交易成本。从 EIP 的提案中,我们也可以看到以太坊在减少 Rollups 链上存储成本上做出的努力:

EIP2028:calldata gas 成本从 68gas 单位 /byte 减少到 16gas 单位 /byteEIP4488:calldata gas 成本从 16gas 单位 /byte 减少到 3gas 单位 /byteEIP4844:data blobs:这是一个用户定义的数据片断,其承诺可以被 EVM 访问。blobs 由所有信标节点下载,并在一个相对较短(一个月)的延迟后删除。Rollups 的交易数据会被放在 data blobs 上,这将极大程度上减少 L1 存储成本。  

交易吞吐量

以太坊是有区块大小限制的。每个区块的目标大小为 1,500 万单位的 gas,如果网络需求增大,区块限制可以阶梯性上升至 3,000 万单位 gas(2 倍目标区块大小)。这里我们用常规的 1,500 万区块限制。目前以太坊的平均出块时间是 12~15 秒,简单的转账交易需要花费 21,000 单位 gas,在接下来的计算中,我们假设以太坊出块时间是 15 秒。

对以太坊主网而言,受限于区块空间,理论 TPS(每秒交易量)可以达到 15,000,000(Gas Limit)/21,000/15=47.6。

对于 Optimistic Rollups 而言,我们需要把压缩后的交易数据上传到主网合约。前面提到,目前一笔 Rollup 转账交易大概是 12 个字节。目前的 calldata gas 成本是 16 单位 / 字节。那么一个区块就可以有 15,0000,000/12/16=78,125 笔交易。延续上文假设,以太坊出块时间是 15 秒,那么 Optimistic Rollups 每秒能处理 78,125/15=5,208 笔转账交易。

对于 ZK Rollups 而言,我们还需要考虑零知识证明在链上的验证成本,大概是 500,000 gas 单位。同样的逻辑,ZK Rollups 每秒能处理 (15,000,000-500,000)/12/16/15=5,034 笔转账交易。

以上是一个相当乐观的估计(理论吞吐量),因为 Rollups 不可能占用以太坊的整个区块,且不可能所有交易都是转账交易。但在同样尺度下,我们可以看到,Rollups 对交易速度的提升为 100 多倍。

目前而言,Rollups 能实现的 TPS 极限是 2,000 笔交易左右。Rollups 的实际吞吐量取决于一批交易能被压缩成较小摘要的幅度。由于 ZK Rollups 不需要像 Optimistic Rollups 一样上传所有的交易内容,ZK Rollups 的 TPS 往往高于 Optimistic Rollups。

3.4.3 优缺点

3.4.5 Optimistic Rollups

3.4.5.1 概要

Optimistic Rollups(OPRUs)是 Rollups 的一种,依靠欺诈证明(Fraud proofs)来保证链下执行交易的正确性。正如它的名字,Optimistic Rollups 上打包的交易被乐观地假设为正确的,因此不用做额外功;只有发生争议时,主链才会执行 Rollups 区块上的每笔交易,确认是否发生了欺诈。

3.4.5.2 时间线

2018 年 8 月,Offchain Labs(Arbitrum)在 Usenix 安全会议上发表论文,提出将交易由放在链下的 AVM(Arbitrum Virtual Machines)来执行,而链上只保留虚拟机状态的加密哈希值。这个方案的交易数据是在链下的,因此不算完全的 Optimistic Rollup。2019 年 6 月,Celestia 联合创始人 John Adler 在 Ethereum Research 上发布了「最小可行的合并共识」的提议,揭开了 Optimistic Rollup 的序幕。不同于 14 年 Vitalik 提出的 Shadow Chain(L2 状态放在链上),这个方案中 L2 状态是完全链下的。2020 年 12 月,Fuel Network 主网上线,成为第一个上线的 Optimistic Rollup,被用于支付应用。2021 年 1 月,Optimisim alpha 主网软启动,采用了逐步开放主网的方式。同时,合成资产协议 Synthetic 宣布在 Optimism 上线。2021 年 8 月,Arbitrum One 主网发布。这是一个完全的 Optimistic Rollup 解决方案,即交易数据会被放在链上的合约里,允许任何人发起挑战。2021 年 9 月,Boba 主网发布,计划支持混合计算,使 Solidity 智能合约能够与任何外部 API 互动。2021 年 11 月,Metis Andromeda 主网上线,提供一个 EVM 等效的 Optimistic Rollup,一个无代码的中间层 Polis 以及去中心化自治公司(Decentralized Autonomous Companies,DAC)。2021 年 12 月,Optimism 开放主网,允许任何人部署 L2 合约。2022 年 8 月,Arbitrum Nitro 主网上线,带来更低的手续费以及更好的 EVM 兼容性。

3.4.5.3 技术原理

Optimistic Rollups(OPRUs)采用欺诈证明,乐观地默认所有交易的计算是正确的,除非有人提出争议。在 Aggregator 上传交易批次后,Optimistic Rollups 会有一个 7 天左右的争议窗口期。在此期间,任何人都可以对状态转换提出异议。只要其中有一人诚实,对错误的状态变化发起挑战,Optimistic Rollups 协议的安全性就能得到保证。

Optimistic Rollups 主要有以下两个技术角色:

用户流程

用户通过在主网合约上锁定资产的方式,将钱存入二层网络。用户向 Aggregator 发送 L2 交易。Aggregator 收集并排序交易(先进先出),执行交易,更新内部状态,并将交易打包成 batch,压缩后提交给 L1 的合约。Batch 内容:压缩的交易数据,前状态根,后状态根L1 合约检查 batch 中的前一个状态根是否与其当前的状态根相匹配(确保 L2 状态的连续性);如果匹配,则将状态根切换到新的状态根。Validator 可以从 L1 合约上下载交易数据,并在本地重建 L2 状态并计算新的状态根。如果 Validator 发现本地的状态根和 Aggregator 上传的不一致,Validator 可以发起挑战。此时,Validator 需要质押一笔钱,并且向主网 Rollups 合约提供有效的 Merkle Proof。如果主网 Rollup 合约验证确实存在错误,主网合约就会对错误 batch 及其之后的 batches 进行回滚。作恶的 Aggregator 会受到惩罚,其押金将会被没收,一部分押金会奖励给挑战者,一部分押金销毁掉。反之,如果 Aggregator 是正确的,Validator 挑战失败,质押的钱将会被销毁。如果一段时间(挑战期)内没有挑战,之前打包好的 batch 将会在 L1 上被确认。

欺诈证明

验证者从 L1 合约下载交易数据后,可以在本地重建(L2 状态的)merkle tree。验证者可以通过比较本地和合约的 merkle root(状态根)确认是否存在作假行为。如果发现作假,验证者需要向 L1 合约提供 merkle proof,也就是图中的绿色部分,从而发起挑战。

如果有多个不对的 batch,最好找最早的 batch 发起挑战。因为,最早交易批次的错误会导致后续不正确的批次全部回滚,从而使后续区块的挑战失效。如果一个 ba

>快讯
3月29日 星期五
相关资讯