在過去幾天裡,那些試圖做好一切的人失去了他們的比特幣。他們購買了一個受人尊敬的硬體簽名器,使用該設備離線生成了一個種子,並信任該設備執行簽名器存在的唯一目的:產生一個沒有人能猜到的數字。然而,Coldcard卻沒有做到。一個檢查錯誤的預處理器保護器悄悄地將種子生成路由到一個弱的軟體PRNG(偽隨機數生成器),MicroPython的Yasmarang,而不是硬體熵源。在某些型號上,有效熵降至約40位元。這個缺陷於2021年3月發佈,並在公開可讀的韌體中存在了超過五年。在任何人理解原因之前,攻擊者掃描了500個地址;幾天內,Galaxy Research的統計達到了4,585個地址和近9000萬美元;截至本文發表之日,攻擊仍在進行中。
Coinkite的工作假設,在X上有廣泛的共識,是有人使用AI來搜尋公開可用的韌體以找到這個漏洞。無論這位攻擊者是否是這樣找到的,下一位攻擊者肯定會。雖然在盜竊發生前幾週進行了一次AI輔助的審計,但並未發現任何問題(可能是由於模型的能力,也可能是由於搜索的具體構造)。自攻擊開始以來,研究人員已經展示了幾個前沿模型在幾分鐘內從單一提示中定位到相同的缺陷。這段代碼在五年內對人類開放審查,但沒有任何人發現。
在Foundation Devices將該代碼用於競爭產品後,Coinkite將其韌體的許可從自由軟體許可轉為源可用條款,MIT加上Commons Clause。你可以閱讀源代碼,但無法基於此建立業務。這並沒有改變任何事情。這個漏洞存在於機器可以讀取的代碼中,無論許可證允許什麼;事實上,它是在剝除最後的GPL代碼的重寫中進入樹中的。許可證的變更並未增加保護;它只是改變了尋找漏洞的經濟學。
在高技能AI的時代,所有分發的東西都是可讀的,或很快將會是。剝離二進位檔的符號,通過反編譯器運行,出來的就是任何打開Ghidra的人所見的偽C:無名變數、扁平化控制流、標記為FUN_00401a20的函數。對大多數人來說是不可讀的。這種對人類理解的高門檻是“封閉源代碼”的整個安全溢價。
編譯的程序別無選擇,只能說出真相。保持加密的代碼無法運行。在執行的那一刻,處理器必須接收實際的指令,因此無論程序做什麼,它都會向機器提供一個完整且精確的執行方式。所有信息都在機器碼中。模糊化並不會,也無法,去除它。
如果閱讀二進位檔聽起來對機器來說太難,那麼與機器已經在處理的更困難的問題相比,這又算什麼呢?閱讀二進位檔是分析:你需要的每一個事實都在你面前,工作是提取。數學發明是另一種難度,因為它要求一個從未見過的對象。在7月20日UTC 02:19,與Anthropic的Claude Fable 5合作的數學家Levent Alpöge發佈了一個反例來反駁Keller的Jacobian猜想,這是一個自1939年以來一直懸而未決的問題,難度足以列在Stephen Smale的21世紀挑戰清單上。幾代人都試過。這個反證是三個變數的三個多項式。Lean在幾小時內驗證了它,並且它足夠短,任何人都可以在計算機代數系統中在約一分鐘內確認。
Jacobian在一個下午就被推翻,而提問者顯然在觀看FIFA世界杯的最後一場比賽。5月時,一個OpenAI模型推翻了Erdős單位距離猜想,這是一個自1946年以來懸而未決的問題;在7月底,一個30年的圖論猜想在四個提示下被推翻;在它們之間是Jacobian的反證和一系列其他結果,這些結果已經存在了幾十年。
設置這種步伐,與在互聯網上已經存在的機器代碼閱讀這一簡單任務並行。當今的模型比起原始字節,更能有效處理源代碼和反編譯器輸出,因此完全封閉的二進制文件保持著微薄的邊際。這個邊際是一個成本的速度障礙,並且正在以你在其他地方所見的速度侵蝕。將安全性寄託於它能持續多久,意味著在與一個只會加速的時鐘賭博。
找到你的熵漏洞的同樣能力也能讀取你的專有方法。這是更安靜的犧牲,影響著那些從未認為自己會暴露於任何開源的公司。已發送軟件中的商業秘密一直只是穿著西裝的模糊性。法律自商業秘密法存在以來就這麼說:逆向工程你合法擁有的產品是公平的,因此秘密只在逆向工程保持昂貴的情況下才能存活。當提取成本降至訂閱和提示時,你交給客戶的代碼中所體現的秘密便不再是秘密。你的巧妙算法、你的未記錄格式、你在二進制中的優勢:對任何願意查看的人來說都是可讀的,時間線上越來越以分鐘為單位。
這一切並不一定使開源變得安全。Heartbleed在地球上最廣泛部署的TLS庫中隱藏了兩年,因為沒有資金支持的關注下,能見度無法發現任何東西。xz後門顯示開放貢獻模型本身就是一個攻擊面,一個耐心的對手可以以友好的面孔和兩年的良好提交來穿越。雖然開放曾經是一種保護,但現在不再如此。它所帶來的是被允許查看的審查者、可以獨立重現和驗證的構建、當供應商死亡或轉變時的退出,以及承認這一切將發生,無論你喜不喜歡。
現在我們必須假設每一行發送的代碼都會被希望造成傷害的人閱讀,因為這將會發生。防禦者擁有攻擊者永遠不會擁有的一個結構性優勢:時間。你可以在發布之前,利用同樣的前沿模型檢查自己的代碼,在提交和發送之間的空間中,而攻擊者則在等待一個尚不存在的二進制文件。使你的構建可重現,這樣它就能與源代碼相連,並且源代碼可以被檢查。設計為封閉失敗,並保持可信的核心足夠小,以至於一個漏洞不會摧毀一切。對於持有比特幣的特定業務,學習Coldcard在實時中教給的教訓:擁有你無法承受被猜測的熵,保持安全元件最小並位於已發布的接口後面,並將你的密鑰分散到獨立的實現中,以便沒有單一設備,沒有單一供應商的錯誤,會成為你所有風險的根源。
對於比特幣而言,風險是無情的,這在其他地方並不相同,因為僅僅知道私鑰就能獲得所有權。熵漏洞留下了永久的傷痕。修補生成器對它已經產生的種子毫無幫助;一個弱的密鑰空間將永遠可以被掃描,而披露則將把配方交給攻擊者。我們之前看過這一切。libbitcoin探索工具bx中的Milk Sad漏洞,從一個32位值生成私鑰,攻擊者在這一缺陷公開之前就已經在抽取它所產生的錢包。攻擊者保持自己的時間表,無論是否被邀請。對於無法追回的資金來說,“最終可找到”就是“最終消失”的同義詞。
比特幣從未信任模糊性。協議是開放的,其規則可由任何人檢查,其安全性不依賴於秘密,而是依賴於數學和在全視野下保持的激勵。我們圍繞它構建的硬件和軟件應該遵循同樣的標準,因為替代方案不再存在。選擇從來不是開放或封閉,而是紀律或暴露。
這個冷卡片情況的更廣泛教訓是,擁有封閉源代碼的軟體就像擁有一個由壞掉的冷卡片生成的種子;它看起來不錯,但基本上是建立在沙子上的。每個人都可以閱讀代碼——唯一剩下的問題是你是否承認這一事實,或者你和你的用戶像冷卡片的用戶一樣,通過一個個被耗盡的地址來學習這一點。
這是一篇由Colin Crossman撰寫的客座文章,他是Fedi的內容製作人。所表達的意見完全是他們自己的,並不一定反映BTC Inc或Bitcoin Magazine的觀點。
本內容僅供參考,不構成任何金融、投資、法律或稅務建議。文中提及的任何活動、獎勵、線上活動或相關資訊,不應被視為對購買、出售或交易任何加密資產的推薦、招攬或邀請。加密資產具有高波動性,存在價值損失風險。WEEX服務、產品及相關活動的可用性可能因地區而異。用戶在參與前有責任確保符合當地適用法律法規。























