BUPT3 分享08—Layer2 的五次探索

Hacker Dōjo Workshop:
研究种类:课题研究
资助金额:120 USDT
Bounty链接:Layer2的五个尝试 | Bounties | DoraHacks
分享者:Syshems 北邮在读硕士
本项目由Hacker Dōjo资助,文章转载请联系
Telegram: @DoraDojo0
WeChat: @HackerDojo0

一、状态通道和Plasma

状态通道和 Plasma 是把数据和运算都搬到链下,Rollup 只把运算带到链下,数据保留在 L1 上处理。从拓展性的角度来说,状态通道和 Plasma 是优于 Rollup 的,但从安全性看 Rollup 是优于前二者的。

1、状态通道

状态通道(State Channel)是一种在以太坊上进行高效交互的技术解决方案,它允许在链下进行交易,从而减少链上交易的数量,提高了交易速度和吞吐量。状态通道通过创建一个双方或多方之间的离线通信通道,让参与者在通道内进行多次交易或交互,而无需每次交易都写入区块链。只有在通道关闭时,才会将最终的状态变更提交到区块链上,这样可以大大提高交易速度和降低费用。

  • 2015年:状态通道的概念首次被提出,但当时还没有实现的技术。
  • 2017年:状态通道的第一个实现——Raiden Network发布了第一个版本。
  • 2018年:状态通道成为以太坊扩容的重要方案之一,同时也出现了其他的扩容方案,如Plasma和Truebit。
  • 2023年:状态通道仍然是以太坊扩容的重要方案之一,它专注于小额支付,但使用体验和可用性较差。

「通道」是简单的点对点协议,允许两方在彼此之间进行许多交易,然后仅将最终结果发布到区块链。 通道使用密码学来证明它们生成的摘要数据确实是一组有效的中间交易的结果。“多重签名”智能合约可确保交易由正确的各方签署。每个通道都由运行在以太坊上的多重签名智能合约管理。

  • 打开通道,参与者在链上部署通道合约并向其中存入资金。 双方共同签署状态更新来初始化通道的状态,之后他们可以快速、自由地进行链下交易。
  • 通道内交互:通道开启后,参与者可以在通道内进行多次交易或交互,这些交易在通道外部的区块链上并不立即执行,而是在通道内部进行处理和验证。
  • 关闭通道,参与者需要在链上提交最后商定的通道状态。 之后,智能合约根据通道最终状态下每个参与者的余额分配锁定资金。

1.1 「支付通道」和「状态通道」的异同

相似点:

  1. 扩展性: 两者都旨在解决区块链网络的扩展性问题。随着区块链上交易数量的增加,主链的吞吐量可能受限,导致交易延迟和高费用。支付通道和状态通道都可以将部分交易移出主链,以提高整体的交易处理能力。
  2. 即时交易: 两者都支持实时的交易,可以在通道内立即完成交易,无需等待确认。
  3. 低费用: 由于大部分交易在通道内完成,不需要在区块链上频繁写入数据,因此支付通道和状态通道通常具有较低的交易费用。

不同点:

  1. 区块链平台: 比特币支付通道是建立在比特币区块链上的解决方案,而以太坊状态通道是构建在以太坊区块链上的方案。
  2. 交易类型: 支付通道主要改变多签钱包交易的输出结果,而状态通道则用于执行智能合约。通道内的交易用于改变智能合约的状态,但这些状态变更并不会在区块链上立即生效。
  3. 实现方式: 比特币支付通道是通过多签名钱包实现的,参与方需要创建一个多签名钱包,并向该钱包充入资金。而以太坊状态通道是通过智能合约实现的,参与方需要部署合约并存款以打开通道。

1.2 「状态通道」面临的问题

