Security

如何防止時間扭曲攻擊?

  • March 14, 2015

jarpian 解釋了什麼是時間扭曲攻擊(AKA zeitgeist 攻擊):

這是一種 51% 攻擊,攻擊者人為地設置區塊時間戳以降低難度,從而使他能夠獲得比他的雜湊率所保證的更多的硬幣。它之所以有效,是因為難度調整公式純粹基於攻擊者可以自由選擇的時間戳。特別是,時間戳不需要按升序排列。ArtForz 在這裡詳細解釋了這次攻擊。

這種攻擊被用來對付新的 Geist Geld 區塊鏈。Geist Geld 難度每 16 個區塊調整一次,使鏈條特別容易受到這種攻擊。與“正常”的 51% 攻擊相比,針對比特幣的攻擊者必須在目前難度下探勘一整套 2016 年的區塊,然後才能開始獲得任何收益。

顯然,執行這種攻擊將非常昂貴。(在撰寫本文時,Coinometrics 估計成本約為4.63 億美元。)

但是,如果你成功了,你可以每 2 週降低難度並將出塊率提高 4 倍,讓你每 10 分鐘鑄幣一次。

解決此問題的明顯方法 - 將塊重定向周期從 (2016n, 2016n + 2015) 更改為 (2016n, 2016n + 2016 ) 是有問題的。新實現產生的塊在舊實現中是無效的,反之亦然。(資源)

那麼,如何以非破壞性的方式防止時間扭曲攻擊呢?

簡單的解決方案是軟分叉,要求每個區塊的時間等於或大於區塊鏈上前一個區塊的時間。也就是說,區塊鏈上的時間不能倒退。

如果時間不能倒退,那麼攻擊者就無法人為地降低難度,除非通過探勘具有未來時間的塊,並且網路已經拒絕了未來超過 120 分鐘的塊。

這個提議是一個軟分叉,因為未升級的礦工將接受一條更困難的鏈,其時間只會增加或保持不變。如果以與BIP34相同的方式實施,則在應用新規則之前,絕大多數雜湊率將被升級,從而最大限度地減少中斷。

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