了解比特幣交易可塑性:區塊鏈確認中的隱藏漏洞

想像你正向同事發送加密貨幣,卻遇到意想不到的確認延遲。交易似乎消失在區塊鏈的空洞中,讓你不確定資金是否真的已到帳。這個情境展現了一個微妙但具有重大影響的問題,稱為交易可塑性(transaction malleability)——一個技術缺陷,曾經干擾網路運作並讓交易所損失數百萬資產。

比特幣中的交易可塑性機制

本質上,交易可塑性是一個漏洞,允許比特幣交易在不影響實際轉帳的情況下被修改,從而改變其交易ID(TXID)。當你發起一筆BTC交易時,網路會產生一個獨特的識別碼——基本上是一個數位指紋,用來區分這筆交易與區塊鏈上的所有其他交易。

這個漏洞源自比特幣構建與驗證交易的方式。在簽名過程中,數位簽名並未全面涵蓋所有交易資料的每個部分。特別是,某些可塑性元素如scriptSig欄位,未在簽名範圍內。這個架構上的缺口使得外部第三方可以微調交易資料,而不會破壞其有效性或使加密驗證失效。

可以用這個比喻來理解:想像一份經公證人蓋章的文件,公證章驗證大部分內容,但文件的標頭未受到保護。有人可以在不破壞公證章的情況下,重新措辭標頭內容。類似地,修改交易的元資料(metadata)不會阻止比特幣網路處理或確認該交易——只是改變了它的識別哈希。

為何會發生交易可塑性

這個現象源自比特幣交易框架中的基本設計特性:

簽名協議限制:比特幣使用的橢圓曲線數位簽名算法(ECDSA)並未簽署整個交易結構。特別是,scriptSig部分——包含所有權的加密證明——未在簽名範圍內,這就提供了修改的空間。

編碼彈性:交易欄位允許多種有效的二進位表示。一個script、簽名或其他資料元素可以用不同方式合法編碼,而不改變其語義或功能。利用這個彈性,第三方可以重新配置交易的編碼,重新計算交易哈希,產生新的TXID。

第三方存取:在交易被區塊鏈確認之前,它會經過多個節點轉發與傳播。這些中繼節點理論上有能力修改可塑性交易的部分內容。由於這些修改仍然保持交易的有效性,網路會繼續處理經過修改的版本。

利用交易可塑性進行的攻擊手法

這個漏洞可以被用來實施多種攻擊:

交易ID偽造(Spoofing):攻擊者修改交易的可塑性欄位,產生一個不同的TXID,但底層轉帳內容相同。依賴TXID確認付款完成的服務,可能會誤判交易失敗,導致重複付款。

發票操控:詐騙者複製合法的付款發票,金額與收款地址相同,但修改交易編碼以產生不同的TXID。這樣平台會誤以為是不同的交易,實則是相同的轉帳,只是ID不同。

連鎖提款攻擊:較為高階的攻擊手法,利用交易可塑性觸發多次提款請求。攻擊者監控交易所內部帳務系統,攔截交易並修改ID,阻止正確的提款追蹤。交易所未察覺原始提款已成功,反覆處理請求,逐步耗盡資金。

手續費操控:較少見,但攻擊者可以重構交易結構,改變手續費分配或將礦工獎勵重定向到自己控制的地址,從交易手續費中牟利。

Mt. Gox事件:交易可塑性的悲劇示範

最著名的交易可塑性破壞案例是2014年的Mt. Gox事件。這家曾經處理全球約70%比特幣交易量的交易所,因失竊約85萬BTC(當時價值約4.5億美元)而崩潰。

攻擊手法相當巧妙:黑客在比特幣提款前攔截交易,微調可塑性交易元件,然後重新提交修改後的交易到網路。由於修改後的交易ID與原始不同,Mt. Gox的提款追蹤系統未能識別該交易已經處理與確認。

系統誤以為交易失敗,重複發出相同的提款請求。結果,交易成功且被再次處理,導致資金被重複轉出。這種嚴重的帳務崩潰,持續發生在多次提款中,交易所未能正確追蹤區塊鏈確認狀況,最終導致資金枯竭與破產。

連鎖反應:交易可塑性如何破壞網路完整性

確認驗證失效:依賴TXID匹配的確認系統會出現嚴重問題。當交易ID被篡改,系統無法將區塊鏈上的交易與內部記錄對應,導致孤兒交易與延遲確認。

擴展性下降:交易可塑性的利用需要額外的驗證層與重複追蹤機制,消耗網路資源與計算能力。這增加了比特幣的擴展難度,並延長確認時間。

雙重支付困難:雖然比特幣的共識機制能防止傳統意義上的雙重支付,但交易可塑性造成的臨時不確定性,可能讓平台接受並處理重複付款,產生雙重支付的心理與操作風險。

交易所脆弱性:任何依賴TXID追蹤的加密貨幣交易所或支付平台,都可能受到系統性攻擊。這個漏洞不需要私鑰被盜或資金被直接竊取,只要操控交易ID,就能引發錯誤的帳務與重複放款。

解決方案:SegWit及其他技術進展

比特幣社群針對此漏洞推出了多項技術改進:

隔離見證(SegWit):最重要的修正措施,將簽名資料(數位簽名與scriptSig)與交易資料分離。在計算TXID時,不包含簽名資訊。這樣,即使第三方修改簽名編碼,也不會影響交易ID,確保交易與識別碼一對一。

先進的密碼學方案:如Schnorr簽名,提供更佳的安全性與簽名標準,消除多重簽名的編碼彈性,進一步防止交易可塑性。

Merkleized Abstract Syntax Trees(MAST):這種複雜的腳本結構,提升交易驗證效率,並增強比特幣的腳本能力,降低交易大小,提升安全性與擴展性。

改進軟體架構:現代比特幣錢包與節點軟體加入了不僅依賴TXID的確認邏輯,還會交叉比對交易輸入輸出與區塊鏈狀態,提升抗篡改能力。

區塊鏈安全的未來啟示

交易可塑性揭示了一個關鍵原則:微妙的協議設計選擇可能產生過度嚴重的漏洞。這個缺陷並不需要高階駭客技術,只要利用協議內在的彈性。

對用戶與開發者來說,這段歷史提醒我們,建立多元驗證機制的交易監控系統至關重要。交易所與支付平台應該採用多層次的確認邏輯,不僅依賴TXID匹配,還要檢查交易輸入、輸出與區塊鏈位置。

從交易可塑性被利用到SegWit的實施,展現了加密貨幣自我修正與技術創新的能力,證明了在面對已知漏洞時,社群能夠快速反應並推動改進。

BTC-0.4%
IN-0.19%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)