以太坊社区也意识到状态通道可能存在一些挑战和限制,这些因素可能导致推广和采用的延迟。一些可能解释以太坊社区放弃完全依赖状态通道方案的原因包括:

  1. 复杂性和开发难度:实施状态通道方案需要进行复杂的协议设计和开发工作。在构建和维护状态通道时,需要解决许多技术挑战,包括安全性、通信协议、参与者管理等。这可能增加了开发团队的负担,并且可能需要更长时间来实施。
  2. 用户体验和互操作性:状态通道解决方案可能需要用户进行特定的操作,例如创建和关闭通道,处理通道内的交易等。这可能会增加用户的复杂性和使用门槛,对普通用户来说可能不够友好。此外,不同状态通道之间的互操作性也是一个挑战,因为需要确保通道之间的平滑交互和资金流动。
  3. 网络效应和社区一致性:以太坊作为一个生态系统,其发展和成功依赖于社区的参与和共识。在决定采用哪种扩容方案时,需要考虑网络效应和社区的一致性。如果状态通道方案的推广和采用程度较低,可能会导致分散的生态系统和功能的局限性。

1.3 celer network 的 Layer2.finance

Layer2.finance的扩容方法不是通过迁移DeFi协议进行的,而是通过迁移用户和流动性到layer2,实现对已有DeFi生态的“原地扩容”。

用户通过将资金转移到 layer2.finance 的 rollup 链上,相当于形成了一个多个用户的流动性聚合池。在 layer2 的 rollup 链上面,用户可以对自己存入 layer2.finance 的资金作出操作,比如放入借贷协议,或者参与各类流动性挖矿,获得收益。

这里需要特别注意的是,layer2.finance 上用户进行的 layer2 操作并不立刻发出 layer1 的资金转移,而只是表达了一个用户的“资金分配意愿”。当 layer2.finance 上面有较多用户的时候,一段时间内相同的资金分配意愿可以通过 layer2.finance 无需信任的聚合成为一个单独的 layer1 资金转移交易,总的资金转移量为所有相同资金分配意愿的总和。

通过类似“拼多多”的方法,layer2.finance 达到了让散户在和 DeFi 协议交互的时候分摊和极大的降低成本的效果。从技术角度 layer2.finance 主要的创新点是基于 layer2 的成本降低,从产品角度它将有成为 DeFi 未来主要门户的潜力。

image

2、Plasma:

2017 年 8 月 11 日,Vitalik Buterin 和 Joseph Poon 发表了一篇题为 *Plasma: Autonomous Smart Contracts* 的文档。这份文档介绍了一种新技术,它能使以太坊每秒可以处理的远比现在更多的事务。

和状态通道一样,Plasma 是一种用于管理链下交易的技术,同时依靠底层的以太坊区块链来实现其安全性。 但是 Plasma 采用了一种新思路,它是通过创建依附于“主”以太坊区块链的“子”区块链 。这些子链又可以循序产生它们自己的子链,并能依次循环往复。其结果是我们可以在子链层级中执行许多复杂的操作,在与以太坊主链保持最低限度交互的情况下,运行拥有数千名用户的完整应用程序。 Plasma 子链可以更快迁移,并承担更低的交易费用,因为其上的操作无需在整个以太坊区块链上进行重复。

  • 链下交易:Plasma使用链下交易来实现快速、低成本的交易,同时保持链上安全性和去中心化特性。
  • 分层结构:Plasma采用分层结构,将原始链分成多个子链,每个子链都可以处理自己的交易,从而提高了整个系统的吞吐量。
  • 可扩展性:Plasma的分层结构使得它具有良好的可扩展性,可以处理大量的交易。

Plasma 也被称为“链中链(blockchains in blockchains)”。任何人都可以在底层区块链之上创建不同的 Plasma 支持不同的业务需求,例如分布式交易所、社交网络、游戏等。

2.1 工作原理

  • Plasma的主链是以太坊,每个子链都是一个独立的区块链,可以处理自己的交易。
  • 每个子链都由一个运营者管理,运营者需要向主链提交一个智能合约,该合约负责管理子链的状态和交易。
  • 子链可以处理自己的交易,但如果发生争议,可以将争议提交到主链上进行仲裁。

我们看一个例子:

首先,企鹅公司在以太坊主链之上创建了一系列智能合约作为主链和子链 Game Chain 通信的媒介。这些智能合约中不仅规定了子链中的一些基本的状态转换规则(例如如何惩罚作恶的节点),也记录了子链中的状态(子链中区块的哈希值)。之后企鹅公司可以搭建自己的子链(可以用以太坊搭建一套私链)。子链实际上是一个完全独立的区块链,可以拥有专门的矿工,使用不同于主链的共识算法,例如 PoS(Proof of Stake)等。

