DEF:针对Layer 2协议审查攻击的研究,Vitalik称同步99%容错共识或是解决方案

译者前言:近日,区块链研究者RyuyaNakamura等人提出了一种针对Layer2协议的审查攻击策略,他们认为,这种攻击很难被识别,即使用户通过软分叉去做恢复,也无法在不惩罚诚实验证者的情况下去惩罚攻击者。

而来自以太坊研究社区的其他研究者则提出,实施这种攻击的理论成本是非常高的,因此要实施它并不现实,对此,以太坊创始人Vitalik也发表了他的看法。

以下是该攻击策略的具体内容及研究者们的讨论:

RyuyaNakamura:我们提出了一种审查特定交易的攻击策略,而想要识别出攻击者会是很困难的。

即使用户可通过社区协调的软/硬分叉从攻击中恢复,我们也无法在不惩罚诚实验证者的情况下去惩罚攻击者。

背景

基于欺诈证明的Layer2协议的安全性,取决于以下假设:如果运营者/参与者claim无效链外状态,则可以在预定义的时间段内向链提交欺诈证明并将其包含在链中。最近,@gluk64提出了这些协议的安全性,然后在

Twitter和

ethresear.ch上进行了讨论。

粗略地讲,攻击者可通过在这样的Layer2结构中,使用51%攻击来审查欺诈证明,以此实现获利,使整个系统不兼容激励,特别是因为协议内的奖励补偿了攻击者运行验证器的成本

主要对策是:

1、我们可通过“反DoS攻击”来增加此类审查攻击的成本。

TL;DR:在以太坊的智能合约模型中,如果不实际执行交易,就不知道在执行交易时调用了哪些合约,因此可以通过向攻击者发送一堆交易来对审查进行DoS攻击;2、我们可以通过软分叉从攻击中实施恢复,也可以“消灭”攻击者在PoS链中的权益。

而在这篇文章中,我们描述了一种新的审查攻击策略,而以上这些策略都无法解决这种攻击,此策略适用于除Layer2协议中欺诈证明之外的任何交易。

攻击的描述

我们假设一个PoS系统,比方说以太坊2.0信标链,其中区块提议者创建一个区块,验证者委员会在每个slot周期为一个区块投票,这些投票也被解释为CasperFFG投票以确定区块。我们期望类似的策略也适用于其他共识协议或PoW系统。

攻击者的能力

在这篇文章中,我们假设一个攻击者控制了大多数的权益。因为这样的攻击者控制了超过1/3的投票,所以CasperFFG无法完成攻击者所不喜欢的区块。

攻击者的策略

1、如果主链并不包含欺诈证明,攻击者将投票给主链。

2、如果主链中包含欺诈证明,攻击者将创建冲突链并为其投票,以分叉欺诈证明。

2.1攻击者少数的验证器会投票给包含欺诈证明的链。,其使得攻击者的验证器行为类似于诚实的验证器,另外,这种“伪装投票”数必须是足够少的,这样区块在分叉选择中就无法获胜)

攻击者在创建区块时以一定的概率选择以下任一项。

3、创建一个没有欺诈证明的区块,其充满了攻击者自己制造的交易;

4、创建一个包含欺诈证明和自制交易的区块。

4、1攻击者在下一个区块被发布后,紧接着就发布此区块,以便大多数诚实的验证者不会投票给该区块;4、2攻击者为该区块发布“伪装”投票;

此外,攻击者还有一个策略,它可以鼓励诚实的验证者在没有欺诈证明的情况下创建区块。

5、攻击者经常以高昂的费用广播其自制交易;

为什么说攻击者是安全的

抵抗“反DoS攻击”

当攻击者创建一个区块时,他并不包含其他人创建的任何交易。因此,攻击者只验证诚实验证者区块中包含的交易,因此,攻击者并不会遭受上述的DoS攻击。

攻击的不可检测性

在上面提到的策略中,攻击者不会生成含糊其辞或无效的消息。

攻击者和诚实验证者之间的区别,仅仅在于它们如何创建、发布和投票给包含欺诈证明的区块。为了减少创建具有欺诈证明的区块的投票率差异,攻击者增加了“伪装投票”,并减少诚实验证者对攻击者制造的欺诈证明进行的投票。

