http://www.7klian.com

科普 | 一文读懂以太坊扩容方案 ─ Rollup 事情道理

翻译 | 李翰博  

 

作者 | Ed felten  

Arbitrum Rollup是一个链外协议,由链上Ethereum合约打点。一个dapp开拓者有一组用Solidity编写的合约,开拓者将这些合约编译成Arbitrum虚拟机(VM),在Arbitrum Rollup上运行。你但愿它们能快速运行。
 
Rollup的基本常识
 
让我们从基本常识开始。你的虚拟机的状态被组织成一个Merkle树,所以可以计较出虚拟机状态的加密哈希。在协议中的任何一点,虚拟机的某个状态都是完全确认的和最终的。它的哈希值存储在链上
 
协议的参加者可以做出一个可争论的断言(DA),该断言声称,从某个状态哈希开始,在一些技能前提条件下,虚拟机可以执行指定命量的计较步调,从而获得指定的新状态哈希,而且在计较进程中虚拟机举办指定的付出和发出指定的日志事件。DA大概是有效的(即真实的)或无效的。做出DA的一方将被要求对DA的有效性举办押金。(更多关于赌注和它们如何事情的内容将在下面先容。)
如上图所示,一个可争议的断言建设了一个逻辑决定点,协议最终要办理这个问题。假如DA有效,系统将进入右上角的新状态,有一个新的状态哈希,并有DA中指定的副浸染(付出和日志)。可能在另一个分支上,DA无效,它被拒绝,状态稳定。
 
旧的Arbitrum协议
 
最初的Arbitrum协议每次处理惩罚一个可争论的断言。某个当事方会提出一个DA,然后会有一个质疑期,在此期间任何人都可以对DA提出质疑。假如没有人提出质疑,则确认DA;不然将运行争议协议,打消DA(为安详起见,以防提出者和质疑者同谋 "烹制 "争议功效)。
 
这很简朴,但有两个缺点。首先,由于一次只能有一个诉讼请求,虚拟机的希望速度将受到限制。本质上,在每个挑战期内都必需遏制希望。第二,恶意方可以通过存心挑战为该虚拟机建造的所有DA来冻结该虚拟机。这将使进攻者支付一系列的赌注,但假如他们愿意支付这个价钱,他们可以至少在某些环境下长时间地保持进度。
 
新的和改造的
 
我在这篇文章中先容的新的Arbitrum Rollup协议办理了上述两个缺点。多个DA可以被 "管道化",这样一个虚拟机的进度就像验证节点可以模仿虚拟机的计较一样快。其次,正如我们在下面会看到的那样,一恶意行为者不能减慢进度,他们只能临时延迟链上对功效的承认,而这些功效对厚道的各方来说已经是 "不行信的最终功效"
 
那是怎么做到的呢?让我们来挖掘一下新协议......
 
每个状态最多可以有一个DA跟从它。假如一个DA没有跟从状态,那么任何人都可以建设一个跟从它的DA,建设一个新的分支点。功效将是一棵大概的将来树。
                                                             这个树状图暗示了将来的多种大概性
 
stake
 
协议的另一个重要部门是staking。任何人都可以放一个stake在树上的一个方格上。通过在一个方格上staking,,你是在断言这个方格最终会被协议所确认。换句话说,你是在断言你已经在从当前状态到你所staking的方格的路径上的每一个DA采纳了正确的分支。假如你错了,你可以预期失去你的stake资产。
 
staking的动作不能被取消。你可以将你的stake向右移动--在每个分支点选择向上或向下--但你不能向左移动,因为这相当于取消你之前做出的stake理睬。
 
做出可争论断言的一方需要在该DA的 "DA有效 "担任人上staking。凡是环境下,他们可以通过将现有的赌注移动到右边,将其放在所需的担任方格上来满意这一要求。在少少数环境下,假如他们不能做到这一点,他们可以在所需的方格上安排一个特另外stake。但要留意的是,他们就会在两条纷歧致的阶梯上staking,这样他们最终至少要失去两个stakes中的一个--自相抵牾可不是明智之举)。)
 
