虚拟机的状态是完全确认的和最终的。它的哈希值存储在链上。
作者:埃德·费尔滕
翻译:李汉波
Arbitrum rollup是一种链外协议,由链上的以太坊契约管理。DAPP开发人员有一套完整的合同。开发人员将这些契约编译成arbitrum虚拟机(vm)并在arbitrum汇总上运行它们。你想让他们跑得快。
上卷的基本知识
让我们从基础知识开始。虚拟机的状态被组织成一个Merkle树,因此可以计算虚拟机状态的加密哈希。在协议中的任何火币交易所点,虚拟机的某个状态是完全确定的和最终的。它的哈希值存储在链上。
协议的参与者可以做出有争议的断言(DA)。该断言声称从某个状态哈希开始,虚拟机可以执行指定数量的计算步骤来获得指定的新状态哈希,并且虚拟机在计算过程中进行指定的支付并发送指定的日志事件。DA可能是有效的(即真实的)或无效的。作出授权书的一方将被要求交存授权书的有效性。(关于下注的更多信息以及它们的工作原理将在下面介绍。)
如上图所示,有争议的断言创建了一个逻辑决策点,协议最终解决了这个问题。如果Da是有效的,系统将在右上角进入一个新状态,使用新的状态散列,并具有Da中指定的副作用(支付和日志记录)。或者在另一个分支上,Da是无效的,它被拒绝并且状态保持不变。
旧的仲裁协议
最初的arbitrum协议一次处理一个有争议的断言。一个政党会提出一个检察官,然后会有一个质询期,任何人都可以质疑检察官。如果没有异议,确认Da;否则,争议协议将运行,Da将被取消(为了安全起见,以防提案人和挑战者合谋“烹调”争议结果)。
这很简单,但有两个缺点。首先,由于一次只能有一个诉讼请求,虚拟机的进程速度将受到限制。从本质上讲,在每一个挑战期,进步都必须停止。第二,恶意方可以通过故意挑战为虚拟机制作的所有Da来冻结虚拟机。这将导致攻击者付出一系列赌注,但如果他们愿意付出代价,他们可以在很长一段时间内跟上步伐,至少在某些情况下是这样。
新的和改进的
我在本文中介绍的新的arbitrum汇总协议解决了这两个缺点。多个Das可以“流水线”运行,这样虚拟机的进程与验证节点模拟虚拟机的计算速度一样快。第二,正如下面我们将看到的,恶意行为人不能放慢脚步,他们只能暂时延迟对链中结果的识别,这对于诚实的当事人来说已经是“不可靠的最终结果”
那是怎么发生的?让我们深入研究一下新协议
每个州最多可以有一个Da跟随它。如果一个DA没有follow状态,任何人都可以创建一个跟随它的DA并创建一个新的分支点。结果将是一个可能的未来树。
这棵树代表了未来的许多可能性
股份
协议的另一个重要部分是分期付款。任何人都可以在树上的正方形上立一根木桩。你在一个广场上下赌注,就是说这个广场最终会得到协议的确认。换句话说,你在断言你已经为每个Da取了正确的分支,沿着从当前状态到你所站的广场的路径。如果你错了,你可能会失去你的股份资产。
洛奇的行动不能撤销。你可以把你的赌注移到右边-在每个分支点上下移动-但是你不能移到左边,因为这相当于取消你以前的承诺。
作出有争议的主张的一方需要站在检察官的“有效”继任者的立场上。通常,他们可以通过将现有的赌注向右移动并将其放置在所需的继承方块上来满足这一要求。在极少数情况下,如果他们不能做到这一点,他们可以在所需的网格上放置一个额外的堆栈。但需要注意的是,他们将在两条不一致的道路上下赌注,因此他们最终将失去这两个堆栈中的至少一个——自相矛盾是不明智的)
关于赌注还有一个细节:如果你的赌注被确认并成为一个公认的历史,你可以选择收回你的赌注。这意味着,如果你是对的,你可以留下你的赌注,等待系统“赶上”你,然后你可以收回你的赌注。
在这一点上,你可能会担心“可能性之树”会变得非常大而且“枝繁叶茂”这在实践中是不可能的,因为它要求多方对不一致的结果下注。他们中只有一个是对的,其他人就会失去他们的利益。更有可能的是,“树”实际上是一个有效的Da链,一个接一个,所有赌注都在同一个结果上。
过渡期
我们需要系统在花费太长时间之前对每个有争议的断言做出决定。因此,当DA添加到链中以创建分支点时,将有与DA相关联的截止日期。这个**期限在将来已经足够了。如果您选择这样做,您将有时间检查Da是否有效,并让链上的交易押注Da的结果。如果有人想对Da的有效性进行赌注,他们必须在截止日期前完成。(截止日期后,仍可引入利益,但不参与支持或反对da的决定。)一旦到了**期限,将通知与索赔决定有关的所有利益。
争端
如果爱丽丝和鲍勃在不同的地方,那么有两件事是真的。或者有一条从一条通向另一条的路径——这意味着他们的主张是一致的——或者没有这样的路径。如果没有一条正确的路径连接爱丽丝和鲍勃的正方形,他们一定在某些方面有所不同。他们之间总会有一个独特的争议点——一个****的检察官。对于这个Da,一个赌Da的有效性,另一个赌Da的无效性。
当双方发生争议时,系统可以启动双方的交互式纠纷解决协议。我没有空间在这里描述争议解决协议-我只想说,它是一个两阶段的互动协议,类似于我们在其他仲裁文件中所描述的。
由于争端解决协议的结果,一方将被发现是错误的。该党将失去其利益。赌注将从链条上消失。其中一部分将交给争端的另一方,其余的将被销毁。
多个纠纷可以同时进行,但每个赌徒一次只能参与一次纠纷。因为输家的赌注被抹去,每一次争论都会减少系统中不一致的数量。下注失败的一方可以根据自己的意愿重新下注,但新的下注不会影响下注期已过的Da。这样做的效果是,在Da的下注期过后,争议将逐渐解决关于如何处理Da的任何分歧。
确认结果
当一个Da的下注截止日期结束时,所有剩余的及时下注(在下注截止日期之前)将被放置在Da的同一分支上,系统可以确认Da的结果。Da被接受或拒绝,当前状态移动到Da右侧的相应方块。
如果付款链上的付款被确认有效,则付款将有效。这就是虚拟机的状态向前移动的方式。
在正常情况下,当事方将本着诚信行事,因为他们不想因押注虚假债权而输掉赌注。只有有效的Da将被断言,并且没有人会在单链上的Da的任何无效分支上下注。在这种情况下,每个DA可以在其下注期到期后立即得到确认。
为什么值得信任
arbitrum-rollup的一个重要特性是它是可信的——诚实的一方可以迫使虚拟机正确地运行并取得进展。要知道为什么,想象一下爱丽丝总是在每个Da上的真正的树枝上下注,如果树是空的,她会断言Da。
因为爱丽丝是站在真正的树上,她将赢得每一个争端她。如果其他人不同意Alice,他们要么(a)在与第三方无关的纠纷中失去自己的股权,要么(b)最终与Alice发生纠纷并将股权让给她。在这两种情况下,任何不同意爱丽丝的人最终都会失去他们的股份。只有与Alice一致的堆栈才能生存下来,因此Alice在树上的路径最终将是唯一一个及时捕获的堆栈,Alice的路径将得到确认。
因为这样的系统是不可信的。如果Alice在一个区块上下注,并且她知道通往该区块的路径是真实的,那么Alice可以确定她的区块最终会被确认。爱丽丝的**一条路。
即使你不在路上,如果你在路上看到几个人,而且你相信其中至少有一个人是诚实的,那么你就可以确定这条路最终会被确认——就你而言,那条路是**一条。
相信结局的好处
为什么相信和任性的结果是有价值的?这个经典的例子来自于前面对其他汇总协议的讨论。假设一个虚拟机支付给Alice。付款事件处于诚实的路径上,但需要一些时间来确认链上发生付款的区块。
不信任的结果是它为爱丽丝提供了一个立即获得金钱的途径。如果Bob有钱要立即支付,他可以立即将钱给Alice作为交换,Alice将未来未确认的付款转移给Bob(加上支付给Bob的**费用)。鲍勃只有在确信付款确实会发生的情况下才会这么做。鲍勃可以通过对诚实的结果下注来确定这一点,他将有信心最终会付款。不只是鲍勃能做这件事,任何有钱的人都可以借给他。任何有钱的人都可以用同样的方式借给爱丽丝和其他像她一样的人。这些人可以通过提供较低的费用相互竞争,从而降低了爱丽丝立即获得资金的成本。
关键在于,这种市场机制的可行性取决于去信任的结果。如果“每个人”都已经知道它最终会被确认,那么在链条中延迟确认一个事件就不会那么不方便了。
这不仅适用于支付,也适用于虚拟机所做的其他事情。如果虚拟机要发布一个日志条目来宣布发生了什么,那么信任的结果意味着任何人都可以确定地行动,并且日志条目将在链上得到确认。
延迟攻击
因为系统是不信任的,坏人不能强迫错误的结果。他们能做的就是放慢进度。这就要求他们牺牲自己的利益,如果利害关系大,代价就很高。
让我们想象一下,有些人有动机发动延迟攻击,并愿意牺牲自己的利益。他们**的损失是什么?
首先要注意的是,坏人无法阻止诚实的政党继续建立诚实的道路。也不能阻止诚实一方对诚信部门的最终确认获得信任。
攻击者所能做的就是在假分支上下注以延迟诚实路径的链确认。每一次,他们都会和诚实的一方发生额外的争执。在这种情况下,诚实的一方将从攻击者的堆栈中获取一大块。一旦攻击者的所有赌注被拿下,链条上的进展将继续。
如果攻击者在一个错误的结果上下了多个赌注呢?那么这些赌注必须在争论中一个一个地赢。如果有多个人对一个诚实的结果下注,他们都可以与攻击者发生争执,并试图同时赢得攻击者的赌注。请注意,每个人都会非常清楚发生了什么,很多人会想参与进来,把赌注押在真正的结果上,这样他们就可以加入到利用争端来夺取攻击者权利的狂热中。如果有k个人在诚实的一方下注,攻击者将花费k个赌注购买延迟的争议期。如果攻击者下注较多,很可能会吸引更多诚实的人下注。这对攻击者来说是一个糟糕的动态。
优化
可以进行各种优化,以减少操作协议所需的链上记账量,降低链上的气体成本,并使延迟攻击者的有益馈送狂潮更容易执行。在这篇文章中,我对这些优化不够深入。
前进的道路
我们在下链实验室建立这个协议。预计这个arbitrum汇总协议将很快被推到我们的开源代码库中。
文章标题:了解以太坊扩展解决方案“汇总”的工作原理
文章链接:https://www.btchangqing.cn/93584.html
更新时间:2020年08月29日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。