Arbitrum 被热议的原因

Arbitrum Rollup 是一种由链上以太坊合约管理的链下协议。dApp 开发者有一组用 Solidity 编写的合约,开发者将合约编译到一个 Arbitrum 虚拟机 (VM) 中,以便在 Arbitrum Rollup 上运行。我们希望他们跑得快。

Rollups 的基础

让我们从基础开始。VM 的状态组织为默克尔树,因此可以计算 VM 状态的加密哈希。在协议的任何一点上,VM 的某些状态都是被完全确认。它的哈希存储在链上。

协议的参与者可以做出一个有争议的断言 (DA),该断言声称以某种状态哈希开始,在一些技术前提下,VM 可以执行指定数量的计算步骤,从而产生指定的新状态哈希,并且 VM 在该计算期间进行指定的付款并发出指定的日志事件。DA 可能是有效的 (即真实的) 或无效的。制定 DA 的一方将被要求为 DA 的有效性押金。

Arbitrum 被热议的原因

一个有争议的断言为协议创建一个决策点

如左侧所示,有争议的断言创建了协议最终必须解析的逻辑决策点。如果 DA 有效,系统将在右上角输入一个新的状态,带有一个新的状态哈希,以及 DA 中指定的副作用 (支付和日志)。或者在另一个分支中,DA 是无效的 ; 它被拒绝了,状态保持不变。

之前的 Arbitrum 协议

原来的 Arbitrum 协议一次处理一个争议断言。DA 将会被某些人声明,然后一个挑战期就会过去,在此期间任何人都可以挑战 DA 。如果没有异议,DA 将得到确认 ; 否则将运行争议协议并取消 DA。

这很简单,但有两个缺点。首先,因为一次只能有一个 DA 是处于活动状态的,所以 VM 的进程速度将受到限制。从本质上讲,进程必须在每个挑战期间停止。第二,恶意行为者可以通过故意挑战该 VM 创建的所有 DA 来冻结 VM。这将使攻击者付出一系列代价,但如果他们愿意支付这种费用,至少在某些情况下,他们可以在很长一段时间内拖延进展。

新的,已经改进的 Arbitrum 协议

新 Arbitrum Rollup 协议解决了这两个缺点。多个 DA 可以被“流水线化”,这样 VM 就可以像验证节点模拟 VM 的计算一样快速地进行。第二,正如我们将在下面看到的,一个“恶意行为者不能减缓进展,他们只能暂时推迟链上对结果的识别,对于诚实行为者来说,这些结果已经是“去信任的结果”。

这是怎么做到的呢 ?

每个状态最多可以有一个 DA 跟随它。如果一个 DA 没有跟随状态,那么任何人都可以创建一个跟随它的 DA,从而创建一个新的分支点。其结果可能将会是一棵可能的未来树。

Arbitrum 被热议的原因
                        可能的未来树

质押

协议的另一个重要部分是质押。任何人都可以在树上的一个方盒子上质押。通过对一个方格进行质押,用户可以断言这个方格最终会被协议确认。用户断言在从当前状态到自己所放置的方格的路径上的每个 DA 处都采用了正确的分支。如果错了,用户可能会失去你的质押保证金。

质押操作不能被撤销。用户可以把自己的保证金移到右边——在每个分支点选择上或下——但是不能移到左边,因为那将等于撤销自己之前做出的质押承诺。

提出争议主张的一方必须在该 DA 的“DA 有效”继任者上进行质押。通常,他们可以通过将现有的移到右边,以将其放到所需的后继方块上来满足这一要求。(在极少数情况下,他们无法做到这一点,他们可以在所需的方格上押下额外保证金。但请注意,他们将被押在两条不一致的路径上,因此他们最终将不得不失去至少两个质押中的一个——自相矛盾并非明智之举。)

关于质押的另一个细节是 : 如果用户所质押的方块被确认并成为被接受的历史记录,用户可以选择收回自己的质押保证金。这意味着,如果用户是正确的,就可以保持自己的本金,并等待系统“追上”自己,然后用户就能够收回自己的本金。

Arbitrum 被热议的原因
一个更典型的状态树-一系列真实的断言

此时,用户可能会担心可能性树可能变得非常大和其分支。这种情况在实践中不太可能发生,因为它需要多方在相互不一致的结果上进行质押。只有一个可能是正确的,其他所有人都会失去他们的质押保证金。更有可能的是,“树”实际上是一个有效的 DA 链,一个接一个,所有的质押都在相同的结果上。

质押的截止日期

我们需要系统在时间过长之前对每个争议断言做出决定。因此,当一个 DA 被添加到链中,创建一个分支点时,一个截止日期就与这个 DA 相关联。在未来,当截止日期足够长时,每个人都有时间检查 DA 是否有效,如果他们选择这样做,就可以在 DA 的结果上获得链上交易。如果任何人想要承担支持或反对该 DA 有效性,他们必须在截止日期之前这样做。(截止日期后仍然可以引入质押保证金,但他们不参与决定是否支持该 DA。) 一旦截止日期到了,所有与决定 DA 有关的质押保证金都将被知晓。

争议

如果 Alice 和 Bob 被押在不同的方格上,那么两件事之一将是真的。要么会有一条向右移动的路径,从它们中的一个到另一个——这意味着它们的主张相互一致——要么就没有这样一条路径。如果没有一条向右移动的路径连接 Alice 和 Bob 的方格,那么它们一定在某些方面存在分歧。它们之间总会有一个独特的争议点——一个独特的 DA,其中一个被质押在此 DA 是有效的,而另一个被质押在它上是无效的。

Arbitrum 被热议的原因
           Alice 和 Bob 正准备争议

