DaoDAO

Posted on Dec 07, 2022Read on Mirror.xyz

一文讲清楚以太坊链下扩容方案,顺带聊聊L1、L2 、L0和侧链的区别

这个话题当下讨论确实稍微有点过时,一方面熊市,大家对技术开始变得不那么感冒;另外一方面这也算是老生常谈的话题,很多区块链爱好者和组织都有撰写过类似的科普文章。现在发出来,仅仅是因为这篇文章放在草稿箱里有数月,在数据可用性DA方面实现细节至今还没搞特别透彻,但也不想再纠结了,刻意避开了其中有些我也说不清楚的点,稍加整理下就发出来罢了作为自己的学习记录。

1. 什么是Layer1?

Bitcoin、Ethereum、Cosmos、Avalanche、Solana 等等都可以视为Layer1。Layer1 又称为区块链底层协议,是所有矿工都必须遵守的规则,其设计是为了让区块链能够保持状态的“帐本一致性”与“交易最终性”,让节点以不可窜改的方式锚定数据事务,并在没有中央审查的情况下以加密的方式达成共识。大家经常听到的共识机制、区块、私钥或地址等等,都属于 Layer1 管制范畴。

Layer1 目前面临的最大瓶颈:拥堵,交易手续费贵,并且大概率都将永远直面不可能三角问题:去中心化、安全性(共识算法、分布式节点)、可扩展性。而诸多像Solana、Avalanche 这类新兴L1,大多数设计逻辑是在不可能三角进行了取舍,在可扩展性方面进行了补充和扩展。

所以,当我们在讨论L2、L0、侧链话题的时候,本质上就是在讨论解决Layer1瓶颈的问题。

2. 如何解决Layer1瓶颈问题?

Scaling扩容!这里面分成两个大的方向,分别是链上Layer1扩容方案、链下Layer2扩容方案。

2.1 链上L1扩容:

区块链技术可以拆成六大层级结构:共识层、网络层、数据层、激励层、合约层、应用层。其中前三个是区块链的底层基础,也是L1链上扩容方案操作的主体。具体到每一个层,实现扩容的思路是:

  • 共识层→共识算法的优化和修改。代表有Avalanche、Solana等,某种意义上是拿中心化换性能提升;

  • 网络层→Sharding分片。代表有 ETH2.0、Near;

  • 数据层→扩块。扩大区块容量、缩小交易数据来提升区块吞吐,不是一个特别推荐的方式,意味着运行一个节点所需的硬件和资源更高,普通用户负担不起,变成越来越中心化;

链上Layer1扩容因为要对以太坊的底层做比较大的修改,所以也没有太多其他方向上的选择,目前基本上就是专注于网络层sharding 这一种方案上,也是以太坊基金会全力推进ETH2.0执行路径的一个重要节点。

2.2 链下L2扩容:

Layer2中,目前整个社区中最受关注的方向是Rollup卷叠扩容方案,除此之外还有状态通道State channel、Plasma等方案可选择,但后面两者存在明显的局限性。

Rollup 卷叠方案指许多与以太坊主网平行运行但同时继承以太坊本身的可用性和完整性的第三方扩容方案,它允许交易在一个并行单独的区块链上执行。Rollup 的扩容原理是将数百个已处理的交易汇总成一个批次并在与以太坊主网平行的Layer2上按批次执行交易,最终完成的交易再按批次一次性发布到Layer1,以此来提升交易速度,降低Gas费。

所以,某种意义上 Layer2 方案跟“Layer1 的分片方案代表ETH2.0”其实是竞争关系。

下面重点还是讲下Layer2链下扩容方案。

3. 什么是Layer2?

首先Layer2 和 Layer1 是两条独立的区块链,L2主要承担计算和存储,将安全、共识放在Layer1 上。下文不做特殊说明,我们所讨论的“Layer1”就是特指以太坊,事实上目前几乎所有的Layer2 也还都是围绕以太坊这条L1打造。下面会分别介绍下链下Layer2扩容方案的几种具体实施方案,重点是Rollup卷叠扩容方案。 State channel、Plasma 尝试将数据和运算都搬到L2,然后将结果和状态汇总回L1

3.1 State Channel 状态通道

状态通道State Channel 允许参与者在链下使用智能合约进行交易,最后在链上进行更新结算。 如果需要开启状态通道,需要多方多签名在以太坊主网上开启一个状态通道,通道关闭的时候依然需要多签来关闭。状态通道的双方在使用前需要在链上各存一笔资金,然后双方在链下的交易额度不能超过在合约中存储的资金。这笔资金也是各方的保证金,如果发生恶意的行为,那么合约就会扣除保证金。通道开启之后,双方就可以直接在通道中进行频繁的交易,这些交易并不会上链,而是记录在通道中。等最终通道关闭的时候,通道向智能合约提交最后的状态,这些状态就会最终固定到链上,如果有资金的分配,那么也会根据最终的状态来分配。

