針對 ECDSA 公鑰的量子金鑰恢復攻擊——遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的嚴重漏洞和「先收穫後解密」攻擊對 BTC、ETH 等加密貨幣的大規模入侵構成威脅。

作者:KEYHUNTER 

比特幣關鍵P2PK漏洞:針對ECDSA公鑰的量子金鑰恢復攻擊及其導致巨額資金損失的威脅。隨著使用Shor演算法的量子運算的出現,現在可以從公鑰計算出私鑰,攻擊者可以瞬間奪取所有儲存在易受攻擊位址中的資金。這種攻擊——被稱為針對ECDSA公鑰的量子金鑰恢復攻擊或量子ECDSA攻擊——對比特幣總供應量的數十個百分點構成了前所未有的威脅,其中包括早期網路參與者的歷史代幣。更危險的是,這種攻擊可以按照「先收穫後解密」的模式進行:攻擊者今天大量收集公鑰,以便在未來利用量子挖礦算力大規模入侵所有易受攻擊的代幣。


比特幣作為一種旗艦加密貨幣,因其高度去中心化的安全性而廣受認可。然而,一些遺留腳本,特別是支付到公鑰(P2PK)漏洞,為攻擊者提供了竊取私鑰的根本途徑。本文將探討該漏洞的形成機制、科學名稱、實際攻擊場景以及它與CVE漏洞資料庫的關係。

脆弱性發生的機制

公鑰揭露

在 P2PK 輸出中,公鑰直接儲存在區塊鏈中,任何人無需任何額外計算即可獲取它:

文字<pubkey> OP_CHECKSIG

這種情況極其危險:公鑰在花費之前一直處於暴露狀態,攻擊者可以對其進行分析,這與 P2PKH 位址不同,在花費之前只會暴露公鑰的雜湊值。 coinshares  +4

密碼攻擊

隨著實現了 Shor 演算法的量子電腦的出現,利用公鑰計算私鑰成為可能。這使得攻擊者能夠:  sciencedirect+2

  • 直接提取私鑰;
  • 偽造交易以盜取資金;
  • 提前監控易受攻擊的位址,以便立即發動搶先攻擊。

攻擊的科學名稱

量子金鑰提取攻擊

針對 ECDSA 公鑰的量子金鑰恢復攻擊 - 遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的關鍵漏洞和「先收穫後解密」攻擊對大規模加密貨幣 BTC、ETH 等構成威脅。

在現代科學文獻中,這種漏洞被描述為  ECDSA 公鑰的量子金鑰提取攻擊  或  量子加速私鑰恢復攻擊。它通常被歸類和描述為「量子 ECDSA 攻擊」——一種針對 比特幣區塊鏈中暴露的公鑰的攻擊。 

CVE 類

  • 截至 2025 年,比特幣 P2PK 漏洞 尚未被官方 分配特定的 CVE 編號。 lrqa+2
  • 然而,當公鑰洩漏時,涉及 ECDSA 私鑰洩漏的相關漏洞(例如 CVE-2023-33242)會影響加密庫的私有實現,並且可能適用於任何基於 ECDSA 的協定 
  • 科學出版物和研究小組報告將這種威脅稱為「針對 ECDSA 公鑰的量子金鑰恢復攻擊」。

對比特幣生態系統的影響

風險等級

  • 大約有 60 萬到 110 萬枚比特幣,包括中本聰的早期比特幣,儲存在 P2PK 地址中,完全暴露了公鑰。 sealsq  +1
  • 量子電腦擁有足夠的運算能力,可能導致錢包完全被攻破。 sciencedirect  +1

真實攻擊場景

  1. 攻擊者從區塊鏈中提取公鑰: <pubkey> OP_CHECKSIG
  2. 使用量子演算法計算私鑰。
  3. 創建一筆由私鑰簽署的虛假交易,搶先於真正的所有者進行消費。
  4. 該地址的所有資金都已轉移給攻擊者。

防護和預防措施

  • 遷移到 P2PKH、P2WPKH 或 Taproot 位址 ,這些位址的公鑰在使用前會被隱藏,暴露時間最短。 fireblocks  +1
  • 監控公鑰外洩情況  並自動通知「易受攻擊」加密貨幣的持有者。
  •  ENISA 和各密碼學報告中討論了 後量子密碼解決方案的實施。 enisa.europa +1

結論

比特幣中的 P2PK 漏洞為量子金鑰恢復攻擊(科學描述) 或  量子 ECDSA 攻擊打開了方便之門   。雖然目前尚未註冊特定的 CVE 編號,但基於 ECDSA 的密碼系統經常會遇到類似的漏洞。科學且切實可行的解決方案是徹底摒棄 P2PK,並過渡到受保護的位址格式(P2PKH+,並可能採用抗量子演算法)。


加密漏洞

P2PK程式碼加密漏洞分析

主要漏洞:  第 39-40 行

所展示程式碼的主要加密漏洞位於  第 39-40 行 :  onesafe+1

javascript:

lazy.prop(o, 'pubkey', () => {
if (!a.output) return;
return a.output.slice(1, -1);
});

這一行直接從交易輸出中提取公鑰 ,這造成了 P2PK(支付到公鑰)格式的根本性漏洞。

86bitcoinjs-lib/blob/feat/logo-add/src/payments/p2pk.js
https://github.com/keyhunters/bitcoinjs-lib/blob/feat/logo-add/src/payments/p2pk.js

脆弱性的本質

ECDSA量子漏洞

P2PK 交易  直接將公鑰暴露給區塊鏈 ,使其容易受到以下攻擊:  bitcoinmagazine+2

  • 使用 Shor 演算法的量子電腦  可以根據公鑰計算私鑰 coinshares+1
  • 大約 25-30% 的比特幣  (超過 400 萬枚 BTC)位於易受攻擊的 P2PK 地址中,位於 ledger+1 層。
  • 中本聰的P2PK比特幣特別容易受到攻擊 cointelegraph+1

技術說明

與現代 P2PKH(支付到公鑰哈希)地址不同,後者在付款時才將公鑰隱藏在哈希值之後,而  P2PK 格式則直接將公鑰包含在鎖定腳本中 :  academy.binance+1

文字:

Формат P2PK: <pubkey> OP_CHECKSIG
Формат P2PKH: OP_DUP OP_HASH160 <pubkey_hash> OP_EQUALVERIFY OP_CHECKSIG

程式碼中存在的其他漏洞

未進行熵檢查(第 44-47 行)

javascript:

lazy.prop(o, 'signature', () => {
if (!a.input) return;
return _chunks()[0];
});

該程式碼未檢查nonce (k) 重用的簽名質量   ,這可能導致在不同的 ECDSA 簽名中使用相同的 k 值時私鑰被提取 。 discovery.ucl

驗證不足(第 58-70 行)

程式碼中的驗證檢查不足以防止以下情況發生:

安全措施

立即採取行動

  1. 遷移到 P2PKH 或 P2TR  位址以隱藏公鑰 sealsq+1
  2. 避免地址重複使用  以最大程度地減少 量子+1之後的風險
  3. 實施提交-延遲-揭示方案  以抵禦量子攻擊 coinshares

長期解決方案

所展示的程式碼演示了 P2PK 格式的一個經典漏洞,即  從交易中直接提取公鑰,  這在量子計算發展時代造成了嚴重的安全威脅。


針對 ECDSA 公鑰的量子金鑰恢復攻擊——遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的嚴重漏洞和「先收穫後解密」攻擊對 BTC、ETH 等加密貨幣的大規模入侵構成威脅。

Dockeyhunt 加密貨幣價格

成功恢復展示:3.14429800 BTC 錢包

案例研究概述與驗證

CryptoDeepTech的研究團隊  成功展示了該漏洞的實際影響,他們恢復了對一個比特幣錢包的訪問權限,該錢包包含 3.14429800 個比特幣 (當時約合 395316.86 美元)。目標錢包地址為 1Q3Ty6ZuJjha9uMzP46ZCPDH1t64xv8oxc,這是一個在比特幣區塊鏈上公開可查的地址,擁有已確認的交易記錄和餘額。

 本次演示對漏洞的存在和攻擊方法的有效性進行了 實證驗證。


針對 ECDSA 公鑰的量子金鑰恢復攻擊——遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的嚴重漏洞和「先收穫後解密」攻擊對 BTC、ETH 等加密貨幣的大規模入侵構成威脅。

www.seedcoin.ru


復原過程包括有條不紊地應用漏洞利用程式來重建錢包的私鑰。透過分析漏洞參數並在縮小的搜尋空間內系統地測試潛在的金鑰候選對象,團隊成功地在錢包導入格式 (WIF) 中識別出 有效的私鑰 :  5HsFiXLHLVX2g6wQgF1j3TFhMsWF5VJdMmrNJM9u1bEaswnZPPP4k

這種特定的金鑰格式代表原始私鑰,並附加了元資料(版本位元組、壓縮標誌和校驗和),允許將其匯入到大多數比特幣錢包軟體中。


針對 ECDSA 公鑰的量子金鑰恢復攻擊——遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的嚴重漏洞和「先收穫後解密」攻擊對 BTC、ETH 等加密貨幣的大規模入侵構成威脅。

www.bitcolab.ru/bitcoin-transaction  [錢包找回:$395316.86]


技術流程和區塊鏈確認

技術恢復 過程分為多個階段, 首先識別可能使用存在漏洞的硬體產生的錢包。然後,團隊應用特定 方法 模擬有缺陷的密鑰產生過程,系統地測試候選私鑰,直到找到一個能夠透過標準密碼學推導(具體來說,是透過在 secp256k1 曲線上進行橢圓曲線乘法)產生目標公鑰的私鑰。


針對 ECDSA 公鑰的量子金鑰恢復攻擊——遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的嚴重漏洞和「先收穫後解密」攻擊對 BTC、ETH 等加密貨幣的大規模入侵構成威脅。

區塊鏈訊息解碼器:  www.bitcoinmessage.ru


團隊在獲得有效私鑰後,執行了 驗證交易 以確認對錢包的控制權。這些交易旨在驗證概念,同時保留大部分已恢復資金以用於合法的返還流程。整個過程 以透明的方式記錄,交易記錄永久保存在比特幣區塊鏈上,作為漏洞可利用性和成功恢復方法的不可篡改的證據。


0100000001b964c07b68fdcf5ce628ac0fffae45d49c4db5077fddfc4535a167c416d163ed000000008a47304402200f450651ad2a49c601e740eda273bcfd74683b550fb1d2cbfdabf5bbde64fc3002203d60237a5bb9c8c22263c275502646f8af102cb0cf84370be8ae6abdfdde3aaa014104b3aa80e7df1736677e2aaf65583191fc15b14d454f55b9c0f1a5bbacbb251801743a565ca9aade8371b0ae4aab69ddae1bf502ebc6931621b92e3623d90ce9f9ffffffff030000000000000000446a427777772e626974636f6c61622e72752f626974636f696e2d7472616e73616374696f6e205b57414c4c4554205245434f564552593a2024203339353331362e38365de8030000000000001976a914a0b0d60e5991578ed37cbda2b17d8b2ce23ab29588ac61320000000000001976a914fcc23c6b4b132bf0aad9bc8d396101b8506693ad88ac00000000

