原文來(lái)源:Max He@Safeheron Lab
近期,加密貨幣社區(qū)廣泛討論一則重磅消息:美國(guó)執(zhí)法部門(mén)疑似已掌握 2020 年那次神秘轉(zhuǎn)移的約 12 萬(wàn)枚比特幣私鑰,價(jià)值高達(dá) 150 億美元。據(jù) Elliptic 報(bào)告顯示,這些資產(chǎn)最初與礦池 Lubian.com 存在關(guān)聯(lián),后被美國(guó)司法部正式?jīng)]收。外界普遍推測(cè),執(zhí)法機(jī)構(gòu)可能利用了錢包生成時(shí)的隨機(jī)數(shù)缺陷來(lái)重建或接管私鑰,也有觀點(diǎn)認(rèn)為這是美國(guó)政府主導(dǎo)的一次技術(shù)破解行動(dòng)。
此消息傳出后,在整個(gè)加密貨幣行業(yè)引發(fā)了強(qiáng)烈震動(dòng),迅速成為業(yè)內(nèi)焦點(diǎn)話題。不僅在技術(shù)和安全層面掀起了廣泛討論,更讓投資者對(duì)加密資產(chǎn)的可靠性與風(fēng)險(xiǎn)防范產(chǎn)生了新的憂慮。本文將從技術(shù)與事實(shí)的雙重視角出發(fā),對(duì)該事件及其背后的安全根源進(jìn)行系統(tǒng)性梳理,深入解析關(guān)鍵技術(shù)細(xì)節(jié),全面回顧事件演變脈絡(luò),并探討其可能帶來(lái)的深遠(yuǎn)影響。
在區(qū)塊鏈的世界里,隨機(jī)數(shù)堪稱加密安全的基石。每一個(gè)比特幣或以太坊錢包的私鑰,都由隨機(jī)數(shù)來(lái)生成——一旦隨機(jī)數(shù)缺乏足夠的「隨機(jī)性」,黑客就有可能預(yù)測(cè)出私鑰,進(jìn)而直接竊取數(shù)字資產(chǎn)。為了有效規(guī)避這種風(fēng)險(xiǎn),錢包必須采用密碼學(xué)安全隨機(jī)數(shù)生成器(CSPRNG),以確保生成的隨機(jī)數(shù)真正做到不可預(yù)測(cè)、不可重現(xiàn)。
那些依賴不安全隨機(jī)算法的錢包,表面上看似正常運(yùn)作,實(shí)際上卻暗藏隱患:一旦隨機(jī)性被成功預(yù)測(cè),資產(chǎn)損失將變得不可逆轉(zhuǎn)。
2022 年至 2023 年期間,因相同的隨機(jī)數(shù)漏洞引發(fā)的多起重大安全事件相繼被披露,充分暴露了這一問(wèn)題的嚴(yán)重性和廣泛性。
2022 年 9 月 20 日,知名做市商 Wintermute 遭遇重大安全事故,約 1.6 億美元的數(shù)字資產(chǎn)被盜。攻擊者巧妙利用了地址生成工具 Profanity 的弱點(diǎn)——該工具在部分用法中依賴 Mersenne Twister(MT19937)作為偽隨機(jī)數(shù)源來(lái)生成「靚號(hào)地址」。
由于 MT19937 的輸出在缺乏充分熵注入的情況下具有可預(yù)測(cè)性,攻擊者得以重現(xiàn)部分地址/私鑰生成流程,從而成功計(jì)算出對(duì)應(yīng)私鑰并轉(zhuǎn)移資金。此案成為加密史上首例因隨機(jī)數(shù)誤用導(dǎo)致機(jī)構(gòu)級(jí)錢包被攻破的標(biāo)志性事件,標(biāo)志著隨機(jī)性問(wèn)題已從單純的開(kāi)發(fā)者疏忽演變?yōu)橄到y(tǒng)性安全風(fēng)險(xiǎn)。

