Doublespend

減少塊生成時間是否會使 Finney 攻擊更加困難?

  • January 12, 2017

相關問題: 可以採取哪些措施來降低 Finney 攻擊的風險?

Finney 攻擊是雙花攻擊的一種形式,攻擊者預先探勘包含衝突交易的區塊,然後發布交易。商家依靠已發布的交易來做一些不可逆轉的事情。如果攻擊者可以在商家送出之後並且在網路可以找到不同的塊之前發布預挖塊,那麼攻擊者就成功了。(商家必須對已公佈但未經確認的交易採取不可撤銷的行動。)

有人建議(由David Perry提出)減少塊生成時間將使網路更能抵抗這種攻擊。原因是(我假設)攻擊者可以發起攻擊的視窗,即他發布交易之後和該交易進入區塊之前的時間會更小。但是,我覺得這個論點沒有說服力。

首先,攻擊者可以通過使用舊幣或少量交易費用創建大量無意義的交易來延長間隔。他可以在他的交易中收集很多新的輸入來降低它的優先級。因此,他可以使他發布的交易不太可能進入網路找到的下一個區塊。

其次,隨著更快的出塊時間,難度會更低。無論如何,攻擊者必須等到他很幸運。所以也許他可以等到他在網路之前挖出兩個街區。然後,雖然網路更有可能在他完成攻擊之前找到一個塊,但網路必須找到兩個塊,而不僅僅是一個。同時,他可以繼續尋找更多的障礙。(想像一下,他正在與一個擁有 30% 網路雜湊算力的礦池合謀。)

那麼正確的分析是什麼?更快的塊生成時間真的會對 Finney 攻擊的有效性產生任何影響嗎?

假設所有其他條件都相同(相同的網路雜湊率等),那麼攻擊者仍然代表相同百分比的整體雜湊率,因此可以為他/她的攻擊索取相同百分比的塊。確實,更快的出塊時間會增加出塊的總數,降低難度,並使攻擊者有更多機會以相同的雜湊率發起攻擊,但它也降低了此類攻擊的檢測時間並縮小了視窗。

在標準的比特幣網路中,大約每 10 分鐘發現一個塊,但實際上它們是沿著正態分佈發現的,其峰值間隔為 10 分鐘。一個塊可能在另一個塊之後立即找到,或者可能需要 20 分鐘才能找到下一個塊,但這些不是典型的情況。我沒有數據顯示與 10 分鐘標記的一個標準偏差是多少,但我可以說,如果減少塊時間使得 +/- 1 標準偏差的區域略有重疊,攻擊者將面臨統計上的在他或她執行 Finney 攻擊之前發現塊的重大風險。我不知道這可能會對網路產生什麼其他影響,並且需要進行大量測試以確認其可行性。

即使 +/- 1 SD 區域沒有重疊,它們邊界之間的距離實際上是攻擊者必須執行攻擊的時間段,因此任何縮小這個差距的方法都會降低 Finney 攻擊的有效性。

我仍然沒有找到答案的活躍問題是:塊分佈的 σ² 值是否會隨著平均塊時間而變化,還是有些靜態?如果 σ² 保持不變,那麼減少阻塞時間將極大地影響攻擊者利用這種方法的能力,但是如果它與阻塞時間成比例地減少,那麼阻塞時間對這種攻擊的唯一影響是增加了對更高精確度的要求定時。

編輯: 我已經收到確認塊生成不是正態分佈而是Poisson分佈,並且 Finney 攻擊的時間視窗確實與塊時間呈線性關係。為此,減少塊時間與正常塊時間相比沒有提供統計優勢,但它仍然需要提高攻擊者的精度。由於我沒有聽說有人執行過 Finney 攻擊,即使作為概念驗證,精度要求在多大程度上有助於防止攻擊也是值得懷疑的,儘管這種要求的有效性可能更多地取決於商家/商業模式而不是在網路本身。

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