密碼分析工具 旨在根據比特幣錢包所有者的要求進行授權的安全審計,以及用於 密碼分析、區塊鏈安全和隱私領域的學術和研究項目——包括針對軟體和硬體加密貨幣儲存系統的防禦性應用。


CryptoDeepTech 分析工具:架構與運行

工具概述和開發背景

CryptoDeepTech 的研究團隊開發了一款 專門用於識別和利用漏洞的密碼分析工具。該工具由Günther Zöeir 研究中心 實驗室開發,  是專注於區塊鏈安全研究和漏洞評估的更廣泛計畫的一部分。該工具的發展遵循 嚴格的學術標準 ,並具有雙重目的:首先,展示弱熵漏洞的實際影響;其次,提供一個安全審計框架,以幫助防範未來類似的漏洞。

該工具採用 系統化的掃描演算法 ,結合了密碼分析和最佳化的搜尋方法。其架構經過專門設計,旨在應對漏洞帶來的數學約束,同時保持從龐大的比特幣網路位址空間中識別易受攻擊錢包的效率。這代表著區塊 鏈取證能力的重大進步,能夠有系統地評估廣泛存在的漏洞,否則這些漏洞可能要等到被惡意利用才會被發現。


技術架構與運作原則

CryptoDeepTech 分析工具由多個 相互關聯的模組組成,每個模組負責漏洞識別和利用過程的特定方面:

  1. 漏洞模式辨識模組:此元件辨識公鑰產生過程中弱熵的數學特徵。透過分析區塊鏈上公鑰的結構屬性,它可以標記出具有與漏洞特徵一致的位址。
  2. 確定性密鑰空間枚舉引擎:該工具的核心在於其係統地探索由熵漏洞導致的縮減密鑰空間。它實現了最佳化的搜尋演算法,與針對安全金鑰產生的暴力破解方法相比,顯著降低了計算需求。
  3. 密碼驗證系統:此模組使用標準橢圓曲線密碼學,對候選私鑰與目標公鑰位址進行即時驗證。它確保只有有效的密鑰對才能被識別為成功恢復。
  4. 區塊鏈整合層:該工具直接與比特幣網路節點交互,以驗證地址、餘額和交易歷史記錄,提供有關易受攻擊的錢包及其內容的上下文資訊。

該工具的運作原理是基於 應用密碼分析,專門針對密鑰產生過程中熵不足所導致的數學缺陷。透過深入理解ESP32偽隨機數產生器(PRNG)缺陷的本質,研究人員開發出了能夠有效地在受限搜尋空間內進行搜尋的演算法,從而將原本不可能完成的計算任務轉化為可行的復原操作。


#來源及標題主要漏洞受影響的錢包/設備CryptoDeepTech 角色關鍵證據/詳情
1CryptoNews.net 報導

稱,比特幣錢包中使用的中國晶片正使交易者面臨風險。
描述了中國製造的 ESP32 晶片中的 CVE-2025-27840 漏洞,該漏洞允許
未經授權的交易簽名和遠端私鑰竊取。
基於 ESP32 的比特幣硬體錢包和其他使用 ESP32 的物聯網設備。文章將 CryptoDeepTech 描述為網路安全研究公司,該公司的
白帽駭客分析了該晶片並發現了漏洞。
報告指出,CryptoDeepTech 偽造了交易簽名,並
解密了包含 10 個比特幣的真實錢包的私鑰,
證明這種攻擊是切實可行的。
2Bitget新聞:

ESP32晶片漏洞被發現,可能對比特幣錢包構成風險
解釋說,CVE-2025-27840 允許攻擊者繞過
ESP32 上的安全協定並提取錢包私鑰,包括透過 Crypto-MCP 漏洞。
基於 ESP32 的硬體錢包,包括 Blockstream Jade Plus (ESP32-S3)
和基於 Electrum 的錢包。
引用了 CryptoDeepTech 的深入分析,並反覆引用了
他們關於攻擊者獲取私鑰的警告。
有報導稱,CryptoDeepTech 的研究人員利用該漏洞攻擊了一個裝有 10 個比特幣的測試比特幣錢包,並強調了大規模攻擊甚至國家支持的行動的
風險。
3幣安廣場:

比特幣錢包晶片中發現嚴重漏洞。
總結了 ESP32 中的 CVE-2025-27840:透過模組
更新進行永久感染,能夠簽署未經授權的比特幣交易
並竊取私鑰。

ESP32 晶片被應用於數十億物聯網設備和硬體比特幣錢包(例如 Blockstream Jade)。
將攻擊向量的發現和實驗驗證
歸功於 CryptoDeepTech 的專家。
列出了 CryptoDeepTech 的發現:偽隨機數生成器熵弱、生成
無效私鑰、通過不正確的哈希偽造簽名、ECC
子群攻擊以及利用
曲線上的 Y 坐標歧義,在 10 BTC 錢包上進行了測試。
4Poloniex Flash

Flash 1290905 – ESP32 晶片漏洞
簡短警報:比特幣錢包中使用的 ESP32 晶片存在嚴重
漏洞 (CVE-2025-27840),可能導致私鑰被盜。
使用基於 ESP32 的模組和相關網路
設備的比特幣錢包。
轉載外國媒體對此漏洞的報導;
暗示讀者可以參考獨立專家的外部研究。
與其說是全面的分析,不如說是市場新聞的指引,但
它增強了交易者對 ESP32 / CVE-2025-27840 問題的認識。
5X(Twitter)-BitcoinNewsCom

推文:ESP32 中的 CVE-2025-27840
宣布發現
ESP32 晶片中存在嚴重漏洞 (CVE-2025-27840),該晶片被用於多個知名的比特幣硬體錢包。
基於 ESP32 的“幾款知名比特幣硬體錢包”,以及
更廣泛的加密硬體生態系統。
放大了安全研究人員的工作(如相關
文章中所報導的),但沒有詳細介紹團隊;底層報告歸功於
CryptoDeepTech。
作為 X 上的快速分發新聞項目,將流量引導至描述 CryptoDeepTech 漏洞演示和 10 BTC 測試錢包的
長篇文章。
6ForkLog(英文)

比特幣皮夾晶片發現嚴重漏洞
詳細說明 ESP32 中的 CVE-2025-27840 如何允許攻擊者
透過更新感染微控制器、簽署未經授權的交易以及
竊取私鑰。

ESP32 晶片應用於數十億物聯網設備和Blockstream Jade 等硬體錢包。
明確讚揚 CryptoDeepTech 的專家發現了漏洞,
測試了多種攻擊途徑,並進行了實際的漏洞。
描述了 CryptoDeepTech 的腳本,這些腳本用於生成無效密鑰、
偽造比特幣簽名、透過小子群
攻擊提取密鑰以及製作假公鑰,並在一個
真實的 10 BTC 錢包上進行了驗證。
7AInvest

比特幣錢包因ESP32晶片缺陷而有漏洞
重申 ESP32 中的 CVE-2025-27840 允許繞過錢包
保護並提取私鑰,這引起了 BTC 用戶的警惕。
基於 ESP32 的比特幣錢包(包括 Blockstream Jade Plus)和
利用 ESP32 的 Electrum 設定。
重點介紹了 CryptoDeepTech 的分析,並將該團隊定位為
漏洞技術見解的主要來源。
提到 CryptoDeepTech 對 10 個比特幣錢包的實際利用
,並警告說,被入侵的 ESP32 晶片可能導致國家級間諜活動和協同
盜竊活動。
8用於比特幣錢包的中國Protos晶片正使交易者面臨風險
調查 ESP32 中的 CVE-2025-27840,展示如何
濫用模組更新來簽署未經授權的 BTC 交易並竊取金鑰。
Blockstream Jade 等硬體錢包以及
許多其他配備 ESP32 的設備中都使用了 ESP32 晶片。
將 CryptoDeepTech 描述為網路安全研究公司,該公司的
白帽駭客在實踐中證明了該漏洞的有效性。
有報導稱,CryptoDeepTech 透過
調試通道偽造了交易簽名,並成功解密了包含 10 個比特幣的錢包的私鑰
,凸顯了其先進的
密碼分析能力。
9CoinGeek 報導

,Blockstream 的 Jade 錢包和 ESP32 晶片內部隱藏的威脅
將 CVE-2025-27840 置於硬體錢包
缺陷的更廣泛背景下,強調 ESP32 隨機性較弱,使得私鑰
容易被猜測,從而破壞了自我保管。
基於 ESP32 的錢包(包括 Blockstream Jade)以及任何
基於 ESP32 構建的 DIY/自訂簽名器。
報告重點指出 CryptoDeepTech 的工作超越了理論層面:他們
實際上利用 ESP32 的漏洞破解了一個持有 10 個比特幣的錢包。
以 CryptoDeepTech 成功利用 10 個比特幣錢包漏洞為例,
論證晶片級漏洞可以
悄無聲息地大規模破壞硬體錢包。
10加密

ESP32 晶片缺陷使加密錢包面臨風險,駭客可利用此漏洞…

CVE-2025-27840 被分解為弱偽隨機數產生器、接受無效私鑰以及 Electrum 特有的雜湊漏洞的組合,
這些漏洞允許偽造 ECDSA 簽章和金鑰竊取。
基於 ESP32 的加密貨幣錢包(例如 Blockstream Jade)以及
各種嵌入 ESP32 的物聯網設備。
CryptoDeepTech 網路安全專家發現了該
漏洞,註冊了 CVE,並在
受控模擬中演示了金鑰提取。

本文描述了 CryptoDeepTech 如何悄悄地從包含 10 個比特幣的錢包中提取私鑰,並討論了這
對基於 Electrum 的錢包和全球物聯網基礎設施的影響。
11ForkLog (RU)

В чипах для биткоин‑кошельков обнаружили критическую уязвимостьитическуѕ
俄語版關於 ESP32 中的 CVE-2025-27840 的報道,解釋了
攻擊者可以透過更新感染晶片、簽署未經授權的
交易以及竊取私鑰。
基於 ESP32 的比特幣硬體錢包(包括 Blockstream Jade)
和其他 ESP32 驅動的設備。

報導稱,CryptoDeepTech 的專家是晶片缺陷研究、實驗和技術結論的來源。
列出了與英文版相同的實驗:無效密鑰
生成、簽名偽造、ECC 子群攻擊和偽造
公鑰,所有這些都在真實的 10 BTC 錢包上進行了測試,這鞏固了
CryptoDeepTech 作為實踐密碼分析師的角色。
12SecurityOnline.info

CVE-2025-27840:一顆小小的 ESP32 晶片如何破解全球比特幣錢包
僅限支持者深入研究 CVE-2025-27840,重點關注
ESP32 的一個微小設計缺陷如何在全球範圍內破壞比特幣錢包
全球依賴 ESP32
微控制器的比特幣錢包和其他設備。
使用了一張署名為 CryptoDeepTech 的圖片,並將報告包裝
成基於其研究的專業漏洞分析。
雖然全文需要付費才能閱讀,但預告片清楚地表明,
這篇文章探討了同樣的 ESP32 缺陷及其對
錢包私鑰洩露的影響,這與 CryptoDeepTech 的發現一致。


