Skip to content

Latest commit

 

History

History
32 lines (18 loc) · 3.5 KB

3_推进与争议.md

File metadata and controls

32 lines (18 loc) · 3.5 KB

3_推进与争议

Arbitrum合约如何推进:正常情况

Arbitrum合约运行在某个AVM中,该AVM对应着某条特定的Arbitrum链。在VM里,ArbOS监听来自收件箱的信息,并分发给适当的合约,并发布结果。所以当其链的VM推进状态时合约也会推进。

为了推进一条链的VM,任意该Arbitrum链的验证者可以发布可争议断言,该断言通过EthBridge提交与以太坊上,该断言声明了VM下一个状态哈希和行为。在该断言提出后,其他验证者若认为它是错误的,可以在规定的时间窗口来对其进行挑战。如果断言正确,基本可以说,没有人会发起捣乱式的挑战,因为这不经济,代价太高。截止时间过后且无有效挑战,EthBridge会认为该断言正确,使得VM继续推进。

链如何推进:恶意情况

恶意的验证者试图捣乱就带来了一定麻烦。一个恶意的验证者可能会想做两件事。一,他可能会想通过发布虚假断言并希望EthBridge接受该断言,来扰乱链的运行。二,他们可能会对诚实的断言进行恶意挑战。

Arbitrum通过要求发布断言或挑战的验证者必须在EthBridge上质押一定资金来威慑作恶者。如果验证者被发现作弊了,其资金会被没收。(一半资金会奖励给挑战中的另一方。另一半资金会被销毁。一旦挑战期结束,没有作弊的验证者可以赎回其质押物。)

Arbitrum的争议解决协议,通过最小的以太坊链上活动识别作弊者,来高效地解决争议。争端以竞赛的方式解决,断言者支持该DA,挑战者反对该DA,EthBridge则是裁判。

争议解决

争议解决协议分为两个阶段。首先,用户通过链上的分割协议,来缩小争议范围,直至它们找到某一个VM运算的单步是双方互不认可的。然后,断言者向EthBridge发送一个单步证明,该单步证明是该单步运算的正确性的证明,EthBridge再来检测该证明是否有效。

断言者声称VM以状态哈希X开始,执行N条指令,导致状态哈希变为Y,而挑战者不认同该断言,分割协议就此开始。断言者需要将其断言分割为K个断言,每个都包含了N/K个指令,拼接起来就是原始的断言。然后挑战者开始找出这K个小断言中的一个进行挑战。在限定时间内,任何一方没有做出回应均会输掉挑战。经过一轮K式分割,争论的尺度就被缩减到了N/K步。

分割过程会持续进行。在经过对数次分割后(对执行指令条数N的对数),争议已被缩短到了单步,争论的内容也非常明确:VM是否能在状态哈希Y下执行该单步指令变为状态Z。

在此,断言者需要向EthBridge给出单步证明。通过该证明EthBridge可以迅速确定该断言是否正确,来解决争议。

在此我们不会深入单步证明的细节,只需要说明Arbitrum的自定义VM架构在其中其了重要作用,让单步证明最够小(大概几百bytes),并且能够迅速验证(花费大约90,000以太坊gas,当前价格大约$1)。

通过低成本解决争议,对输家进行高额惩罚,Arbitrum有力地震慑了作恶行为,即使是发生争议的情况下,也不会带来明显的链上冲击。在正常情况下,验证者会观点一致并推进链的状态。

2_AVM设计理念4_AVM规范