当子链创建完毕后,企鹅公司可以使用 ERC721 合约创建 token 作为游戏内的商品(就像 Cryptokitty)。但这里需要注意的是,所有数字资产必须在以太坊主链上创建,并通过 Plasma 子链的智能合约转移到子链中。用户也需要在主链上购买数字资产后转移到子链上。在上面这个例子中,Game Chain 的智能合约将主链上的资产锁定,之后在子链上生成等值的资产。之后用户就可以完全脱离主链,在子链上进行交易。企鹅公司在子链上扮演 operator 的角色,如果一切运行正常,子链中的矿工会正常打包区块,并在需要时由 operator 将区块的哈希值提交到主链作为子链的状态更新证明。在这个过程中,用户完全不需要和主链交互。

我们可以看到,将复杂的计算操作转移到链下确实使得整个交易过程变得简单。但没有强大的共识算法和庞大的参与者,资产在子链上是很不安全的。Plasma 给了我们一种避险机制,即使 operator 作恶,我们也能取回属于自己的资产。

图中,在第 4 个区块中的交易被篡改。由于 Alice 本地保存有 Plasma Chain 中所有的区块数据,因此她可以向主链提交一个含有“防伪证明(Fraud Proof)”的交易。如果证明生效,那么主链将状态从 4 号区块回滚到 3 号区块,一切恢复正常。Plasmas Chain 中的参与者也可以随时提交资产证明,返回到主链。

Plasma 所要做的工作并不是保护子链的安全,而是当有安全事故发生时,保证用户可以安全地取回自己的资产,并返回到主链上。并且采用一系列经济激励的方式减少作恶情况的发生

2.2 Plasma 细节

Plasma 的主要思想就是将大部分计算过程都转移到链下进行,用户只有在进入和退出 Plasma Chain 的时候需要跟主链上的智能合约交互,这也是所有 Plasma 应用的标准流程。

  • **存款Deposit:**具体做法是直接向主链上的 Plasma 合约发送以太币或 token。Plasma 合约收到 Deposit 交易后会在子链上创建跟 Deposit 数额一致的交易,并将其打包进区块中,作为存款确认的证明。
  • ****状态确认(State Commitment):****当大部分都转移到链下进行时,需要某种机制确保链下状态的更新得到确认,这样才能保证当有恶意行为发生时,主链可以保证用户不会受到损失。将子链中的所有交易都同步到主链显然违反了 Plasma 的初衷,在 Plasma 中,实际向主链提交的是 Merkle Tree 的根哈希。因此子链中的实际交易情况被隐藏,在主链上只能看到子链区块的哈希值。当有恶意行为发生时,子链网络中的所有用户都可以向主链提交防伪证明,证明成立后,含有恶意交易的区块将被回滚。
  • ****欺诈证明(Fraud Proof):**每当新的区块被提交到主链上时,会留出一段时间给用户提交防伪证明,如果在这段时间内没有证明被提交,则认为新的区块被验证合法。如果有防伪证明检测到区块中存在恶意交易,则该区块将被舍弃,回滚到上一个被验证合法的区块。
  • ****取款(Simple Withdrawal):****执行「简单取款」的条件是所要取回的资产已经在主链和子链上确认。如果一个用户不想等待很长的争议期(目前的实现至少要一周),那么它可以选择从 LP 这里「快速取款」,只需要消耗一个交易确认的时间,代价是需要支付给 LP 一定的费用。
  • 批量取款(Mass Withdrawal):当子链中有拜占庭行为发生时,用户之间可以共同协作执行批量取款。这时会有一个节点扮演取款处理人(Exit Processor)的角色,简称为 EP,负责当前某个批量操作(可以同时有多个批量取款操作发生,但同一个取款申请不能存在于多个批量取款),并且可以收取服务费作为报酬。EP 将构造一个位图(bitmap,即一串0/1)记录哪些资产要执行取款。之后 EP 将利用现有的区块数据检查每个取款是否合法,之后将构造一个批量退出初始化交易(Mass Exit Initiation Transaction,MEIT),并将其发送到主链上。在 MEIT 被主链确认之前,每个用户都可以对这个交易提出异议。当争议期结束,MEIT 被主链确认,批量取款成功。