除此之外,策略2和4.1利用了分布式系统的特性,即活跃性故障不能从根本上与网络故障区分开来。此外,还会有各种的网络层攻击,通过这些攻击,攻击者可以延迟诚实验证者的区块和投票,使得诚实验证者看起来和攻击者相似。

因此,尽管我们必须改进策略以使这些论点更为正式,但我们推测,在不进行错误指控的情况下,很难去识别出攻击者的验证器。

用软分叉、硬分叉惩罚攻击者

如果用户们协调一次软分叉从审查交易中恢复,攻击者可以很快加入新链,以避免被检测到或遭受对liveness失败的任何惩罚。因为用户很难确定攻击者到底是谁,所以我们能做的就是用类似于“惩罚双方”的理念,在惩罚诚实验证者的同时,去惩罚所有可疑的验证者。

抵押

而确保只有攻击者一方受到惩罚的一种方法,是强迫任何人去存款成为Plasma/OpisticRollup的运营者或参与通道,并通过欺诈证明罚没抵押品。

如果我们假设社区协调的软分叉很可能成功,并且抵押品是足够多的,那么这样的Layer2协议可能实现激励相容性,同时权衡更高的进入壁垒。如果我们想避免因诚实的错误而对欺诈行为进行过多的惩罚,在这种情况下,欺诈证明可顺利提交而不会遭到审查,我们可以限制惩罚的默认金额,在遭到审查攻击的情况下,我们可以用硬分叉对攻击者进行大量惩罚。

脚注

OTOH,分片中的无效状态根的欺诈证明使链无效而不包含在链中。这篇文章提出了一个聪明的技巧;

请注意,攻击者不仅可以从单个Layer2构造中获益,其还可以同时从多个Layer2构造中获益。这就是为什么对非链上资产价值设定上限并不能解决这个问题;

在以太坊2.0中,Layer2系统将部署在分片链上,而不是在信标链上,因此最佳攻击策略可能会有所不同。我们把它留给以后讨论;

此类自制交易的费用将归攻击者所有;

以太坊研究社区的讨论

对于nrryuya提出的攻击策略,ConsenSys区块链研究员、optimisticrollup创建者JohnAdler回复称:

“首先,这种攻击的代价并非是零。

通过估算,要实施这样的协议攻击,攻击者需要掌握大约300万ETH,或大约4.5亿美元。

其次,你的投票策略是错误的,创建区块并不是投票策略的一部分,而是区块创建策略的一部分。每个slot的领导者是已知的,至少在ETH2.0的Casper中它是已知的。一个slot内不可能有多个区块提议者,因此,攻击者的区块将被轻易丢弃掉。

随后,MatterLabs合伙人AlexGluchowski回复称:

“是的,这种策略可能行不通,因为欺诈证明gas价格可能被定得高得难以置信。然而,在不补贴欺诈证明区块的情况下,这种攻击会是可行的,这才是最重要的。攻击者需要的只是“伪装”。

进行伪装的能力,是这项研究最重要的成果。

矿工们既自私又主动,一旦他们意识到有欺诈证明的区块总是被拒绝,很多人自然会引入审查政策以避免损失。尤其是如果这种行为是a)不可察觉和b)通过swagfutures行贿激励。

很快,这一讨论也引起了以太坊创始人VitalikButerin的关注,其回复道:

“我知道@vladzamfir正在研究一个主观‘CBC审查检测’系统,其提出了一个同步性假设,这允许验证器检测谁在进行审查,并形成集群,其中如果多数人在进行审查,少数人可以找到对方并建立在对方的区块上。我想知道它是否最终类似于

https://vitalik.ca/general/2018/08/07/99_fault_tolerance.html;有可能类似于Lamport的同步99%容错共识的技术,最终会成为自动拒绝审查链的强制性解决方案。”

更多讨论内容,读者可访问原贴:https://ethresear.ch/t/undetectable-censorship-attack-on-fraud-proof-based-layer2-protocols/6492

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-3:596ms