一文读懂Arbitrum Rollup的工作原理( 三 )


结果确认
某个争议断言的押注期限到期后 , 如果所有及时提交(且尚未被删除)的押注 , 都存在于从该断言产生的同一条分支上 , 那么系统就可以肯定该断言的结果为真 。 争议断言要么被接受要么被拒绝 , 当前状态会移动到争议断言右边正确的方框上 。 如果争议断言被确认有效 , 则其附带效果 , 如支付等 , 也会在链上生效 。 虚拟机的状态就是这样向前移动的 。
一般情况下 , 参与者都会诚实守矩 , 谁也不想因为押注错误而损失押金 。 只有有效的争议断言会被(其他参与者)断言 , 构成一条链 , 没有人会在任何争议断言的无效分支上押注 。 在这种情况下 , 所有的争议断言都会在押注期限一过后立即被确认 。
何以无需信任(Trustless)
Arbitrum Rollup 的一个重要性质就是无需信任 —— 只要有一个诚实参与者就可以确保虚拟机状态正确向前推进 。 为什么呢 , 想象一下 Alice 总是在正确的分支上押注 , 如果没有争议断言 , 她就自己断言 。
因为 Alice 总是在正确的分支上押注 , 所以她会赢下每一次纠纷 。 如果有任何人不同意 Alice , 他们要么 (a) 与一个无关的第三方产生纠纷并损失押金 , 或者 (b) 最终和 Alice 产生纠纷并输给 Alice 押金 。 无论哪种情况 , 所有与 Alice 不一致的人都将失去押金 。 只有同意 Alice 的押注才能存活下去 , 所以 Alice 在树上的路径最终会成为唯一一个有及时押注的分支 —— 并且 Alice 的路径会被确认 。
一文读懂Arbitrum Rollup的工作原理
本文插图
- 只要 Alice 是诚实的 , 无论别人怎么做 , 绿色方框都会得到确认 -
因为按这种方式系统是无需信任的 , 如果 Alice 押注某个方框 , 她一定知道到这个方框的路径是可信的 , Alice 可以确定这个方框最终一定会被确认 。 对于 Alice 来说 , 这条路径就跟被敲定了一样 。
即使你没有押注某条路径 , 如果你看到有好几个人对它押注 , 只要你相信其中至少有一个诚实的人 , 你就可以肯定这条路径最终一定会被确认——对你来说 , 这条路径就跟被敲定了一样 。
无需信任的终局性(Finality)的好处
为什么说无需信任的终局性有价值?经典的例子来自于之前对其他 rollup 协议的讨论 。 假设一个虚拟机要向 Alice 进行支付 。 支付事件发生在诚实的路径上 , 但是包含这笔支付的方框还需要等待一些时间被链上确认 。
无需信任的终局性让 Alice 可以立即拿到钱 。 如果 Bob 有余钱 , 可以立即付给 Alice , 以交换 Alice 尚未被确定的收款(加上支付给 Bob 一点小费) 。 Bob 只有在他能确定 Alice 的这笔收款一定会发生 , 才会想和 Alice 交易 。 Bob 可以通过押注诚实的结果来确保这一点——这样他对这笔支付最终一定会发生抱有无需信任的信心 。 不仅仅是 Bob 可以这样做 。 任何有点钱的人 , 都可以用这样的方式借钱给 Alice 或者有她这样需求的人 , 这些人通过提供更低的费用相互竞争 , 使 Alice 立即拿到钱的成本大大降低 。
关键是 , 这种市场机制的可行性取决于无需信任的终局性 。 如果 “每个人” 都知道这件事最终会被确认 , 那么链上确认的延迟就不会带来那么多的不便 。
不仅对于支付 , 虚拟机能做的其他事情也是如此 。 如果虚拟机要生成一个日志事件记录发生了什么事情 , 无需信任的终局性意味着任何人都可以肯定地采取行动 , 因为这个日志事件最终一定会被链上承认 。
延迟攻击
因为这个系统是无需信任的 , 坏人无法强行制造错误的结果 。 他们能做的只能是延缓系统 。 这样做需要他们付出押金 , 如果押金数额巨大 , 则代价高昂 。
想象一下 , 如果有人宁愿付出押金也要发动延迟攻击 , 他们能造成的最坏的情况是怎样的?