找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

黑客如何进行区块链51%攻击

qukuailian 2019-9-18 18:32 955人围观 活动

51%的攻击或双重攻击是区块链中的矿工或矿工群体试图在该区块链上花费两次数字加密货币。他们试图“双重花费”,因此得名。这样做的目的并不总是加倍花费数字加密货币,但更常见的是通过影响其完整性来对某个加密数字货币或区块链进行攻击。

这是一个简单的例子:假设我在豪华车上花了10比特币。几天后汽车交付,我的比特币从我的账户转账到汽车公司。通过对比特币区块链进行51%的攻击,我现在可以尝试撤销这种比特币转账。如果我成功了,我将拥有豪华车和比特币,我还可以再次使用这些比特币。从自治的民主区块链的角度来看,51%攻击的概念似乎是显而易见的,但对其运作方式存在一种常见的误解。这篇简短的文章将尝试对51%的攻击如何更详细地进行清晰的解释。如果你不知道矿工们如何向区块链添加交易,我建议你先阅读矿工如何通过七个步骤向区块链添加交易,因为只需要五分钟的就可以了。如果你不知道区块链是如何工作的,我建议你从这里开始。

区块链=治理

在详细了解51%的攻击之前,重要的是要了解区块链协议基本上是一种治理形式。区块链管理数据的分类帐,例如交易数据。由于区块链协议可以为我们管理,我们不再需要第三方来执行此操作,例如政府或银行。这就是(大多数)区块链去中心化的原因。比特币区块链的协议基于民主自治制度,这意味着网络上的大多数参与者(矿工)将决定哪种版本的区块链代表真相。

51%的攻击如何发挥作用

当比特币所有者在交易中签字时,它会被放入未经证实的交易的本地池中。矿工从这些池中选择交易以形成交易块。为了将这个交易块添加到区块链中,他们需要找到解决非常困难的数学问题的方法。他们试图使用计算能力找到这个解决方案。这称为哈希( 在此处阅读有关哈希算法的更多信息 )。矿工的计算能力越强,在其他矿工找到解决方案之前找到解决方案的机会就越大。当矿工找到解决方案时,它将与其他矿工一起广播(连同他们的区块),并且只有当区块内的所有交易根据区块链上的现有交易记录有效时,他们才会验证它。请注意,即使是恶意的矿工也永远不会为其他人创建交易,因为他们需要该人的数字签名才能这样做(他们的私钥)。因此,如果不访问相应的私钥,就无法从其他人的帐户发送比特币。

偷挖采矿——创造区块链的后代

现在要注意了。然而,恶意矿工可以尝试逆转现有交易。当一个矿工找到一个解决方案,它应该被广播给所有其他矿工,以便他们可以在块被添加到区块链之后进行验证(矿工达成共识)。然而,恶意矿工可以通过不将其块的解决方案广播到网络的其余部分来创建区块链的后代。现在有两个版本区块链。

5e19b4f5aa044d809833cbab25b51bff


现在有两种版本的区块链。红色区块链可以被认为是“偷挖”模式。

一个版本正在被无瑕疵的矿工跟随,一个被恶意的矿工跟随。恶意矿工现在正在研究他自己的区块链版本,而不是将其广播到网络的其他部分。网络的其余部分没有接受这个链,因为毕竟它还没有被广播。它与网络的其他部分隔离。恶意矿工现在可以把他所有的比特币花在区块链的真实版本上,这是所有其他矿工正在研究的版本。比方说,他把它花在兰博基尼身上。在真实的区块链上,他的比特币现在已经用完了。同时,他没有将这些交易包含在他的隔离版区块链中。在他的孤立版区块链上,他仍然拥有那些比特币。

9260846d06784de49fa09e0d77de79c9


与此同时,他仍在挑选区块,他在隔离版的区块链上自行验证了所有这些。这就是所有麻烦开始的地方……区块链被编程为遵循民主治理模式,即大多数。区块链通过始终跟随最长的(实际上最重的,但不要让事情太复杂化)链来实现这一点,毕竟,大多数矿工比其他网络更快地将块添加到他们的区块链版本中( 所以最长链=多数 )。这就是区块链确定其链条的哪个版本是真实的,以及钱包的所有余额所依据的。一场比赛现在开始了。拥有最多哈希能力的人将更快地为他们的链接版本添加块。

8093b2a69c6343cc89c25d0e68bbf784


竞赛——通过广播新链来扭转现有交易

恶意矿工现在会尝试将块添加到他的隔离区块链中,比其他矿工更快地将块添加到他们的区块链(真实的)。一旦恶意矿工创建了更长的区块链,他就会突然将此版本的区块链广播到网络的其他部分。网络的其余部分现在将检测到区块链的这个(恶意)版本实际上比他们正在处理的版本更长,并且根据协议强制它们切换到这个链。

535536433a2f4bdf96545e46a80e0da5


恶意区块链现在被视为真实的区块链,并且此链中未包含的所有交易将立即被撤销。攻击者之前已经将他的比特币用在了兰博基尼上,但这笔交易并没有包含在他的隐形链中,这条链现在已经被掌控,所以他现在又一次控制着那些比特币。他能够再次花费它们。

ce01b373a4e643c18a4fbc1c2729195b


这就是一次双重攻击。它通常被称为51%攻击,因为恶意矿工将需要比网络其余部分组合更多的哈希能力(因此具有51%的哈希能力),以便更快地将块添加到他的版块的区块链中,最终允许他要建立一个更长的链条。

那么比特币如何防范这种情况呢?

实际上,这些攻击非常难以执行。如前所述,矿工将需要比网络其他部分更多的哈希能力来实现这一目标。考虑到比特币区块链上甚至可能有成千上万的矿工,恶意矿工将不得不花费大量资金在采矿硬件上与网络的其他部分竞争。即使是地球上最强大的计算机也无法与该网络上的总计算能力直接竞争。还有无数其他反对进行51%攻击的论点。例如,被捕和被起诉的风险,以及电费,租用所有采矿硬件的空间和存储,覆盖你的轨道和洗钱。像这样的操作只是为了给攻击者的回报需要付出太多努力,至少在比特币区块链的情况是这样的。

e9460830f90d402d932adae68251ff28


其他区块链是否容易受到攻击?

另一个有趣的故事是,无论执行此类攻击的难度如何,过去实际上已经发生了多次51%的攻击。事实上,最近(2018年4月)在Verge(XVG)区块链上进行了攻击。在这种特定情况下,攻击者在边缘区块链协议的代码中发现了一个错误,该错误允许他以极快的速度生成新的块,使他能够在短时间内创建更长版本的Verge区块链。此示例说明了一个可以触发51%攻击的事件,尽管非常罕见,并且通常归功于协议代码中的错误。一个可靠的区块链开发人员团队可能会注意到这样的错误,并防止它被滥用。

在检查这个“工作证明量”POW算法(挖掘算法)时,它告诉我们更多的主动哈希/计算能力可以提高51%攻击的安全性。尽管像小型山寨币一样操作这种算法的较小区块链可能会更容易受到这种攻击,因为攻击者没有那么多的计算能力来竞争。这就是为什么51%的攻击通常发生在小型区块链(例如比特币黄金)上,如果它们发生的话。比特币区块链以前从未成为51%攻击的牺牲品。

我有话说......