查看原文
其他

攻击向量:自私挖矿攻击

Dfifans DFINITY 2022-07-07




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


自私挖矿涉及秘密建立和释放一条链,这取决于官方链的进度。公证和区块时间延迟可防止DFINITY中的区块保留。


欢迎回到Inside DFINITY的另一集,今天Robert和我将谈论不同的攻击和攻击途径,它们在区块链系统中很常见。


在我们开始话题之前,欢迎参与节目。还有,今天我们要谈论的攻击是什么?


自私挖矿攻击


Robert:谢谢你,Cédric,这是众所周知的三种攻击。第一种是臭名昭著的自私挖矿攻击,第二种是无利害攻击,第三种是长程攻击。我将尝试为您简要介绍这三种攻击,并说明DFINITY如何防御这些类型的攻击。我们无法详细介绍每次攻击的细节,但让我们看看它们的总体工作原理。


Cédric:听起来不错,因此我们将简要讨论这三种攻击的工作原理,以及DFINITY为应对这些攻击而采取的措施。


Robert:太好了,让我们从第一个攻击“自私挖矿”开始。其实,自私挖矿并不是真正的攻击。对于每个想要优化其利润的矿工来说,这也可以看作是一种策略,这是每个矿工都试图做的。事实证明,在某些情况下,矿工可以用某种方式优化其采矿策略,这会伤害其他矿工,也伤害其同行。


诚实挖矿策略


Robert:让我们看看这是怎么发生的。为此,我们需要从在比特币和许多其它区块链中实施的诚实挖矿策略开始。在比特币和其它工作量证明区块链中,您具有一条链,并且该链像自然分叉一样,因为总是有可能两个矿工在大约同一时间释放其区块,所以其他矿工会捡起两个不同的区块建造自己的区块。


最长链规则


Robert:现在,比特币通过应用一个非常简单的规则(最长链规则)来解决分叉。这条规则意味着,当一个诚实的矿工看到了这个,因此这是链A,这是链B,那么链A的区块比B多一个。因此,诚实的矿工将在这里附加他的区块在链A上。这种情况可能会发生,就像分叉的起点一样,这意味着我们有两个具有相同高度的独立链条末端。然后,比特币采用的通常策略是所谓的“先见规则”,这意味着您作为矿工将选择您首先看到的区块。如果您首先看到了此块,则将在此处附加区块。所以这很简单。


早在2013年,Emin Gün Sirer等人就发表了一篇论文,他们发现这种策略并不是在每种情况下都最赚钱的策略。在某些情况下,这取决于您作为矿工拥有的哈希能力大小,并且还取决于您的网络连接性,因此还取决于块传播的速度。根据这两个参数,在某些情况下,您可以应用比最长链条规则和先见规则更有利可图的挖矿策略。


区块时间和保留


Robert:我无法详细说明,但是该策略涉及其他矿工的时间安排和保留区块。这意味着您秘密构建了一个分叉,而没有将区块释放到矿工网络,而是基于其他矿工传播的官方链的进度,您将决定是否释放区块。因此,如果您不释放区块,则意味着您将继续秘密添加区块,并可能稍后释放分叉链。而且,您可以从数学上证明,如果您具有足够高的对抗能力,或者您拥有足够高的网络挖掘能力和足够高的网络连通性,那么此策略将比原始挖矿规则更有利可图。


Cédric:基本上,这意味着我需要大量的采矿能力吗?因为这意味着我需要先找到第一个区块,然后再找到另一个区块而不显示我的第一个区块,并且我可以构建隐藏的分叉,然后稍后再释放它,并收集所有附带的奖励。


Robert:是的,所以有趣的是您的策略更多地是在处理其他节点的进度。相对而言,您将破坏其他矿工的一些回报。因此,您将获得比其他矿工更高的相对报酬,从长期来看,由于比特币的难度调整规则,将导致您可以长期获得更多利润。如果您执行此策略的时间足够长,不是针对每个区块,而是根据统计数据,您可以通过遵循原始规则来获得更高的利润。


DFINITY的区块构建和验证方法


Cédric:明白了,那么DFINITY如何激励矿工不遵循战略而是说实话?


Robert:是的,因此DFINITY在构建区块的方式和验证区块的方式上有很大的不同,因为我们不仅在我们的系统区块中拥有,而且我们还有公证人,需要公证地对每个区块进行签名或公证和验证。因此,对于每个区块,我们都需要一组节点进行某种验证。


随机信标链


Robert:作为链的附加机制,我们还有一个随机信标链,它也与区块链并行构建,从而为我们提供了每个区块高度的随机区块制造者列表。因此,随机信标输出是一个节点的随机列表,这些节点可以获取适当的权限或某些优先级来为相应的回合创建一个区块。


区块时间


Robert:我们系统中还有一个区块时间,这是一个延迟或暂停。可以这么说,公证人在这里等待一些时间,以便给区块制作者足够的时间来创建和发布他们的区块。通过这种机制,您可以实现某种程度的同步,并且区块创建者应该有足够的时间来创建和发布其区块。这些区块制作者可以创建区块,并且由于此区块时间以及网络同步运行或某种程度上同步运行的事实,在区块制造者之间没有竞争条件。因此,是否具有作为区块制造者的快速连接或较慢的连接并不重要。如果选择的区块时间足够大,则其选择将超过三个Delta。


Delta


Robert:Delta表示一个块的最大网络遍历时间,实际上是最高的区块制造者。排名最高或优先级最高的区块制造者有公平的机会将其区块附加到官方区块链上。这重要的方面是,如果该区块制造者像在自私挖矿中那样隐藏自己的区块,并且秘密建立一条链并在三个以后释放链,这在此系统中是行不通的,因为在我们的系统中,每个区块都需要经过公证。


如果释放区块的时间太晚,则将其公证为时已晚,因此您的区块将被浪费或孤立。所以我们这里有两件事,我们没有竞争条件,因此您作为区块制造者有足够的时间来发布您的区块,并且如果您行为不当或者只是想尝试一些策略而等待太久,那么您的策略将是失败的战略。因为您将不会获得任何区块奖励。


Cédric:如果没有经过公证,您将不会因此而获得回报,并且有动力去迅速工作并发布自己的区块,而不是隐藏它们。



作者:Cédric Waldburger

(Medium, 2018.9.14)

翻译:Catherine



如何开始学习区块链?

DFINITY主回合:前提条件和我们的“不作恶”原则

DFINITY区块链的去中心化云愿景

DFINITY的测试网初探



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

comiocn




长按关注

Dfinity官方微信

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

更可随时答疑解惑



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

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