2.3 存在的缺陷

  • Plasma 的实现复杂:Plasma 的实现需要运营者管理子链,同时需要智能合约来管理状态和交易。这使得 Plasma 的实现变得复杂,难以推广和应用。
  • Plasma 存在安全问题:Plasma 的安全性依赖于运营者的诚实和正确性,如果运营者出现问题,可能会导致整个系统的安全性受到威胁。
  • Plasma 的性能受限:Plasma 的性能受限于主链的性能,如果主链出现拥堵,可能会影响Plasma 的性能。
  • 出现了更好的扩容方案:随着时间的推移,出现了更好的扩容方案,如 Rollup 和 Validium 等,这些方案具有更好的性能和安全性,因此被更广泛地采用。

2.4 Polygon

Layer 2 解决方案中的提款流程以及 Plasma 技术在 Polygon 等项目中的使用。尽管 Polygon 声称不仅仅是基于 Plasma 的解决方案,但用户在使用 Plasma 桥将资产从 Polygon 转移回以太坊时仍然需要经历 7 天的等待期。

二、OP Rollup 和 ZK Rollup

要了解 Optimistic Rollup 和 ZK Rollup 的技术特点,首先要了解 Rollup 技术。与尝试将【数据和计算】从以太坊主网移动到第 2 层的状态通道和 Plasma 不同,Rollup 技术(包括 Optimistic Rollup 和 ZK Rollup)将【数据】保留在以太坊主网上,但将【计算】移动到第 2 层。这允许 Rollup 受益于以太坊主网的安全性。Rollup 技术的目的是将计算从 Layer 1 转移到 Layer 2 ,然后将Layer 2 的计算数据打包上传回主网,并使用 Layer 2 上生成的数据更新 Layer 1 上的现有数据。

举一个例子方便我们理解 rollup :

如果将以太坊的 Layer 1 类比为具有三个柜台的银行,那么 Rollup 可以类比为银行的大堂经理,当银行中同时涌进很多存钱取钱的人时,三个柜台会变得拥堵。而大堂经理可以在大厅收集用户的需求后,可以直接送到银行后台处理「结算」,减少拥堵和排队情况。

而 Optimism Rollup 和 ZK Rollup 的区别就体现在大堂经理拿到交易需求后,到后台进行结算的处理方式的不同。

1、OP Rollup

OP Rollup是一种基于 Optimistic Rollup 的扩容方案,它使用博弈论和验证游戏来确保数据验证。

1.1 特点:

  • 基于Optimistic Rollup:OP Rollup是基于Optimistic Rollup的扩容方案,优点如高性能、低成本和去中心化特性。
  • 博弈论和验证游戏:OP Rollup使用博弈论和验证游戏来确保数据验证,它们的运作假设是每个人都遵守道德规范,但如果有恶意方发布交易,就会被惩罚。
  • 内置OVM:OP Rollup在以太坊的合约中内置了一个OVM(Optimistic Virtual Machine),模拟layer2 的环境,重新执行对应交易。

1.2 工作原理:

  1. 聚合数据: 在 Layer 2 上,交易数据被聚合并打包成区块,这些区块中包含多个交易。
  2. 乐观执行: 打包后的区块被认为是有效的,不需要在 Layer 2 上执行智能合约验证。这种方式称为乐观执行,因为我们默认交易都是有效的,只有在有证据表明某笔交易无效时,才进行争议处理。
  3. 争议处理: 如果有人对某个区块中的交易提出异议,他们可以在 Layer 1 上(以太坊主网)提交证据,证明该笔交易是无效的。然后,以太坊主网上的智能合约将对这些争议进行验证,并根据验证结果来决定是否接受或拒绝争议。

1.3 Optimism 和 Arbitrum

Arbitrum 上运行着 2 个网络,用于 DeFi/NFT 的 Arbitrum One ;用于游戏 / 社交应用的 Arbitrum Nova。Nova 以安全为代价实现了低费用,因为它将链外数据交予「外部数据可用性委员会」管理。该委员会的成员包括 Offchain Labs、Consenys、谷歌云、P2P、Quicknode 和 Reddit。

