跳至主要內容

什么是layer2? 从状态通道到Roll Up

tokenview大约 8 分钟

什么是layer2? 从状态通道到Roll Up

以太坊区块链日趋广泛使用,但是协议的负载量却十分有限,使得链上十分拥堵,而且手续费越来越高,许多大规模应用无法在以太坊网络实现,十分不利于以太坊区块链的生态发展。在这种情况下出现了Layer2方案。

Layer2 是一个为提升以太坊网络(layer1)性能的整体解决方案。Layer1来保证安全和去中心化,做到全球共识,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到Layer2。 Layer 2 解决方案的核心思路是让多个参与方通过某种方式实现安全交易,无需将交易发布在主链(即 Layer 1)上,不过在某种程度上还是要依赖于主链作为仲裁方来确保其安全性。

Layer2方案中讨论的最多的就是状态通道(State Channels),侧链(Sidechains),等离子体(Plasma) 和 Roll Up。

状态通道

状态通道是Layer2的入门级方案,状态通道是交易双方在链下构建一个通道,通过私钥签名以后,在链下进行交易。状态通道是一种扩容(scale up)的手段。

状态通道也称为支付通道,支付通道是如今最广泛采用的 Layer 2 方案。例如,闪电网络就是建立在支付通道技术上的。

如何使用支付通道?

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

状态通道的缺点

  1. “退出” 模式存在一个问题,即主链无法验证支付通道是否提交了全部交易,也就是说,在提交了状态更新之后是否不再出现新的状态更新。

目前这个问题的解决方案是为交易双方提供了一个“挑战期”。这个挑战期就导致一个缺点:交易双方可能得等待比较长的一段时间,通常是 24 小时,才能退出,而且需要频繁(至少每段退出期一次)监控主链以确保他们的交易对手方没有使用过去的某个状态退出。

2.状态通道的第二个缺点就是低资金利用率。由于资金流动性无法扩容,当众多资金锁在一个状态通道里,只能用状态通道转发的话,这个效率是非常低下。

侧链

侧链的核心思路是构建一条完全独立的区块链,有自己的验证者和运营者,可以与主链互相转移资产,而且会选择性地将区块头的快照发送至主链,从而防止分叉产生。有了这些快照,就可以有效防止分叉,即便侧链上的验证者串谋起来发动分叉攻击也没用。

什么是layer2 从上图可以看出,侧链会生成区块并将它们的快照发送至主链。所谓的快照就是存储于主链上的区块哈希。侧链上的分叉选择规则是,合法的链必须构建在最近一个进行过快照的区块之上。在上图所示情况下,区块 A 的快照已经发送至主链,即使侧链上的验证者勾结起来,试图在区块 A 生成之后生成一条更长的 A’<-B’<-C’ 链来发动双花攻击,侧链上的参与者也会忽略这条更长的链。

侧链的缺点

安全性弱。虽然侧链可以利用主链的安全性来防止分叉,但是验证者依然可以通过串谋来发动另一种叫做 无效状态转换 的攻击。这种攻击背后的思路是,主链本来就不可能验证侧链上的所有区块。因此,如果有超过 50% 或 66%(取决于侧链的架构)的验证者串谋的话,他们可以创建一个完全无效的区块,窃取其他参与者的资产,并将这个区块的快照发送至主链,发起并完成一个“退出”交易,就可以成功偷走这些资产。

等离子体 Plasma

Plasma 是一种可以实现 “无监管” 侧链的技术,换言之,即使侧链(通常被称为 “plasma 链”)上所有验证者串谋起来作恶,plasma 链上的资产也是安全的,而且可以退回主链。最简单的 plasma 设计通常被称为 Plasma Cash ,只支持简单的非同质化代币,而且每个交易转移的资产只能是一个特定的常量。Plasma Cash 的运行方式如下图所示:

什么是layer2 等离子体的结构是通过使用智能合约(smart contracts)和默克尔树(Merkle trees)建立的,可以创建无限数量的子链 - 基本上都是父链以太坊区块链的较小复制。在每个子链的顶部,可以创建更多的链,这就是它被称作树状结构的原因。Plasma 最大的优点是存储在 plasma 链上的代币安全性很高。

等离子体 Plasma的缺点

在转移代币之时必须提供该代币的完整历史,另外就是退出机制非常复杂。而且无法应用到智能合约上,用户跑节点的负担重。

Roll Up

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

上面说到侧链有状态有效性的问题,Roll Up 为了避免这个问题,运营者要对某个区块进行快照之时,都要提供一个 SNARK(简洁化的非交互式知识证明),证明链已经使用相关的一组交易执行了有效的状态转换。以下图为例:

什么是layer2 Roll Up 链上有三个区块:A、B 和 C 。它们的快照分别对应主链上的区块 X、Y 和 Z 。每到一个时间点,主链只需要存储 Roll Up 链上最新状态的默克尔根。在区块 A 进行快照之时,发送到主链上的交易包括:

  • 新状态 S2 的默克尔根 h(S2)。
  • S2 的完整状态数据,或区块中的所有交易。
  • 一个 zk-SNARK,证明在从状态哈希 h(S1) 到状态哈希 h(S2) 之间的所有交易都是有效的,并且这些交易都与 (2)中提供的数据相匹配 。

Rollups 有两种类型:ZK Rollups 和 Optimistic Rollups。

ZK rollups

ZK rollups是指通过智能合约将数百个链下交易打包到一个单独的交易中,数据提交以后,智能合约可以确认全部的交易,这也被称为有效性证明。由于区块包含的数据更少,因此验证速度更快,验证成本更低。但ZK rollups无法支持智能合约。

zk Rollup 是一种新型的 Layer 2 扩容方案,主要用于去中心化交易所。该技术的核心思想是:

  • 将主链作为存储媒介,而非共识引擎 ;
  • 将交易压缩,并在链下达成状态共识 ;
  • 用零知识证明保证链下状态共识的安全性。

Optimistic Rollup

Optimistic Rollup 是一种在 layer2 上使用 OVM (Optimistic Virtual Machine)扩展以太坊通用智能合约的技术。OVM 的功能很齐全,可以与以太坊虚拟机兼容执行环境,其主要用于第 2 层系统。它的外观,感觉和行为非常类似于以太坊主链。Optimistic Rollup 的构造大量借鉴了 Plasma 和 ZK Rollup 设计。但某种程度的在扩展性上进行了权衡,以允许在受 Layer 1 保护的 Layer 2 中运行完全通用的智能合约。

Optimistic Rollup继承自 Plasma 的「欺诈证明」,默认「乐观地」(Optimistic)相信节点会将最新且准确的数据发布到主链上,所以从安全性来说,会略低于主网。虽然本金丧失风险很低,但可能会付出时间成本(退出期较长)。

该技术的核心思想是:

  • 默认交易速度为 100 TPS。
  • 使用 BLS 签名聚合时,此数字最多可以达到 500 TPS。
  • 如果 EVM 兼容性受到破坏,则吞吐量理论上可能会增长到 ZK Rollup 的极限。
  • 实际吞吐量上限(令牌传输):500 TPS。
上次编辑于: