当前位置:首页区块链第2层溶液Arbitrium汇总工作原理

第2层溶液Arbitrium汇总工作原理

Arbitrum 如何运作?如何获得无需信任的最终确定性?

来源:链外实验室

作者:埃德·费尔滕

在比较arbitrum rollup和其他rollup解决方案之前,我曾发表过一篇文章。但是,由于没有详细介绍arbitrum rollup的工作原理,因此本文将对arbitrum进行详细的介绍。

Arbitrum rollup是一个由以太坊的链上契约管理的链外协议。DAPP开发人员使用SOLid编写了一组契约,将这些契约写入arbitrum虚拟机(VM),然后可以在arbitrum汇总中运行这些契约。所以它可以跑得更快。

汇总的基本原理

让我们从基础开始。虚拟机的状态以Merkel树的形式组织,因此可以计算虚拟机状态的加密散列。在协议中的任何一点上,都会完全确认并最终确定某些虚拟机状态。这些虚拟机状态的散列存储在链上。

协议参与者可以提出一个“有争议的断言”(DA)。该断言声称虚拟机可以从一些状态哈希开始,并且可以基于某些技术前提执行特定数量的计算步骤,从而生成新的状态哈希。并在计算期间完成具体的支付并生成具体的日志事件。“有争议的主张”可能有效,也可能无效。提出“争议主张”的当事人需要根据主张的效力质押定金。(下文将详细介绍质押及其操作原理)

第2层溶液Arbitrium汇总工作原理

图:争议断言在协议中创建了一个决策点

如上图左侧所示,争议断言创建了协议最终必须解决的逻辑决策点。如果断言有效,系统将进入一个新的状态(右上角),并根据特定的断言生成新的状态哈希和其他副作用,如支付和日志记录。否则,它将转到另一个分支(右下角)并拒绝断言,保持状态不变。

旧的仲裁协议

最初的仲裁协议一次处理一个“争议主张”。当一方当事人提出主张时,质疑期开始,在此期间任何人都可以对主张提出质疑。如果没有人提出异议,则该主张将被确认;否则,争议协议将取消该争议主张(如果提议人和挑战者串通产生争议结果)。

这种设计很简单,但有两个缺点。首先,由于一次只处理一个有争议的断言,虚拟机的处理速度受到限制。因此,在每一个挑战期,处理过程基本停滞。其次,犯罪者可以通过挑战所有有争议的断言来冻结虚拟机。攻击者将支付一定的代价(押金),但如果他们不介意这些损失,至少在某些情况下,他们可能会导致系统处理的长时间延迟。

改进版

新版本的arbitrum rollup协议解决了上述两个问题。这样,虚拟机的处理速度可以和模拟虚拟机的验证节点的处理速度一样快。其次,如下图所示,作案人不能拖延程序,他们只能暂时拖延链上结果的确认,而对于诚实的节点来说,这些结果已经“无信定案”。

它是如何工作的?我需要在这个新协议上更进一步

每个州至多有一个有争议的论断。如果在一个状态之后没有有争议的断言,那么任何人都可以创建一个有争议的断言作为新的分支点。因此,各种可能的未来树木将出现。

第2层溶液Arbitrium汇总工作原理1

图片:一棵树上有许多可能的未来

誓言

仲裁的另一个重要部分是保证。任何人都可以向那棵树上的盒子认捐一定数额。通过质押,用户打赌一个盒子会被协议确认。换句话说,用户认为他下注的盒子是当前状态的正确分支。如果用户下注错误,其押金将被没收。

质押不能撤销。用户可以将押金向右移动(在每个分支点向右上/下移动),但不能向左移动,因为这相当于用户取消了以前的质押操作。

提出索赔的一方需要打赌索赔是有效的。通常情况下,他们能够满足这一要求-移动他们现有的存款到右边,并把它放在所需的盒子。(在极少数情况下,当他们做不到的时候,他们可以在所需的盒子上下注额外的钱。但是,请注意,这样做可能会导致两个相互冲突的分支机构的质押,这将导致至少一个分支机构的质押损失。因此,进行相互矛盾的操作是不明智的。)

