区块链有个著名的”不可能三角”问题,即一条区块链的发展很难兼顾安全、去中心化和可拓展性。

以太坊举例,虽然在去中心化和安全方面做的已经足够好,但随着用户越来越多,其交易速度变慢、交易手续费高、用户体验恶化是一直以来有待解决的问题。尤其是在 17 年出现了一款非常火爆的 Dapp 应用叫加密猫,造成以太坊主网大规模的拥堵。造成拥堵的原因是以太坊当时的 TPS 只有 15,这意味着以太坊每秒只能处理 15 笔交易,如此低的 TPS 严重限制了区块链应用的大规模落地。

想提升公链的可扩展性,有两种方式:

1、链上扩容:

扩展主网本身(Layer 1)称为链上扩容方案。主要通过提高区块链本身的交易容量来实现扩容。比如早期对比特币进行区块大小调整,隔离见证的引入,以太坊 2.0 的转 POS 和分片机制。但是 Layer 1 的扩容要么进展缓慢,要么对性能的提升没有质的变化。

2、链下扩容:

链下扩容是在底层区块链 Layer 1 上构建一个扩展层 Layer 2,通过将一部分交易或计算迁移到区块链外的第二层网络来提高可扩展性和效率。 Layer1 来保证安全和去中心化,绝对可靠、可信;它能做到全球共识,并作为“加密法院”,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到 Layer2 上,而 Layer2 追求极致的性能,它只能做到局部共识,但是能够满足各类商业场景的需求。

常见的区块链 Layer 2 技术方案

状态通道(State Channels)

状态通道是一种基于区块链的链下交易方案,通过在链上锁定资金,交易双方在链下构建一个通道,实现链下的快速交易。其原理是将交易数据限制在链下的通道内,并只在必要时将最终结果提交到主链上。状态通道可以极大地提高交易吞吐量,并降低交易成本。

其实可以把状态通道理解成一个执行特殊操作的智能合约,一个专门建立双向通道,在一定条件下进行状态保持的智能合约。可以将状态通道中的执行过程作为原子操作,在执行完成这个原子操作后,将最终结果上链。

比如建立价值为 100 美元的支付通道,首先进行资金锁定,一旦锁定完成,交易者双方可互相发送状态更新来实现转账,无需与主链进行交互,只要双方的余额都还为正值即可。一旦有一方想要停止使用支付通道,可以执行 “退出” 操作,将最后的状态更新提交至主链,结算下来的余额会退给发起支付通道的两方。主链可以通过核实签名和最后结余来验证状态更新的有效性,从而防止交易双方使用无效状态来退出支付通道,保证退出机制的安全性。

状态通道存在一些缺点:

  1. “退出” 模式存在一个问题,即主链无法验证支付通道是否提交了全部交易,也就是说,在提交了状态更新之后是否不再出现新的状态更新。
  2. 状态通道的第二个缺点就是低资金利用率。由于资金流动性无法扩容,当众多资金锁在一个状态通道里,只能用状态通道转发的话,这个效率是非常低下。

应用代表:

  • 比特币中的闪电网络
  • 以太坊中的的 Raiden Network。

侧链(Sidechains)

侧链是一种独立于主链的区块链网络,通过与主链进行资产锁定和解锁的方式实现与主链的互操作性。它们通过“双向锚定” (Two-Way Pegging)来建立关联,实现主链与侧链之间价值的双向转移。侧链的思路可以简单的理解为在主链锁定资产,在侧链派生相应资产;当资产在侧链完成应用后要转回主链时,从侧链销毁资产,并在主链解锁。侧链可以承载大量的交易,并在需要时将交易结果提交到主链上。

优点:

  • 不受主链 TPS 限制
  • 侧链合约运行的手续费大大降低,对小金额玩家以及新玩家较友好

缺点:

  • 中心化威胁:通过第三方公证人或中继者进行验证,牺牲了部分去中心化特性

项目代表:

  • Injective Protocol(注射协议):首个 Layer 2 的衍生品 dex
  • Rootstock(RSK)(砧木):第一条比特币侧链

等离子体(Plasma)

