Transactions

比特幣網路是否曾經成功進行過雙花攻擊?如果沒有,是否真的需要等待確認?

  • January 21, 2016

等待確認以避免雙花攻擊有很多問題,但實際上是否有過雙花攻擊?

似乎有兩種類型的雙花攻擊。一種是在沒有佔網路總採礦能力的很大一部分的情況下實施的。為了成功實施此操作,攻擊者必須幾乎同時發送兩個交易。如果合法交易和雙花之間存在明顯延遲,那麼幾乎每個礦工都會在雙花之前收到合法交易。礦工將拒絕雙花,合法交易幾乎可以保證被包含在下一個區塊中。因此,要成功實施這種雙花,攻擊者必須同時發送兩個交易,以便一半的網路在其中一個上工作,而一半的網路在另一個上工作。然而,如果他們這樣做,那麼收款人應該很容易立即檢測到,因此收款人可以在幾秒鐘內拒絕付款。因此,沒有很大一部分網路能力的雙花攻擊似乎不是問題——它很容易被立即檢測到(或者它會失敗)。

因此,唯一可能成功的雙花是攻擊者控制了相當大一部分網路能力並且可以從創建塊的初始障礙中趕上的情況。然而,在這種雙重花費被證明之前,這意味著沒有惡意實體能夠控制大部分網路計算能力。

因此,如果從未發生過雙花攻擊,轉移少量比特幣的日常使用者可以非常確信他們不會成為雙花攻擊的受害者(成為第一個的機會是多少?)並放棄等待確認.

(另一方面,進行非常大的匿名交易的人可能是雙花者的第一批目標人群,他們已經獲得了相當大的網路計算能力)

那分析正確嗎?

對於它的價值,MyBitcoin.com聲稱他們的關閉是由一系列雙花攻擊促成的:

我們的程序員假設一個區塊足以保護交易。兩年前編寫軟體時,這個單一的確認神話是一種流行的信念。

使用者theymos(bitcointalk.org 論壇的管理員)曾公開警告他們,在一次確認後接受交易是“瘋狂的”。

但是,**沒有辦法驗證是否真的發生了任何雙花攻擊,**因為據我所知,目前沒有人在網路上掃描它們(雙花交易通常在事件解決後被丟棄,令交易者滿意)區塊鏈)。我們可以公開觀察到的只是區塊鏈重組,當不同的礦工或礦池幾乎同時發現區塊時,這種重組也會自然而然地發生。也許一個統計參數可以估計這些應該發生的頻率(過去一個月我們有 14 次),並在此基礎上爭論雙花嘗試的存在,但我個人還沒有看到這樣的分析。

然而,對於您是否等待確認的問題,最關鍵的是您錯過了一個可能的攻擊向量,在 Hal Finney辨識它之後被稱為“Finney 攻擊” 。在 Finney 攻擊中,礦工在探勘時將兩個交易中的一個“雙重”包含在自己的區塊中,但不會將其廣播到網路。當他們最終找到一個區塊時,他們用一個衝突的交易(雙花攻擊中的第二個“雙重”)購買了一些東西,然後立即廣播他們的區塊,這將使區塊鏈中的購買交易無效。如果商家沒有等待確認,攻擊者將帶著購買的物品(希望是現金類的東西)和他們的原始比特幣走開。

由於這種情況及其變體主要適用於提供即時傳遞的“按需”商品的商家,因此您對“日常使用者轉移少量比特幣”的分析仍然大致正確。請記住,如果接受 0 確認交易成為常態,那麼“同時發送”攻擊的動機將顯著增加(在絕大多數情況下,即使需要一個確認也可以防止這種情況發生)。但就目前而言,普通使用者應該更擔心非託管交易中正常的“你先付款”欺詐,以及對話者在兩個可信方之間傳遞消息的中間人攻擊。商業,在野外被處決)。

tl;dr商家和交易所肯定需要等待確認任何時候交易具有重要價值和/或以換取類似現金的商品。小額轉賬的個人需要更加擔心交易所信任的其他方面,並且只需一次確認就可以非常有效地保護自己。

這個問題已經在幾個不同的地方被問過好幾次了,還沒有人提出雙花攻擊的證據。當然,也有可能沒有人會為這樣的攻擊而煩惱,因為無論如何每個人都在等待確認。

你的分析是正確的。如果您從多個點監控網路——理想情況下,盡可能靠近盡可能多的大型礦池,您可以以相同的可靠性水平對更少的確認採取行動。如果有人確實成功地造成了這樣的攻擊,你就會有無可辯駁的證據——衝突交易。

我想知道礦池是否願意提供一個網頁,列出他們打算包含在下一個區塊中的交易(假設他們當時開采了一個)。如果一些較大的池這樣做,那將使您更加確定網路上沒有衝突的交易。如果兩個最大的礦池有你的交易並且沒有一個礦池有衝突的交易,那麼即使沒有確認,你也幾乎可以肯定你是安全的。

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