3.2 Plasma

Plasma 基于欺诈证明(类似后面会讲的 Optimistic Rollup)的方式来连接以太坊主网,使用 Plasma 方案来跨链的用户在传输资产的时候同样要有一个等待期。在 Plasma 中,通常也会有一个运营者的角色来管理交易的排序和执行。与Optimistic Rollup 最大的不同在于 Plasma 的数据都是存储在运营商,而不是发布到以太坊上,Plasma 只会将状态的默克尔树根会被发布到以太坊主网上。这样就会导致无法使用链上的数据来完成状态的重建,在安全性上就下降了不少。

Plasma方向上代表区块链项目是早期Polygon/MATIC ,如果从Polygon转回到以太坊主网,需要经过一个 Plasma桥,并且需要等待7天。欺诈性证明。

3.3 Rollup卷叠

重点还是讲一下Rollup卷叠扩容方案,不出意外,这将是Layer2链下扩容的主要方向。目前Rollup卷叠方案又分成 Optismistic Rollups 、Zk Rollup两条分支。

1)分支1:OP Rollup

OP Rollup 从Plasma升级过来,采用了欺诈验证机制,即系统乐观的相信所有交易数据的正确性,数据不经过有效验证,但会直接进入一个7天的等待期,等待期里如果有任何节点提出异议并佐证恶意交易,则交易取消;若无异议,等待期结束,交易自动完成并写入区块。

技术实现上,OP Rollup 会在以太坊上部署合约,会在合约中维护 Rollup 状态树(Merkle Tree)的根 hash,每一次 Rollup 向以太坊发送交易数据的时候,都会更新这个根 hash。需要注意,这里存储的只是根 hash,不是整棵默克尔树,但可以使用链上的数据将默克尔树还原。 这种“欺诈证明”方案不需要在每笔交易中部署验证,大大节省了网络计算资源跟成本,同时也保证了及时的最终确定性。Op Rollup 本质是通过代币经济模型和EVM保障其安全性。所以,很能够兼容EVM。

其中代表的L2:Optimism(OP)、Arbitrum One。

2)分支2:ZK Rollup

ZK Rollup 与 Op Rollup 类似,但处理不诚实节点时使用的是零知识证明。ZK Rollup 需要比较多的数学密码学运算来证明自己交易的有效性。本质通过复杂的数学算法保障,计算量大。 技术实现上,ZK Rollup 在以太坊上会部署两个合约,主合约跟OP Rollup类似,负责存储 ZK Rollup 的区块、用户的存储款,并监控状态的更新,而另一个合约则负责验证区块生产者提交的零知识证明的准确性。

代表的L2项目有:Polygon Hermez、Starkware。

总结来说,OP和ZK Rollup 均可以将数百笔交易rollup成为Layer1上的单个交易。两者的主要差异是哪些数据发布到一层网络以及数据的核验方式。有效性证明(ZK Rollup)在链下运行计算并发布证明给L1,而欺诈证明(OP Rollup)只有在怀疑存在欺诈且必须核实欺诈时才在L1上运行计算。目前,大部分零知识卷叠是服务于特定应用的,而乐观卷叠基本上可以被广泛应用。 ​

什么是 ETH2.0?

L1 以太坊升级后就被定义为ETH2.0。以太坊升级到ETH2.0分成三步骤执行,目的也是扩容,链上扩容的一种途经。

  • Beacoin Chain 信标链(2020~2022.9):独立并行运行的新链,基于POS

  • Merge 合并(北京时间2022年9月15日14时42分)→ POW的主链与POS的信标链进行合并, POW结束,全面转变到POS

  • Sharding 分片(2023~2024)→ 最终实现扩容

什么是 Layer0?

目前还不是一个很共识的说法,但可以先概括理解为区块链更底层的协议,处于所有L1公链之下,为其提供服务的链。拿Polkadot 举例,Polkadot 的 中继链 部分就可以视为 L0,Polkadot 所谓的平行链可以视为很多的L1。很多的L1通过L0-中继链实现数据互通。

什么是侧链?

侧链完美支持EVM,但同时,侧链有自己的共识算法和安全性保障,并不依赖主链L1,除了与通过跨链桥主链在资产上有交互之外,数据和状态证明都不会发送到以太坊主网上。就这点足以区分侧链和L2。

有能力架设Bridge,并且针对资产部分,提供Wrapped Token扩容主链处理能力的,都可以视其为主链的侧链。比如Solana 虽然是定义为L1,但也因为其 Bridge Wormhole 可以铸造WormholeETH(wETH),所以 Solana 一定程度上也可以视为是 Ethereum 的侧链。