科普 | 可不息地实现扩容并保持往中间化,Optimistic Rollup是如何设计的? | BTC

现在正在浏览这篇文章的你必定已经听说过 optimistic rollup 了吧。它是一个前途无量的新式扩容方案,在 2019 年的 DevCon 上引发了炎烈商议。现在已经有许多文章注释了该技术的做事原理,却异国一篇文章来注释其背后的 因为。这就导致有许多团队都在尝试用本身的手段来实现 optimistic rollup ,这栽各自为政的开发模式清淡不幸于整个添密货币经济编制的坦然性。

本文聚焦于谁人被大多无视的题目:注释 optimistic rollup 为何能以坦然且可不息的手段实现扩容,同时又能保持往中间化的特性。

  何为 Optimistic Rollup ?  

吾在 2019 年 6 月撰写了 optimistic rollup 的首个最幼可走规范,为吾早些时候与 Mikerah 相符著的论文《构建可扩展的往中间化支付编制》挑供了一个详细的参数化高级规范。该规范旨在实现区块链发展史上的第一条具有免允诺性和可扩展性的免信任型侧链。

-吾说的 “rollup” 不是能够吃的这栽 - optimistic rollup 的运作手段如下:任何人都能够在无需允诺地挑交一个侧链区块,将整个区块行为有待验证(即有待默克尔化)的调用数据(calldata)发布到链上,并交纳保证金。一个新的侧链区块只能链接到侧链的首先,由链上相符约进走追踪(从最简化的角度看,该相符约就像在运走一个侧链的轻客户端,存储着侧链区块头的哈希值)。一段较长的时间过后(这是一个编制参数,但必要有余长,例如一至两周),侧链区块会被确定下来,之后就会退还保证金。从侧链中取款回到主链上的操作要在侧链上发首,只需挑供对一个已确定的侧链区块的非交互式包含表明(non-interactive inclusion proof)即可。倘若一个侧链区块是无效的,且还异国得到最后确认,只要挑交吾来注释下:为什么要这么设计 Optimistic Rollup?

原形表明,optimistic rollup 和之前的扩容方案之间存在一些微弱迥异,使前者成为了最有前途的短期至中期扩容方案,让后者成为了历史。这一节会介绍这些主要迥异背后的成因。 相符并共识 optimistic rollup 最特出的一个特点是相符并共识(merged consensus)。相符并共识是一栽可在链上验证的共识制定(除此之外还有真实的区块验证,它是经由过程隐式的舛讹性表明来完善的)。但什么是往中间化共识制定呢?

往中间化共识制定包含以下几个相互自力的功能: 分叉选择规则(如何在两条都遵命了共识规则而形成的链之间选择出一条链) 区块有效性函数(状态转换函数) 领导者选举算法(经由过程该算法选举出一位领导者来生成新的区块,链接到区块链的首先,从而增补区块链的高度,或者说增补其长度) 抗女巫机制(做事量表明、权好表明等) 上述功能保障了区块链的经济 坦然性 :操纵历史是要支付代价的。(仔细:为了浅易首见,这边吾无视了一些原形,例如,一些往中间化共识制定是无领导者的)。

在 optimistic rollup 方案中,侧链是不会展现分叉的,因此不必要分叉选择规则。区块有效性是在链下计算的,而且能够在链上用舛讹性表明来表明其不切确性。剩下还有领导者选举和抗女巫抨击的题目必要解决。

吾所挑出的规范挑议采用 “先到先得” 机制,即在任一高度上,拉长侧链长度的首笔营业会被采纳。领导者选举是隐式的,而且过后才会见出分晓,而抗女巫抨击是经由过程主链实现的(即,营业费和 区块大幼/Gas 上限)。如此浅易的领导者选举规则为何能首到作用?由于以太坊区块链已经挑供了坦然性。只有展现以下三栽情况之时,才能将侧链上的某个区块变成孤块:1)该区块是无效的;2)该区块的某个先人区块是无效的;3)以太坊区块链发生重组。因此,有效的区块也具备与以太坊一致水平实在定性和坦然性!因此,吾们不必要复杂的领导者选举算法,或是成本振奋的抗女巫抨击机制来保障坦然性。侧链无需支付额外的成本即可获得坦然性,因此吾们能够极大地简化编制参数的竖立。

但是,倘若吾们想要一栽能挑前清新领导者的方案,该怎么改造呢?一个提出是,能够在链上运走 PoS + RANDAO 来进走领导者选举。这栽情况下,并不必要纳入另一栽代币,否则还会产生负面影响。正如比特币白皮书中所言:

