原文标题:《链下扩容深度解析—Cobo Ventures 重磅研报》
原文作者:Ellaine Xu、Hettie Jiang、June Wang、Walon Lin、Yiliu Lin
原文来源:Cobo Global
区块链的未来是一个宏大的愿景:去中心化、安全性和可扩展性;但通常区块链只能实现其中两个,同时满足这三个要求被称为区块链的不可能三角问题(如下图所示)。多年来,人们一直在探索如何解决这一难题,如何在保证去中心化和安全性的前提下,提高区块链的吞吐量和交易速度,即解决扩容问题,是当前区块链发展过程中讨论的热点话题之一。
让我们先笼统地定义区块链的去中心化、安全性和可扩展性:
去中心化:任何人都可以成为节点参与区块链系统的生产和验证,节点数量越多,则去中心化程度越高,从而确保网络不受一小群大型中心化参与者的控制。
安全性:为了获取区块链系统控制权所付出的成本越高,则安全性越高,那么链就可以抵抗较大比例的参与者对其的攻击。
可扩展性:区块链处理大量交易的能力。
比特币网络的第一次重大硬分叉就是源于扩容问题。随着比特币的用户数量和交易量的增多,每个区块上限为 1 MB 的比特币网络开始面临拥堵问题; 2015 年开始,比特币社区就扩容问题存在分歧,一方是以 Bitcoin ABC 为代表的支持扩大区块的扩容派,另一方是以 Bitcoin Core 为代表的小区块派,认为应当使用隔离见证 Segwit 方案去优化主链结构。 2017 年 8 月 1 日,Bitcoin ABC 自行开发至 8 MB 的客户端系统开始运行,导致了比特币历史上第一次重大硬分叉的出现,同时也由此诞生了新币种 BCH。
同样,以太坊网络也是选择牺牲了一部分可扩展性,用来保障网络的安全性和去中心化;虽然以太坊网络并未像比特币网络一样通过限制区块大小来限定交易量,而是变相转变为对单一区块可容纳的燃料费设置上限,但是目的都是为了实现 Trustless Consensus 并确保节点的广泛分布(无论取消还是提高限额都会淘汰很多带宽、存储和计算量不足的较小节点)。
从 2017 年的 CryptoKitties,DeFi summer、再到后来 GameFi 和 NFT 等链上应用的兴起,市场对吞吐量需求不断增加,但即使是图灵完备的以太坊每秒也只能处理 15 ~ 45 笔的交易(TPS),这导致的结果是交易成本不断增加,结算时间变长,大部分 Dapps 难以承受运行成本,整个网络对于用户而言也变的又慢又贵,区块链扩容问题亟待被解决。理想状态下的扩容方案是:在不牺牲去中心化和安全性的前提下,还能尽可能提高区块链网络的交易速度(更短的 finality time)和交易吞吐量(更高的 TPS)。
我们按照「是否改变一层主网」作为标准,把扩容方案分为链上扩容和链下扩容两大类。
核心概念:通过改变一层主网协议达到扩容效果的解决方案,目前的主要方案是分片。
链上扩容有多种方案,此篇文章不进行展开,以下简要列举两种方案:
方案一是扩大区块空间,即增加每个区块打包的交易数量,但这会提高对高性能节点设备的要求,提高节点的加入门槛,降低了「去中心化」程度。
方案二是分片,将区块链账本分成若干部分,不再是每个节点参与所有记账,而是由不同分片即不同节点负责不同记账,并行计算可以同时处理多个交易;这样可降低节点计算压力和加入门槛,提高交易处理速度和去中心化程度;但这意味着全网算力被分散,会降低整个网络的「安全性」。
改变一层主网协议的代码可能会产生难以预料的负面影响,因为底层任何细微的安全漏洞都会严重威胁整个网络的安全性,网络可能会被迫进行分叉或中断修复升级。例如, 2018 年的 Zcash 的通胀漏洞事件:Zcash 的代码是基于比特币 0.11.2 版本代码修改的, 2018 年一位工程师发现其底层代码存在高危漏洞,即代币可无限增发,随即团队花了 8 个月的时间进行秘密修补,漏洞修复后才公开这一事件。
核心概念:不改变现有一层主网协议的扩容解决方案。
链下扩容方案又可以细分为 Layer 2 和其他方案:
3.1.1 概要
状态通道规定只有在通道打开、关闭或解决纠纷时,用户才需要与主网进行交互,并把用户与用户的交互放在链下进行,以此来降低用户交易的时间和金钱成本,并且实现交易次数不受限制。
状态通道是简单的 P 2 P 协议,适合「基于回合的应用程序」,例如,两人国际象棋游戏。每个通道都由主网上运行的多签智能合约管理,该合约控制存入通道的资产,验证状态更新,并仲裁参与者之间的争议(根据带有签名和时间戳的欺诈证明)。参与者在区块链网络部署合约后,存入一笔资金并锁定,双方签名确认后,通道正式开通。通道允许参与者之间进行不限次数的链下免费交易(只要他们的转账净值不超过存入的代币总额)。参与者轮流发送状态更新给对方,等待对方的签名确认。一旦对方签名确认,这笔状态更新就算完成。正常情况下,双方同意的状态更新不会上传主网,只有在出现争议或关闭通道时,才会依赖主网确认。需要关闭通道时,任一参与者可在主网提出交易请求,如果退出请求获得全员一致签名批准,则链上立即执行,即智能合约根据通道最终状态下每个参与者的余额,分发剩余的锁定资金;如果其他参与者没有签名批准,则所有人需等待「挑战期」的结束才能收到剩余资金。
综上,状态通道方案可以大大减少主网计算量,提升交易速度,降低交易成本。
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 技术原理
图 1 展示的是传统链上的工作流程:Alice 和 Bob 与部署在主网上的智能合约进行交互,用户通过向链上发送交易来改变智能合约的状态。缺点是会带来上面讨论的时间和成本问题。
图 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 日,根据 1 ml.com,闪电网络共有 76 , 236 个支付通道,通道资金 5049 $BTC($ 81.8 M)。
生态发展:
如上图所示,BTC 闪电网络生态从下到上依次为:底层的 BTC 网络—核心基础设施—各种 Dapps。
核心基础设施包括
闪电网络解决方案:个人和企业可以运行、连接到闪电网络的软件程序,其中所占市场份额最大的是闪电实验室 Lightning Labs。
节点和流动性服务:因为用户独立运行自己的节点较为复杂,需要提供对用户较为友好的界面,帮助管理闪电支付渠道。
核心基础设施之上是各种支付和金融服务以及应用程序,例如,Strike 建立在 LND 解决方案之上允许用户买卖 BTC,在 Twitter 上使用 BTC 打赏创作者和允许 Shopify 商家接受 BTC 等。
截止 2022 年 11 月,基于比特币闪电网络的 Dapps 已增涨至超 20 个类别和 100 多个应用,应用类别主要包括比特币闪电网络支付、钱包、节点管理、浏览器扩展程序、播客和流媒体等。当前与节点基础设施相关的技术基础层已经基本成熟,钱包支持增加,金融服务和支付集成继续增长,更多的娱乐应用在闪电网络上构建,闪电网络生态系统正在蓬勃发展。
以太坊雷电网络
概述:
雷电网络是基于以太坊的小额支付通道,与闪电网络非常相似,都是通过建立状态通道的方式来对链上交易进行拓展,目的是在以太坊上实现近乎即时、低费用和可扩展的 ERC 20 代币支付。
时间线:
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,使其运行在以太坊 Layer 2 Rollup 网络上,从而进一步降低创建 State Channel 的 Gas 费用; 2022 年 5 月团队宣布 Raiden Network 在 Arbitrum 上线,成为一个 rollup native protocol,L 2 之上运行的 L 2 ;该方案把初始创建通道的费用降低了 35% ,使其更适用于高频小额支付场景;雷电网络未来将以 Rollups 为中心进行转变,作为与 Rollups 共存的补充方案。
Celer Network
概述:
Celer Network 本质上是一个增加了激励层(代币 $CELR)的闪电网络,可通过链外扩展技术和激励性经济模型构建快速、易于使用、低成本和安全的高频交互类型的区块链 Dapps,如电子竞技平台等。因为其用户入场费和奖金的发放有极高的交互频率,非常适合状态通道技术的应用。
假设 Alice 和 Carl 之间通过状态通道进行下棋游戏,二人需要首先在主网存款创建通道,链下有一个管理游戏规则的合约,并且该合约的地址会在有条件的支付中被引用,举例,「如果合约判定 Carl 赢得游戏,Alice 将支付 Carl 1 美元」;每个链下合约都有一个唯一可识别的链下地址,只有在需要时合约才在区块链上进行部署,并且由内置的链下地址转换器分配对应的链上地址,其他合约或对象可以明确的引用它。二人之间所有的游戏状态转换(账户余额)经双方签名确认,也都发生在链下,这些状态在需要时(出现争议时)可在链上验证。通过 Celer Network 提供的链下地址转换器OAT(Off-chain Address Translator),每一个链下地址可以唯一映射一个链上的智能合约;因此,Alice 和 Carl 之间的游戏,只要双方持续合作,没有争议产生,整个游戏(合约 状态)都无需上链操作。
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 上第一个 L 2 Dapp,其用户可以通过 Celer Pay 进行即时零手续费支付,畅玩各种技能类游戏。
生态发展:
随着区块链生态系统朝着多链发展,状态通道被赋予桥接 Layer 1 和 Layer 2 的新使命。Celer Network 扩展了其广义状态信道网络的核心技术,转变为支持跨链的 L 2 扩容聚合平台,目前已推出的产品包含 DeFi 协议 Layer 2.finance,信息跨链协议 Celer IM 和资产跨链桥 cBridge。cBridge 已支持多达 139 种 token 和 38 条链。
2022 年 11 月 11 日,MetaMask Bridges Beta 集成 cBridge, 11 月 17 日 cBridge 的总交易数达到 1 M,当日同时宣布 cBridge 和 Celer IM 集成 zkSync 2.0 测试网。
3.1.6 应用比较
3.2.1 概要
侧链的概念首次于 2012 年比特币开发人员在聊天室中被提出,而第一篇关于比特币的侧链文章是由一位 Blockstream 的研究员撰写并于 2014 年出版。
2014 年的论文当中提出,侧链是为了加快比特币交易而出现的一种区块链形态,可以使用更复杂的合约,或是通过改善共识机制(如 PoS),或是区块参数让侧链符合特定作用。侧链的交易结果最终在传送回主链时,会记录在验证者端。这种区块链模式并非新的区块链形态,而是附着于主链上并协助主链解决问题的基础建设。
3.2.2 时间线
2012/01 ,比特币侧链的概念在聊天室中被提出
2014/10 ,比特币侧链的论文初次发表:Symmetric Pegged and Asymmetric Pegged
2017/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 Network
2021/02 ,Axie Infinity 游戏侧链 Ronin 主网开始运行
2021/12 ,xDai Chain 与 Gnosis Dao 合并成 Gnosis Chain
2022/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 的区块,则