关于质押还有另外一个细节:如果用户下注的盒子被确认并记录在协议中,用户可以选择提取押金。这意味着,如果用户下注正确,他可以选择不移动押金,待在同一个地方,直到系统追上他,然后他可以取回他的押金。

第2层溶液Arbitrium汇总工作原理2

图:一个更典的状态树-由一组正确的断言组成

在这一点上,你可能会担心充满可能性的树会变得非常大,枝繁叶茂。这在实践中不太可能发生,因为这需要多方押注于不一致的结果。他们中只有一个是对的,其他人将失去押金。结果很可能是这样的:在所有出质人都有相同结果的分支机构上,这是一连串的“有效争议主张”。

质押期限

我们需要系统尽快对每一个有争议的论断作出决定。因此,当新的有争议的断言被添加到链中并且出现分支点时,将生成与有争议的断言相关联的时段。这个期限足够长,任何人都可以在期限内判断争议主张是否有效,然后需要在期限之前选择是否下注。(超过期限后,质押交易仍可以在链条上进行,但不能参与判定争议主张是否正确。)一旦**期限到期,所有参与确定争议主张的赌注都将被知晓。

争端

如果爱丽丝和鲍勃在不同的箱子上下注,会有两种情况:一种是他们中的一个移动到另一个人下注的右边(即他们的赌注相互匹配);另一种是他们找不到这样的路径。如果爱丽丝和鲍勃没有一条正确的道路把他们联系起来,他们一定是在冲突。然后,它们之间必须有一个独特的分岔点——这一点将它们分成两个分支,每个分支下注一个相互矛盾的分支框。

第2层溶液Arbitrium汇总工作原理3

照片:爱丽丝和鲍勃之间发生了争执

当双方发生争议时,系统将启动双方之间的交互式争议解决协议。不幸的是,我没有足够的篇幅来描述本文中的这个争端解决协议——它是一个二分法类的交互协议,类似于我在其他仲裁文件中所描述的。

协议的结果是其中一方将被证明是错误的。押金将被没收,赌注将从箱子中取出。这些赌注中的一部分将转到争端的另一方,其余的将被销毁。

可以同时存在多个争议,但每个出质人一次最多只能选择一个争议。因为错误的赌注会被删除,每一次纠纷都会减少系统中的分歧。损失押金的出质人可以选择再次下注,但新的下注不能再影响期限已过的争议主张。其影响是,争议主张的质押期限届满后,争议主张如何处理的争议将被消除。

结果确认

当争议主张的质押期限届满,且在该期限内存放的所有赌注均在该主张的同一分支上时,系统可以对争议主张的结果进行确认。它将被确认或拒绝,当前状态将移动到正确框的右侧。如果断言在形式上是有效的,那么它的副作用(如支付)也会记录在链上。这就是虚拟机状态向前移动的方式。

一般来说,为了不损失存款,参与者会诚实地下注。只有有效的有争议的断言才会被提出,没有人会在有争议的断言的无效分支上下注以形成一条链。在这种情况下,每一项有争议的索赔都可以在质押期结束后立即得到确认。

为什么它不需要信任

arbitrum rollup的一个重要特性是它不需要信任—一个诚实的参与者可以确保虚拟机的状态正确地前进。为什么?假设Alice总是在每个有争议的断言的正确分支上下注,当树不再有分支时,她提出一个有争议的断言。

因为爱丽丝赌的是正确的分支,所以她在每一场争论中都是赢家。如果有人反驳爱丽丝,他们将(a)在一个无关的争端中失去押金,(b)最终进入爱丽丝的争端,他们的押金将输给爱丽丝。不管怎样,任何反对爱丽丝的人最终都会被没收。只有与爱丽丝匹配的赌注才会赢到**,因此爱丽丝的分支将是唯一能够及时收到赌注的路径-路径将被确认。

