請輸入關鍵字:

熱門搜尋:

比特幣安全漏洞:時間扭曲攻擊

日期:2025年4月7日 下午12:00

比特幣安全漏洞:時間扭曲攻擊

概述

2025年3月26日,比特幣開發者Antoine Poinsot發佈了一個新的比特幣改進提案。這是一個被稱為"大共識清理"的軟分叉提案。該升級修復了多年來一直存在於比特幣協議中的幾個漏洞和弱點。其中一個漏洞是我們最近討論過的重復交易問題。另一個將被該清理軟分叉修復的更為嚴重的漏洞被稱為"時間扭曲攻擊",這正是本文要討論的主題。

比特幣區塊時間戳保護規則

在討論時間扭曲攻擊之前,讓我們回顧一下當前的時間操縱保護規則:

中位過去時間(MPT)規則 — 時間戳必須比最後十一個區塊的中位時間更靠後。

未來區塊時間規則 — 基於MAX_FUTURE_BLOCK_TIME常量,時間戳不能比節點對等體的中位時間超前超過2小時。節點提供的時間與本地係統時鐘之間允許的最大差距是90分鐘,這是另一個安全保障。

MPT規則旨在確保區塊不會太過於回到過去,而未來區塊規則則防止它們進入未來。請注意,不能實施類似於未來區塊規則的規則來防止區塊有過去的時間戳,因為這可能會影響初始區塊鏈同步。時間扭曲攻擊涉及僞造時間戳,使時間戳遠遠回到過去。

中本聰的"差一"錯誤

在比特幣中,一個難度調整周期包含2016個區塊,以10分鐘區塊目標計算,這大約是兩周的時間。為了計算挖礦難度調整,協議計算相關2016區塊窗口中第一個和最後一個區塊之間的時間戳差。這個2016區塊的窗口包含2015個區塊之間的間隔(即2016減一)。因此,使用的相關目標時間應該是60秒 * 10分鐘 * 2015個間隔,等於1,209,000秒。然而,比特幣協議使用數字2016來計算目標。60秒 * 10分鐘 * 2016 = 1,209,600秒。這是一個差一錯誤。這是一個容易犯的錯誤,中本聰似乎混淆了區塊與區塊之間的間隔。

原始中本聰代碼

比特幣安全漏洞:時間扭曲攻擊

來源:https://sourceforge.net/p/bitcoin/code/1/tree//trunk/main.cpp#l687

這個錯誤意味著目標時間比應有的長0.05%。因此,比特幣目標間隔時間實際上不是10分鐘,而是10分鐘零0.3秒。這個漏洞並不重要,實際上自比特幣啓動以來,平均間隔一直是9分鐘36秒,明顯少於10分鐘。這是因為自2009年以來,平均算力一直在增加。這就是為什麼最後的減半發生在2024年4月,而不是2025年1月。我們提前了進度。無論如何,中本聰這0.3秒的錯誤在整體上相當無關緊要。也許有一天,在遙遠的未來,當價格和算力停止增長時,這個漏洞會讓我們重新回到進度上。

比特幣安全漏洞:時間扭曲攻擊

雖然0.3秒的漏洞本身不是重大問題,但存在一個相關的問題,這是一個較為嚴重的漏洞。難度計算基於每個2016區塊窗口内的第一個和最後一個區塊。這也是錯誤的。在我們看來,相關周期應該是前一個2016區塊窗口的最後一個區塊與當前窗口的最後一個區塊之間的差異。這似乎是計算難度調整窗口長度的最合理方式,其中關鍵是時間跨度覆蓋不同的調整窗口。如果這樣做,那麼2016也將是計算目標的正確間隔數。也許中本聰犯這個錯誤的原因是他必須考慮第一個難度調整周期,而該周期從未有過前一周期的最後一個區塊可用。

時間扭曲攻擊

比特幣的時間扭曲攻擊約在2011年首次被發現,利用了中本聰在難度計算中犯的錯誤。要進行攻擊,假設挖礦是100%中心化的,礦工可以設置協議允許的任何時間戳。在攻擊中,對於幾乎所有區塊,礦工將時間戳設置為比前一個區塊前進一秒,因此區塊鏈在時間上向前移動,並遵守MTP規則。為了盡可能慢地向前移動時間,礦工可以連續六個區塊保持相同的時間戳,然後在下一個區塊中將時間增加一秒,以此類推。這意味著區塊時間戳每六個區塊向前移動一秒。

