Security

自私的礦工與大額交易相結合會破壞 PoW?

  • December 5, 2017

編輯 連結問題中對問題的某些部分有更清晰的描述。


如果有一筆交易價值遠高於挖 10 個新區塊的費用,你怎麼能相信這筆交易呢?

去更詳細。如果我是個壞孩子,並且用工作量證明加密貨幣支付了一大筆錢。大意味著價值遠高於探勘 10 個新區塊的費用。在那之後,我等待一段時間——例如,很長一段時間,中間有 10 個新區塊被挖出——這樣每個人都認為交易是確定的。比我用我交易的一半價值賄賂礦工來創建一個沒有我交易的新鏈。因為我交易的一半價值非常大,而礦工是自私的,他們會創建新的鏈來以這種方式獲得更多的付款。

在建構任何使用工作量證明的加密貨幣時,是否有針對此類攻擊的解決方案?

我看到的唯一解決方案是,我們只信任與採礦成本相當的交易價值。但是,加密貨幣的效率非常低。

我認為你所描述的是 51% 的攻擊,但有一個不是礦工的第三方,激勵了礦工的“不良行為”。即使有鏈外賄賂,你也需要 51% 以上的礦工才能使這種攻擊起作用(否則“原始鏈”總是會超過“受賄鏈”)。

所以,如果一個“自私”的礦工想要進行這種攻擊,我認為他們為自己的交易而不是為其他人這樣做會更有意義。在第三方參與的情況下執行這種攻擊只會增加礦工的風險(如果第三方不支付賄賂怎麼辦?等等)。我認為礦工自己執行攻擊更有意義:將 1000 比特幣發送到交易所,轉換為山寨幣,退出,然後回滾比特幣鏈以刪除將代幣發送到交易所的交易。

這種攻擊沒有發生是有原因的:從長遠來看,礦工認為它的利潤較低。

讓我們假設塊獎勵加上平均為 15 btc 的費用來解決這個問題。這將使 10 個區塊價值約 150 比特幣。

攻擊 #1 - 單筆交易激勵:

  1. Alice 在地址 A 中有 600btc
  2. Alice 將所有 600btc 從地址 A 發送到 Bob 的地址 B
  3. Bob 等了 6 個街區,然後將他的豪宅簽給 Alice
  4. 愛麗絲開車到她的藏身處,等到第 10 個街區
  5. Alice 從地址 A 發布新交易,向地址 C 發送 300btc,挖礦費用為 300btc
  6. 礦工們看到該交易倒轉區塊鏈並開始工作以獲取該費用。
  7. 礦工發現該區塊並獎勵自己該費用。
  8. 該鏈現在比原鏈落後 9 個區塊,沒有額外的動力留在原鏈,因此礦工跳回原鏈。

結果:由於分叉將被放棄,這種攻擊方法將不起作用。

攻擊 #2 - 多交易激勵:

  1. Alice 在地址 A 有 6000btc
  2. Alice 將所有 6000btc 從地址 A 發送到 Bob 的地址 B
  3. Bob 等待 6 個街區,然後將他的 10 棟豪宅簽給 Alice
  4. 愛麗絲開車到她的藏身處,等到第 10 個街區
  5. Alice 從地址 A 發布新交易,向地址 C 發送 5700btc,挖礦費用為 300btc
  6. 礦工們看到該交易倒轉區塊鏈並開始工作以獲取該費用。
  7. 礦工發現該區塊並獎勵自己該費用。
  8. 在第二個區塊中,Alice 從 C 向 D 發送 5400btc,費用為 300btc
  9. 在第三個區塊中,Alice 從 D 向 E 發送 5100btc,費用為 300btc
  10. 在第 4 個區塊中,Alice 將 4800btc 從 E 發送到 F,費用為 300btc
  11. 在第 5 個區塊中,Alice 從 F 向 G 發送 4500btc,費用為 300btc
  12. 在第 6 個區塊中,Alice 從 G 向 H 發送 4200btc,費用為 300btc
  13. 在第 7 個區塊中,Alice 從 H 向 I 發送 3900btc,費用為 300btc
  14. 在第 8 個區塊中,Alice 從 I 向 J 發送 3600btc,費用為 300btc
  15. 在第 9 個區塊中,Alice 從 J 向 K 發送 3300btc,費用為 300btc
  16. 在第 10 個區塊中,Alice 從 K 向 L 發送 3000btc,費用為 300btc
  17. 在第 11 個區塊中,Alice 從 L 向 M 發送 2700btc,費用為 300btc
  18. 分叉鏈現在比原鏈領先 1 個區塊,因此正常的激勵會導致礦工留在分叉鏈上。

結果:理論上,這種攻擊方法有利於礦工和 Alice。然而,在實踐中,由於以下幾個原因,這種攻擊仍然存在不足:

  1. 礦工如何在分叉的第一個區塊上知道 Alice 將繼續提供保持分叉存活所需的激勵?如果 Alice 隨時停止,當礦工回到原始鏈時,所有可能的利潤都將消失。一種可能性是 Alice 預先發布了所有 11 筆交易。
  2. 因為區塊鍊是公共知識,如此規模的成功攻擊將動搖公眾對比特幣的信心。這是因為使用者不再相信 6 塊足以知道交易是否已被接受,因為使用此攻擊回滾了 10 塊交易。這將破壞比特幣的基本去中心化信任,使礦工大量投資的系統崩潰。因此,即使礦工在短期內擁有更多比特幣,比特幣也會嚴重貶值。此外,這將破壞他們投入巨資的整個平台,這違背了他們的利益。

因此,參與此類攻擊不符合礦工的長期最佳利益。

它可能起作用的唯一方法是大多數礦工希望比特幣失敗,在這種情況下,比特幣有更大的問題。

攻擊 #3 - 非交易費賄賂:

  1. Alice 在地址 A 中有 600btc

  2. Alice 將所有 600btc 從地址 A 發送到 Bob 的地址 B

  3. Bob 等了 6 個街區,然後將他的豪宅簽給 Alice

  4. 愛麗絲開車到她的藏身處,等到第 10 個街區

  5. Alice 賄賂所有礦工轉移到分叉鏈。如果這是來自錢包 A 的鏈上,它將如下所示:

  6. 對於在這 10 個區塊中獲得區塊獎勵和費用的所有礦工,她向他們支付的總金額為 150btc

  7. 對於世界上所有的礦工,她向他們支付剩餘 150btc 的散列能力的一部分

  8. 礦工看到對他們所有人有利的交易,回溯區塊鏈並開始工作以獲得該交易。

  9. 所有礦工都留在該鏈上,因為它以比原始鏈更多的比特幣啟動他們,而且它具有相同的獎勵。

這在技術上比攻擊#2 更便宜,但需要世界上超過 50% 的礦工參與,因此協調工作是巨大的。這是因為所有參與的礦工必須協調他們的挖礦軟體才能遵守這些規則。此外,根據不參與的礦工/礦池的數量,這將增加 Alice 需要浮動的區塊數量。例如,如果 30% 的礦工不參與,到分叉鏈上的第 10 個區塊滾動時,原始鏈上將有大約 13 個區塊。

這將再次出現相同的情況,即礦工改寫歷史並破壞(不是雙關語)區塊鏈將成為公眾知識。即使 Alice 的交易是脫鏈的,它仍然會打破 6 塊深的交易是安全的核心原則,從而使比特幣貶值。

同樣,這可能起作用的唯一方法是大多數礦工希望比特幣失敗。

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