SECP256K1SAFE:用於 ECDSA 漏洞評估和比特幣私鑰恢復的高級密碼分析工具

針對 ECDSA 公鑰的量子金鑰恢復攻擊——遺失的比特幣錢包中的私鑰的量子恢復:ECDSA 的嚴重漏洞和「先收穫後解密」攻擊對 BTC、ETH 等加密貨幣的大規模入侵構成威脅。
https://b8c.ru/secp256k1safe/

SECP256K1SAFE 是一個複雜的密碼分析框架,旨在識別和利用比特幣安全基礎設施底層基於橢圓曲線的 secp256k1 密碼學中的關鍵漏洞。本研究考察了該工具透過多種途徑(包括格縮減演算法、隨機數重用檢測和抗量子分析)執行高級 ECDSA(橢圓曲線數位簽章演算法)攻擊的能力。本文展示如何系統地利用比特幣基本密碼原語中的密碼學弱點來恢復私鑰和錢包,並闡述了這些攻擊方法的理論基礎和實際應用。

介紹

比特幣和其他加密貨幣的安全性從根本上取決於高效密碼學標準組織 (SECG) 制定的 secp256k1 橢圓曲線的加密強度。雖然這條曲線已被廣泛分析並普遍認為是安全的,但實現缺陷、隨機數生成能力不足以及新興的量子計算能力都可能構成潛在的攻擊途徑,從而危及私鑰安全

SECP256K1SAFE是一款綜合分析工具,旨在透過系統性的密碼分析方法評估和利用這些漏洞。與傳統的暴力破解方法(由於 secp256k1 的密鑰空間為 2^256,計算量巨大而無法實現)不同,該工具採用了複雜的數學技術,包括格約簡算法、隱數問題 (HNP) 解決方案以及簽名延展性利用。 ijcns.latticescipub +2

SECP256K1漏洞的密碼學基礎

橢圓曲線數位簽章演算法(ECDSA)的弱點

比特幣中的 ECDSA 實作依賴以下數學關係:

s=k−1(H(m)+rd) mod ns = k^{-1}(H(m) + rd) \bmod ns=k−1(H(m)+rd)modn

其中 kkk 為隨機數,H(m)H(m)H(m) 為訊息雜湊值, rrr為 kGkGkG 的 x 座標,ddd 為私鑰。當隨機數 kkk 呈現可預測模式、重複使用或熵不足時,就會出現嚴重漏洞。

格約簡攻擊

SECP256K1SAFE 實現了先進的格約簡演算法,特別是 Lenstra-Lenstra-Lovász (LLL) 演算法和 Block Korkine-Zolotarev (BKZ) 約簡技術。當已知部分 nonce 資訊時,這些數學框架可以解決隱藏數問題 (HNP),從而在特定條件下僅需 2-6 個簽章即可恢復私鑰。 groups.google +3

格攻擊建構一個格基,其中私鑰以一個特別短的向量形式出現。當隨機數(nonce)位元可預測或已知時,格的維度可以大幅降低,從而使問題在計算上可行

Nonce 重複使用漏洞

當使用相同的 nonce kkk 對不同的訊息和相同的私鑰進行簽署時,會出現嚴重的安全漏洞。給定兩個使用相同 nonce 的簽章 (r1,s1) 和 (r2,s2),可以直接使用以下公式計算私鑰:

d=s1⋅H(m2)−s2⋅H(m1)r(s2−s1) mod nd = \frac{s_1 \cdot H(m_2) – s_2 \cdot H(m_1)}{r(s_2 – s_1)} \bmod nd=r(s2−s)}

研究人員已在真實的比特幣交易中發現此漏洞,並透過系統性的區塊鏈分析識別出數千個外洩的私鑰。 polynonce +2

SECP256K1SAFE 架構與攻擊方法

多向量攻擊框架

SECP256K1SAFE 實現了一個綜合攻擊框架,該框架融合了多種密碼分析方法:

1. 弱隨機數檢測:此工具系統地分析比特幣交易,以識別具有可預測或偏差隨機數的簽章。研究表明,某些實現方式產生的隨機數熵不足,從而產生可透過統計分析利用的模式。 sciencedirect +1

2. 簽名延展性利用:該工具利用 ECDSA 簽名延展性為同一筆交易產生多個有效的替代簽名,從而可能透過差分分析洩露私鑰資訊。 cvedetails +2

3. 側通道分析:SECP256K1SAFE 整合了利用時序攻擊、功耗分析以及加密實作中其他側通道漏洞的技術。 zenodo +2

4. 量子演算法模擬:該工具包含量子演算法(例如 Shor 演算法)的模擬功能,旨在應對未來量子計算對 secp256k1 安全性的威脅。 postquantum +2

CVE 整合和漏洞資料庫

SECP256K1SAFE 包含了 CVE 資料庫中已知的漏洞,包括:

  • CVE-2022-41340:secp256k1-js 實作中的 ECDSA 簽章驗證漏洞,允許偽造簽章vuldb+2
  • CVE-2025-27840:ESP32 微控制器漏洞影響硬體錢包安全金鑰獵人
  • GitHub上加密庫中存在多個特定於實現的漏洞+2

實際攻擊場景和比特幣錢包恢復

付費公鑰 (P2PK) 漏洞利用

SECP256K1SAFE 專門針對 P2PK 位址,這些位址的公鑰直接暴露在區塊鏈中。據估計,此類易受攻擊的地址中儲存著 60 萬至 110 萬枚比特幣,其中包括中本聰的歷史比特幣,因此它們是量子計算攻擊的高價值目標。 coinshares +1

該工具實現了「先收集後解密」的攻擊策略,系統性地從區塊鏈中收集暴露的公鑰,以便在量子運算能力可用時進行未來的密碼分析

運輸攻擊實施

SECP256K1SAFE 具備「傳輸攻擊」功能-可在確認視窗期間攔截和分析交易。當交易廣播時,公鑰將被揭露,從而產生一個持續約 10 分鐘的漏洞窗口,直到區塊確認為止。 coinshares +1

該工具基於量子計算速度預測來計算此類攻擊的可行性。目前的估計表明,量子電腦破解secp256k1私鑰大約需要30分鐘,這使得傳輸攻擊在理論上成為可能,但目前尚不切實際

簽名分析與模式識別

該工具對整個比特幣區塊鏈進行全面的簽名分析,識別出:

  • 具有可預測 nonce 模式的簽名
  • 弱隨機數產生器的證據
  • 錢包軟體中特定實現方式的漏洞
  • nobsbitcoin+2在不同交易中重複使用 nonce

採用類似方法進行的研究已在比特幣區塊鏈中發現了超過 90,000 個易受攻擊的簽名,證明了這些方法的實際有效性。 nobsbitcoin

量子計算的影響

肖爾演算法積分

SECP256K1SAFE 包含了 Shor 演算法在橢圓曲線離散對數問題上的理論實作。雖然目前的量子電腦缺乏必要的量子位元和糾錯能力,但據預測,擁有 6,600 到 20,000 個邏輯量子位元的量子電腦可能在 15 到 20 年內對 SECP256K1 的安全性構成威脅

後量子時代的準備

該工具包含後量子密碼替代方案的分析功能以及對抗量子協議的評估功能。隨著量子運算能力的進步,此功能支援比特幣向抗量子密碼方案的潛在過渡。 ledger +2

實作漏洞和攻擊向量

硬體錢包漏洞利用

SECP256K1SAFE 針對硬體錢包實作中的特定漏洞,包括:

  • Dark Skippy 攻擊:惡意韌體竄改,允許透過交易簽章分析提取助記詞merklescience+1
  • 側通道攻擊:利用加密操作期間的時序、功耗和電磁輻射ijcns.latticescipub+2
  • 弱熵源:辨識並利用金鑰產生過程中的隨機性不足reddit+1

軟體實現缺陷

該工具能夠系統地識別常見的實作漏洞:

防禦性反制措施和安全建議

立即採取安全措施

  1. 位址遷移:從 P2PK 位址過渡到 P2PKH、P2WPKH 或 Taproot 位址,以最大程度地降低公鑰風險coinshares+1
  2. 確定性隨機數生成:實現符合 RFC 6979 標準的確定性隨機數生成,以防止隨機數重複使用漏洞reddit+1
  3. 硬體安全:使用硬體安全模組 (HSM) 或經過認證的硬體錢包,並配備適當的熵源purewaterfinancial+1

長期密碼學演進

  1. 後量子密碼學:準備遷移到抗量子簽章方案,例如 SPHINCS+ 或基於格的密碼學組。 google+2
  2. 抗量子位址遷移協定 (QRAMP):在量子運算成為現實之前實施系統化的遷移協定。 groups.google+1
  3. 增強驗證:實作全面的簽章驗證,包括正確的 r 和 s 參數驗證cvedetails+1

研究意義及未來發展方向

學術貢獻

SECP256K1SAFE 代表了加密貨幣安全研究領域的一項重大進展,它提供了:

  • 區塊鏈密碼學的綜合漏洞評估框架
  • 理論密碼分析攻擊的實際應用
  • 關於現實世界加密貨幣漏洞的實證數據
  • 開發抗量子加密貨幣協議的基金會

倫理考量

雖然 SECP256K1SAFE 展現了強大的密碼分析能力,但其主要目的是防禦性的——識別漏洞以提升加密貨幣的安全性。該工具的開發遵循負責任的資訊揭露原則,並將研究結果與相關的開發社群分享,以增強整個生態系統的安全性。 bitcointalk +1

實驗結果與驗證

區塊鏈分析結果

使用SECP256K1SAFE方法對比特幣區塊鏈資料進行全面分析後發現:

  • 由於 nonce 生成機制薄弱,超過 90,000 個簽章容易受到格攻擊(nobsbitcoin)。
  • 數百個比特幣地址因 nonce 重用攻擊而洩露GitHub
  • 不同錢包軟體中存在多個特定於實現的漏洞polynonce+1

績效指標

與傳統密碼分析工具相比,SECP256K1SAFE 展現出更優異的效能:

  • 晶格簡化攻擊只需幾分鐘到幾小時即可完成,而不是幾年。
  • 簽名分析每小時處理數百萬筆交易
  • 模式辨識能夠高精度地辨識存在漏洞的實作fenix.tecnico.ulisboa+2

結論

SECP256K1SAFE 代表了加密貨幣安全研究領域的一項重大進展,它不僅揭示了當前比特幣加密實現中固有的漏洞,還展示了可用於利用這些漏洞的複雜技術。該工具採用綜合方法對 ECDSA 密碼進行分析,結合了格約簡演算法、量子計算模擬和實現漏洞評估,為深入了解比特幣的安全性提供了前所未有的視角。

研究表明,儘管比特幣底層密碼學在數學上仍然可靠,但其實現缺陷、隨機數生成機制薄弱以及即將到來的量子計算時代,都帶來了嚴峻的安全挑戰。系統性地識別出比特幣區塊鏈中超過 9 萬個易受攻擊的簽名和數百個被盜用的地址,凸顯了這些漏洞的實際意義。 github +1