倘若一个贪婪的抨击者所拥有的 CPU 算力超过了一切真挚节点的算力之和,他就能选择发动双花抨击,或是生成新的代币。他理答发现遵命规则对本身最有利,由于相比于损坏整个编制以及捏造幼我资产来说,遵命规则能让他获得比其它矿工添首来都多的区块奖励。

正如中本聪所说,原生代币的通盘意义就是激励 “真挚的大无数” 来珍惜整个编制。在 optimistic rollup 中异国所谓 “真挚的大无数”,也异国自力于主链的坦然性概念,因此十足没必要再纳入一栽原生代币,否则非但不会有任何助好,比首仅操纵以太币来说更不方便。

要仔细的是,只要是十足在链上运走的领导者选举机制都能够采用,不光限于吾在本文选举的那些。例如,销毁表明(Proof-of-Burn)就是其中之一。

optimistic rollup 固然与迟误状态执走(delayed state execution)和影子链(shadow chain)等挑议有诸多相通之处,但是一大关键的区别在于相符并共识的概念。optimistic rollup 的共识制定是十足在链上的智能相符约之内运走的;因此,它不会影响到主链的共识规则,也不必要得到其声援。相较之下,迟误状态执走和影子链执走的是链上自动状态转换,必要得到主链共识制定和制定内奖惩机制的清晰声援。 可不息扩容 现在吾们已经清新 optimistic rollup 是如何经由过程相符并共识实现免允诺性及其背后的因为了,那么它是如何实现可不息扩容的呢?

在撰写本文之时,未压缩的以太坊状态(用户余额和相符约存储)大幼在 45GB 旁边。迥异于(营业和区块之类的)历史数据,状态是不能够被删除的——必须由全节点完善地保存下来,以便验证(即,执走)新区块中的新营业。更糟糕的是,为了验证营业,必须对状态进走许多次随机访问,因此必要将状态存储在 RAM —— 大无数消耗级硬件都达不到这个条件 —— 或一个迅速的 NVMe 固态硬盘上。状态添长是以太坊遇到的最大的扩容瓶颈。

吾们自然能够为状态大幼设定一个硬性上限,云云就能够不必不安状态添长题目了,真实的解决方案是执走状态租赁机制,不息向状态的操纵者收取费用。然而,在以太坊上安放该机制比想象中更为难得,已经被无限期推迟了(编者注:中译本见文末超链接《论状态租金和 Stateless Ethereum》)。

有一个很实用的解决方案,能够经由过程减缓状态添长的速度来解决这一题目。zk rollup 推广操纵的:将侧链营业数据行为调用数据发布到主链上,然后操纵有效性表明或舛讹性表明来确保该数据的切确性。效果表明,存储历史数据的成本比存储状态要矮得多(矮几个 数目级 )。之后,能够经由过程主链来确保数据可用性,追踪 rollup 链的区块头,处理存取款,并验证 有效性表明/舛讹性表明,这些都不必要大量操纵状态。经由过程减缓状态添长,扩容就能够实现永远可不息性。Vitalik 之前写过一篇很好的文章,总结了如何将链上数据可用性行使到 zk rollup 和 optimistic rollup 上。

要仔细的是,固然有人指出影子链是十足等同于 optimistic rollup 的,这隐微是偏差的。

现在,吾的思想是创建一条完善的 “影子链”,把计算放到链下进走,但是会在生成 100 个区块之后向主链挑交状态转换的允诺。预言机能够将新的区块增补到这条链的首先,其中每个区块内都包含一个由营业构成的列外和一个由这些营业引发的状态转换 [[k1, v1], [k2, v2] ... ] 构成的列外。一个区块生成之后,会有一个长达 100 个区块的挑衅期,在此期间都异国遭到挑衅的话,状态转换会被自动行使到主链上。

除了未被清晰定义,影子链还会自动在链上执走状态转换,不会促进状态添长。optimistic rollup 不会执走任何状态转换,除非有效户为此付费(即,取款)。 非交互性 FTW 对于 optimistic rollup 来说,非交互型舛讹性表明专门主要。为什么?