与 Arbitrum 相较,Optimism 拥有更为悠久之市场历史。 Optimism 起源来自 Plasma Group 团队,该组织原本专注于开发另一种第2层解决方案 Plasma 链。于2020年1月,Plasma Group 更名为 Optimism,并将重心转向 Optimistic Rollup。

相同点:

  • Optimism和Arbitrum都是建立在以太坊主链之外运行的Rollup解决方案,可以批量处理交易,并将压缩后的结果返回到以太坊主网。它们的目标都是使DeFi变得更快、更便宜、更方便。
  • 都使用了欺诈式证明(Fraud Proof)机制来确保交易的安全性。如果一个用户提交了一个不合法的交易或区块,其他用户可以使用欺诈式证明来证明这一不合法行为,并通过提交欺诈证明来获得相应的奖励。

不同点:

  • **验证机制:**Optimism 采用乐观执行,交易在 Layer 2 上假设为有效,链上验证发生在交易提交后。Arbitrum 验证过程发生在链下,在 Layer 2 上进行交易和状态变更的处理,并在有争议时将验证结果提交到以太坊主网。
  • **智能合约执行:**Arbitrum 使用了一种名为”Arbitrum VM”的虚拟机来支持智能合约的执行。这个虚拟机与以太坊主链的虚拟机(EVM)相似,但是具有一些特殊的优化,可以实现更高的执行效率。Optimism 使用了一种名为”Optimistic Virtual Machine”(OVM)的虚拟机来支持智能合约的执行。OVM 与 EVM 兼容,但是可以通过一些优化来实现更高的执行效率。
  • **治理模型:**Arbitrum 和 Optimism 的治理模型也有所不同。在 Arbitrum 中,所有的验证人都可以参与投票,决定哪些交易可以被打包到区块中。在 Optimism 中,只有一部分特殊的用户(称为”sequencer”)可以打包交易到区块中,并决定区块的生成。
  • **愿景:**Optimism —— 搭建一个由可互操作的 L2 或 Rollup 组成的网络;Arbitrum —— 成为一个高效、可扩展和安全的以太坊 Layer 2 扩容解决方案。Optimism更注重去中心化和社区治理,而Arbitrum更注重性能和用户体验。

1.4 Vitalik 关于op rollup和zk rollup的看法:

虽然 Optimistic Rollup 由于可行性较高,短期内可能会更容易被接受,但从长远来看,随着以太坊团队和开发者的探索和熟悉,ZK Rollup 更有前景。

2、ZK Rollup:

zk-rollup是一种基于零知识证明(Zero-Knowledge Proofs)技术的Layer 2扩展解决方案,旨在提高区块链网络的交易吞吐量和降低交易费用。它是Rollup技术的一种变种,使用零知识证明来实现在 Layer 2 上进行高效的交易聚合和验证。

常用的技术:

  1. 零知识证明(Zero-Knowledge Proofs): 这是zk-rollup的核心技术,用于在不泄露详细交易信息的情况下,向验证者证明交易的正确性。通过zk-rollup,交易数据可以被聚合并压缩成简洁的零知识证明,这样可以大大减少交易数据的存储和传输成本。
  2. Rollup技术: zk-rollup是Rollup技术的一种实现方式。Rollup的核心思想是将大量交易数据和状态更新放在链下进行处理,然后只在必要时将汇总后的结果提交到区块链上。这样可以提高交易处理速度和降低交易费用,同时保持链上的安全性和可信性。
  3. zk-SNARKs(零知识可扩展非交互式论证): 这是zk-rollup中常用的一种零知识证明技术。zk-SNARKs允许对一个计算过程的结果进行证明,而无需披露具体的计算步骤和输入数据,这使得zk-rollup能够高效地证明交易的正确性。

代表性项目:

  1. Loopring(协议及DEX): Loopring 是一个去中心化交易协议和交易所(DEX),采用 zk-rollup技术来实现高性能的交易处理。Loopring协议使用zk-SNARKs来生成交易的零知识证明,然后在链上提交这些证明以验证交易的有效性。通过zk-rollup,Loopring可以实现高吞吐量和低交易费用的去中心化交易。
    https://mp.weixin.qq.com/s/uk_wLmhmyKULTBT30sOz6Q
  2. zkSync(协议及钱包): zkSync是一个开源的 Layer 2 扩展协议,基于zk-rollup技术。它允许用户在 Layer 2 上进行快速、廉价的交易,并将最终的状态变更提交到以太坊主网上。zkSync使用zk-SNARKs来创建零知识证明,并在链上提交这些证明来验证交易的有效性。

