Paradigm 研讨合伙人 Georgios Konstantopoulos 解析 Optimistic Rollup 发挥作用的鼓励结构,并对常见的批判提出了回应。
撰文:Georgios Konstantopoulos,加密风投公司 Paradigm 研讨合伙人。
编译:詹娟
Paradigm 授权链闻翻译并宣布该文章中文版别。
在以太坊生态体系中,最大的应战之一是在资源严重制约(如 CPU、带宽、内存、磁盘空间)的情况下,怎样完成低推迟和高吞吐量。
体系的去中心化是由网络中最弱的节点验证体系规矩的才能所决议的。能够在低资源硬件上运转的高功能协议,能够被称为「可弹性」。
在这篇文章中,咱们将深入讨论当时「2 层处理计划」的原理、它们对应的安全模型,以及它们怎样处理以太坊的可弹性性问题。
假如你有爱好了解更多关于前沿的以太坊的可弹性技能,想要知道怎样构建和架构此类体系,那么这篇文章或许对你有协助。
在整个文章中,重要的关键词或概念会用粗体突出显现,这些都是你在学习加密货币常识的进程中会遇到的单词 / 术语。这个话题很杂乱。或许读的进程中会感觉有点困惑,但只需坚持看完,信赖将有所收获。
区块链资源需求
有三个要素会影响去中心化网络(如比特币和以太坊)中运转节点的资源需求:
-
带宽:下载和播送任何与区块链相关的数据的本钱。
-
核算:在脚本或智能合约中运转核算的本钱。
-
存储:为编制索引而存储业务数据的本钱,以及为持续处理新的业务块而存储「状况」的本钱。值得留意的是,存储「状况」(帐户余额、合约字节码、nonce 值)比存储原始业务数据本钱更高。
衡量功能的办法有 2 种:
-
吞吐量:体系每秒能够处理的业务数量。
-
推迟:业务处理所需的时刻。
比特币和以太坊这类新兴加密网络的抱负特点是去中心化,但是使网络去中心化的构成要素是什么呢?
-
低信赖度:这个特点能够让任何个人验证比特币的数量不会超过 2,100 万,或许说他们的比特币不会被伪造。独立运转节点软件的人员会核算最新的状况,并验证在此进程中是否遵从了一切规矩。
-
低本钱:假如节点软件的操作本钱很高,个人将依靠可信的第三方来验证状况。高本钱意味着高信赖需求,这是咱们首要想要防止的。
另一个需求的特点是可弹性性:将吞吐量和推迟以超线性的办法扩展到运转体系的本钱的才能。这个界说很好,但没有包括「信赖」。因而,咱们清晰了「去中心化的可弹性性」:在不明显添加体系信赖假定的情况下完成可弹性性。
扩大来看,以太坊的运转时环境是以太坊虚拟机(EVM)。经过 EVM 运转的业务以不同的本钱履行各种操作,例如,存储操作的本钱高于添加操作的本钱。业务中的核算单元称为「gas」,体系的参数设置为每个区块最多处理 12.5m gas,均匀每 12.5 秒发生一个业务区块。因而,以太坊的推迟为 12.5 秒,吞吐量为每秒 100 万 gas。
你或许会问:每秒 100 万 gas 能带来何种效益?
-
每秒 ~47 笔「简略转账」业务。这些业务耗费 21,000 gas, 担任将 ETH 从 A 转移到 B,是最简略的业务类型。
-
每秒 ~16 笔 ERC20 代币转账。与 ETH 转账相比,这些办法触及更多的存储操作,因而每次的本钱为 ~60k gas。
-
每秒 ~10 笔 Uniswap 财物买卖。代币对代币买卖的均匀本钱约为 102k gas。
-
…随便挑一个你喜欢的业务的 gas 本钱,并将其除以 1m (12.5m / 12.5 /gas)
留意,随着业务的履行杂乱度添加,体系的吞吐量会降低到很低的数值。还有改善的空间!
处理计划 1:运用一种中介
咱们能够运用一个可信的第三方来促成一切的业务。这样一来,咱们就能取得非常高的吞吐量,并且推迟或许只会是亚秒级的。太好了 ! 这不会改动任何体系范围内的参数,但咱们将会挑选加入第三方单方面设定的信赖形式。他们或许会挑选对咱们进行检查,乃至没收咱们的财物。这是不可取的。
处理计划 2:让区块更大,更频频
咱们能够经过削减两个区块之间的时刻来削减推迟,也能够经过添加区块 gas 限制来添加吞吐量。这一改动将使运营节点的本钱更高,使得个人难以运转节点(这一点现已在 EOS、Solana、Ripple 等渠道呈现了)。
在处理计划 1 中,对信赖的需求添加了。在计划 2 中,本钱添加。这就消除了它们作为可弹性性选项的或许性。
从榜首原则出发,重新发现 Optimistic Rollup
在下一节中,咱们假定读者对哈希和默克尔树现已有所了解。
根据咱们到目前为止学到的常识,让咱们模拟一个苏格拉底对话,方针是发现一种既能添加以太坊有效吞吐量,同时又不添加用户和节点操作者负担的协议。
问:咱们想在不明显改动信赖和本钱假定的情况下扩展以太坊。该怎样做呢?
答:咱们想要降低现有操刁难体系本钱的要求(见上面的三种资源类型)。为了了解为什么要做到这一点并不容易,咱们需求先看看以太坊的架构:
以太坊的每个节点目前都存储并履行用户提交给它的每笔业务。在履行进程中,业务经过 EVM 运转,并与 EVM 的状况(例如存储、余额等)交互——这种操作非常昂贵。常见的智能合约优化技能以最小化与状况的交互次数为中心,但它们只能供给较小的常量改善。
问:你是说有一种办法能够在不触及状况的情况下进行买卖,然后保持较低的资源本钱?
答:在极限情况下,咱们是否能够把一切的履行都移出链外,同时保留一些数据在链上?咱们能够经过引进一个被称为「排序者」 (sequencer) 的第三方来完成这一点。他们担任本地存储和履行用户提交的业务。为了保持体系的活跃度,排序器需求定时提交他们接收到的业务的默克尔根以及以太坊上发生的状况根。这是朝着正确方向迈出的一步,由于咱们只在以太坊的状况中存储 O (1) 数据,用于 O (N) 链下买卖。
问:所以咱们经过让排序者核算链下的一切,只发布默克尔根来完成弹性?
答:是的。
问:好的,所以一旦你加入,排序器能保证你的转账费用很廉价。那么存款和提现会怎样操作?
答:用户将经过在以太坊上存钱的办法进入体系,然后排序者将相应的金额记入用户的账户。用户能够在以太坊上提出这样的买卖内容,比方说,「我想提现 3 个 ETH,我的账户目前有 >3 ETH,这是证明」。即便第 1 层没有实际的用户状况,用户也能拿出排序器发布的状况根显现相关的默克尔证明,标明他们在当时状况下有满足的资金。
问:现在咱们知道了,用户需求默克尔证明来提取他们的资金。用户怎样取得构建默克尔证明的数据?
答:他们能够要求排序者给他们供给数据!
问:假如排序者暂时或永久不可用,那该怎样办?
答:排序者或许是歹意的,也或许只是由于技能问题而离线,这将导致功能下降(或许更糟,偷走你的财物!)。因而,咱们还有必要要求排序者在链上提交完好的业务数据来进行存储,但不能履行。在这个问题上,方针是取得数据可用性。假定一切数据都永久存储在以太坊上,即便排序者消失了,新的排序者也能够从以太坊中检索一切第 2 层相关的数据,重建最新的第 2 层状况,并从他们的前任离开的当地持续。
问:假如排序者在线,但回绝向我供给默克尔证明数据,我能够从以太坊下载吗?
答:没错,你能够自己同步一个以太坊节点,或许连接到很多保管节点服务中的一个。
问:有一点我还是不明白,你怎样能在以太坊存储东西而不履行它呢?不是每个业务都要经过 EVM 吗?
答:假定你提交了 10 个业务,将 ETH 从 A 转移到 B。履行每笔业务都将履行以下操作:添加 A 的 nonce,削减 A 的余额,添加 B 的余额。这得从以太坊的国际状况里进行相当多的写入和读取。相反,你能够将一切业务的编码发送到智能合约的 publish (bytes _transactions) public https://bicoin8.com/wp-content/uploads/2023/04/202304211cHpE0.jpg } 函数中。留意,该函数的主体是空的!这意味着发布的买卖数据不会被解说、履行,也不会在任何当地进行状况拜访,它只是存储在区块链的前史日志中(写入的本钱很低)。
问:咱们能信赖排序者吗?假如他们发布了一个无效的状况转化怎样办?
答:任何时候排序者在发布一批状况转化时,都会有一个「争议期」,在这期间任何一方能够发布「诈骗证明」以标明其间某个状况转化无效。这能够经过在链上重放导致状况转化的业务,并将发生的状况根与排序者发布的状况根进行比较来证明。假如状况根不匹配,则诈骗证明成功,并撤销状况转化。假如在无效的状况转化之后还有更多的状况转化,它们也会被撤销。但假如业务现已过了争议期,就没法再对其质疑了,它们会被视为终究买卖。
问:等一下!你之前说过,假如 a)添加本钱,或 b)引进新的信赖假定,那么它就不属于可弹性性。在你描述的计划中,咱们不是又别的假定总是会有人举报诈骗吗?
答:是的。咱们假定存在一个被称为「验证器」的实体,他们担任监视诈骗行为,假如第 1 层和第 2 层状况不匹配,他们就会发布诈骗依据。咱们还假定验证器能够在争议期限内可靠地取得以太坊中包括的诈骗依据。咱们以为验证器的存在是一个「弱」假定。幻想一下,假如有一个应用程序有不计其数的用户,你只需求一个人来运转一个验证器。这听起来不算太离谱!另一方面,改动以太坊的信赖形式,或添加以太坊节点的运营本钱是咱们不想做的「强」假定改动。这便是咱们在界说去中心化的可弹性性时所说的「明显改动底层体系的假定」。
问:我同意有人会运转一个验证器,由于各方都能从这个新处理计划的成功中获益。但当然这也取决于实际操作的本钱。那么运转一个验证器和一个排序器的资源需求是什么?
答:排序者和验证者有必要运转一个以太坊完好节点(不是存档节点),一个完好的第 2 层节点,才能生成第 2 层状况。验证者运转的软件担任创建诈骗证明,排序者运转的软件担任捆绑用户业务并予以发布。
问:便是这样吗?
答:是的!恭喜你!您现已重新发现了 Optimistic Rollup (Optimistic Rollup 是「Optimistic 合约」和「链上数据可用性」(又叫「数据汇总」)的组合),这是 2019-2021 年最令人等待的弹性处理计划。原因很好了解,由于它是以太坊社区多年研讨进程的终究产品,你应该现已在上面这个简短的对话中体会到了这一点。
Optimistic 的鼓励
第 2 层的扩展基于这样一个事实:咱们企图最小化履行的链上业务的数量。咱们运用诈骗证明来撤销任何或许发生的无效状况转化。由于诈骗证明是链上买卖,咱们还希望将以太坊上发布的诈骗证明的数量最小化。在抱负的情况下,诈骗从未发生过,因而,诈骗的证明也从未被宣布。
咱们经过引进忠实债券(fidelity bond)来按捺诈骗行为。为了让用户成为排序者,他们有必要首要在以太坊上发布一个债券,假如被证明存在诈骗,他们将丧失该债券。为了鼓励个人发现诈骗行为,排序者的债券在被削减后会分发给验证者。
忠实债券和争议期
在规划诈骗依据的鼓励机制时,有两个参数需求调整:
-
忠实债券规划:排序者有必要公布分发给验证者的数量。规划越大,成为验证者的动机就越大,而作为排序者进行诈骗的动机就越小。
-
争议期期限:能够发布诈骗证明的时刻窗口,在此刻刻窗口之后,第 2 层买卖在第 1 层上被以为是安全的。争议期较长,能够为防止检查进犯供给更好的安全保障。争议期较短,则能为从第 2 层撤回到第 1 层的用户创造良好的用户体会,由于他们不需求等待很长时刻就能够在第 1 层上重新运用他们的资金。
在咱们看来,关于这两个参数都无法找到一个切当的静态值。或许 10 个 ETH 债券和 1 天的争议期足矣。但或许 1 个 ETH 和 7 天也够。真正的答案是,这取决于成为验证者的动机(这取决于运转本钱),以及发布诈骗证明的难易程度(而这取决于第 1 层的拥塞程度)。这两者都应该是可调的,能够手动调,也能够自动调。
值得一提的是,EIP1559 向以太坊引进了一个新的 BASEFEE 操作码,该操作码可用于估计链上的拥塞,并因而以编程办法调整争议期的持续时刻。
怎样正确施行这一赏罚机制至关重要,不然它将在实践中被人乱用。我来举个比如,说明什么是幼稚而没有实操性的完成:
-
Alice 贴出了一个 1 ETH 债券,她因而得以在体系中担任排序者
-
Alice 发布了一个诈骗状况更新
-
Bob 留意到了这一点,并宣布了一项争议。假如成功,这将能把 Alice 债券中的 1 个 ETH 颁发 Bob,并撤销诈骗状况更新
-
Alice 留意到了这个争议 ,也宣布了一个争议 (应战她自己!)
-
ALice 得到了她的 1 ETH,即便她企图诈骗,实际上也没有遭到任何赏罚。
Alice 能够经过「抢跑」的办法来发起这种进犯,即播送与 Bob 相同的买卖,但 gas 价格更高,然后导致 Alice 的买卖在 Bob 之前履行。这意味着 Alice 能够持续测验以最小的本钱(仅含以太坊买卖费用)做弊。
处理这个问题很简略:不是将悉数债券颁发争论者,而是将 X% 的债券烧毁。在上面的比如中,假如咱们烧掉 50%,那么 Alice 将只会得到 0.5 个 ETH,这就足以阻挠其在进程 2 中测验做弊。当然,销毁债券削减了运转验证器的动机(由于付出变得更少了),因而需求确保债券在烧掉部分后依然足以鼓励用户成为验证者。
对 Optimistic Rollup 常见的批判和咱们的回应
现在咱们现已完成了 Optimistic Rollup 的构建模块,让咱们讨论并处理对该机制的最流行的批判。
长时刻的提款 / 争议期关于采用和可组合性是丧命的
咱们在上面提到过,长时刻的争议期对安全有长处。这儿好像存在一种固有的取舍:争议期过长对用户来说欠好,由于用户假如想要提取资金的话需求等待很长时刻。争议期较短,当然能带来流通的用户体会,但这样你就会冒诈骗发生的危险。
咱们以为这不成其不问题。由于存在漫长的提现推迟或许性,咱们预计做市商将迅速介入并供给更快的提现服务。这是或许的,由于验证第 2 层状况的人能够正确判断一个提现是否存在诈骗的或许,然后会以较小的折扣来「购买」 他们的服务。举个比如:
参与者:
-
Alice:在第 2 层有 5 个 ETH。
-
Bob:在「做市商」智能合约中,第 1 层上有 4.95 ETH,并且在第 2 层上运转一个验证器
进程:
-
Alice 让 Bob 知道她想要「快速」取款,并向他付出 0.05 ETH 的费用
-
Alice 向 Bob 的「做市商」智能合约宣布取现要求
-
此刻或许会发生两种情况:
-
Bob 在他的第 2 层验证器上检查提款是否有效,并批准快速取款。这将立即将 4.95 ETH 转移到 Alice 的第 1 层地址。在提款期完毕后,鲍勃能够领取这 5 个 ETH,净赚一笔。
-
Bob 的验证者提醒他该买卖无效。Bob 对该买卖引起的状况转化提出异议,撤销买卖,并因排序者允许歹意买卖发生而赚取其债券。
爱丽丝要么是诚笃的,立即把钱拿出来,要么是不诚笃的,会遭到赏罚。咱们希望付出给做市商的费用会随着时刻的推移而紧缩,假如有对这项服务的需求的话,终究让用户完全看不到这个进程。
该特性最重要的含义是,它能够完成与第 1 层合约的可组合性,而不必等待完好的争议期。
留意,这种技能最早在「Simple Fast Withdrawals」(简略快速提现)一文中描述过。
矿工能够经过贿赂来检查提现,损坏 Optimistic Rollup 的安全
在「Optimistic Rollup 的近零本钱进犯场景」的帖子中,有人以为,矿工的鼓励过大,这会导致排序者与以太坊矿工勾通,不愿去检查任何有争议的买卖。当然,考虑到体系安全关于处理争议的依靠,这对任何 Optimistic 体系都是丧命的。
咱们不同意这篇文章的观点。咱们假定,诚笃的一方总是愿意贿赂矿工,并且能供给比歹意方更多的资金。此外,每当矿工们由于协助歹意方获胜而违背「诚笃」行为时,都会发生额外的本钱。这种行为会损坏以太坊的价值,而这反过来会添加矿工从事这种行为的额外本钱。
事实上,这种情况现已在学术文献中得到了研讨,证明了「这种反击的要挟会诱导出一种不发生进犯的子博弈完美均衡」。
咱们要感谢 Hasu 让咱们留意到这篇论文的证明。
验证者的窘境对操作验证器、损坏 Optimistic Rollup 发生了按捺
针对验证者的窘境,Ed Felten 撰写了一个出色的 剖析 和 处理计划,咱们总结如下:
-
假如该体系的鼓励机制如预期那样发挥作用,就没有人会做弊
-
假如没有人做弊,那么运转一个验证程序就没有意义了,由于你从操作它中赚不到钱
-
由于没有人运转验证器,所以终究有时机让排序者做弊
-
排序者做弊,体系不再按预期运转
这听起来很重要,并且近乎自相矛盾的。在假定奖励规划固定的情况下,更多的验证者会削减单个验证者的预期报酬。此外,验证者多了,能分到的蛋糕好像就会随之削减,发生的诈骗行为更少,这进一步加重了这个问题。在后续剖析中,Felten 还供给了一种处理验证者窘境的办法。
我想在这儿采纳相反的立场,我以为验证者的窘境并不像批判者说的那么重要。在实践中,作为一个验证者是存在非金钱鼓励的。比方说,你或许在一个汇总渠道上构建大型应用程序,也或许持有代币,假如体系失败,那么你的应用程序将无法运转,或许你持有的代币将会贬值。除此之外,对快速提款的需求为做市商验证者创造了存在的动力(正如咱们在上一节所看到的那样),这并不受诈骗行为的影响。说得更具体一点,比特币没有供给任何鼓励办法来存储整个区块链前史或向同行供给你的本地数据,但人们还是无私地这样做。
即便在真空环境中运转验证器并不契合鼓励机制,它也能保证体系的安全,这关于那些出资于体系成功的实体来说是最重要的工作。因而,咱们以为在 Optimistic 体系的第 2 层中,不需求规划机制来绕过验证者的窘境。
结论
咱们剖析了 2021 年对以太坊至关重要的技能之一: Optimistic Rollup。
总结其长处:Optimistic Rollup 是以太坊的扩展,它承载了以太坊的安全性、可组合性和开发人员护城河,同时提高了功能,不会对以太坊用户的本钱或信赖需求造成实质性的影响。咱们探索了使 Optimistic Rollup 发挥作用的鼓励结构,并对常见的批判提出了回应。
咱们想要强调的是,Optimistic Rollup 的功能上限是由第 1 层上发布的数据所决议的。因而,它的长处在于:1) 尽或许地紧缩你发布的数据(例如经过 BLS 签名聚合),2) 拥有一个大而廉价的数据层(例如 ETH2)。
作为弥补阅览,咱们引荐 Buterin 的关于 Rollup 和 信赖模型 的 不完好攻略。咱们还主张去研讨 Optimistic Rollup 的近亲 ZK Rollup。最终,还有其他办法能够取得去中心化的可弹性性,即分片和状况通道,它们各有优缺点。
来历链接:research.paradigm.xyz
视野开拓
当一国经济衰退时,理论上它的货币应该乏人问津。但实际操作是它的需求固然减少了,但由于杠杆化太快,变成了供应也减少了,而且减少的速度远远快于需求的减少速度。-《钱的外遇》