以太坊的扩展性解决方案详细解读
扫描二维码
随时随地手机看文章
如果不是因为这篇研究报告是受 MolochDAO 之托而作,我想 DAOSquare 应该不会翻译如此“技术性”的学术论文(至少现阶段不会)。不过,以太坊的扩展性的确是一个重要且热门的话题,现有的解决方案包括 OptimisTIc Rollup、Zk Rollup,而 OpTImisTIc Rollup 则是一个提出时间并不长的新兴方案,它被认为是最有前途的扩容方案。
以下报告由 MolochDAO 授权制作,John Adler 提供相关意见/复审;但此篇所有观点均代表本人。此外,项目评估仅为该报告发稿时的状态简况(2020年2月)。事事均在变化,不做过度承诺。
笼罩以太坊扩容社区的阴霾--OpTImsitc Rollup
2019下半年,Optimistic Rollups (ORU或Optiroll) 作为以太坊 Layer 2 扩容协议迅速兴起大热。本文旨在概述新兴 ORU 的开发生态系统至发稿时的简况(2020年2月)。我们先将 ORU 理论属性放于 Layer 2 设计空间大背景下,之后比较不同项目的方法和技术设计决策以及其中的各种取舍。9个项目包括:
Fuel Labs
ANON
Whitehat, Cellani, Lim ( hereby “WCL”)
Pinkiebell
Offchain Labs
Interstate Network
Optimism
IDEX
Celer
点击此处回顾他们的差异性。最后,我们将深入探讨一些定性问题,这些问题将围绕以上项目如何在空间中发挥自己的作用。
背景 & 理论
尽管美名在外,但开放且未授权的区块链也有很多问题:网络中的所有完整节点必须可见,并验证系统处理的每笔交易;超低效率(相较中心化数字支付系统而言)是加密货币备受争论的扩容挑战的核心。
Layer 2 协议是减轻此类负担的一类方法。将所有的节点全部验证所有交易,变为仅由感兴趣的各方(例如那些希望获得自己资金的人)对交易的某些子集进行本地验证,以此(以某种方式,形状或形式)来转移这种负担 。重要的是,他们保留基本层无需信任的安全模型,同时无需依赖用户自己运行的软件以外的资源。
· 数据可用性:解决
在以太坊 Layer 2 研发的早期阶段,研发人员计划在隐含假设下运作,即基础层“减轻验证负担”就是完全将(某些)交易数据隔离在区块链之外。(请参阅 Josh Stark 2018年初的文章 Making Sense of Ethereum’s Layer 2 以了解当时的思维方式)。
加密货币协议有其内在的经济属性,可以激励区块生产者及时地、广泛地共享区块(除非是自私挖矿等边缘情况 selfish-mining edge cases);区块链基础层有时被称为“数据可用性引擎”。确保数据是(完全)公开的,可以保证其能够进行验证,并且无效交易几乎无法通过。
因此,在Layer 2的场景中,如果要将数据完全隔离在链外,将不再能保证我们有这种数据可用性;因为那些担心数据有效性的人可能会隐瞒数据。因此,我们必须弄清楚,在这种极端情况下,如何以某种方式确保不会发生无效的状态更新。对于Layer 2系统,数据隐瞒问题始终是最难最坏的情况;因为最糟糕的就是在没有信息的情况下去探寻事实。
如果我们的定义足够宽松,针对该数据隐瞒问题的所有解决方案都可以分为两大类:状态通道和Plasma(channels and Plasma)。如果两方在一个通道中,双方一致同意后,链下数据的更新才真正有效。因此,如果 Alice 选择保留 Bob 的数据,Alice 将处于最新状态;保留数据对她没有好处。相比之下,Plasma 则没有双方一致同意的这一要求。这直接导致在 Plasma 中,如果用户没有任何直接证据,则可能发生无效更新。即使在这种情况下,Plasma 仍可以保证用户持有必要的链下数据,在交互质疑期中证明并确保其资产所有权。
就实际结果而言,状态通道已成为第一个 Layer 2 构造。人们很容易理解,且状态通道(可能)确实解决了一些基础的研究挑战,我们的确也看到状态通道在比特币和以太坊上的应用。状态通道具有一些实用属性,例如即时交易,这些属性非常契合一些特定应用程序的需求。尽管是较通用的扩容方案,但在某种程度上仍受限制。从本质上讲,通道之间是彼此独立的,且免信任的连接将导致资本效率低下,及/或受制于可用的流动路径。(我之前在 Bitcoin’s Lightning Network 发表了相关限制以及解决策略。)
Plasma 有望提供一种用途更广,侧链式扩容方案,使参与者之间可以更轻松地进行信息交互,但是它的发展路程却更艰难。有关 Plasma 技术挑战的细节不在本文讨论范围之内。但是,(非常)简单来说,不能保证数据可用性的这种特质,让很多特性难以立刻保留,例如:支持任意计价支付,用户的验证/存储要求最小化,避免大批量退出方案,以及支持智能合约逻辑 。虽然可以缓解这些问题,但是解决一个障碍的代价往往是加剧另一个障碍。简而言之,很难做到完全正确,即使这些构造足够可行,其复杂性也会让实践变得困难而缓慢。(我已在此处及此处发表分析了 Plasma Cash 及其变体的合理进展及其带来的挑战。
Plasma 的问题让甚至一些人认为其会消失(declare its demise)。即使有人认为这种说法还为时过早(例如我),但是毫无疑问,Plasma 比预期设想的更加困难复杂,而且传输结果的空间速度比最初希望的要慢。随着 Plasma 的停滞,以太坊社区渴望类似非监管下的、具有侧链特性的事物。此时,就研究和实施状态而言,Optimistic Rollup 出现了。
· 数据可用性:让步
我们可以在各种先前的提案中发现目前 Optimistic Rollup 的构造痕迹,比如 Shadowchains, Coinwitness, bulk validation with ZK-SNARKS (现在称之为 ZK-Rollup), 以及2015年初的一场关于Arbitrum 的学生演讲等。
就目前了解而言,John Adler 和 Mikerah Quintyne-Collins(又称““Bad Crypto Bitch ”)将协议基础称为“合并共识 Merged Consensus”。先前的 Plasma Group 团队(现为 Optimism,下文介绍)在一篇博客文章中描述了类似原理,并在 Optimistic Layer 2 游戏语义分析中将其定为框架,命名为 Optimistic Rollup(无论出于何种原因),并最终确定。
Optimictic Rollup 采用前一段中所述的框架并把它翻转过来;ORU 并不打算在数据隐瞒的情况下保留非监管性,而是采取了一种更直接的方法,即直接要求将交易数据发布在链上,更具体地说,要求将足够的数据发布在链上,以便任何运行以太坊节点的人都可以重建 ORU 的状态。扩容的好处在于,Layer 1 仅需发现数据并将其 Merkle 树化为区块根,无需执行任何操作;(理想情况下)计算仅在 Layer 2 执行。因此,交易数据作为呼叫数据发布在链上,并且不存储在状态中;因为状态容量增长和计算成本(可能)是以太坊扩容的核心瓶颈,这具有不小的增长空间。
与 Plasma 一样,基础层无法直接验证交易就意味着会有一些无效交易。在 ORU 下,任何当事方都将见证无效交易的更新,然后通过欺诈证据向基础层展示欺诈证明,欺诈证明将还原欺诈性区块以及及后续的区块更新。一旦过了足够的时间而没有提交欺诈证明,就可以确定并汇总区块,从这些区块中启动的提款就可以完成。为了抑制故意发布无效区块的行为对社区的恶意破坏,区块提交人会发布一个保证金,如果欺诈证明有效,将大幅削减保证金。这种防欺诈处理的精确方式是任何特定 ORU 结构的核心。
与 Plasma 相比,ORU 有一个不可避免的根本性缺点,那就是它的扩容性相对较低。假设链上数据与 ORU 块中的数据成正比,则 ORU 构造会受到基础层最大数据量的限制。不过在其他方面 ORU 也有很多益处,包括:
· 更轻松/更广泛地支持智能合约
· 更容易地支持任意付款面额
· 无需许可的区块生产
· 更简单的博弈退出机制
· 相对简单的操作
正如我们预料,即使是上述因素也需要在不同的 ORU 结构中相互权衡。(有关 ORU 背后的更多信息,请参阅 John Adler 的 “The Why’s of Optimistic Rollup”。)
Projects Overview 项目概览
本报告采访了9个使用 ORU 设计模式的项目,其中一个项目选择在发布时保持伪匿名状态(以下称为“ ANON”)。
仅考虑 Optimistic Rollup 范围内的项目,也就是说,它们必须都是 “Optimistic”,包括某种假设,即“假设有效,除非或者直到提交欺诈证明”(即,不是 ZK-rollup)并包括“Rollup”,即,链上发布了足够的数据,任何观察者都可以重建状态并检测无效性(即,不是 Plasma)。大多数所讨论的大多数项目都严格符合这些参数,唯一的例外是 IDEX 2.0,其详细信息将在下面讨论。基于 Plasma 或与 Plasma 相邻的构建上工作的其他各种项目,都属于研究 ORU 的初期阶段,包括 Matic,LeapDAO 和 Cryptoeconomics Lab。
· 智能合约支持和欺诈证明互动性
ORU 项目之间的核心区别在于它们对智能合约脚本的支持程度,以及它们所需要的验证和欺诈证明的性质。在本次调研的9个项目中,有5个项目在其 Rollup 中实现了完整的以太坊虚拟机功能,其中 rollup 侧链具有 Solidity 智能合约支持,其支持程度(大致)与以太坊基础层的智能合约支持程度相当,而其余项目则更偏向于支持更有限的、受限的功能。
广义上讲,除了智能合约功能本身之外,支持完整的 EVM 能够保证 rollup 和主链之间的技术一致性,有望与基础架构工具更轻松地集成,并且让开发人员更容易过渡,他们已习惯在 Layer1 上使用 Solidity 编译的智能合约。相反,那些更偏向于支持更有限的、受限的功能项目具有以下优点:成本更低的(或多或少)欺诈证明,验证更容易,可以针对特定用户直接实现优化以及总体上的简化。