Security
什麼是區塊扣留攻擊?
如何執行區塊扣留攻擊,其目的是什麼以及對誰構成危險?
編輯:當我發布這篇文章時,我正在考慮扣留你在池中開采的區塊。但是扣留塊可以構成許多不同攻擊的基礎。我認為這作為一個廣泛的問題仍然有用。它是比特幣安全的核心概念。
區塊扣留攻擊有兩種類型。一種稱為 Finney 攻擊,旨在在發生雙花時獲得經濟利益。二是對礦池運營商造成經濟損失。解決一個塊的礦工可以在找到一個有效雜湊後保留一個有效的雜湊。礦工的成本微不足道(因為沒有獲得份額),但礦池的成本很高,因為礦池失去了獲得 50 BTC 區塊獎勵補貼的機會。
它最簡單的形式稱為 Finney 攻擊,以首先描述它的 Hal Finney 命名。該攻擊是涉及接受 0 確認交易的雙花攻擊的變體。
攻擊者會生成一個有效塊但不會廣播它,然後廣播交易 A 作為商品或服務的付款。商家會看到交易 A 與它沒有任何衝突,並接受 0 確認交易。緊接著,攻擊者將使用與交易 A 衝突的交易 B 廣播生成的塊,比特幣網路將接受他的塊並使交易 A 無效。
這種攻擊代價高昂,因為攻擊者生成區塊和完成交易 A 之間存在時間間隔,在此期間網路上的其他人可以生成有效塊並廣播它,從而使攻擊者生成的有效塊無效。因此,只有當商家線上銷售產品並且可以立即發佈時才實用,例如軟體產品的密鑰。
中本聰描述了這種攻擊的一般形式:白皮書,第 11 節。理論上,攻擊者可以預先生成任意數量的區塊,例如,如果商家在發布產品之前需要 1 次確認,則攻擊者將在網路之前預先生成 2 個區塊,然後才廣播交易 A 以進行雙花。但是隨著每個區塊的成本成倍增加,並且在發布購買之前接受 6 個確認的做法使得這種攻擊只有在攻擊者擁有接近 50% 或更多的網路雜湊率的情況下才有可能。