查看原文
其他

攻击向量:无利害攻击

Dfifans DFINITY 2022-07-07




这是我与Robert的第二部分,内容涉及著名的针对区块链的攻击以及DFINITY采取的防御类型。


无利害攻击意味着在权益证明中在多个分叉链上开采区块基本上是免费的,公证可以使分叉链快速收敛,并且使模棱两可受到惩罚。


Robert:我们这里有两点,我们没有竞赛条件,因此您作为区块制造者有足够的时间来发布区块,并且如果您行为不当或者只是等待太久才尝试某种策略,那么您的策略将是一个失败的策略。


Cédric:那就是第一个,攻击向量称为自私挖矿。什么是第二个?


无利害攻击


Robert:第二个就是所谓的无利害攻击或者叫无利益问题。什么是无利益?让我们回到工作量证明区块链的情况。我们还考虑一下分叉,两个长度相同的链。在这种情况下,在工作量证明中,您会在比特币中遵循先见规则。在像DFINITY这样的工作量证明系统中,这要复杂一些,因为开采一个区块不会花费您任何费用。


开采区块


Robert:开采一个区块基本上是免费的,您无需解决任何谜语或数字游戏。从理论上讲,将您的区块附加到一个链端上也许是有意义的,因为可能会发生该链最终成为主链的情况。但是将您的区块附加到两个链端上可能更有意义,因为这样最终有更高的机会让您的区块被接受。这是一个严重的问题,因为如果每个人都这样做的话,那么分叉将无法解决。由于分叉甚至可以创建另一个分叉,然后人们将跟随每个分叉,并且链条永远不会收敛。所以,这确实是一件坏事。


Cédric:突然之间,我们会在各地多花一倍的钱,对吧?


Robert:确实,您无法再完成交易。如果您仍然尝试去完成交易,那么这将被打破,并且双花一直可能发生。我想说的是,今天的问题更多是理论上的问题,因为有很多方法可以抵御此问题,而大多数较新的系统(例如第二代或第三代权益证明系统)都试图解决此问题。


公证


Robert:我们解决这个问题的方法是,我们对于每种区块高度都有这种常规的槽口,我们有区块制造者的清单,并且已经过公证。基本上,公证人必须选择要公证的区块。在DFINITY中,如果发生分叉,则可能会发生超过一个区块的情况,假设两个块经过公证,由于规则是公证工作的原理,因此选择要公证的区块的规则以及区块生成的规则会导致链条的快速收敛。因此,这是它的一方面,公证确实可以帮助您快速收敛。我们可以在系统中做另一件事,那就是我们可以惩罚区块制造者的模棱两可。


模棱两可


Robert:由于这种情况很容易发现,因此您可以证明或创建模棱两可的证明。如果一个区块制造者创造了一个以上的区块,那可以被证明并且也可能导致惩罚,就像我们可以减少行为不当的矿工的权益抵押一样。也许最后一点可能是有些情况很难处理,在这种情况下,区块制造者不仅可以生产一两个或两三个模棱两可的区块,而且区块制造者可以生产一百万或数十亿个区块,因为这种情况会导致中继网络出现问题。这样网络就不堪重负了,诚实区块不能再传播。


DFINITY中继政策和公证政策


Robert:为避免这种情况,我们对中继策略有规则,因此,正如我提到的,我们在中继策略和公证策略中都有规则,这些规则要处理这些模棱两可的区块,并确保它们不会真正通过网络传播。因此,如果中继节点(每个节点也是中继节点)将其接收到的区块发送到其它节点,它们将迅速停止模棱两可的区块,并且还将传播模棱两可的证明,以便其它节点可以看到发生的情况,他们也可以应用相同的策略阻止这些区块。这样一来,我们就可以避免无利害攻击了。


Cédric:好的,听起来DFINITY已实施了一些策略,可以防止无利害攻击,或者我们仅说网络中发生的问题。


Robert:是的,完全正确。因此,在我们的系统中,作为一个区块制造者,您开采一个以上的链条对您来说不是一个有利可图的策略,因为那样您的区块就不会被接受,您的任何一个区块都不会被接受,并且您也会受到惩罚。



作者:Cédric Waldburger

(Medium, 2018.9.15)

翻译:Catherine



攻击向量:自私挖矿攻击

如何开始学习区块链?



进Dfinity官方社群,请添加小助手微信:

comiocn




长按关注

Dfinity官方微信

给你第一手资讯和项目信息

更可随时答疑解惑



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存