越來越扁的比特幣 ( Bitcoin):何謂交易延展性?

比特幣( Bitcoin)最近幾個星期的狀況相當不妙。Mt. Gox 因為交易延展性的問題而停止提現作業。據稱,過去也曾有人利用同樣的漏洞從 Silk Road 2.0 深層全球網路 (Deep Web) 市集洗劫了 4,000 多個比特幣 (市值約 270 萬美元)。這次的事件,再加上其他一些原本就已動搖比特幣社群信心的事件,讓比特幣的價格狂跌到將近 600 美元,比高峰時期的 1,200 多美元大幅暴跌。

地下經濟/美金/錢

所以,何謂交易延展性?為何它會對比特幣造成這麼大的影響?

假設,我要付你一張面額 25 美元支票,支票號碼為:700。若你知道我都是用支票號碼來記帳,你也能對我發動所謂的交易延展性攻擊。

當你收到我的支票時,您可以修改支票號碼,例如在末尾加一個「1」,此時號碼就變成了「7001」(為了舉例說明,我們假設銀行不會發現)。更改支票號碼本身並不會影響交易的金額。接下來你就等著兌現,然後跟我說你沒收到支票。

如果我現在去查看銀行帳戶,我會看到一張號碼為 7001 (而非 700) 的支票。若我又寄一張新的支票給你,那你就多賺到一張支票,等於可以兌現兩次。就算我不寄新的支票給你,你還是握有舊的支票,照樣可以兌現。

這就是比特幣交易延展性漏洞的基本概念。

現在假設有兩個人:Alice 和 Evan。Alice 打算支付 Evan 一些比特幣。但 Evan 想利用比特幣來詐騙 Alice。當 Alice 將交易送到比特幣網路時,這筆交易會使用一個雜湊碼來作為識別。雜湊碼當中有個欄位叫作 ScriptSig繼續閱讀