是什麼阻止了攻擊者通過向自己發送數十億筆交易來在比特幣網路上進行 DDOS?
我知道低優先級交易的交易費用會增加額外的成本,但是如果攻擊者使用大量 0.100001 BTC 交易,那麼他不必支付費用,因為交易大於 0.01 BTC,並且不會被認為是低優先級。不會有任何損失,因為無需支付交易費用。只有巨額投資。為此需要多少比特幣?
無論攻擊者有多少錢,這種攻擊都不會奏效。
您的問題似乎是基於這樣的假設:大於 BTC 0.01 的交易始終可以免費發送。這是不准確的。
這種攻擊有兩個主要風險:
- 攻擊者的交易可能會佔用區塊中的所有可用空間,從而阻止其他人確認他們的交易。
- 對等網路上的節點可能會使用大量頻寬來中繼攻擊者的交易,而不是中繼其他交易。
我將在這裡描述的是礦工和節點如何使用未修改的比特幣核心軟體來避免這個問題。本軟體實現的規則在此詳細說明,以下僅作總結。當然,人們可以自由使用其他軟體,所以這些規則並沒有被普遍遵循。儘管如此,只要相當一部分礦工/使用者做類似的事情,攻擊就不會造成嚴重的問題。
至於 1,在選擇哪些交易包含在一個區塊中時,通常優先考慮有費用的交易而不是沒有費用的交易,並且優先考慮更高的費用而不是更低的費用。因此,您的攻擊者的零費用交易通常不會取代那些支付費用的使用者。
作為一個例外,每個塊中的 50 KB 保留用於高優先級交易,即使它們不收取任何費用。優先級不僅取決於交易的大小,還取決於其輸入的年齡(所謂的“比特幣銷毀天數”指標)。如果我們的攻擊者想要進行大量交易,他將不得不一遍又一遍地發送相同的硬幣,這意味著輸入的年齡將很短。其他暫時未確認的交易將慢慢獲得優先級,並最終超過我們的攻擊者。
總而言之:
- 付費交易不會中斷
- 非付費交易可能會延遲,但最終仍會通過。
至於中繼,使用了一個更簡單的規則:每分鐘將被中繼的非付費交易的字節數有一個統一的限制。付費交易不受此限制。所以:
- 付費交易仍將像以前一樣轉發
- 節點在中繼攻擊者的交易時不會使用過多的頻寬;他們中的大多數不會被轉發
- 非付費交易可能更難被轉發。使用者可以通過包括交易費用或不使用點對點網路直接將交易送出給礦工來避免這種情況。
這實際上是在 BCH 網路上測試的。這是答案:https ://www.reddit.com/r/btc/comments/9d94ja/bch_stress_test_failed_to_produce_even_on_maximum/