非交互型舛讹性表明之于是如此主要,是由于要避免 Plasma Cash 存在的弱点之一,即,针对无效历史的交互型退出挑衅机制。这栽交互型多步骤挑衅机制导致 Plasma Cash 对链拥堵抨击的招架能力较矮。所谓的链拥堵抨击指的是抨击者为了窃取 Plasma 相符约内的通盘资金,向主链发送大量 “退出” 营业(不过,Plasma Cash 对这些抨击招架能力比 Plasma M(ore)VP 更高)。只必要一个非交互型舛讹性表明就能够将(单条侧链上)肆意数目的无效 optimistic rollup 区块变成孤块,使编制更能招架链拥堵抨击。注:由于 optimistic rollup 操纵了舛讹性表明,倘若主链不具备抗审阅性的话,照样存在资金遭窃的风险。

在 optimistic rollup 中,挑款也是经由过程非交互型的手段处理的:先是在侧链上发首挑款,然后针对主链上一个已得到最后确定的区块生成非交互型包含表明,再行使这个表明来完善挑款。然而,这就请求侧链具有免允诺性,因此必要的是相符并共识,而非一个相通于 Plasma 的运营方。

相比交互型验证游玩来说,非交互型舛讹性表明更有上风。交互型验证游玩所需的时间比较长。鉴于 optimistic rollup 是不会产生分叉的,抨击者能够生成一个无效的区块,行使验证游玩造成侧链停摆,从而对编制发动 DoS 抨击。有了非交互型舛讹性表明,就能够立即证实敲诈走为(然而,必要仔细的一点是,舛讹性表明的表明周围比交互型验证游玩要窄——至于这栽限制性是否真的对区块链行使有很大影响,这点尚待商议)。 营业迟误题目 Optimistic rollup 并不会降矮营业迟误。每一个侧链区块都必要被挑交到主链上,因此出块时间不会矮于主链。除了操纵足额质押的状态通道之外,暂无其他坦然且免信任的手段能够减矮这栽迟误。

不过,你纷歧定要等到侧链区块得到最后确定之后才批准它的营业。由于 optimistic rollup 不会产生分叉,成功上链的有效区块必然会得到最后确认,而且该区块的一切数据均可获得(由于一切有效区块都发布在链上),用户能够执走客户端验证,立即批准该区块内的营业。

乍看之下,取款迟误好像也是个题目,但原形并非如此。清淡情况下,用户不必要期待其挑款得到最后确认。原形上,较长时间的挑衅期主要是为了确保添密货币经济坦然性,清淡来说都不会用得上。一栽能够立即取款的简片面法是,在主链或另一条链上与起伏性挑供者(或其他想要在这条 rollup 链上存款的用户)进走原子交换 [参见链接中的 “迅速挑款:起伏性挑供者” 一节]。

-Optimistic rollup 能够让你在无需支付 gas 费用的情况下实现即时营业!- 数据可用性挑衅 吾一路先的论文挑出晓畅决数据可用性题目的三栽手段: 首终将一切数据都发布到链上 行使数据可用性挑衅,只在必要之时将数据发布到链上 行使数据可用性表明 数据可用性挑衅好像是个比较浅易靠谱的解决方案。遗憾的是,倘若是由被抨击方来义务挑衅费用的话,他们就会蒙受亏损;倘若是由抨击方来义务挑衅费用的话,整个编制就会每时每刻将一切数据都发布到链上。因此,在设计规范之时,optimistic rollup 的选择是首终将一切数据都发布到链上,并以高效果矮成本的手段来实现。不过后来,在 optimistic rollup 上操纵数据可用性表明也变得可走了。 进一步改进 吾已经基于最幼规范的初首版本撰写了性能改进方案,并总结如下。请仔细,重点围绕的是基于 UTXO 的支付,而非清淡的智能相符约执走。

以太坊 1.0 上的多线程数据可用性 —— 数据验证(即,进走哈希运算)和其它预处理步骤都是纯函数,由于它们根本不涉及任何状态。因此,这些步骤都是能够并走的。遵命这栽手段来操纵以太坊将极大缩短状态的操纵和添长,倘若操纵的是四核计算机,那么数据可用性吞吐量能够增补四倍。吾的计划是经由过程几个 EIP 来实现这一点,第一个就是 EIP-2242:营业 Postdata 。

无需将中间状态序列化的 UTXO 链紧凑型舛讹性表明 —— 针对以太坊智能相符约的通用型舛讹性表明成本很高。在 UTXO 数据模型内,每个 UTXO 最多只能创建并消耗一次,每个营业都会完善描述状态转换。区块创造者能够将元数据增补到每个输入上,声明这个输入是由一个特定的输出生成的。倘若这栽声明有错,则这栽舛讹性是能够经由过程非交互的手段来表明的。吾在另一篇文章中重新分析了 BIP-141 中挑到的舛讹性表明机制。

