Gate 廣場創作者新春激勵正式開啟,發帖解鎖 $60,000 豪華獎池
如何參與:
報名活動表單:https://www.gate.com/questionnaire/7315
使用廣場任意發帖小工具,搭配文字發布內容即可
豐厚獎勵一覽:
發帖即可可瓜分 $25,000 獎池
10 位幸運用戶:獲得 1 GT + Gate 鸭舌帽
Top 發帖獎勵:發帖與互動越多,排名越高,贏取 Gate 新年周邊、Gate 雙肩包等好禮
新手專屬福利:首帖即得 $50 獎勵,繼續發帖还能瓜分 $10,000 新手獎池
活動時間:2026 年 1 月 8 日 16:00 – 1 月 26 日 24:00(UTC+8)
詳情:https://www.gate.com/announcements/article/49112
了解比特幣交易可塑性:區塊鏈確認中的隱藏漏洞
想像你正向同事發送加密貨幣,卻遇到意想不到的確認延遲。交易似乎消失在區塊鏈的空洞中,讓你不確定資金是否真的已到帳。這個情境展現了一個微妙但具有重大影響的問題,稱為交易可塑性(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的實施,展現了加密貨幣自我修正與技術創新的能力,證明了在面對已知漏洞時,社群能夠快速反應並推動改進。