Layer2 入门指南

作者 |Ali Atiia

随着牛市的到来,铺天盖地的虚假消息让观众眼花缭乱。本文旨在向初学者解释何为 Layer2,因此难免会牺牲一定的完整性和严密性,让读者在基础的水平上更好地理解文章。

通常,Layer1 链具有更高的安全性和流动性,而 Layer2 是一条想要从 L1 中获取安全性和流动性的新链。

我举一个简单的例子来向那些初学者解释这意味着什么,尤其是那些刚加入加密世界的小伙伴们

现在你在以太坊区块链上持有 100 Dai,这是你的 Metamask 钱包告诉你的。但是 Metamask 是如何知道的?它通过一个以太坊节点服务提供商 Infura 来与以太坊 p2p 网络通信。但持有 100 Dai 究竟是什么意思?Dai 合约是由一个代码和数据组成的软件,存在于以太坊区块链上,它拥有你在 Metamask 上看到的地址,旁边是数字 100。

回到我们刚刚说的新链,它可能是也可能不是 L2 链,我们姑且称之为 Macau。你想要将 100 Dai 从以太坊转到 Macau,因为你想在那里买东西,或者以更便宜的 gas 费进行交易。

那你要怎样将资产转到 Macau 呢?显然你给 Vitalik 的主节点总部发了封邮件并叫他转过去。开玩笑的...实际上,你发给了以太坊区块链的另一个合约,通常被称为“存款”合约 (把它想象成赌场的存款窗口)

第一步:你发送 100 Dai 至 Macau 部署在以太坊上的存款合约。

Macau 链上的验证者/矿工可以看到你的存款,因为他们一直都在监测以太坊区块链,尤其是存款合约,然后他对你说:”欢迎伙计!很高兴你加入我们,给你 100 个合成 Dai,可以在我们的链上使用,我刚在最新的 Macau 区块上挖的“。

第二步:你在 Macau 收到的 100 票值的借据,作为你在以太坊存款合约上锁了 100 Dai 的凭借。我们将这些票据称为合成 Dai,或者简称为 sDai。

你在 Macau 链实际上意味着你在一些网站上,其中有一些与 Macau p2p 网络通信的 Javascript。就像你在以太坊网络上时,去 Aave 网站借钱或者去 Uniswap 网站进行交易:这些前端的 Javascript 为你打包借贷或 swap 交易,喂价给 Metamask,然后点击确认对你的交易签名,并将之广播至网络。大家对该流程应该不陌生。

在 Macau 链也是一样的。事实上如果 Macau 是以太坊的一条分叉链 (如币安的智能链或者 Avalanche 的 C-Chain),它与以太坊上的流程是完全一样的。因为用户可以在两条链上使用 Metamask,不需要专门的钱包来签名批量交易 (因为 BSC 上的地址格式和加密签名方案和以太坊上的是一样的)

第三步:在 Macau 上使用 100 sDai 来进行交易、挖矿、投资等

假设你玩扑克,你赚了 100 sDai。多出的 100 sDai 是从其他 Macau 链上的玩家中获取的。

下面我们来到了关键的一步:

你想要将你的资产提出至以太坊中,因为你更加看重高安全性和足够的流动性。如果你可以在任何时间任何地点,并且只能从 Macau 的存款合约 (部署在以太坊区块链上) 中提出 200 Dai,那么就可以把 Macau 称为 L2 了.

如果 Macau 的验证者理论上可以阻止你提出 200 Dai,或者直接被盗取 (提给其他人了),那么这就不是 L2,而是侧链了。

如果你可以理论上提出的资金超过你应有的额度如 300 Dai,那么 Macau 也不是 L2.

当谈到扩容方案,总是可以归结到一个问题”谁控制了出口?”

那么如何才能让以太坊上的存款合约变得足够智能,以防止 Macau 的用户/矿工/验证者/操作者作弊呢?

可以想象这不是件容易的事,这需要合约足够智能 (记录了 Macau 上谁在什么时间借了谁一笔钱):如果用户一小时前真的在 Macau 的扑克游戏赢了 100 sDai,ta 就被赋予了在以太坊上提现真正的 100 Dai 的权利,然而 ta 也可能在那之后在接下来的游戏中输掉这笔钱。因此存款合约必须能够记录真实的真相,以及 Macau 最近的状态。