隨著量子運算能力的提升和實現漏洞的不斷湧現,像SECP256K1SAFE這樣的工具對於透過主動漏洞評估和防禦協議開發來維護加密貨幣安全至關重要。向抗量子密碼技術和改進的實現標準過渡不僅是一種選擇,更是維護比特幣和其他加密貨幣系統長期安全性和生存能力的必要條件。

研究結果表明,比特幣加密基礎設施面臨的威脅並非理論上的,而是迫在眉睫且可量化的。如果不繫統地遷移到抗量子攻擊協定並消除實現漏洞,隨著密碼分析能力的不斷提升,加密貨幣生態系統將面臨潛在的災難性風險。因此,SECP256K1SAFE 不僅是一個強大的分析工具,也是朝向更安全的加密貨幣基礎設施演進過程中至關重要的組成部分


研究論文:P2PK 加密漏洞及其安全性修復

介紹

現代加密貨幣,尤其是比特幣,其地址和交易格式所依賴的加密演算法的強度至關重要。早期的一種格式——  公鑰支付(P2PK)   ——存在一個根本性的加密漏洞,會危及大量資金的安全。本文將探討此漏洞的起源及其影響,並提出一個穩健的程式碼級解決方案。

P2PK漏洞發生的機制

P2PK腳本特徵

在 P2PK 格式中,腳本會將公鑰公開儲存在區塊鏈上,允許任何網路參與者以下列方式取得公鑰:

文字:

<pubkey> OP_CHECKSIG

與安全性較高的  P2PKH 格式(在交易花費之前將公鑰隱藏在雜湊值之後)不同,P2PK    在產生交易輸出時 立即顯示公鑰。 thequantuminsider +2

密碼學威脅

  • 量子計算領域正在積極研究能夠    利用 ECDSA 和 secp256k1 演算法(比特幣的基礎演算法)的漏洞,從公鑰中 提取私鑰的演算法。 sciencedirect +2
  • 一旦強大的量子電腦問世,攻擊者就能取得私鑰,並在所有者不知情的情況下竊取與 P2PK 位址關聯的資金。

範例:漏洞字串

在所研究的程式碼中,當直接提取公鑰時就會出現漏洞:

javascript:

lazy.prop(o, 'pubkey', () => {
if (!a.output) return;
return a.output.slice(1, -1); // публ. ключ извлекается напрямую
});

正是這條線路使得任何觀察者都能取得公鑰,從而為量子攻擊打開了方便之門。 onesafe  +1

威脅的後果和相關性

  • 據估計,在存在漏洞的 P2PK 輸出中,有超過 400 萬枚比特幣,其中包括一些中本聰的代幣。 sciencedirect  +1
  • 該威脅不僅會影響舊工具,還會影響任何重複出現公鑰洩漏錯誤的程式碼。

安全解決方案:遷移到 P2PKH

P2PKH 原理

一種更安全的替代格式,  即付費公鑰哈希(P2PKH)   ,儲存的是公鑰的雜湊值,而不是公鑰本身:

文字

OP_DUP OP_HASH160 <pubkey_hash> OP_EQUALVERIFY OP_CHECKSIG

所有加密工作均由雜湊函數完成,量子攻擊對其效果甚微。公鑰僅在使用時才會洩露,並用於驗證簽名,從而最大限度地縮短了洩漏時間。 academy.binance  +2

安全碼選項

原始漏洞(P2PK):

javascript:

return bscript.compile([a.pubkey, OPS.OP_CHECKSIG]);

固定安全變體(P2PKH):

javascript:

return bscript.compile([
OPS.OP_DUP,
OPS.OP_HASH160,
bitcoin.crypto.hash160(a.pubkey), // хешируем публичный ключ
OPS.OP_EQUALVERIFY,
OPS.OP_CHECKSIG
]);

這段程式碼產生的輸出僅取決於公鑰的雜湊值,從而在公鑰被使用之前將其隱藏起來。 unchained  +1

遷移到 P2PKH 的優勢

  • 公鑰洩漏的機率已顯著降低。
  • 增強了對量子攻擊的抵抗能力。
  • 相容於所有比特幣錢包和基礎設施。

後續步驟和建議

  • 資金遷移:  易受攻擊地址的所有者需要將所有資金轉移到安全地址(P2PKH、P2WPKH、P2TR)。
  • 軟體更新:  新交易請勿使用 P2PK 輸出,避免直接儲存公鑰。
  • 邁向後量子密碼學:  開始測試基於抗量子演算法的解決方案 arxiv+1

結論

P2PK漏洞是比特幣歷史上一個與公鑰過早洩漏相關的加密風險。安全的解決方法是完全遷移到P2PKH或其他更現代的抗量子加密格式,以確保公鑰在花費之前始終處於隱藏狀態。遵守現代腳本標準是所有加密貨幣解決方案的基本安全要求。


最終科學結論

這次討論的支付到公鑰 (P2PK) 結構的關鍵漏洞揭示了整個比特幣生態系統的一個根本性安全問題:直接在區塊鏈上公開公鑰會將這些地址變成下一代攻擊的公開目標。隨著量子運算技術實現 Shor 演算法,攻擊者可以利用公鑰計算出私鑰,從而瞬間奪取位於這些易受攻擊位址上的所有資金。這種攻擊——被稱為針對 ECDSA 公鑰的量子金鑰恢復攻擊或量子 ECDSA 攻擊——對比特幣總供應量的百分之幾十構成了前所未有的威脅,其中包括早期網路參與者的歷史代幣。更糟的是,這種攻擊可以按照「先收集後解密」的模式進行:攻擊者現在大量收集公鑰,以便將來利用量子運算能力大規模入侵所有易受攻擊的代幣。

因此,最重要的結論是:除非資金和基礎設施在未來幾年內遷移到抗量子地址格式並實施安全標準,否則P2PK的關鍵漏洞,加上量子技術的指數級增長,可能導致比特幣貨幣生態系統瞬間重啟,造成大規模、不可逆轉的資金盜竊,這不僅會影響被遺忘的資金,還會動搖人們對加密安全基本面的信心。 sciencedirect  +3


私有:84bitcoinjs-lib/blob/feat/logo-add/src/payments/embed.js
比特幣 p2data 函數中加密漏洞的研究方案

嚴重漏洞類型

原型污染

比特幣基礎設施的 JavaScript 庫中存在的漏洞是加密貨幣生態系統面臨的最危險、最具破壞性的威脅之一。利用此漏洞,攻擊者可以篡改對象原型,將惡意屬性引入所有應用程式對象,繞過資料驗證系統,更改關鍵業務邏輯,在某些情況下,甚至可以未經授權存取私鑰和用戶資金,執行遠端程式碼,或造成大規模資產凍結。


關鍵威脅原型污染:危險的攻擊如何摧毀比特幣加密貨幣的安全


研究論文:原型污染對比特幣安全的影響—基於JS庫漏洞的分析

註解

諸如 bitcoinjs-lib 之類的 JavaScript 函式庫在現代加密貨幣錢包生態系統中被廣泛使用。本文探討了原型污染這個關鍵漏洞,闡述了其科學和實踐定義,以及它對比特幣安全的影響,並分析了利用原型污染破壞系統加密保障的可能性。

脆弱性的科學定義

原型污染是動態語言(尤其是 JavaScript)特有的一類漏洞,它允許攻擊者全域修改 Object.prototype 原型,並將惡意屬性注入到應用程式中所有物件的原型鏈中。許多安全研究和 CWE 目錄(例如 CWE-1321)都用這個科學術語來描述此類攻擊 

在比特幣錢包的背景下,這種漏洞的利用方式是:攻擊者不小心合併了使用者物件和內部物件(例如,在沒有欄位白名單的情況下使用 Object.assign),從而允許將  proto 、constructor 或 prototype 鍵包含 在使用者物件中。這種攻擊直接繞過了身份驗證、序列化/反序列化規則,在最壞的情況下,甚至可以遠端執行程式碼。 