三、Validium方案

StarkWare团队在2020年6月提出了Validium方案,Validium结合 Plasma 和 zk 技术,减少了中心化的依赖,是一种基于零知识证明技术的扩展解决方案。

Validium 是使用链下数据可用性和计算的扩展解决方案,旨在通过在以太坊主网外处理交易来提高吞吐量。 与零知识卷叠(ZK 卷叠)一样,Validium 发布零知识证明以便在以太坊上验证链下交易。 这样可以防止无效的状态转换并增强 Validium 链的安全保障。

这些“有效性证明”可以有 ZK-SNARK(零知识简洁非交互式知识论证)或 ZK-STARK(零知识可扩展透明知识论证)等形式。 更多关于零知识证明(opens in a new tab)的信息。

  1. 基于 Validium 的交易:在以太坊上,用户将资金从主链转移到 Validium 合约。这些转移的资金存放在一个专门的合约中,被称为 Validium 合约。
  2. 零知识证明:在 Validium 合约中,交易数据是使用零知识证明技术加密的。这意味着主链上的用户无需知道 Validium 合约中具体发生了哪些交易,只需知道它们是有效的和合法的。这种加密保证了用户的隐私和安全。
  3. 批量提交:在 Validium 合约中的一段时间内,可以收集多个交易,形成一个批量提交。然后,这些交易将作为一个整体提交到主链,从而将多个交易合并成一笔交易。
  4. 主链上的验证:主链上的智能合约对提交的批量交易进行验证,并确认其有效性。这些验证过程使用的是Zero-Knowledge Rollup技术,该技术允许在主链上进行验证而无需查看详细的交易数据。

1、优劣

Validium 提供了诸多好处,但也进行了折衷(最值得注意的是数据可用性):Validium将数据可用性放到链下,这意味着交易数据不会存储在以太坊主网上,而是存储在链外第三方。这种取舍可以提高交易吞吐量,因为交易数据不需要在以太坊主网上存储。然而,这也可能导致数据不可用或用户无法取出资金。为了解决这个安全问题,可以采用PoS机制和经济激励来确保数据储存在各个节点中并随时可用。

2、案例

  • StarkEx:StarkEx是一个去中心化交易所,它使用Validium作为其扩容方案。StarkEx使用Validium来处理交易,以提高其交易吞吐量。
  • DeversiFi:DeversiFi是一个去中心化交易所,它也使用Validium作为其扩容方案。DeversiFi使用Validium来处理交易,以提高其交易吞吐量。

总结:

状态通道和 Plasma 旨在将数据和计算从以太坊第 1 层主链转移到第 2 层,而 Optimistic Rollup 和 ZK Rollup 仅将计算移至链下,同时将数据保留在主链上。 状态通道和 Plasma 依赖于运营商,与 Rollup 解决方案相比,这引入了一些中心化风险。

OP Rollup 保留了 PLASMA 的欺诈验证机制,提币时需要 7 天的验证期以确保安全。 Optimistic Rollup 上的主流项目是 Optimism 和 Arbitrum。 另一方面,ZK Rollup利用零知识证明快速验证用户提交的数据,避免了Optimistic Rollup 冗长的验证过程。 使用 ZK Rollup 的项目包括去中心化交易所 Loopring 和以太坊社区高度期待的 zkSync 项目。 两种解决方案相比,Optimistic Rollup 的交易成本更低,更容易采用,而 ZK Rollup 复杂的数学运算导致费用更高,并且难以实现与以太坊虚拟机(EVM)的兼容。

Validium是以太坊基于零知识证明的扩容方案之一,与其他方案如ZK-rollup和Volitions相比,它有其独特的特点和优势,但也存在着数据可用性方面的问题。

参考:

状态通道:状态通道 | ethereum.org

原地扩容:|Layer2finance:扩容的外表,DeFi门户的未来 - PANews

Plasma:深入理解Plasma(二)Plasma 细节 | 登链社区 | 区块链技术社区

Validium:Validium | ethereum.org

1 Like