Attack

這種針對比特幣的中間人雙花攻擊可行嗎?

  • April 24, 2018

如果攻擊者對受害者進行 MITM(中間人)攻擊,那麼對比特幣的雙花攻擊幾乎是微不足道的:攻擊者阻止所有區塊被看到,並用自己的區塊替換它們。我在網上看到的反對意見是“攻擊者需要很長時間才能生成自己的塊,所以受害者會注意到有問題”。

但是接下來的攻擊呢?

  1. 攻擊者“Mallory”對受害者“Alice”進行了 MITM 攻擊。假設 Mallory 需要T幾分鐘來生成一個塊,其中T >> 10
  2. 當網路上生成第 N 個塊時,Mallory 會等待C*N幾分鐘,然後再將其轉發給 Alice (這裡C是一個小的任意常數,N=1是 MITM 攻擊開始後網路上生成的第一個塊)。換句話說,每個區塊只增加了一小部分時間,但隨著時間的推移,Alice 的區塊鏈越來越落後於“真正的”區塊鏈。
  3. M=6*T/C. 出塊後M,Alice 的區塊鏈將C*M = 6*T落後於真正的區塊鏈幾分鐘。此時,Mallory 開始針對真正的區塊鏈頭部生成塊。她將惡意虛假交易插入到她找到的第一個區塊中,並用來自真實區塊鏈的交易填充其餘部分。
  4. 當 Alice 趕上區塊鏈的那個點時,Mallory 將生成 6 個區塊,足以讓 Alice 相信惡意交易已被確認。

換句話說,馬洛里通過C在每個塊之間增加額外的時間來為自己建立一些時間來生成一些塊。一旦她積累了足夠的時間,她就會“花費”它來生成一些假塊。

愛麗絲仍然每10+C分鐘都會看到一個塊,所以只要C很小,她就不會注意到任何問題。她還看到她自己的交易最終會通過,只是額外延遲了N*C幾分鐘。

比特幣會以某種方式防止這種情況嗎?或者這是一個合法的雙花攻擊?

這種針對比特幣的中間人雙花攻擊可行嗎?

如前所述,要完成對比特幣的雙重支出攻擊,您需要能夠提供另一個有效且具有有效工作證明的替代塊。

要在平均 10 分鐘內創建這樣一個塊,需要與網路中所有其他部分一樣多的探勘能力(51% 攻擊)。

是的,Mallory 可以延遲 Alice 接收新塊,但 Mallory 還必須成功地向 Alice 提供一個有效的替代塊。有一個重大的失敗:

  1. 提議的攻擊建議將惡意虛假交易(臨時可能是一個更好的詞)插入惡意製作的塊中,我們認為臨時交易是馬洛里支付給愛麗絲,而在真正的區塊鏈上馬洛里支付給她自己。
  2. 馬洛里將愛麗絲放在滴灌上,只緩慢地提供新塊,這樣真正的區塊鏈就在前面。
  3. 在馬洛里讓真正的區塊鏈走得足夠遠之後,馬洛里想在一個真正的區塊 {blockheight-6} 之上建構一個假區塊
  4. Mallory 需要與所有其他採礦網路中存在的採礦能力一樣多的採礦能力,才能在平均 10 分鐘內解決惡意塊。請注意,即使在這種情況下,由於它是平均值,也可能需要長達 20 分鐘。因此,在大約 25,681,575,019 GH/s [1]的挖礦算力下,攻擊可能會在不引起注意的情況下進行。憑藉網路中所有其他部分的一半的探勘能力,馬洛里將能夠在平均 20 分鐘或最多約 40 分鐘內解決一個新區塊。

當了解一個普通的比特幣礦工可能只有 13,500 GH/s 的能力時,完成 51% 攻擊的問題就暴露出來了。

撇開合理性不談,交易需要具有非常大的價值才能在財務上可行。

編輯:關於 1% 的算力可以在平均 16 小時(最長 32 小時)內生成一個塊,這在理論上並非完全不可信,但是應該注意的是,目前仍需要 ~19023螞蟻礦機 S9。此外,如果您在實驗室環境中測試滴灌節點以延遲 16~32 小時以查看節點的行為,我懷疑 Alice 不會注意到,如果還要等待 6 次確認則更是如此。如果 Mallory 還可以訪問 Alice 的電腦,用修改後的版本替換軟體,那麼攻擊就變得更加現實。請注意,Mallory 仍需要進行私人安排以在她的礦工之間分配工作,即私人礦池。

相關:

[1] <https://blockchain.info/stats>

不知何故,“幾乎微不足道的攻擊”、雙花和創建區塊之間存在一些不合邏輯的聯繫。雙花是基於 tx 的,這意味著對比特幣使用者的“我的”交易再次被花費給第三個比特幣使用者。上面的陳述中沒有任何例子,這種雙重花費進入遊戲。也看不到,誰被這種“微不足道的 mtm 攻擊”的雙重支出場景所欺騙。

相反,OP 正在談論創建區塊,也就是挖礦。MCCSS 已經回復了。如果礦工只有一個活動連接(通過 mtm),那麼您可以談論攻擊概念的瑣碎性,但不能針對比特幣。單個礦工可能有問題,但不是比特幣。

如果提供更多詳細資訊,我可能會更新答案。

綜上所述:沒有針對比特幣的微不足道的攻擊,在可辨識的 OP 中也沒有可見的雙重支出。如果一個人通過 mtm 挖礦,比特幣仍然受到很好的保護。

引用自:https://bitcoin.stackexchange.com/questions/70921