关于赌注尚有一个细节:假如你所赌的方块被确认并成为公认的汗青,你可以选择收回你的赌注。这意味着,假如你是正确的,你可以将你的赌注保存在原地,期待系统 "遇上 "你,然后你就可以收回你的赌注。
在这一点上,你大概会担忧,大概性的树状图会变得很是大,并且‘枝繁叶茂’。这在实践中是不行能产生的,因为这需要多方对彼此纷歧致的功效举办押注。他们中只有一小我私家可以是正确的,而其他人城市失去他们的好处。更有大概的是,这棵 "树 "实际上是一个有效的DA链,一个接一个,并且所有的赌注都在同一个功效上。
 
staking期限
 
我们需要系统在时间过长之前,对每个可争议断言做出抉择。所以,当一个DA被添加到链上,建设一个分支点时,会有一个deadline与该DA相关联。这个deadline在将来足够远,假如各人选择这样做的话,就有时间查抄这个DA是否有效,并在链上获得一个生意业务来押注这个DA的功效。假如有人想理睬支持或阻挡该DA的有效性的赌注,他们必需在截至日期之前这样做。(在截至日期后,仍然可以引入好坏干系,但他们不参加抉择支持或阻挡该DA。) 一旦到了最后期限,所有与抉择该诉讼请求有关的好坏干系都将被奉告。
 
争议
 
假如Alice和Bob别离位于差异的位置,那么有两种环境之一是真的。要么是有一条从个中一个到另一个的向右移动的路径--这意味着他们的主张是一致的--要么就没有这样的路径。假如没有一条向右移动的路径毗连Alice和Bob的方块,那么他们必然是在某些工作上有分歧。他们之间总会有一个奇特的争议点--一个奇特的DA,对付这个DA,他们中的一小我私家以这个DA有效为赌注,而另一小我私家则以它无效为赌注。
每当两边产生争议时,系统可以启动两边之间的交互式争议办理协议。我没有篇幅在这里描写争议办理协议--我只想说,这是一个雷同于我们在其他Arbitrum文件中描写的二段式互动协议。
 
争议办理协议的功效是,有一方将被认定为不正确。该方将丧失其利。赌注将被从其地址的上抹去。个中一部门将交给争端中的另一方,其余的将被
 
多个纠纷可以同时举办,但每个赌注者一次最多只能参加一个纠纷。因为输家的赌注会被抹去,所以每次纠纷城市淘汰系统中的分歧量。输掉赌注的当事人假如愿意可以从头赌注,但新的赌注将无法影响赌注期限已经已往的DA。这样做的结果是,在一个DA的赌注期限事后,争端将慢慢消除关于如那里理惩罚该DA的任何分歧。
 
确认功效
 
当一个DA的下注截至日期事后,所有剩余的实时(下注截至日期前)下注都在该DA的同一分支上,系统可以确认该DA的功效。该DA被接管或拒绝,当前状态移动到该DA右侧的相应方格。
 
假如DA被确认为有效,譬喻如付出,就会在链上生效。虚拟机的状态就是这样向前移动的。
 
在一般环境下,当事人会厚道地行事,因为他们不想因为押注在虚假的索赔上而失去本身的赌注。只有有效的DA才会被断言,在一个单一的链条上,没有人会在任何DA的无效分支上押注。在这种环境下,每一个DA都可以在其押注期限到期后当即获得确认。
 
为什么它是去信任的
 
Arbitrum Rollup的一个重要属性是它是信任的--一个厚道的一方可以迫使虚拟机表示正确并取得进步。要知道为什么,想象一下,Alice老是在每个DA上押在真实的分支上,假如树曾经空了,她就会断言DA。
 
