scarlet

Posted on Mar 12, 2022Read on Mirror.xyz

长远来看, Rollups 胜出

Rollup 在以太坊社区风靡一时,并有望在可预见的未来成为以太坊的关键可扩展性解决方案。 但这项技术到底是什么,你能从中得到什么,你将如何使用它? 这篇文章将尝试回答其中一些关键问题。

背景:什么是 layer-1 和 layer-2 扩展

有两种方法可以扩展区块链生态系统。 首先,可以让区块链本身具有更高的传输能力。 这种技术的主要挑战是具有“更大块”的区块链,本质上更难以验证并且可能变得更加中心化。 为了避免此类风险,开发人员可以提高客户端软件的效率,或者更可持续地使用分片等技术,将构建和验证链的工作分散到多个节点上;这种被称为“eth2”,即对以太坊的升级。

其次,您可以改变使用区块链的方式。 用户不是将所有活动直接放在区块链上,而是在“链下即第 2 层”协议中执行他们的大部分活动。 链上有一个智能合约,它只有两个任务:处理存款和取款,以及验证链下发生的一切是否遵循规则的证据。 有多种方法可以进行这些证明,但它们都有一个共同点,即在链上验证证明比在链下进行原始计算要便宜得多。

State channels vs plasma vs rollups

第 2 层扩展的三种主要类型是State channelsPlasmarollups。 它们是三种不同的范式,具有不同的优势和劣势,在这一点上,我们相当有信心所有第 2 层扩展都大致属于这三个类别(尽管命名存在争议,例如参见“validium”)。

State channels 通道 工作原理

想象一下,爱丽丝向鲍勃提供互联网连接,以换取鲍勃向她支付每兆字节 0.001 美元。 Alice 和 Bob 没有为每次付款进行交易,而是使用以下第 2 层方案。

首先,Bob 将 1 美元(或一些 ETH 或稳定币等价物)放入智能合约中。为了向 Alice 支付第一笔款项,Bob 签署了一张“票”(一条链下消息),上面写着“0.001 美元”,然后将其发送给 Alice。为了进行第二次付款,Bob 将签署另一张标有“0.002 美元”的票据,并将其发送给 Alice。依此类推,根据需要支付尽可能多的款项。当 Alice 和 Bob 完成交易后,Alice 可以将价值最高的票发布到链上,并包裹在她自己的另一个签名中。智能合约验证 Alice 和 Bob 的签名,将 Bob 票上的金额支付给 Alice,并将剩余的金额返还给 Bob。如果 Alice 不愿意关闭通道(由于恶意或技术故障),Bob 可以发起退出期(例如 7 天);如果 Alice 在那段时间内没有提供票,那么 Bob 会拿回他所有的钱。

这种技术很强大:可以调整它以处理双向支付、智能合约关系(例如,Alice 和 Bob 在通道内制定金融合约)和组合(如果 Alice 和 Bob 有一个开放的通道,Bob 和 Charlie 也有, Alice 可以不信任地与 Charlie 交互)。但是State channels可以做的事情是有限度的。通道不能用于向尚未参与的人发送链下资金。通道不能用于服务逻辑上没有明确的自主权的对象(例如 Uniswap)。特别是如果用于做比简单的定期支付更复杂的事情,需要锁定大量资金。

plasma是如何工作的?

要存入资产,用户将其发送到管理 Plasma 链的智能合约。 Plasma 链为该资产分配一个新的唯一 ID(例如 537)。每个 Plasma 链都有一个操作员(这可能是一个中心化的参与者,或者一个多重签名,或者更复杂的东西,比如 PoS 或 DPoS)。每个时间间隔(可能是 15 秒、一个小时或介于两者之间的任何时间),操作员都会生成一个**“batch**里面包含他们在链下收到的所有 Plasma 交易。他们生成一棵 Merkle 即可信树,在树中的每个索引 X 处,如果存在这样的交易,则存在传输资产 ID X 的交易,否则该叶子节点为零。他们将这棵可信树的 Merkle 根发布到链上。他们还将每个索引 X 的 Merkle 分支发送给该资产的当前所有者。要提取资产,用户会发布向他们发送资产的最新交易的 Merkle 分支。合约开始一个挑战期,在此期间,任何人都可以尝试使用其他 Merkle 分支通过证明(i)发送者在发送资产时不拥有资产,或(ii)他们发送资产来使退出无效在稍后的某个时间点给其他人。如果在(例如)7 天内没有人证明退出是欺诈性的,则用户可以提取资产。

Plasma 提供比通道更强大的属性:您可以将资产发送给从未参与过系统的参与者,并且资本要求要低得多。但这是有代价的:在“正常运行”期间,通道不需要任何数据在链上运行,但 Plasma 要求每条链定期发布一个哈希值。此外,Plasma 转账不是即时的:您必须等待间隔结束并等待区块发布。

此外,Plasma 和通道有一个共同的关键弱点:为什么它们是安全的背后的博弈论依赖于这样的想法,即由两个系统控制的每个对象都有一些逻辑“所有者”。如果该所有者不关心他们的资产,则可能会导致涉及该资产的“无效”结果。这对于许多应用程序来说是可以的,但对于许多其他应用程序(例如 Uniswap)来说,它是一个交易破坏者。即使是可以在未经所有者同意的情况下更改对象状态的系统(例如,基于帐户的系统,您可以在未经他们同意的情况下增加某人的余额)也不能很好地与 Plasma 配合使用。这一切都意味着在任何实际的 Plasma 或通道部署中都需要大量的“特定于应用程序的推理”,并且不可能制作仅模拟完整的以太坊环境(或“EVM”)的 Plasma 或通道系统.为了解决这个问题,我们要rollups

rollups

Plasma 和通道是“完整的”第 2 层方案,因为它们试图将数据和计算都移动到链下。然而,围绕数据可用性的基本博弈论问题意味着不可能安全地为所有应用程序执行此操作。 Plasma 和通道通过依赖明确的所有者概念来解决这个问题,但这会阻止它们完全通用。另一方面,rollups 是“混合”第 2 层方案。rollups将计算(和状态存储)移至链下,但将每个事务的一些数据保留在链上。为了提高效率,他们使用了一大堆花哨的压缩技巧,尽可能用计算替换数据。结果是一个系统的可扩展性仍然受到底层区块链的数据带宽的限制,但比例非常有利:而以太坊基础层 ERC20 代币传输成本约为 45000 gas,而rollups中的 ERC20 代币传输需要 16字节 的链上空间和成本低于 300 gas。

数据在链上的事实是关键(注意:将数据“放在 IPFS 上”是行不通的,因为 IPFS 没有就任何给定数据是否可用提供共识;数据必须放在区块链上)。将数据放在链上并就这一事实达成共识允许任何人在他们愿意的情况下在本地处理rollups中的所有操作,从而使他们能够检测欺诈、发起提款或亲自开始生成交易批次。缺乏数据可用性问题意味着恶意或离线操作员可以造成更小的伤害(例如,他们不会造成 1 周的延迟),为有权发布批次的人打开更大的设计空间,并使rollups变得更加容易推理。最重要的是,缺乏数据可用性问题意味着不再需要将资产映射到所有者,这导致以太坊社区对rollups比以前的第 2 层扩展形式更加兴奋的关键原因:rollups是完全通用,甚至可以在rollups中运行 EVM,允许现有的以太坊应用程序迁移到rollups,几乎不需要编写任何新代码。