第2层溶液Arbitrium汇总工作原理4

照片:只要爱丽丝是诚实的,不管别人做什么,绿盒子最终都会被确认

由于系统不需要以这种方式被信任,如果Alice在一个盒子上下注并且知道盒子的路径是正确的,那么她可以确认它所在的盒子将最终被确认。对爱丽丝来说,这条路就像是被敲定了。

即使用户没有在某条路径上下注,如果用户看到其他一些用户在该路径上下注,并且相信该路径上至少有一个人是诚实的,他也可以确认该路径将最终被确认——对于用户来说,该路径就像是被最终确定一样。

没有信任的**确定性的好处

为什么没有必要相信结果的最终确定性如此重要?在讨论其他汇总协议时给出了一个典的例子。假设一个虚拟机要给Alice一笔交易。支付事件在正确的路径上,但是交易必须等待一段时间,直到传递交易所在的框在链上得到确认。

**,不需要信任,这样爱丽丝就可以立即收到汇款。如果鲍勃有闲钱,他可以马上给爱丽丝钱。作为交换,Alice将把将来确认的付款转移给Bob(给Bob一点额外的服务费)。鲍勃只有在确信付款交易会发生的情况下才愿意这样做。鲍勃可以通过赌一个诚实的结果来确保——这样他就不会对付款有信心了。不仅鲍勃可以这样做,而且任何人都可以用这种方式借钱给爱丽丝或像她这样的人。这些人也可以通过提供更少的费用来竞争。

关键是,这种市场机制的可行性取决于没有信任的最终确定性。如果“大家”已经知道事件最终会得到确认,那么延迟确认在链上不会造成不便。

不仅在支付方面,而且在虚拟机所做的其他事情上。如果虚拟机打算生成一个日志条目来广播所发生的事件,那么没有信任的最终确定性意味着任何人都可以确定该日志将在链上得到确认。

延迟攻击

因为系统不需要被信任,犯罪者不能强迫一个错误的结果。他们所能做的就是延迟系统的处理。但这样会牺牲自己的押金,如果质押金额大,成本会很高。

想象一下,如果有人想发起一次延迟攻击,并愿意牺牲他们的存款。他们能带来的**损失是什么?

首先,犯罪者无法阻止诚实的验证者继续在树上构建他们的诚实分支。它们也不能阻止诚实的验证者相信诚实分支的最终确认不需要可信。

攻击者所能做的就是在错误的分支上保证延迟对诚实路径的链上确认。他们的每一次下注都会给诚实真实的储户带来另一场纠纷,在这个过程中,诚实的验证者会拿走攻击者一半以上的存款。当攻击者的存款被分割时,链上的工作继续进行。

如果攻击者对多个错误的结果做出了保证怎么办?然后,这些存款将在争议中被分割。如果有许多人以诚实的结果为抵押,他们可以进入与攻击者的纠纷,与攻击者并行工作,然后将抵押的押金分走。当人们注意到这一点时,我们都知道发生了什么,会有很多人加入到对结果的承诺中,这样他们就可以拿走提出争议的攻击者的押金。如果K人保证诚实的结果,攻击者将不得不花费K押金来拖延争议期。如果攻击者花费更多的存款,它可能会吸引更多诚实的抵押人。袭击者的情况只会变得更糟。

优化

有许多优化方案可以用来减少链上运行协议所需的记帐数据量,减少链上的气体消耗,使延迟攻击引起的共享狂欢更容易发生。笔者在这里并没有详细的优化,这篇文章已经够长了。

温馨提示:

文章标题:第2层溶液Arbitrium汇总工作原理

文章链接:https://www.btchangqing.cn/204494.html

更新时间:2021年03月05日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

玩以太坊隐私钱包空白,这是元面具和龙卷风现金的组合?

2021-3-5 15:25:12

区块链

对话mcdex刘杰:拆解衍生产品设计的秘密

2021-3-5 15:31:27

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索