Bitcoin Core 修補 PSBT 簽署漏洞:無需盜取私鑰亦可在特定情況下改收款方

AI 市場總結
Bitcoin Core 合併了一項防護措施,以防止在使用 SIGHASH_SINGLE 的情況下簽署某些 PSBT,因為在該情況下輸出可在不令簽名失效的情況下被修改,並在邊緣條件下令收款方被重定向(並非金鑰被竊)。此變更降低了錢包及硬件簽署器的授權風險,但目前只在開發分支中,尚未有已確認釋出/回移植的版本,因此短期重點仍放在錢包端驗證及簽署器政策。
影響等級
● 中
主要受影響標的
BTC/USDT+2.13%
AI 觀點 · BTC/USDTAI 觀點
● 中性
立即交易
⚠️ AI觀點僅為演算法基於新聞內容的自動生成分析,不構成投資建議,不代表BingX立場。市場有風險,投資需謹慎。
Bitcoin Core 已加入新防護機制,避免軟件為一類可能未有把資金「綁定」至用戶已核准收款地址的交易作簽署。相關改動於 9 月 25 日合併至 Bitcoin Core 主開發分支(master),針對部分簽署比特幣交易(PSBT)中的一個狹窄邊緣漏洞;Bitcoin Optech 於 10 月 2 日披露並重點提及是次更新。 該問題不會洩露用戶私鑰,但會引入另一種風險:在特定條件下,即使交易的收款人被改動,原先產生的簽名仍可能保持有效,令簽署行為未必能加密保證最終輸出(output)與用戶所批准的一致。 漏洞與 SIGHASH_SINGLE 相關。SIGHASH_SINGLE 原本設計用於把某個輸入(input)提交(commit)到同序號位置的輸出。若交易在對應位置根本不存在輸出,保護機制會失效,而失效表現會因被花費的比特幣輸入類型而異: - 對於傳統(legacy)輸入,「缺少輸出」情況可能令簽名落在一個固定雜湊值上。Bitcoin Core 開發者指出,在同樣的結構條件下,該簽名其後可能被重用,用於花費同一私鑰控制的其他未花費輸出(UTXO)。 - 對於 SegWit v0 交易,保護較強,因簽名仍會提交到特定被花費的幣以及其金額;但收款輸出仍可能未被綁定,收款地址仍有機會在某些情況下被更改。 這會形成錢包與簽署裝置的「授權」問題:軟件可向用戶展示一筆付款,但實際產生的簽名未必能在密碼學層面保證收款人不會被替換。 Bitcoin Core 新改動把風險擋在簽署前。過往 Bitcoin Core 已在 rawtransaction 的簽署介面拒絕該邊緣情況,但在 PSBT 流程(包括 walletprocesspsbt)仍可能簽署。最新程式碼把檢查移到共享的簽名建立邏輯中,令受影響的 legacy 與 SegWit v0 輸入不再可被簽署,同時容許同一份 PSBT 內其他有效輸入繼續完成簽署。 PSBT 常用於協調軟件錢包、硬件裝置與離線簽署器之間的交易流程,容許建構交易的一方把所需資訊交給獨立簽署方,而不把私鑰控制權交出。是次修補強化了一條與私鑰安全不同、但錢包開發者同樣需要自行維護的界線:有效簽名必須提交到用戶實際授權的交易細節。 規範 PSBT 的 Bitcoin Improvement Proposal 174(BIP-174)本已要求簽署器拒絕不可接受的簽署模式,並建議在未指定替代方案時使用 SIGHASH_ALL。Bitcoin Core 的改動則明確阻止「缺少輸出」的配置進入簽署階段。 目前仍未有已確認包含該防護的正式發佈版本。該改動於 9 月 25 日合併至開發分支,而截至 10 月 4 日,官方已公佈的發佈列表未指出已修正的版本,也未確認是否會回移(backport)至較舊分支。 在 Bitcoin Core 正式版本落地前,錢包供應商及硬件簽署整合方需要作出更即時的判斷:應主動檢視自家對 SIGHASH_SINGLE 簽署請求的處理與限制,而非等待下游由 Bitcoin Core 發佈版統一執行同類防護。 原文最先刊載於 CryptoSlate。