這種攻擊意味著區塊鏈會越來越落後於真實時間,難度會增加,使挖礦變得越來越困難。然而,為了增強攻擊效果,在每個難度調整周期的最後一個區塊中,礦工將時間戳設置為真實世界時間。下一個區塊,即每個難度調整窗口的第一個區塊,然後被設置回過去,比前一個難度調整窗口的倒數第二個區塊提前一秒。這仍然符合MTP規則,因為在這種情況下,一個異常不會影響11個區塊的中位數。

當進行這種攻擊時,第一個周期後的難度不會受到影響。然而,在攻擊開始後的第二個調整周期後,難度將向下調整。然後礦工可以以極快的速度創建區塊,可能創造大量比特幣,然後可能出售這些幣並獲利。

簡化說明

由於難度周期是2016個區塊,在圖表中說明這種攻擊可能很困難。因此,我們創建了以下場景來嘗試解釋這種攻擊。

  • 每個難度調整窗口有五個區塊
  • 目標間隔為10分鐘
  • MTP規則基於最後三個區塊
  • 每個區塊的時間戳增加一分鐘,除了每個周期的最後一個區塊,它使用真實時間戳

說明性時間扭曲攻擊

比特幣安全漏洞:時間扭曲攻擊

如上圖所示,有兩條曲綫:

  • 代表每個難度調整窗口最後一個區塊真實時間的曲綫。隨著礦工越來越快地找到區塊,難度降低,這條曲綫變得不那麼陡峭
  • 代表其他區塊操縱時間戳的直綫

比特幣時間扭曲攻擊計算

下表顯示了礦工如何以最極端的方式使用這種攻擊來操縱難度向下。

比特幣安全漏洞:時間扭曲攻擊

注意:協議允許的任何周期的最大難度調整是4倍,但在上表中沒有達到這個值

每個周期的難度向下調整漸近到略高於2.8倍。這是因為隨著每個周期在時間上變短,難度調整減速的速率降低。

在上表的第11個周期,在攻擊的第39天,每秒産生超過6個區塊,準確地說是每秒10.9個區塊。此時,分配給區塊的時間戳限制以不同的方式發揮作用。根據MTP規則,時間必須每6個區塊向前移動,最小的時間增量是1秒。因此,在這一點上,基於我們的理解,時間戳開始比真實時間前進得更快,區塊鏈時鐘開始向前移動,接近真實世界時間,但仍然遠遠落後。盡管如此,攻擊可以繼續,難度不斷降低,直到達到允許的最小值。

攻擊可行性

雖然理論上這種攻擊是毀滅性的,但實施它有一些挑戰。執行攻擊可能需要大部分算力。如果有誠實的礦工輸入誠實的時間戳,那麼攻擊變得更加困難。MTP規則和誠實礦工的時間戳可能會限制惡意礦工時間戳可以回溯的程度。此外,如果誠實的礦工産生任何難度調整窗口的第一個區塊,該周期的攻擊將無法工作。另一個可能使攻擊更難執行的緩解因素是,它對所有人都是可見的。任何人都可以看到時間戳,在難度向下調整之前必須操縱四周的時間戳,可能給我們時間推出緊急軟分叉修復。

解決方案

修復這個漏洞相對簡單,盡管可能需要軟分叉協議更改。通過改變難度調整算法來計算不同2016窗口中區塊之間的時間跨度並完全修復差一錯誤,直接修復這個問題相當復雜。這可能也是一個硬分叉。另一種修復方法是取消MTP規則,而是要求時間在每個區塊中總是向前移動,雖然這可能意味著時間可能會卡在太遠的前方,也意味著礦工可能會因為在係統時鐘上使用真實時間而遇到麻煩,如果另一個礦工的時鐘提前幾秒,這可能會有無效的時間。

幸運的是,有一個更簡單的解決方案。為了防止時間扭曲攻擊,我們只需要要求新難度周期的第一個區塊的時間不早於前一周期最後一個區塊之前的特定分鐘數。這個新限制規則的分鐘數已經被討論過,提案從10分鐘到2小時不等。就緩解時間扭曲攻擊而言,兩者可能都可以。