關(guān)于此次攻擊,Safeheron 當(dāng)時(shí)分析了詳細(xì)的攻擊技術(shù)細(xì)節(jié),并復(fù)現(xiàn)了攻擊過(guò)程。
2023 年 4 月,安全研究者發(fā)現(xiàn) Trust Wallet 瀏覽器擴(kuò)展版(版本 0.0.172–0.0.182)在生成錢包助記詞時(shí)使用了非密碼學(xué)安全的隨機(jī)函數(shù),其底層同樣依賴 Mersenne Twister(MT19937)偽隨機(jī)數(shù)算法(如下圖所示),隨機(jī)空間僅約 2^32 種可能性,遠(yuǎn)遠(yuǎn)不足以抵御窮舉攻擊。
攻擊者可以在有限時(shí)間內(nèi)枚舉所有可能的助記詞組合,從而重建私鑰并盜取用戶資產(chǎn)。Trust Wallet 官方隨后發(fā)布公告,正式確認(rèn)漏洞存在并緊急提醒受影響用戶及時(shí)遷移資產(chǎn)。根據(jù)項(xiàng)目社區(qū)論壇的官方聲明,該漏洞已導(dǎo)致約 17 萬(wàn)美元的潛在損失,原因是攻擊者可能成功利用這一漏洞實(shí)施了針對(duì)性攻擊。

此事件成為首個(gè)影響主流錢包終端用戶的隨機(jī)數(shù)漏洞案例,也讓「隨機(jī)數(shù)安全」問(wèn)題首次引發(fā)大規(guī)模的公眾關(guān)注。
2023 年 8 月,安全研究團(tuán)隊(duì) Distrust 宣布發(fā)現(xiàn)命令行工具 Libbitcoin Explorer (bx) 3.x 版本存在嚴(yán)重的隨機(jī)數(shù)漏洞。該工具在執(zhí)行 bx seed 命令生成錢包種子時(shí),內(nèi)部同樣使用 Mersenne Twister(MT19937)偽隨機(jī)數(shù)生成器,并僅以系統(tǒng)時(shí)間作為種子來(lái)源,導(dǎo)致隨機(jī)性極低、輸出可預(yù)測(cè)。攻擊者可在有限時(shí)間內(nèi)枚舉全部種子值,從而重建錢包私鑰并直接竊取資產(chǎn)。

該漏洞影響所有使用 Libbitcoin Explorer 3.x 生成錢包的用戶,以及依賴 libbitcoin-system 3.6 庫(kù)的相關(guān)應(yīng)用。截至 2023 年 8 月,已有超過(guò) 90 萬(wàn)美元的加密貨幣資產(chǎn)因該漏洞被盜。漏洞披露后被正式登記為 CVE-2023-39910。
盡管 Libbitcoin-explorer 已經(jīng)及時(shí)打上了正確的安全補(bǔ)丁,但事情并沒(méi)有就此結(jié)束。
在 Libbitcoin Explorer 3.x 安全事件披露后,由 Distrust 團(tuán)隊(duì)牽頭的白帽研究者成立了 MilkSad 項(xiàng)目,持續(xù)追蹤漏洞影響并推動(dòng)社區(qū)響應(yīng)。
到 2024 年,研究者們首次系統(tǒng)性地梳理了這些「弱錢包」的生成機(jī)制、錢包類型以及偽隨機(jī)數(shù)生成器(PRNG)的配置方式,并揭示出它們與比特幣礦池 Lubian.com 之間的潛在關(guān)聯(lián)以及相關(guān)資金的分布特征。
2025 年,在一位匿名白帽研究員提供的關(guān)鍵線索幫助下,長(zhǎng)期停滯的分析工作取得了突破。MilkSad 團(tuán)隊(duì)發(fā)現(xiàn)受影響的軟件在生成私鑰時(shí)引入了一個(gè)新參數(shù)——PRNG 偏移量(offset),這一發(fā)現(xiàn)使研究者得以重新關(guān)聯(lián)此前分散的錢包群體,揭示出背后統(tǒng)一的隨機(jī)數(shù)生成模式。這一發(fā)現(xiàn)成為理解整個(gè)「弱錢包」事件成因的關(guān)鍵所在。
根據(jù)團(tuán)隊(duì)的進(jìn)一步深入分析,2023 年最初發(fā)現(xiàn)的 2,630 個(gè)問(wèn)題錢包僅僅是整個(gè)冰山的一角。通過(guò)在 PRNG 輸出的不同區(qū)段進(jìn)行搜索,研究者現(xiàn)已成功重構(gòu)并識(shí)別出超過(guò) 227,200 個(gè)獨(dú)立錢包(如下圖所示),這些錢包均在主網(wǎng)上存在有效使用記錄,構(gòu)成了迄今為止規(guī)模最大的「弱隨機(jī)錢包」群簇。