操纵默克尔累添器的无状态查询平走营业验证(无状态查询的客户端)—— 状态查询是专门腾贵的。无状态客户端就是经由过程清除对状态的操纵来降矮成本。但吾们能够搞浅易一点:只需免往状态查询即可。“见证数据(witness)” 是不会立即过期的,其有效性会不息几个区块。这些 “见证数据” 必须根据最新几个区块的状态转换进走比较,而状态转换能够在 UTXO 数据模型中经由过程无状态计算得出。

链上非交互型数据可用性表明——倘若自首至终都将数据上链的话,会带来重大的成本,还会导致 optimistic rollup 只能实现线性扩展(像 Plasma 这栽十足位于链下的技术就不会有这个题目,而 Plasma Cash 的检查点机制也是线性的)。吾们能够将共识节点进走可用性检查的能力经由过程一个 FFI 函数外示出来(例如,经由过程预编译的手段),就能够在无需进走分片的情况下获得二次方的可扩展性。这是 经由过程停摆实现免信任型双向桥侧链——操纵舛讹性表明的双向桥侧链必须不息保持在线,这点对用户来说能够有些未便。固然瞭看塔不适用于 Plasma Cash ,但它能够行使到 optimistic rollup 上。但是,吾们能够做得更好:能够在侧链运走一段时间后十足停摆,然后向用户挑供一个较长的窗口期(长达数月之久),以便用户挑交舛讹性表明来决定有效的区块。这段用户必须在线的窗口期是已知且有限的。等窗口期终结之后,才批准取款。倘若用户想要早一点取款的话,能够与起伏性挑供者进走原子交换。

  构建 Optimistic Rollup 的团队  

自从几个月之前第一版 Optimistic Rollup 最幼化规范撰写完善以来,吾欣然发现许多开发团队都最先构建 Optimistic Rollup 的实现了,其中经历了许多弯折和修改。下面是一张不十足列外,列举了吾们现在看到的正在构建 Optimistic Rollup 的开发团队(排名不分先后)。

Fuel —— 聚焦于安详币支付的 UTXO 数据模型。能够用来进走肆意的 ERC-20 代币或 ETH 转账,或是进走原子交换,异日还能够用来进走 “断言” 脚本撰写。该模型即将上线永远公共测试网(编者注:Fuel 现已开启公开测试网)。

Plasma Group —— 在 OVM (Optimistic Virtue Machine)环境下的通用型类 EVM 智能相符约,已经在 Devcon 5 上宣布与 Uniswap 达成配相符。

Arbitrum —— 操纵了交互型验证游玩机制的通用型智能相符约。除此之外,新的 Arbitrum rollup 设计与 optimistic rollup 大致相通。

Interstate Network —— 操纵舛讹性表明的通用型类 EVM 智能相符约。

SKALE —— 操纵 BLS signature 聚相符的 Optimistic rollup 。

NutBerry —— 操纵了交互型验证游玩机制的通用型类 EVM 智能相符约。

IDEX —— 为 IDEX 营业所构建了 “优化型 Optimistic Rollup”。

  结论  

随着各栽各样的 optimistic rollup 实现项目上线,接下来的一年以太坊将发生重大转折,其吞吐量将得到大幅挑高,并在数据可用性方面进一步实现可不息扩容。

吾在本文中异国将 optimistic rollup 与 zk rollup (这一切念最初叫作 roll_up ,由 Barry Whitehat 挑出,之后由 Vitalik 改进成 zk rollup )进走对比。倘若你对此感有趣的话,能够看一下 Alex Gluchowski 写的这篇文章(编者注:中译本见文末超链接《Optimistic Rollup vs. ZK Rollup:一探原形》)。

感谢 Mikerah Quintyne-Collins、James Prestwich、Robert Drost 和 Joseph Chow 的审校。

(完)

原文链接: https://medium.com/@adlerjohn/the-why-s-of-optimistic-rollup-7c6a22cbb61a 作者: John Adler 翻译&校对: 闵敏 & 阿剑

来源:以太坊喜欢好者,原题《科普 | Optimistic Rollup 为什么要这么设计?》

posted on 2020-09-10  作者:admin  阅读量:

栏目导航

Powered by 118彩图库 @2018 RSS地图 html地图