在Poinsot的大共識清理提案中,他現在確定為2小時。2小時僅約為難度調整周期目標時間的0.6%,因此操縱難度向下的能力受到嚴格限制。我們在下表中總結了關於應使用的寬限期的討論:

  10分鐘限制 兩小時限制
積極方面

這具有抵消"差一"錯誤影響的良好特性。如果進行攻擊,其影響正好被中本聰的錯誤所抵消。這是一個足夠長的時間段,可以最小化意外無效區塊的風險。

這是一個足夠長的時間段,可以最大限度地降低意外無效區塊的風險。這是 Fabian Jahr 在測試此功能時為 testnet4 選擇的時間段這 2 個小時的時間段與未來區塊時間戳規則相匹配,因此允許礦工始終在一個區塊中糾正最大允許的未來時間誤差與當前規則集相比,這是一個更為保守的變化,在正常情況下可能沒有 MTP 規則那麼嚴格0.6% 是一個相當小的數字 
消極方面
  • 如果礦工使用真實世界時鐘生成時間戳,無效區塊的風險會增加
  • 這條規則是一個更重要的協議更改,在正常情況下可能比MTP規則更嚴格,進一步增加復雜性
這仍然允許攻擊礦工每個周期將難度向下操縱約0.6%,但這只會是一次性變化,無法復合

内容來源:PANews

財華網所刊載內容之知識產權為財華網及相關權利人專屬所有或持有。未經許可,禁止進行轉載、摘編、複製及建立鏡像等任何使用。

如有意願轉載,請發郵件至content@finet.com.hk,獲得書面確認及授權後,方可轉載。

更多精彩內容,請登陸
財華香港網 (https://www.finet.hk/)
財華智庫網(https://www.finet.com.cn)

現代電視 (https://www.fintv.hk)

PANews

PANews是區塊鏈和Web3.0領域領先的智庫型信息平台,為行業用戶提供具有國際視野的前沿資訊與報告。PANews優質多元的内容以圖文、音頻、視頻等形式在全網多渠道覆蓋,包含推特、微博、抖音、視頻號等主流平台,旨在成為用戶的Web3信息官。PANews同時還是騰訊新聞的内容合作夥伴,内容被福佈斯、財新等媒體引用,獲得騰訊新聞、今日頭條、澎湃新聞等頒發的相關獎項。PANews的兩位聯合創始人均為福

相關文章

4月7日
揭秘「營銷狂人」孫宇晨背後的故事:加密商業、政治與90後企業家的全球野心
4月7日
加密市場重挫,ETH領跌逾11%,BTC跌破78000美元
4月7日
比特幣現貨ETF上周淨流出1.73億美元,GBTC流出居首
4月7日
以太坊現貨ETF連續六周淨流出,上周流出4993萬美元
4月7日
Sei Network Larry:打造最快並行EVM Layer 1,TVL過去一月飙升85.62%,突破4億美元
4月7日
高盛:若經濟真的陷入衰退,美聯儲明年恐將降息200BP
4月7日
從理想轉向現實,Web3進入企業化時代
4月7日
OpenAI測試為ChatGPT-4o圖像模型添加水印功能
4月7日
幣安將於4月14日下架兩網絡指定代幣充值提現
4月7日
Jack Dorsey稱若比特幣無法用於日常支付將宣告失敗

視頻

快訊

14:11
香港郵政:暫停寄往美國内載貨品郵遞服務
13:47
衛材:侖卡奈單抗成為歐盟首個批準用於延緩早期阿爾茨海默病進展的藥物
13:39
香港證監會及港交所聯合舉辦首屆國際碳市場峰會
12:36
中國光大水務(01857.HK)完成發行10億元中期票據
11:38
滿貫集團(03390.HK)停牌
11:26
國家統計局:美國加徵高額關稅改變不了中國經濟持續長期向好的大勢
11:17
盛來運:中國經濟依靠内需和創新驅動推動經濟增長的新格局正在形成
11:15
【異動股】旅遊酒店板塊拉升,君亭酒店(301073.CN)漲10.13%
10:52
國家統計局:做大做強國内大循環 激發各類經營主體活力 積極應對外部環境不確定性
10:51
國家統計局:3月規上工業天然氣產量同比增長5.0%