一分鐘明白“交易延展性”!

買賣虛擬貨幣
隔離見證起初的目標,是為了解決比特幣的交易延展性(transaction malleability)攻擊問題。什麼是交易延展性?交易延展性(transaction malleability)源於比特幣原始碼中的一個錯誤。這個錯誤,可以在不改變交易輸出或交易內容的情況下,更改交易ID。這個錯誤意味著,在交易被礦工寫入區塊之前,交易簽名可以被更改。換句話說,也就是一筆未被確認的比特幣交易,有可能被駭客造出兩筆合法的交易。誰會受影響?
雖然,礦機最終只會確認一筆交易,而且交易的輸出保持不變,你的比特幣,還是會轉入給預期的收款人。但是,確認了假的交易ID,會改變雜湊值,由於雜湊函式的特性,後面的交易,取決於前面交易ID中包含的雜湊值。交易ID變動,後續的雜湊值都會完全改變。在這種情況下,任何未確認的交易,都是不安全的。交易延展性(transaction malleability)攻擊,會給那些追求確認快速到賬的交易所,造成巨大損失。2014年,有人利用這個漏洞,大規模攻擊比特幣網路,記憶體池(MemPool)中充滿了假交易,造成比特幣網路堵塞,導致部分全節點宕機,導致比特幣網路極其不穩定。曾經最大的比特幣交易所——Mt.Gox宣佈倒閉的部分原因,就是延展性攻擊(transaction malleability)。
而要使用閃電網路,必須修復交易延展性。隔離見證(SegWit)解決了這個問題。Segwit(隔離見證)如何解決?Core開發員Pieter Wuille 於2015年12月,在香港提出了隔離見證 (Segregated Witness) 。Segwit將簽名從交易中移除,生成區塊頭的交易雜湊值,完全由交易資訊決定。即使簽名被改變,而交易的內容沒有改變,交易的雜湊仍然是相同噠。

換句話說,駭客沒有私鑰,就改不了交易hash。非常完美的解決了交易延展性攻擊。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;