当双方发生争议时,系统可以在双方之间启动一个交互式的争议解决协议。

争议解决协议的结果是,将发现一方是不正确的。该方将失去他们的质押保证金。质押保证金将从它所在的方格上被清除。一部分将交给争议的另一方,其余的将被烧毁。

多个争议可以同时进行,但每个要质押的人一次最多只能卷入一个争议。因为输家的质押保证金将被抹去,每一次争议都会减少系统中分歧数量。失去质押保证金的当事人如果愿意,可以重新质押,但新的质押保证金将无法影响已经过了质押期限的 DA。这样做的结果是,在 DA 的质押期限过去后,争议将逐渐消除关于如何对待 DA 的任何分歧。

确认结果

一旦一个 DA 的质押截止日期已经过去,并且所有剩余的及时 (在定质押截止日期之前) 的质押都位于该 DA 的同一分支上,系统就可以确认该 DA 的结果。DA 要么被接受,要么被拒绝,当前状态移动到 DA 右侧的适当方块。如果 DA 被确认为有效,其副作用(例如付款)将在链上实现,这就是 VM 的状态如何前进。

通常情况下,各方都会诚实行事,因为他们不想因为质押于虚假声明而失去自己的利益。在单个链中,只有有效的 DA 将被断言,没有人将在任何 DA 的无效分支上质押。在这种情况下,每个 DA 都可以在其质押期限到期时立即被确认。

为什么它是去信任的

Arbitrum Rollup 的一个重要属性是它是去信任的——诚实的一方可以迫使 VM 正确运行并取得进展。为什么呢 ? 想象一下,Alice 总是在每个 DA 的真实分支上进行质押,如果树是空的,她就断言 DA。

因为 Alice 被质押在了真正的分支上,她会赢得她加入的每一场争议。如果其他人不同意 Alice,他们 (a) 要么在与第三方不相关的纠纷中失去他们的质押保证金,(b) 要么最终与 Alice 发生争议,并将他们的保证金输给她。不管怎样,所有不同意 Alice 的人最终都将失去他们的质押保证金。只有认同 Alice 的才能存活下来,因此 Alice 穿过树的路径最终将是唯一一个及时对其进行质押的人——Alice 的路径也将得到确认。

Arbitrum 被热议的原因

如果 Alice 是诚实的,不管其他人怎么做,绿色方块最终都会被确认

因为系统在这种情况下是去信任的,如果 Alice 质押在一个正方形上并且她知道到达那个正方形的路径是真实的,Alice 可以确定她所在的那个正方形最终会被确认。对 Alice 来说,这条路径与最终路径一样好。

即使用户没有在一条路径上质押,但如果看到有几个人质押在这条路径上,并且用户本人相信这些人中至少有一个是诚实的——这条路径与最终路径一样好。

去信任结果的好处

为什么去信任的结果是有价值的 ? 这个经典的例子来自以前关于其他 rollup 协议的讨论。假设一个 VM 要向 Alice 支付一笔钱。支付事件是在诚实的路径上进行的,但在支付发生的方格上进行链上确认还需要一段时间。

去信任的结果给了 Alice 可以立即拿到自己的钱。如果 Bob 有一笔没有质押的钱,他可以立即把它给 Alice,作为交换,Alice 将未来尚未确认的款项分配给 Bob(加上付给 Bob 一笔最低费用)。Bob 可以通过质押诚实的结果来确保这一点——然后他就会信心十足的等待付款最终会被确认。不只是 Bob 能这么做。任何有保证金的人都可以以同样的方式借给 Alice 和其他像她一样的人。这些人可以通过提供更低的费用来相互竞争,降低 Alice 获得保证金的成本。

关键在于,这种市场机制的可行性依赖于去信任的最终结果。如果“每个人”都已经知道某件事最终会被确认,那么链上确认的延迟就不那么麻烦了。

这不仅适用于支付,也适用于 VM 所做的其他事情。如果 VM 将发出一个日志项,宣布发生了一些事情,那么去信任的结果意味着任何人都可以确信该日志项将在链上被识别。

延迟攻击

因为这个系统是去信任的,恶意行为者不能强迫产生一个不正确的结果。他们所能做的就是减缓进程。这样做需要他们牺牲质押保证金,如果质押保证金很大的话,这将付出昂贵的代价。

假设有人想要发起延迟攻击,他们愿意牺牲质押保证金。它们能造成的最严重伤害是什么 ?

首先要注意的是,恶意行为者不能阻止诚实行为者继续建立树的诚实分支。他们也不能阻止诚实信任者在最终确认诚实的分支时获得去信任的信任。

攻击者所能做的就是在虚假分支上质押,以延迟对诚实路径的链上确认。他们放置的每一质押都会对诚实行为者造成更多的争议,诚实行为者会拿走攻击者的一大部分质押保证金。一旦攻击者的所有质押保证金都被拿走,链上进程将继续。

如果攻击者在错误的结果上设置多个风险怎么办 ? 那么这些质押保证金将在争议中一个接一个地被拿走。如果有多个人参与到诚实的结果中,那么这些人都可以与攻击者展开争议,并行地拿走攻击者的质押保证金。请注意,每个人都将清楚地看到正在发生的事情,许多人将想要参与到行动中,把质押保证金放在真实的结果上,这样他们就可以加入到人们利用争议来抢夺攻击者的质押保证金的狂热之中。如果有 K 个人在诚实的一方质押,攻击者将花费 K 个质押保证金来购买一段争议延迟。如果攻击者下了更多的质押保证金,这可能会吸引更多诚实的质押者。这对攻击者来说是一个糟糕的动态。

优化

各种优化都有可能减少操作协议所需的链上记账量,降低链上 gas 成本。