Plasma 曾是 Vitalik 认为大有可为的一个解决方案,由 Vitalik Buterin 和 Joseph Poon 在 2017 年共同提出。可以将 Plasma 视为以太坊的原生侧链,使用智能合约和 Merkle 树的组合来创建无限的子链分支。这些子链是以太坊主链的较小副本,具有自己的共识机制。

Plasma 是一种设计模式,它允许链外消息驱动链上资产的转移。它通过将交易吞吐量转移到 Plasma 链来实现对根链的扩展。

Plasma 在一个树形结构上组装区块链。最底层的是根区块链,根区块链之上是第一级子链——Plasma 链。在第一级链上,可进一步分支出二级和三级 Plasma 链。上一级 Plasma 链称为下一级链的父链

区块的承诺流向下,出口能被提交给任何父链,最终在根链上被执行。理解为子链的交易、状态等运算可以向下层层递交,最终在根链上落定和执行。

优点:

  • 相对安全:即使链下环境崩塌,也能从主链上提取交易结果
  • 操作快、交易费用低:因为与主链的交互较少

缺点:

  • 不具备主链的数据可用性:给 Layer 1 返回的仅有交易结果的证明、没有详细的交易信息,主链无法还原交易
  • 退出期长:用户需要从主链上提取资金,需要等待挑战期过去。
  • 拓展困难:技术框架限定了子链的数据结构

项目代表:

  • Loom Network:第一个 Plasma 产品实现
  • Polygon

聚合链(Rollups)

Rollups 是一种将大量交易聚合到单个链上进行处理的技术方案,其本质是将原本分布在区块中的大量交易数据,打包成一笔集合的交易,发布到链上。Roll Up 实际上是一条侧链,因此它会生成区块,并且将这些区块的快照发送到主链上。不过,Roll Up 上的运营者是无需信任的。也就是说,Roll Up 假定运营者可以在任何时候做出停止出块、生成无效块、隐瞒数据等恶意行为。

主流的 Rollup 技术可以分为两类:ZkRollup 和 Optimistic Rollup。

ZkRollup:基于零知识证明的 Layer2 扩容方案,采用有效性验证方法(VP),默认所有交易都是不诚实的,只有通过有效性验证才会被接受。ZkRollup 在链下进行复杂的计算和证明的生成,链上进行证明的校验并存储部分数据保证数据可用性。

优点:

  • 安全性:牺牲了等待时间来换取较好的安全性
  • 上链效率高:将多笔交易打包操作,节约时间和 gas fee

缺点:

  • 验证效率低:较长的等待期,任何交易在等待期不会被确认,也无法从主链提取资金
  • 交易压缩率相对较低

项目代表:

  • 路印
  • ZKSync:旨在为以太坊带来 Visa 级别、每秒数千笔交易的吞吐量

Optimistic Rollup:采用的是欺诈性证明(Fraud Proof),它趋于相信操作者提交的数据都是真实的(乐观假设,大家都是好人)。但保险起见,需要操作者质押一定资产作为保证金,且在上链前留出两周的挑战期,任何人都可以在此期间挑战其真实性并发布欺诈证明,一旦挑战成功,质押金将会被没收,挑战者会获得奖励,且回滚交易细节。因此,从概率角度防止作恶行为。

优点:

  • 高度的去中心化
  • 隐私性好:零知识证明不会透露任何交易细节
  • 上链效率高:一次性提交多笔操作的结果,节约时间和 gas fee
  • 验证效率高:无需等待期,快速完成资产取出动作
  • 安全性极高:zk 技术保证了提交给主链的数据真实有效,同时主链可随时还原侧链发生的交易细节(即拥有主链的数据可用性),因此拥有以太坊级别的安全性

缺点:

  • 技术开发难度大
  • 难兼容不同智能合约
  • 需要大量运算

项目代表:

  • Fuel:Optimistic Rollup(乐观汇总)概念提出者所在团队研发
  • Synthetix:DeFi 巨头的 Layer2 扩容选择

结尾

经过数年发展,Layer 2 扩容诞生了很多方案,在以太坊发展早期,以太坊创始人 V 神都曾认为侧链、Plasma 技术是解决区块链扩容问题的最佳方案。但时间和实践都证明,在 DeFi 大爆发的背景下,侧链、状态通道、Plasma 等 Layer 2 扩容方案都无法满足市场的要求,发展到现在,Rollup 成为了目前最有希望的方案。