因为Alice是在真实的树状图上staking,所以她会赢得她所陷入的每一场纠纷。假如其他人差异意Alice的概念,他们要么(a)在与第三方的无关纠纷中失去本身的股权,要么(b)最终与Alice产生纠纷,并将股权输给她。无论哪种环境,所有与Alice意见相左的人最终城市失去本身的股权。只有与Alice意见一致的stake才会存活,所以Alice在树上的路径最终将是独一一条有实时stake的路径--而Alice的路径将被确认。
因为这种方法的系统是不行信的,假如Alice被押在一个方块上,而且她知道通往谁人方块的路径是真实的,那么Alice就可以确定本身地址的方块最终会被确认。对付Alice来说,那条路径就如同最终的一样
 
纵然你没有被押在一条路上,假如你看到有好几小我私家被押在这条路上,并且你相信这些人中至少有一小我私家是厚道的,那么你可以必定那条路最终会被确认--就你而言,那条路就是最终的路。
 
信任最终性的长处
 
为什么说功效的去信任性是有代价的?经典的例子来自于之前对其他rollup协议的接头。假设一个虚拟秘密向Alice举办付出。付出事件是在厚道的路径上,但要在链上确认付出产生的方块,还需要一段时间。
 
信任性的功效就是给Alice提供了一个顿时拿到钱的要领。假如Bob有当即付出的钱,他可以顿时把钱给Alice,作为互换,Alice把将来尚未确认的付款转让给Bob(加上付出给Bob的最低用度)。Bob只有在他能确定付款会真正产生的环境下才会想这么做。Bob可以通过押注厚道的功效来确定这一点--那么他就会搪塞款最终会产生布满信任的信心。不只仅是Bob能做到这一点,任何有资金的人都可以借给他。任何有资金的人都可以用同样的方法把资金借给Alice和其他像她一样的人。这些人可以通过提供更低的用度来彼此竞争,促使Alice顿时得到资金的本钱低落。
 
要害的一点是,这种市场机制的可行性取决于信任的功效。假如 "每小我私家 "都已经知道这件事最终会被确认,那么一件事在链上确认的延迟就不会有那么多未便。
 
不只对付付出是如此,对付虚拟机做的其他工作也是如此。假如虚拟秘密发出一个日志项,公布某件工作已经产生,那么去信任的功效意味着任何人都可以必定地动作,该日志项将在链上获得确认。
 
延迟进攻
 
因为这个系统是有信任性的,所以暴徒不能强行制造错误的功效。他们可以实验做的是减缓希望。这样做需要他们牺牲好坏干系,假如好坏干系的金额很大,那么价钱就会很高。
 
让我们想象一下,有人有动灵活员延迟进攻,并且他们愿意牺牲好坏干系。他们能造成的最坏的损失是什么?
 
首先要留意的是,暴徒无法阻止厚道的当事人继承成立出厚道的路径。并且他们也无法阻止厚道方在最终确认厚道分支的进程中得到去信任的信心。
 
进攻者能做的就是在假分支上staking,以延迟厚道路径的链上确认。他们每放一个stake,就会对厚道方多发生一次纠纷,在这种环境下,厚道方就会拿走进攻者的一大块stake。一旦进攻者的所有stake都被拿下,链长进度将继承举办。
 
假如进攻者将多个赌注放在虚假的功效上呢?那么这些赌注就必需在纠纷中逐一拿下。假如有多人押注在厚道的功效上,这些人都可以对进攻者进入纠纷,同时尽力拿下进攻者的赌注。并且留意,各人城市很清楚产生了什么事,许多人城市想参加进来,押注在真实的功效上,这样他们就可以插手到操作纠纷抢夺进攻者股权的喂养怒潮中。假如有K人在厚道的一方下注,那么进攻者将耗费K个赌注来购置一个争端期的延迟。假如进攻者下更多的赌注,那很大概会吸引更多的诚恳人赌注。这对进攻者来说是个欠好的动态。
 
优化
 
可以举办各类优化,以淘汰操纵协议所需的链上记账量,低落链上气体本钱,并使针对延迟进攻者的有益喂养怒潮更容易上演。我不会在这里钻研这些优化,这篇文章已经够长了。
 
前进的阶梯
 
我们正在Offchain尝试室构建这个协议。估量这个Arbitrum Rollup协议将很快被推送到我们的开源代码库中。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。