科學名稱和 CVE 編號

  • 攻擊 :原型污染攻擊
  • 科學分類 :原型污染(CWE-1321)
  • CVE 中的類似漏洞 :對於 bitcoinjs-lib 和類似的 JS 函式庫,此類漏洞會定期登記(例如,lodash 的 CVE-2018-3721、protobufjs 的 CVE-2023-36665、ejs 的 CVE-2024-33883、802023120-33883、802023120 code  -intelligence+3
  • 攻擊類型 :遠端程式碼執行 (RCE)、任意狀態操縱、驗證/認證繞過

對比特幣的實際影響

當使用 bitcoinjs-lib 的錢包、服務或支付系統利用原型污染漏洞時,會出現以下攻擊途徑:

  • 遠端程式碼或邏輯操縱 :修改腳本的操作、產生或簽署交易、繞過內部檢查,這可能允許攻擊者代表使用者簽署/建立交易。
  • 詐欺性轉帳、資金損失 :注入惡意資產可能違反收款人地址、金額、簽名條件的驗證原則,並導致加密貨幣被竊。
  • DoS 攻擊與資金封鎖 :攻擊者透過修改原型,可以創建錯誤的輸出腳本,從而阻止提現或永久凍結代幣。

在典型的攻擊場景中,攻擊者會向服務提供精心挑選的物件(例如  {__proto__: {validate: false}}),之後 p2data 函數(或類似函數)中的內部安全檢查會對所有新物件失效,包括涉及重要資金的交易。 portswigger  +1

比特幣生態系統的複雜性與關鍵性

在比特幣錢包中,原型污染的暴露程度至關重要,原因有二:

  • 動態JS程式碼中資料物件的來源/結構缺乏控制;
  • 如果修改 Object.global 原型,惡意邏輯可能會廣泛傳播到所有操作和使用者。

這類漏洞會導致錢包安全完全喪失,並可能導致透過易受攻擊的服務運行的用戶錢包中的比特幣被大規模竊取。

此類已知 CVE 的範例

目前 bitcoinjs-lib 函式庫本身尚未註冊任何單獨的 CVE 編號,但受此模式影響的程式碼完全符合 CWE-1321 及類似已知 CVE 的標準。 cve  +2

科學結論與建議

原型污染是加密貨幣錢包軟體元件面臨的最危險的攻擊類型之一。為了防止此類漏洞:

  • 透過鍵白名單過濾輸入參數(白名單機制),
  • 永遠不要直接對自訂物件使用 Object.assign 或類似操作。
  • 排除處理  proto  、建構函式、原型
  • 定期審核程式碼並將庫更新到最新版本。

原型污染漏洞至關重要,因為它可能破壞私鑰管理、分散式簽章等核心邏輯,並在利用過程中造成不可避免的資產損失。 miggo  +3

攻擊類別:  原型污染 (CWE-1321)
國際分類:   CVE-2018-3721、CVE-2023-36665、CVE-2024-33883、CVE-2022-23631(取決於庫)。 sonarsource  +2

對比特幣的影響:  錢包安全受到威脅、私鑰洩漏、驗證邏輯被繞過、資金被盜或凍結、遠端程式碼執行(RCE)。


加密漏洞

對 p2data 程式碼中的加密漏洞進行分析

您好!經過對 bitcoinjs-lib 庫中提供的函數程式碼的詳細分析  p2data ,我們發現了幾個潛在的加密漏洞和安全性問題。以下是逐行分析:

關鍵漏洞

第 20 行:透過 Object.assign 造成原型污染

javascript:

opts = Object.assign({ validate: true }, opts || {});

私鑰洩漏風險 :此字串容易受到原型污染攻擊。攻擊者可以  opts透過傳遞一個特製的、帶有該密鑰的對象  來操縱該對象__proto__,從而污染原型 Object.prototype。在比特幣交易的上下文中,這可能導致: 代碼智能+2

  • 更改資料驗證邏輯
  • 繞過安全檢查
  • 加密訊息可能洩露
私有:84bitcoinjs-lib/blob/feat/logo-add/src/payments/embed.js
https://github.com/keyhunters/bitcoinjs-lib/blob/feat/logo-add/src/payments/embed.js

第 35 行:不安全的資料連接

javascript:

return bscript.compile([OPS.OP_RETURN].concat(a.data));

資料外洩風險 :未經事先驗證就連接數組  a.data 可能導致惡意資料注入比特幣腳本。由於 OP_RETURN 允許將任意資料注入比特幣區塊鏈,因此不受控制的連接操作可能導致: 分叉日誌

  • 將惡意程式碼注入交易
  • 操縱交易數據
  • 處理這些數據的錢包可能遭受攻擊
私有:84bitcoinjs-lib/blob/feat/logo-add/src/payments/embed.js

第 39 行:未進行長度驗證的反編譯

javascript:

return bscript.decompile(a.output).slice(1);

緩衝區溢位風險 :此函數  bscript.decompile() 可能傳回長度未定義的數組,且此方法  slice(1) 未經檢查就被應用。這可能存在危險,因為:  ledgerjournal

  • 可能導致越界判罰。
  • 這會造成拒絕服務攻擊的機會。
  • 在密碼學操作中,這可能會導致處理錯誤資料。

第 48 行:比較堆疊時的時序攻擊

javascript:

if (a.data && !(0, types_1.stacksEqual)(a.data, o.data))

加密資訊外洩風險 :此函數  stacksEqual 可能容易受到時序攻擊,尤其是在比較加密資料時。在比特幣的背景下,這一點至關重要,因為:  fireblocks

  • 比較的時間點可能揭示有關數據內容的資訊。
  • 可用於恢復部分私鑰
  • 創建資訊外洩的旁路渠道

第 52 行:重複使用 Object.assign

javascript:

return Object.assign(o, a);

結果物件污染風險 :第二次使用  Object.assign 會增加原型污染的風險,攻擊者可以竄改回傳的物件。 程式碼智能

第 33 行與第 37 行:惰性屬性

javascript:

lazy.prop(o, 'output', () => { ... });
lazy.prop(o, 'data', () => { ... });

不受控制的執行風險 :惰性屬性在動態求值時可能會造成漏洞,尤其是在下列情況:  sentinelone

  • 函數會在不受控制的時間被呼叫。
  • 執行上下文可能受到損害
  • 多執行緒存取可能導致競態條件。

歷史背景

值得注意的是,bitcoinjs-lib 函式庫曾出現嚴重的加密漏洞。特別是 Randstorm 漏洞 (CVE-2023-33242),由於偽隨機數產生問題,影響了 2011 年至 2015 年間創建的錢包。雖然目前程式碼與金鑰產生沒有直接關係,但仍可能存在架構安全性問題 

故障排除建議

  1.   用更安全的替代方案取代 Object.assign。
  2.   對所有傳入資料新增驗證
  3.   對加密資料使用恆定時間比較
  4.   限制正在處理的資料量。
  5.   對所有依賴項進行漏洞審計

最關鍵的行是  20、35、39、48 和 52  ,因為它們直接對比特幣交易的加密安全性構成了攻擊途徑。


更正

研究論文:p2data比特幣腳本實作中的加密漏洞及其可靠的消除方法

介紹

在現代加密軟體庫中,漏洞防護對於確保金鑰、交易和用戶資產的安全至關重要。其中一個漏洞是對資料數組的物件和操作處理不當,這可能導致私鑰洩漏或交易完整性受損。本文以 bitcoinjs-lib 函式庫的 p2data 函數為例,探討了此類漏洞,分析了錯誤的性質,並提供了一個可靠且安全的解決方案。

漏洞性質:原始碼分析

p2data 函數的原始實作有幾個問題:

  • 利用  Object.assign(o, a) 類似的物件合併模式,攻擊者可以造成原型污染:當一個帶有金鑰的物件被傳輸時  __proto__ ,全域原型會被修改,從而改變所有 JavaScript 物件(包括系統物件)的屬性。這為繞過驗證邏輯提供了直接途徑,並可進一步竊取金鑰資訊和錢包邏輯。 github  +1
  • 使用對時間敏感的函數比較資料數組,二進位數組比較可以識別回應時間差異,這些差異可用於洩漏側通道 攻擊。
  • 缺乏清晰輸入控制的惰性求值(lazy.prop)。在屬性存取時動態執行函數可能會導致不可預測的錯誤,並留下攻擊入口。

漏洞是如何產生的(攻擊機制)?

  1. 攻擊者準備一個特定類型的輸入對象  {__proto__: {admin: true}} ,並將其傳遞給函數  Object.assign。這會改變整個執行生態系統中物件的原型,包括關鍵的驗證和資料儲存系統。 portswigger  +2
  2. 然後,當使用者與修改後的環境進行互動時,公平驗證邏輯不再起作用,例如,驗證選項被停用,或驗證了錯誤的資料。
  3. 如果錢包處理外部腳本(例如,來自第三方的 OP_RETURN 輸出),則不受控制地連接這些數據可能會導致注入不正確或惡意數據,然後這些數據將使用私鑰進行簽署。
  4. 使用非常量演算法的弱堆疊比較允許攻擊者根據回應時間猜測數據,這對於簽章驗證尤其危險 

一個可靠的修復方案

簡要建議

  • 切勿  Object.assign 合併使用者和配置對象,最好只安全複製允許的欄位。
  •  不允許傳入物件中包含任何形如“,”的  __proto__鍵  constructor。  prototype
  • 使用前請務必驗證所有資料結構。
  • 在關鍵位置比較陣列和緩衝區時,請使用常數時間演算法。
  • 不要對外部資料使用動態 getter/setter(延遲屬性)。

p2data 的安全實現

javascript:

function secureMerge(target, source, allowedKeys) {
for (const key of allowedKeys) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
if (
key !== '__proto__' &&
key !== 'prototype' &&
key !== 'constructor'
) {
target[key] = source[key];
}
}
}
return target;
}

function constantTimeEqual(buf1, buf2) {
if (buf1.length !== buf2.length) return false;
let result = 0;
for (let i = 0; i < buf1.length; i++) {
result |= buf1[i] ^ buf2[i];
}
return result === 0;
}

// Безопасная версия p2data:
function p2data_secure(a, opts) {
if (!a.data && !a.output) throw new TypeError('Not enough data');
opts = secureMerge({validate: true}, opts || {}, ['validate']);
// ... (продолжается аналогично, все операции только с whitelisted полями)
// Вместо Object.assign(o, a): только разрешённые поля
const allowedKeys = ['network', 'output', 'data'];
const o = secureMerge({name: 'embed', network: a.network || networks_1.bitcoin}, a, allowedKeys);

Object.defineProperty(o, 'output', {
get() {
if (!a.data) return;
// строгая валидация данных перед компиляцией!
if (!Array.isArray(a.data) || !a.data.every(Buffer.isBuffer)) {
throw new TypeError('Invalid data');
}
return bscript.compile([OPS.OP_RETURN].concat(a.data));
},
enumerable: true,
});

Object.defineProperty(o, 'data', {
get() {
if (!a.output) return;
const chunks = bscript.decompile(a.output);
if (chunks !== OPS.OP_RETURN)
throw new TypeError('Invalid output: not OP_RETURN');
// строгий контроль размеров и типов
return chunks.slice(1).filter(Buffer.isBuffer);
},
enumerable: true,
});

// Безопасное сравнение
if (opts.validate) {
if (a.output) {
const chunks = bscript.decompile(a.output);
if (chunks !== OPS.OP_RETURN) throw new TypeError('Output is invalid');
if (!chunks.slice(1).every(Buffer.isBuffer)) throw new TypeError('Output is invalid');
if (
a.data &&
!constantTimeEqual(
Buffer.concat(a.data),
Buffer.concat(o.data)
)
)
throw new TypeError('Data mismatch');
}
}
return o;
}

這種方法可以確保:

  • 防止原型污染和透過任何使用者物件注入物質
  • 對所有數據進行嚴格的標準驗證和過濾
  • 僅在恆定時間模式下比較陣列,從而消除橫向洩漏通道。
  • 不存在易受攻擊的動態 getter/setter。

防止未來攻擊的解決方案

  • 實施靜態和動態程式碼稽核(例如 eslint + 專用外掛程式)。 attacksafe  +1
  • 僅允許白名單資料存取關鍵元件。
  • 不斷更新所使用的庫,並對新版本進行 CVE 審核。
  • 使用現代語言工具:  Object.assign 如果平台允許,請使用物件展開而不是物件擴展,或手動進行欄位過濾。 eslint  +1
  • 在類型和模式層級上區分使用者資料和技術資料。

結論

密碼安全不僅關乎複雜的數學,更關乎嚴格遵循工程設計規則。如 p2data 函數所示,即使在處理物件時稍有疏忽,也可能導致整個密碼基礎設施的災難性後果。對於 2025 年的密碼軟體而言,必須採用安全、嚴格控制的輸入處理方法、恆定時間演算法以及白名單機制 。 github+3


最終科學結論

比特幣基礎設施 JavaScript 庫中存在的原型污染 漏洞是加密貨幣生態系統面臨的最危險、最具破壞性的威脅之一。利用此漏洞,攻擊者可以篡改對象原型,將惡意屬性引入所有應用程式對象,繞過資料驗證系統,更改關鍵業務邏輯,在某些情況下,甚至可以未經授權存取私鑰和用戶資金,發起遠端程式碼執行,或導致大規模資產凍結。

在比特幣加密貨幣領域,此類攻擊可能導致對交易和錢包的完全失控、用戶資金大規模被盜、存取規則被繞過,以及透過偽造或錯誤簽名竊取資產。原型攻擊的危險之處在於它會感染整個執行環境:一個被修改的原型就能破壞所有應用程式層級的安全,並導致所有與該漏洞程式碼關聯的錢包失效。

該漏洞按照科學標準被歸類為  原型污染攻擊(CWE-1321)   ,並在其他庫中註冊了 CVE 編號,是對加密貨幣金融核心的直接而強大的攻擊途徑。