早期的解决方案如状态通道和 plasma 试图做到这一点:将欺诈信号和纠纷解决的逻辑编码到 L1 的存款/取款合约中。然而,它们都给用户带来的很大的负担,例如:

➤ 用户必须一直“在线”监测以太坊上的 L1 合约,以挑战/防止/惩罚那些威胁到其财产的恶意提款意图。

➤ 用户必须储存提出争议所需的数据。在状态通道中,这种数据通常是对手方证明状态改变所作的签名 (如,“Alice: 我证明支付了 10 Dai 给 Bob”,或者“Charlie: 我证明在配置为 X 的棋盘上将象棋移动到 位置 H5”

➤ 特定于 plasma 来说:用户容易受到这两个方面的影响 (a) 所需要储存的数据极大地增加,因为用户感兴趣的数据是 plasma 链全局状态的一部分,而不仅是状态通道对手方的数据。(b) 由 plasma 运营者 (区块提议者) 发起的数据扣留攻击,即某运营者试图恶意提款,同时又扣留用户提出争议所需要的数据。这进一步加大 L1 上的提款安全逻辑的复杂性。

直到 rollup 出现,这些棘手的问题才真正得到解决:通过要求用户退出时所需的所有数据都可以在 L1 上可用。每当 L2 的状态更新时,rollup 运营者都会在 L1 上更新这些数据。因此,L2 执行和 L1 数据更新同步进行着。

关于 rollup 的更多文章:

入门:

https://gourmetcrypto.substack.com/p/optimistic-rollups-from-the-bottom

进阶:

https://medium.com/matter-labs/optimistic-vs-zk-rollup-deep-dive-ea141e71e075

高阶 (zk-rollup):

https://ethresear.ch/t/on-chain-scaling-to-potentially-500-tx-sec-through-mass-tx-validation/3477

高阶 (optimistic rollup):

https://ethresear.ch/t/minimal-viable-merged-consensus/5617

在 rollups 中,通过数学 (ZKRU) 或加密经济保障 (ORU) 以确保所有参与者诚实参与。那么当 rollup 运营者消失或者滥发信息、审查用户或 (optimistic rollup) 实施欺诈时,用户就总是可以使用 L1 的数据来安全地取出他们的资金。这些数据都储存在 L1 上的 rollup 合约中,用户唯一需要信任的就是 L1 网络会诚实地执行这些合约 (这和其他 L1 合约的信任假设相同,如 MakerDao MCD 和 Aave 等)。

注1:

其他 L1 链如 NEAR、Polkadot 或 CosmosHub 实际上可能是相对于以太坊的 rollups,他们只需要遵循 rollup 的设计模式来构建一条桥,然后将需要的数据广播至以太坊,就像任何其他 rollup 一样。

注2:

而使用 ZK Rollup 方案时,由于它采用的是有效证明以证明 rollup 状态更新的正确性 (每一次更新都会在 L1 上验证这些证明),根本不可能发生欺诈。然而,数据仍然必须发布在链上,如此以来,当 rollup 运营者消失时,用户可以使用 L1 上的数据直接向存款合约提交提款申请。

注3:

比特币可以有 Layer2 吗?

不行。比特币缺乏编程基元和创建复杂的 L1 合约所需要的状态管道,从而可以管理争议和/或者验证有效证明。当然你可能听说过使用一些比特币侧链“无需放弃你对代币的所有权”等说法,这很可能是虚假营销。

“那闪电网络呢?” 闪电网络只是理论上的 L2。实际上,大多数普通用户将很可能委托第三方来持续监测网络系统 (见上文对状态通道的讨论),也就是说在实践上它并不是 L2。

Rollups 是唯一可以保证用户在睡觉时资金仍然安全的 layer-2 扩容解决方案,因为提款需求是在 L1 以太坊链的监测下进行的。

bba8e0aa5667da9db0e76c9e6115ba9a.jpg

表格中“优点”这一块,不同的颜色反映了问题的严重性 (如我们可以通过设计多大程度上解决这些问题)。比如,rollups 中数据存储需求的缺点很好解决 (Eth2 的推出以及诸如 LazyLedger 此类的数据可用性提供商),并且在不牺牲去中心化的前提下 (因为数据是“冷的”),也就是说,全节点不会执行它所存储的数据,并且磁盘空间成本又很低。

Layer2 入门指南

扫一扫手机访问

Layer2 入门指南

发表评论