鏈上數(shù)據(jù)顯示,這批由隨機(jī)數(shù)缺陷生成的錢包共持有約 13.7 萬(wàn)枚比特幣(BTC)。在 2020 年 12 月 28 日短短兩小時(shí)內(nèi),這些錢包被集中清空,余額從 13.7 萬(wàn)枚驟降至不足 200 枚,其中約 9,500 枚 BTC 流向礦池 Lubian 的付款地址,其余約 12 萬(wàn)枚 BTC 被推測(cè)轉(zhuǎn)入攻擊者控制的錢包。所有可疑交易均使用相同手續(xù)費(fèi),呈現(xiàn)明顯的自動(dòng)化批量轉(zhuǎn)移特征。
此事后來(lái)又出現(xiàn)了新的重要線索,進(jìn)一步印證了這起大規(guī)模被盜事件的真實(shí)存在。研究者在比特幣主網(wǎng)上發(fā)現(xiàn),部分受害錢包在 2022 年 7 月 3 日和 2024 年 7 月 25 日仍有異常的交易活動(dòng)。這些交易通過(guò) OP_RETURN 機(jī)制嵌入了完全相同的信息:
「MSG from LB. To the whitehat who is saving our asset, you can contact us through 1228btc@gmail.com to discuss the return of asset and your reward.」
研究者推測(cè),「LB」可能代表 Lubian.com,而「saving our asset」或指向 2020 年 12 月 28 日那次大規(guī)模資金轉(zhuǎn)移事件。這些消息被多次廣播到不同地址,似乎是 Lubian 方面試圖與掌握資產(chǎn)的「白帽」建立聯(lián)系,商討資產(chǎn)返還及獎(jiǎng)勵(lì)的公開(kāi)嘗試。
不過(guò),由于這些錢包的私鑰早已處于泄露狀態(tài),理論上任何人都可以從這些地址發(fā)起交易或?qū)懭胂ⅲ虼四壳叭詿o(wú)法確定性地確認(rèn)這些信息是否真正出自 Lubian 團(tuán)隊(duì),還是一場(chǎng)誤導(dǎo)性或惡作劇式的操作。
至此,冰山的主體終于浮出水面——這場(chǎng)因隨機(jī)數(shù)缺陷引發(fā)的系統(tǒng)性漏洞,已經(jīng)發(fā)展成為比特幣歷史上規(guī)模最大、影響最深遠(yuǎn)的安全事件之一。
那么,這 22 萬(wàn)個(gè) BTC 弱隨機(jī)錢包是如何生成的呢?讓我們?cè)敿?xì)介紹具體的技術(shù)搜索過(guò)程。
第一步:選擇相同的偽隨機(jī)數(shù)生成器(PRNG)MT19937 來(lái)生成隨機(jī)數(shù)。再次強(qiáng)調(diào),該 PRNG 完全不具備密碼學(xué)安全性。
第二步:采用極低熵種子(0~2^32-1)來(lái)初始化 MT19937。這些 BTC 錢包私鑰能被如此快速地推測(cè)出來(lái),低熵種子是最大的罪魁禍?zhǔn)住?/p>
第三步:MT19937 每輪輸出一個(gè) 32 位整數(shù),但并不全部使用,僅選用最高 8 位,也就是說(shuō)每輪 MT19937 將得到一個(gè)字節(jié)。
第四步:引入 OFFSET 這個(gè)特征,以擴(kuò)展私鑰范圍。須知 BTC 中的私鑰種子為 32 字節(jié)(等同于 24 個(gè)助記詞,即 256 bit),這 32 個(gè)字節(jié)由第(32* OFFSET)輪到第(32 * OFFSET + 31)輪獲得,從而生成 BTC 私鑰種子。須知 BTC 中的私鑰種子是 32 字節(jié),具體來(lái)說(shuō):
(1)第 0 ~ 31 輪,輸出 32 字節(jié)私鑰。
(2)第 32 ~ 63 輪,輸出 32 字節(jié)私鑰。
(3)第 32 * 2 ~ 95 輪,輸出 32 字節(jié)私鑰。
(4)以此類推,OFFSET 最多可取到 3232。
第五步:在私鑰種子的基礎(chǔ)上,使用公開(kāi)的 BIP32 錢包派生算法,采用派生路徑 m/49'/0'/0'/0/0 派生子公私鑰對(duì)。
第六步:基于子公鑰,生成前綴為 3 的 P2WPKH-nested-in-P2SH 類型錢包地址。
第七步:如果生成的地址在鏈上確實(shí)有使用記錄,說(shuō)明成功找到了弱隨機(jī)數(shù)錢包,記錄下其錢包地址和對(duì)應(yīng)私鑰。
以上整個(gè)搜索過(guò)程都是確定性的,唯一的變量在于低熵種子的選擇,共有 2^32 種可能性,這遠(yuǎn)遠(yuǎn)低于 BTC 標(biāo)準(zhǔn)私鑰空間的 2^256,因此可以通過(guò)暴力搜索的方式獲得所有 22 萬(wàn)個(gè)弱隨機(jī)錢包及其對(duì)應(yīng)私鑰。
讓我們完整梳理一下整個(gè)事件的發(fā)展脈絡(luò)。
早在數(shù)年前(最早可追溯至 2018 年),一些數(shù)字資產(chǎn)項(xiàng)目在開(kāi)發(fā)過(guò)程中錯(cuò)誤地引入了不具備密碼學(xué)安全性的偽隨機(jī)數(shù)生成器(PRNG),并將其應(yīng)用于錢包私鑰生成這一極度敏感的環(huán)節(jié)。由于當(dāng)時(shí)開(kāi)發(fā)者缺乏對(duì)密碼學(xué)安全性的理解,這一錯(cuò)誤在當(dāng)時(shí)并未被發(fā)現(xiàn),卻為后續(xù)的大規(guī)模漏洞埋下了安全隱患。
不幸的是,隨著時(shí)間推移,這一問(wèn)題逐漸被黑客發(fā)現(xiàn)并惡意利用。不同的攻擊團(tuán)體先后基于相同原理發(fā)動(dòng)了多起知名攻擊事件——包括 Wintermute 被盜、Trust Wallet 隨機(jī)數(shù)漏洞事件、以及 Libbitcoin 弱錢包事件等。這些攻擊合計(jì)造成了數(shù)億美元的資產(chǎn)損失,也讓「隨機(jī)數(shù)安全」這一原本被忽視的技術(shù)細(xì)節(jié)成為行業(yè)焦點(diǎn)。
研究者在分析這些事件的共性時(shí),發(fā)現(xiàn)所有受害錢包均存在相似的隨機(jī)性缺陷,并進(jìn)一步追溯到更早的 Lubian 礦池被盜事件。經(jīng)過(guò)深入研究,他們確認(rèn) Lubian 使用的錢包同樣依賴不安全的隨機(jī)數(shù)生成機(jī)制,是這類「弱錢包」群體的一部分。隨后的系統(tǒng)化分析揭示出更驚人的事實(shí):整個(gè)網(wǎng)絡(luò)中共有約 22 萬(wàn)個(gè)弱隨機(jī)錢包,涉及總金額 12 萬(wàn)個(gè) BTC,構(gòu)成了迄今為止規(guī)模最大、影響最深遠(yuǎn)的隨機(jī)數(shù)安全事件。
至于外界流傳的「美國(guó)司法部主導(dǎo)了 Lubian.com 被盜事件」的說(shuō)法,主要源于一個(gè)微妙的事實(shí):在司法部正式介入處理相關(guān)資產(chǎn)的過(guò)程中,原本長(zhǎng)期處于靜止?fàn)顟B(tài)的 Lubian 關(guān)聯(lián)比特幣地址突然發(fā)生了大規(guī)模的資產(chǎn)轉(zhuǎn)移,這一時(shí)間節(jié)點(diǎn)的重合鏈上地址的直接關(guān)聯(lián)令眾多觀察者產(chǎn)生懷疑,認(rèn)為政府方面可能采用暴力破解手段來(lái)恢復(fù)相關(guān)私鑰。也存在另一種可能——美國(guó)政府并未直接暴力破解私鑰,而是控制了持有私鑰的個(gè)人或?qū)嶓w,從而促成了資金轉(zhuǎn)移。
盡管這批錢包屬于可被攻破的弱隨機(jī)錢包,其私鑰在理論上確實(shí)可以通過(guò)技術(shù)手段重現(xiàn),但截至目前,仍然無(wú)任何公開(kāi)且可驗(yàn)證的證據(jù)表明,美國(guó)政府主導(dǎo)了針對(duì)相應(yīng)私鑰的「暴力破解」行動(dòng)。除非相關(guān)機(jī)構(gòu)正式公開(kāi)承認(rèn)技術(shù)介入的事實(shí),否則整個(gè)事件的真實(shí)過(guò)程仍將籠罩在謎團(tuán)之中。
如今我們已經(jīng)認(rèn)識(shí)到安全隨機(jī)數(shù)的重要性,那么在實(shí)際開(kāi)發(fā)和應(yīng)用中應(yīng)該如何正確獲取呢?需遵守以下幾個(gè)原則:
(1)優(yōu)先使用操作系統(tǒng)提供的安全接口,以系統(tǒng)熵池為基礎(chǔ)生成隨機(jī)數(shù)。
(2)在具備條件時(shí)使用安全硬件熵源,如 Intel SGX CPU 的硬件隨機(jī)數(shù)指令。
(3)在 MPC 場(chǎng)景下,可融合多方熵源以提升整體安全性,例如將 Linux 系統(tǒng)熵池 與 Intel SGX CPU 的硬件隨機(jī)數(shù) 結(jié)合使用,從而避免單一熵源失效或被預(yù)測(cè)的風(fēng)險(xiǎn)。
(4)采用經(jīng)過(guò)廣泛驗(yàn)證的密碼學(xué)庫(kù)中的安全隨機(jī)數(shù)生成接口,如 libsodium、BoringSSL、OpenSSL 等。
(5)保證種子熵不少于 128–256 bit,禁止使用時(shí)間戳、進(jìn)程號(hào)等低熵源作為種子。
(6)嚴(yán)禁使用非密碼學(xué)安全的偽隨機(jī)數(shù)生成器(非 CSPRNG),例如 Mersenne Twister (MT19937)、Math.random()、rand()。
與單方系統(tǒng)相比,MPC 具備天然的熵融合優(yōu)勢(shì):每一參與方都可獨(dú)立提供隨機(jī)熵源,最終的隨機(jī)結(jié)果由各方共同生成。只要其中任意一方保持誠(chéng)實(shí),整個(gè)系統(tǒng)的隨機(jī)性便無(wú)法被預(yù)測(cè)或操縱。這種多源隨機(jī)結(jié)構(gòu)顯著提升了系統(tǒng)的整體安全性與抗篡改性,是 MPC 協(xié)議在安全性上的核心優(yōu)勢(shì)之一。
Safeheron 基于 MPC 與 TEE 技術(shù)構(gòu)建了數(shù)字資產(chǎn)安全存管協(xié)議。在該方案中,MPC 協(xié)議的各參與方采用多種獨(dú)立的安全熵源,包括 Linux 系統(tǒng)熵池以及 TEE 硬件熵源(如 Intel SGX 硬件隨機(jī)數(shù)指令)等。這種多源熵融合機(jī)制不僅強(qiáng)化了系統(tǒng)的安全邊界,也為構(gòu)建可信執(zhí)行環(huán)境(TEE)與分布式簽名體系奠定了更高的安全基線。
這場(chǎng)看似神秘的「12 萬(wàn)枚比特幣失竊」事件,揭示的并非某種算法被攻破,而是早期開(kāi)發(fā)者在私鑰生成過(guò)程中誤用了非密碼學(xué)安全的隨機(jī)數(shù)算法,從根源上削弱了整個(gè)系統(tǒng)的安全性。
加密資產(chǎn)的安全最終取決于密碼學(xué)實(shí)現(xiàn)的嚴(yán)謹(jǐn)程度,任何細(xì)微的工程疏漏,都可能被黑客成功利用,并最終決定數(shù)字資產(chǎn)的歸屬。唯有從源頭確保隨機(jī)數(shù)安全,使用受信任的熵源與經(jīng)過(guò)驗(yàn)證的密碼學(xué)庫(kù),才能讓「隨機(jī)」回歸其本意——不可預(yù)測(cè),亦不可篡改。