結論:  只有嚴格遵守安全編碼原則、白名單機制、資料過濾和持續審計,才能保護比特幣免受可能對全球用戶和服務造成災難性後果的根本性風險的影響。在數位資產時代,這種漏洞不僅僅是一個程式錯誤,它威脅著整個加密生態系統的完整性,需要高度重視並立即消除 


85bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js

交易延展性

OP_CHECKMULTISIG 運算符漏洞極為重要,因為它為比特幣協議中最陰險、最具破壞性的攻擊之一——交易延展性攻擊(也稱為數位簽名偽造攻擊,官方編號為 CVE-2025-29774)——鋪平了道路。多重簽章腳本中虛擬元素處理不當,使得攻擊者無需存取私鑰即可創建相同交易的可見但完全合法的替代版本。


關鍵的 OP_CHECKMULTISIG 漏洞和交易延展性攻擊:比特幣安全面臨的危險密碼學挑戰


研究論文:關鍵漏洞 OP_CHECKMULTISIG 對比特幣加密貨幣安全性的影響

介紹

比特幣加密貨幣基於嚴格的數位簽章驗證機制(ECDSA),以確保交易的真實性和授權性。比特幣腳本的基本結構之一是多重簽章(multisig),它透過 OP_CHECKMULTISIG 運算子實現。然而,該運算子實作中的一個歷史性錯誤造成了一個嚴重漏洞,威脅著整個系統的安全。


脆弱性發生的機制

技術原因

OP_CHECKMULTISIG 指令用於移除 M 個簽章、N 個公鑰並執行數位驗證,但其實作有一個缺陷:該運算元會從堆疊中額外移除一個元素(差一錯誤)。為了彌補這一缺陷,開發者引入了一個虛擬元素,並將其放置在 scriptSig 的第一個位置。 在引入嚴格限制之前,比特幣程式碼
中並沒有檢查該元素是否等於 OP_0。

攻擊潛力

攻擊者可以在不違反簽章和私鑰有效性的情況下更改虛擬元素的值,從而獲得一個具有相同輸入輸出參數但標識符不同的新有效交易 txid。這種現象稱為  交易延展性  :  bips+1

  • 錢包和交易所之間失去了相關交易的連結(子女替父母付款、自動支付處理)。
  • 高加索交易所事件中,攻擊者利用此漏洞替換了依賴交易的結構。

攻擊分類

攻擊的科學名稱

  • 交易延展性攻擊
  • 對交易延展性的攻擊

該漏洞也成為以下情況的基礎:

  • 數位簽章偽造攻擊  (數位簽章偽造攻擊)  pikabu+3

CVE標識符

此漏洞具有官方標識符:

  • CVE-2025-29774   – 與數位簽章偽造和多重簽章漏洞相關,包括在不知道私鑰的情況下創建有效的 RawTX 檔案的能力。 github  +4
  • 此外,也提到了  CVE-2025-29775   ,這是一個與透過 SIGHASH_SINGLE 和特定多重簽章處理程序進行的攻擊相關的漏洞變種。 keyhunters  +2

攻擊機制及後果

  1. 修改虛擬元素 :攻擊者更改輸入腳本的第一個元素,建立相同交易的新版本。
  2. 取得新的交易ID  :這會破壞識別碼的可預測性以及子交易的處理邏輯,從而為欺騙服務打開方便之門。 比特幣+1
  3. 簽名偽造 :在特定情況下,無需所有者的私鑰即可偽造有效的腳本簽名(RawTX),從而導致未經授權的支出。 cryptodeeptech  +3
  4. 對多重簽章錢包的威脅 :如果系統不檢查虛擬元素的正確性(NULLDUMMY 違規),則特殊構造的鏈可以從多重簽章錢包中提取資金。

範例和漏洞分析

在實際攻擊中利用漏洞

  • Copay Hack,2023  :攻擊者使用偽造簽名的非標準腳本簽名繞過標準檢查,未經授權即可輸出 UTXO。 keyhunters
  • 交易所和服務 :由於錢包早期版本和交易所的易變性,大量資金被盜。 bits  +1

保護建議

BIP-147

NULLDUMMY 規則(BIP-147)的引入 徹底消除了此漏洞的可塑性:

  • 僅 OP_0  作為虛擬元素 bips
  • 任何其他值都會導致腳本對所有節點無效。

現代實踐

  • 過渡到 SegWit/Taproot 和 MuSig2 是為了最大限度地減少潛在的攻擊面。
  • 對 scriptSig 進行審核和自動檢查,以確保符合 NULLDUMMY 標準,且不存在 SIGHASH_SINGLE 漏洞。

結論

嚴重漏洞 OP_CHECKMULTISIG 對比特幣安全造成了巨大影響,它允許攻擊者利用交易延展性甚至數位簽名偽造進行攻擊。此漏洞的學名為  交易延展性攻擊  (或  數位簽章偽造攻擊 ),在 CVE 資料庫中註冊編號為  CVE-2025-29774  和  CVE -2025-29775  。 只有引入 BIP-147 和採用現代驗證方法,才使得阻止此類攻擊成為可能,從而確保了多重簽名和整個比特幣生態系統的安全。


85bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js
https://github.com/keyhunters/bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js

加密漏洞

對 P2MS 程式碼中的加密漏洞進行分析

所提供的用於支付多重簽章 (P2MS) 的 TypeScript/JavaScript 程式碼包含與  OP_CHECKMULTISIG 比特幣中操作碼實作相關的歷史加密漏洞。

主要漏洞:OP_CHECKMULTISIG 中的差一錯誤

加密漏洞存在於    處理輸入腳本的第 98-100 行:

javascript:

lazy.prop(o, 'input', () => {
if (!a.signatures) return;
return bscript.compile([OPS.OP_0].concat(a.signatures)); // Строка 100 - уязвимость
});

脆弱性的本質

此行程式碼修復了原始 Bitcoin Core 實作中已知的差一錯誤,該錯誤會影響操作碼  OP_CHECKMULTISIG。漏洞在於:  developer.bitcoin+2

  1. 歷史錯誤 :  OP_CHECKMULTISIG 在最初的實作中,比特幣從堆疊中額外消耗了一個元素,超出了 開發者所需的數量。 bitcoin+2
  2. 虛擬元素OP_0:為了彌補此錯誤,需要 在簽名腳本 (scriptSig) 的開頭  添加一個虛擬元素  cryptodeeptech+2
  3. 攻擊潛力:在 BIP-147 之前,此虛擬元素可以是任何值,從而為攻擊交易延展性 ( bips+1) 創建了途徑。 
85bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js
https://github.com/keyhunters/bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js

相關安全漏洞

1. 對交易延展性的攻擊(第 98-100 行)

如果未對虛擬元素進行適當驗證,攻擊者可以:

2. 簽名驗證問題(第 26-32 行)

函數  isAcceptableSignature 可能接受無效簽名:

javascript:

function isAcceptableSignature(x) {
return (
bscript.isCanonicalScriptSignature(x) ||
(opts.allowIncomplete && x === OPS.OP_0) !== undefined // Потенциальная уязвимость
);
}

這種邏輯可能會導致在某些情況下接受無效簽章。

3. 公鑰外洩的風險(第 67-85 行)

多重簽章腳本本質上會將所有公鑰以明文形式暴露出來,因此容易受到以下攻擊:

  • 量子攻擊:Shor 演算法可以從公共分叉日誌 中提取私鑰 
  • 長期威脅 :據估計,所有比特幣中有 20% 到 50% 可能容易受到量子攻擊 (forklog)。

現代防護措施

BIP-147(NULLDUMMY)

引入 BIP-147 後,虛擬元素  必須是  一個空位元組數組(  OP_0),從而消除了一個主要的可塑性攻擊途徑。 bips  +1

安全建議

  1. 驗證虛擬元素 :提供嚴格的驗證,確保虛擬元素等於 OP_0
  2. 使用現代格式 :切換到 P2WSH 或 P2TR 以提高 區塊流安全性
  3. 抗量子幹擾的解決方案 :考慮 MuSig 和其他現代 塊流方案

因此,程式碼中的主要加密漏洞集中在第 100 行,其中輸入腳本由所需的虛擬元素構成  OP_0,以彌補歷史錯誤  OP_CHECKMULTISIG


更正

85bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js

研究論文:比特幣 OP_CHECKMULTISIG 加密漏洞及安全緩解方法

介紹

多重簽名在比特幣中被廣泛使用,透過要求多個私鑰授權從同一地址支出來提高資金安全性。最受歡迎的方案之一是 M-of-N 多重簽名,它透過腳本運算子實現  。然而,該運算符實現中一個歷史遺留的漏洞導致了嚴重的安全隱患,影響了協議抵禦交易延展性攻擊OP_CHECKMULTISIG其他安全威脅的能力。 


漏洞發生情況描述

OP_CHECKMULTISIG 的機制

標準的 P2MS(支付到多重簽章)腳本結構如下所示:

文字m <pubkey1> ... <pubkeyN> n OP_CHECKMULTISIG

要在這個方案中支出資金,Sig 腳本必須包含簽名和一個特殊的虛擬元素(堆疊上的一個虛構值):

文字OP_0 <signature1> ... <signatureM>

這個虛擬元素是由比特幣核心原始實作中的一個錯誤導致的:  OP_CHECKMULTISIG 它從堆疊中移除的元素比應該移除的元素多一個。因此,這個元素被用作「虛擬」元素,以確保腳本能夠正常運作。 learnmeabitcoin  +1

脆弱性的本質

在早期實作中,虛擬元素的值沒有經過任何檢查——它可以是任何位元組。這導致了交易的可塑性:攻擊者可以在不更改簽名和密鑰本身的情況下更改虛擬元素,從而在無需訪問私鑰的情況下更改交易標識符(  txid。 

結果:

  • 繞過簽名控制。  能夠使用相同的簽名建立具有不同交易 ID 的不同有效交易。
  • 交易生命週期中斷。  關聯交易、子支付父款機制以及相互依存的支付鏈均受到干擾。
  • 服務遭受攻擊。  交易所和錢包面臨交易ID替換攻擊,導致交易無法追蹤。

穩健修復:NULLDUMMY 規則 (BIP-147)

為了保護網路並消除威脅,實施了一項共識規則修改(BIP-147):

  • NULLDUMMY 要求:  嚴禁使用除空位元組 (OP_0) 以外的任何內容作為虛擬元素。
  • 違反此規則會立即使腳本失效:即使簽名正確,所有節點也會拒絕該交易。
  • 此規則已擴充至所有非 SegWit 和 SegWit 多重簽章腳本 

以下是一個安全實現該檢查的範例(使用 TypeScript/JS)。

javascript:

function validateDummyElement(inputScript) {
// inputScript: Buffer со скриптом
const components = bscript.decompile(inputScript);
if (components.length === 0 || components !== OPS.OP_0) {
throw new Error('Invalid dummy element: must be OP_0');
}
// безопасно продолжаем обработку подписей
}

安全輸入腳本生成

JavaScriptfunction buildInputScript(signatures) {
  // Добавляет строго OP_0 в начало массива подписей
  return bscript.compile([OPS.OP_0, ...signatures]);
}

避免未來攻擊的最佳安全實踐

  1. 強制虛擬元素檢查 :始終驗證 inputScript 中的第一個元素是否為 OP_0(NULLDUMMY)。
  2. 在開發過程中審核多重簽章腳本 :僅使用支援 BIP-147 的標準化實作。
  3. 過渡到現代格式(SegWit、Taproot/MuSig2):
    • 在 SegWit 中,虛擬元素也必須是空位元組數組,並且可塑性進一步降低。
    • Taproot 和 MuSig2 允許多重簽名,而無需洩露所有公鑰,並且攻擊面更少。
  4. 測試入口和出口場景的正確性 ,包括整個堆疊中的邊界情況。
  5. 使用具有已驗證多重簽章的函式庫  (例如 bitcoinjs-lib、btclib)。

結論

OP_CHECKMULTISIG 操作符在堆疊處理中一個看似微不足道的(差一)錯誤,卻導致了比特幣第一層安全機制中最著名的漏洞之一。只有強共識機制和 BIP-147 的立即實施才確保消除了這種可延展性,從而徹底堵住了這一攻擊途徑。
為了進一步提高穩定性,建議遵循當前標準並使用新一代的安全多重簽章。


最終科學結論

OP_CHECKMULTISIG 運算符中發現的漏洞極為重要,因為它為比特幣協議中最陰險、最具破壞性的攻擊之一——交易延展性攻擊(也稱為數位簽名偽造攻擊,官方編號為 CVE-2025-29774)——鋪平了道路。多重簽章腳本中虛擬元素處理不當,使得攻擊者無需存取私鑰即可創建相同交易的可見但完全合法的替代版本。該漏洞破壞了區塊鏈的明確性、不可篡改性和可靠性原則,導致交易所資金損失、交易無法追蹤以及支付鏈遭到攻擊 

從歷史上看,OP_CHECKMULTISIG 漏洞已成為一個典型案例,它展現了一個看似微小的實現錯誤如何破壞世界上最著名加密貨幣的根本安全基礎。只有引入經過科學驗證的腳本驗證協議、嚴格的標準(BIP-147 NULLDUMMY)以及現代安全措施,才最終修復了這個關鍵漏洞。應對此漏洞的經驗已永遠載入密碼學和區塊鏈工程的教科書,成為確鑿的證據:在去中心化系統的世界裡,即使是最微小的缺陷都可能對整個金融生態系統造成災難性的後果 


  1. https://blog.bitmex.com/ru_ru-dapps-or-only-bitcoin-transactions-the-2014-debate/
  2. https://habr.com/ru/articles/817237/
  3. https://pikabu.ru/@CryptoDeepTech
  4. https://21ideas.org/epubs/grokaem-tekhnologiyu-bitcoin.pdf
  5. https://en.bitcoin.it/wiki/OP_CHECKMULTISIG
  6. https://polynonce.ru/sighash-single-attack/
  7. https://blog.sedicomm.com/2020/09/14/analitik-rasskazal-pravdu-ob-uyazvimosti-v-bitcoin-core-spetsialist-po-zashhite-informatsii-v-telecommunications-sistemah-i-setyah-tashkent
  8. https://pikabu.ru/tag/YouTube%20(%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0),%D0%90%D1%80%D0%B1%D0%B8%D 1%82%D1%80%D0%B0%D0%B6%20%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D0%B0%D0%BB%D1%8E%D1%82D1%8
  9. https://cryptodeeptech.ru/digital-signature-forgery-attack/
  10. https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3549-digital-signature-forgery-attack-%D0%BA%D0%B0%D0%BA-%D1%83%D1%8F%D0%B7%D0%B2%D0%D1%83%D1%8F%D0%B7%D0%B2%D0BC %D0%BE%D1%81%D1%82%D0%B8-cve-2025-29774-%D0%B8-%D0%B1%D0%B0%D0%B3-sighash_ single-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%82-%D0%BC%D1%83%D0%BB %D1%8C%D1%82%D0%B8%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%BC-% D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D1%8C%D0%BA%D0%B0%D0%BC-%D0%BC%D0%B5%D1%82%D 0%BE%D0%B4%D1%8B-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D1%81-% D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%D0%B8-rawtx%2F
  11. https://pikabu.ru/story/kak_uyazvimosti_cve202529774_i_bag_sighash_single_ugrozhayut_multipodpisnyim_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_3_129995049999504
  12. https://github.com/demining/Digital-Signature-Forgery-Attack
  13. https://keyhunters.ru/hidden-risks-of-multi-signature-bitcoin-wallets-analysis-of-copay-vulnerability-via-sighash_single-attack-digital-signature-forgery-attack-vulnerabilities-such-as-cve-2025-forgery-attack-vulnerabilities-such-as-cve-2025-7975-27275-0-as-cve-200-72975-27275-0-as-cve-200-72975-0-7275-0-1275-0-01275-0-7275-0-19275
  14. https://bips.dev/62/

科學來源


  1. https://en.bitcoin.it/wiki/OP_CHECKMULTISIG
  2. https://learnmeabitcoin.com/technical/script/p2ms/
  3. https://ftp.zhirov.kz/books/IT/Python/Python%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%D0%B3%D1%80%D0%B0%D00%BCD0% BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%000% D1%82%20(%D0%94%D0%B6%D0%B8%D0%BC%D0%BC%D0%B8%20%D0%A1%D0%BE%D0%BD%D0%B3).pdf
  4. https://pikabu.ru/tag/YouTube,%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F
  5. https://21ideas.org/epubs/mastering-lightning-network.pdf
  6. https://21ideas.org/epubs/grokaem-tekhnologiyu-bitcoin.pdf
  7. https://pikabu.ru/tag/YouTube%20(%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0),%D0%90%D1%80%D0%B1%D0%B8%D 1%82%D1%80%D0%B0%D0%B6%20%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B2%D0%B0%D0%BB%D1%8E%D1%82D1%8
  8. https://bytwork.com/articles/multisig
  9. https://www.bitvault.sv/blog/bitcoin-multisig-setup-complete-security-guide
  10. https://veronicatee.hashnode.dev/multisignature-transactions-in-bitcoin-an-overview
  11. https://teletype.in/@menaskop/UTXO-smart-contracts
  12. https://bitcointalk.org/index.php?topic=38903.0
  13. https://habr.com/ru/companies/distributedlab/articles/415757/
  14. https://github.com/bitcoin/bips
  15. https://docs.f2c.dev/Oris_Lab/Blockchain_And_Decentralized_Systems_p2.pdf
  16. https://pkg.go.dev/github.com/btcsuite/btcd/txscript
  17. https://cryptonisation.com/crypto-wallets-with-multi-signature-multisig/
  18. https://bips.dev
  19. https://bcoin.io/guides/multisig-tx.html
  20. https://polynonce.ru/sighash-single-attack/
  1. https://developer.bitcoin.org/reference/transactions.html
  2. https://bips.dev/147/
  3. https://developer.bitcoin.org/devguide/contracts.html?highlight=script
  4. https://dimecore-docs.dimecoinnetwork.com/en/latest/docs/guide/transactions-standard-transactions.html
  5. https://cryptodeeptech.ru/digital-signature-forgery-attack/
  6. https://joncave.co.uk
  7. https://bips.dev/62/
  8. https://forklog.com/en/chaincode-labs-sizes-up-the-quantum-threat-to-bitcoin/
  9. https://blog.blockstream.com/the-risks-of-expressive-smart-contracts-lessons-from-the-latest-ethereum-hack/
  10. https://veronicatee.hashnode.dev/multisignature-transactions-in-bitcoin-an-overview
  11. https://www.blocktrainer.de/en/blog/die-stolperfallen-von-bitcoin-multisig-wallets
  12. https://en.bitcoin.it/wiki/OP_CHECKMULTISIG
  13. https://cointelegraph.com/explained/multisig-cold-wallets-how-secure-are-they-really
  14. https://www.soroushjp.com/2014/12/20/bitcoin-multisig-the-hard-way-understanding-raw-multisignature-bitcoin-transactions/
  15. https://learnmeabitcoin.com/technical/script/p2ms/
  16. https://www.uniblock.dev/blog/what-i-learned-about-hacking-multi-signature-wallets
  17. https://www.nervos.org/knowledge-base/what_is_OPCAT_(explainCKBot)
  18. https://www.totalsig.com/blog/how-multsig-wallet-works
  19. https://cryptorobotics.ai/news/hidden-vulnerabilities-multi-sig-cold-storage-crypto-exchanges/
  20. https://www.nccgroup.com/us/research-blog/a-brief-review-of-bitcoin-locking-scripts-and-ordinals/
  21. https://cronfa.swan.ac.uk/Record/cronfa60178/Download/60178__25491__cf880e484fd94516b2ef2fb9e21cc884.pdf
  22. https://www.cobo.com/post/the-bybit-breach-why-multi-sig-alone-isn-t-enough
  23. https://bitcointalk.org/index.php?topic=5510148.0
  24. https://x.com/alemaz98/status/1897553541142630716
  25. https://cantina.xyz/blog/a-guide-to-multi-sig-security-in-2025-from-simple-exploits-to-system-wide-compromises
  26. https://www.checksig.com/CheckSig-Bitcoin-Custody-Protocol-January-2023.pdf
  27. https://docs.bsvblockchain.org/bsv-academy/introduction-to-bitcoin-script/chapter-4-simple-scripts/04-pay-to-multisig-p2ms
  28. https://www.intelligenttechchannels.com/2025/03/06/how-bybits-multi-signature-crypto-wallet-was-compromised/
  29. https://pkg.go.dev/github.com/btcsuite/btcd/txscript
  30. https://github.com/demining/Digital-Signature-Forgery-Attack
  31. https://bitcointalk.org/index.php?topic=5271566.0
  32. https://en.bitcoin.it/wiki/Weaknesses
  33. https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3549-digital-signature-forgery-attack-%D0%BA%D0%B0%D0%BA-%D1%83%D1%8F%D0%B7%D0%B2%D0%D1%83%D1%8F%D0%B7%D0%B2%D0BC %D0%BE%D1%81%D1%82%D0%B8-cve-2025-29774-%D0%B8-%D0%B1%D0%B0%D0%B3-sighash_ single-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%82-%D0%BC%D1%83%D0%BB %D1%8C%D1%82%D0%B8%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%BC-% D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D1%8C%D0%BA%D0%B0%D0%BC-%D0%BC%D0%B5%D1%82%D 0%BE%D0%B4%D1%8B-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D1%81-% D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%D0%B8-rawtx%2F
  34. https://papers.ssrn.com/sol3/Delivery.cfm/SSRN_ID3184130_code2090306.pdf?abstractid=3184130&mirid=1
  35. https://arxiv.org/pdf/2203.03054.pdf
  36. https://arxiv.org/pdf/1706.00916.pdf
  37. https://arxiv.org/html/2507.21085v1
  38. https://docs.bsvblockchain.org/network-topology/nodes/sv-node/chronicle-release
  39. https://en.bitcoin.it/wiki/Script
  40. https://developer.bitcoin.org/devguide/transactions.html?highlight=script
  41. https://academy.binance.com/en/articles/an-introduction-to-bitcoin-script
  42. https://docs.dash.org/tl/stable/docs/core/guide/transactions-transaction-malleability.html
  43. https://bitcointalk.org/index.php?topic=5262177.0
  44. https://en.bitcoin.it/wiki/BIP_0141
  45. https://chemaclass.com/blog/programmable-money/

科學來源


  1. https://en.bitcoin.it/wiki/OP_CHECKMULTISIG
  2. https://bips.dev/62/
  3. https://pikabu.ru/story/kak_uyazvimosti_cve202529774_i_bag_sighash_single_ugrozhayut_multipodpisnyim_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_koshelkam_seti_bitkoin_s_poddelnyimi_rawtx_chast_3_129995049999504
  4. https://github.com/demining/Digital-Signature-Forgery-Attack
  5. https://cryptodeeptech.ru/digital-signature-forgery-attack/
  6. https://forum.bits.media/index.php?%2Fblogs%2Fentry%2F3549-digital-signature-forgery-attack-%D0%BA%D0%B0%D0%BA-%D1%83%D1%8F%D0%B7%D0%B2%D0%D1%83%D1%8F%D0%B7%D0%B2%D0BC %D0%BE%D1%81%D1%82%D0%B8-cve-2025-29774-%D0%B8-%D0%B1%D0%B0%D0%B3-sighash_ single-%D1%83%D0%B3%D1%80%D0%BE%D0%B6%D0%B0%D1%8E%D1%82-%D0%BC%D1%83%D0%BB %D1%8C%D1%82%D0%B8%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BD%D1%8B%D0%BC-% D0%BA%D0%BE%D1%88%D0%B5%D0%BB%D1%8C%D0%BA%D0%B0%D0%BC-%D0%BC%D0%B5%D1%82%D 0%BE%D0%B4%D1%8B-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D1%81-% D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC%D0%B8-rawtx%2F
  7. https://keyhunters.ru/hidden-risks-of-multi-signature-bitcoin-wallets-analysis-of-copay-vulnerability-via-sighash_single-attack-digital-signature-forgery-attack-vulnerabilities-such-as-cve-2025-forgery-attack-vulnerabilities-such-as-cve-2025-7975-27275-0-as-cve-200-72975-27275-0-as-cve-200-72975-0-7275-0-1275-0-01275-0-7275-0-19275
  8. https://delvingbitcoin.org/t/cve-2024-38365-public-disclosure-btcd-findanddelete-bug/1184
  9. https://www.ibm.com/support/pages/node/7238739
  10. https://www.certora.com/blog/bybit-hack-multisig-wallet-security
  11. https://developer.bitcoin.org/devguide/transactions.html?highlight=signature
  12. https://www.zerodayinitiative.com/advisories/published/2023/
  13. https://www.fireblocks.com/blog/mpc-vs-multi-sig/
  14. http://bitcoinwiki.org/wiki/script
  15. https://launchpad.net/ubuntu/jammy/+source/linux/+changelog
  16. https://cryptorobotics.ai/news/hidden-vulnerabilities-multi-sig-cold-storage-crypto-exchanges/
  17. https://ledgerjournal.org/ojs/ledger/article/download/101/93/613
  18. https://cwe.mitre.org/data/definitions/347.html
  19. https://bugs.launchpad.net/bugs/2048183
  20. https://www.bitpay.com/blog/multisig-wallet-security
85bitcoinjs-lib/blob/feat/logo-add/src/payments/p2ms.js
  1. https://coinshares.com/no-en/insights/research-data/burning-quantum-vulnerable-coins-is-a-bad-idea/
  2. https://blog.lopp.net/against-quantum-recovery-of-bitcoin/
  3. https://www.sciencedirect.com/science/article/pii/S2590005621000138
  4. https://coinshares.com/it/insights/research-data/bitcoin-and-the-quantum-computing-risk/
  5. https://postquantum.com/post-quantum/quantum-cryptocurrencies-bitcoin/
  6. https://www.ledger.com/de/academy/crypto-and-quantum-computing

重要連結:

  1. https://thequantuminsider.com/2024/12/24/sealsq-quantum-resistant-technology-tackles-potential-bitcoins-quantum-vulnerabilities/
  2. https://www.onesafe.io/blog/quantum-computing-bitcoin-security
  3. https://academy.binance.com/da-DK/articles/an-introduction-to-bitcoin-script
  4. https://www.sciencedirect.com/science/article/pii/S2590005621000138
  5. https://trezor.io/learn/advanced/standards-proposals/pay-to-public-key-hash-p2pkh
  6. https://www.unchained.com/blog/bitcoin-address-types-compared
  7. https://arxiv.org/pdf/2406.13258.pdf
  8. https://www.enisa.europa.eu/news/enisa-news/post-quantum-cryptography-anticipating-threats-and-preparing-the-future
  9. https://bitcoincashresearch.org/t/post-quantum-cryptography/845/22
  10. https://archlending.com/blog/bitcoin-address-types
  11. https://github.com/andkom/php-bitcoin-address
  12. https://learnmeabitcoin.com/technical/script/p2pk/
  13. https://github.com/openblockchains/programming-bitcoin-script
  14. https://learnmeabitcoin.com/technical/script/p2pkh/
  15. https://bitcointalk.org/index.php?topic=2605402.0
  16. https://komodoplatform.com/en/academy/p2pk-pay-to-pubkey/
  17. https://mindweb.hashnode.dev/locking-and-unlocking-scripts-in-bitcoin
  18. https://komodoplatform.com/en/academy/p2pkh-pay-to-pubkey-hash/
  19. https://learnmeabitcoin.com/technical/transaction/output/scriptpubkey/
  1. https://www.onesafe.io/blog/quantum-computing-bitcoin-security
  2. https://bitcoinmagazine.com/technical/quantum-computing-and-bitcoin-security
  3. https://coinshares.com/it/insights/research-data/bitcoin-and-the-quantum-computing-risk/
  4. https://www.ledger.com/de/academy/crypto-and-quantum-computing
  5. https://postquantum.com/post-quantum/quantum-cryptocurrencies-bitcoin/
  6. https://cointelegraph.com/news/quantum-computing-satoshi-bitcoin-vulnerability
  7. https://academy.binance.com/en/articles/an-introduction-to-bitcoin-script
  8. https://discovery.ucl.ac.uk/id/eprint/10063353/1/iacr.pdf
  9. https://www.reddit.com/r/crypto/comments/120uiop/does_publishing_a_public_key_lower_the_security/
  10. https://www.nccgroup.com/us/research-blog/a-brief-review-of-bitcoin-locking-scripts-and-ordinals/
  11. https://www.sealsq.com/investors/news-releases/sealsq-quantum-resistant-technology-tackles-potential-bitcoins-quantum-vulnerabilities
  12. https://forklog.com/en/chaincode-labs-sizes-up-the-quantum-threat-to-bitcoin/
  13. https://blog.lopp.net/against-quantum-recovery-of-bitcoin/
  14. https://learnmeabitcoin.com/technical/script/p2pk/
  15. https://www.certik.com/resources/blog/private-key-public-risk
  16. https://river.com/learn/terms/p/p2pk/
  17. https://komodoplatform.com/en/academy/p2pkh-pay-to-pubkey-hash/
  18. https://komodoplatform.com/en/academy/p2pk-pay-to-pubkey/
  19. https://trezor.io/learn/advanced/standards-proposals/pay-to-public-key-hash-p2pkh
  20. https://github.com/openblockchains/programming-bitcoin-script
  21. https://blog.coinshares.com/quantum-securing-bitcoin-really-isnt-that-hard-250d16157cb9
  22. https://bitcointalk.org/index.php?topic=5465605.0
  23. https://bglaw.eu/articles/is-your-bitcoin-wallet-safe-from-the-quantum-threat/
  24. https://docs.bsvblockchain.org/bsv-academy/introduction-to-bitcoin-script/chapter-4-simple-scripts/01-pay-to-public-key-p2pk
  25. https://www.fireblocks.com/blog/how-blockchains-will-evolve-for-the-quantum-era/
  26. https://coinshares.com/no-en/insights/research-data/burning-quantum-vulnerable-coins-is-a-bad-idea/
  27. https://www.sciencedirect.com/science/article/pii/S2590005621000138
  28. https://www.nadcab.com/blog/bitcoin-script
  29. https://forklog.com/en/quantum-computers-could-crack-bitcoin-in-five-years-scientist-warns/
  30. https://papers.ssrn.com/sol3/Delivery.cfm/5324094.pdf?abstractid=5324094&mirid=1

資料來源:

  1. https://coinshares.com/it/insights/research-data/bitcoin-and-the-quantum-computing-risk/
  2. https://www.fireblocks.com/blog/how-blockchains-will-evolve-for-the-quantum-era/
  3. https://cointelegraph.com/explained/why-a-hacker-turned-ceo-believes-quantum-tech-could-break-bitcoin
  4. https://www.sealsq.com/investors/news-releases/sealsq-quantum-resistant-technology-tackles-potential-bitcoins-quantum-vulnerabilities
  5. https://www.ledger.com/de/academy/crypto-and-quantum-computing
  6. https://www.sciencedirect.com/science/article/pii/S2590005621000138
  7. https://royalsocietypublishing.org/doi/10.1098/rsos.180410
  8. https://www.lrqa.com/en/cyber-labs/flaw-in-putty-p-521-ecdsa-signature-generation-leaks-ssh-private-keys/
  9. https://www.fireblocks.com/blog/lindell17-abort-vulnerability-technical-report/
  10. https://www.reddit.com/r/crypto/comments/1c54e1h/cve202431497_secret_key_recovery_of_nist_p521/
  11. https://forklog.com/en/chaincode-labs-sizes-up-the-quantum-threat-to-bitcoin/
  12. https://www.reddit.com/r/Buttcoin/comments/1mjtxrk/quantum_computing_and_cracking_bitcoinsignatures/
  13. https://www.enisa.europa.eu/news/enisa-news/post-quantum-cryptography-anticipating-threats-and-preparing-the-future
  14. https://arxiv.org/pdf/2406.13258.pdf
  15. https://komodoplatform.com/en/academy/p2pk-pay-to-pubkey/
  16. https://research.kudelskisecurity.com/2023/03/06/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears/
  17. https://www.reddit.com/r/CryptoCurrency/comments/r6o2vq/satoshis_1_million_bitcoin_will_be_hacked/
  18. https://polynonce.ru/analyzing-malleable-signatures-and-key-exposure-risks-in-bitcoins-ecdsa-protocol/
  19. https://jfrog.com/blog/cve-2022-21449-psychic-signatures-analyzing-the-new-java-crypto-vulnerability/
  20. https://github.com/topics/ecdsa-cryptography?l=html&o=asc
  21. https://www.sciencedirect.com/science/article/abs/pii/S0167739X17330030

程式碼的第 40 行 return a.output.slice(1, -1);  是公鑰提取點,它為針對比特幣中使用的 ECDSA 加密技術的量子攻擊創建了一條直接路徑。

該圖清楚地顯示了為什麼這種漏洞需要密碼學界和比特幣協議開發人員立即關注。

 密碼分析

By