區塊鏈系列入門 | 比特幣的交易延展性
隔離見證的主要好處之一就是修復了交易延展性,下面咱們來看看,什麼是交易延展性?以及為何修復它很重要。
什麼是交易延展性
我們先來聊聊什麼是交易延展性?
比特幣網路會把交易的雜湊作為這個交易的 ID,雜湊是根據交易的內容運算出來的,如果交易本身哪怕只變一點點,交易雜湊或者說交易 ID 就會變。我們都知道,比特幣的每一個交易都帶有數字簽名,比特幣的交易簽名演算法決定了,如果去修改簽名的特定幾位的資料,那麼這個簽名依舊有效。
但是生成交易 ID 的時候,會涉及到這個交易的所有資料,其中包含交易簽名。所以如果有人修改了簽名,那麼交易 ID 就會改變,當然修改必須在交易打包到區塊之前,因為一旦交易進入區塊,那麼交易,也包括其中包含的簽名,就不可篡改了。
攻擊者把簽名改一下,讓交易 ID也發生變化,而這種修改沒有修改交易的主體資料。如果把交易比作一塊金屬,那麼這個過程只是在上面敲了一下,讓它發生了輕微的延展,這就是交易延展性這個名字的由來。
交易延展性如何影響閃電網路
閃電網路是一個鏈下微支付網路,閃電網路通常被叫做 Layer 2 解決方案,因為它是執行在比特幣之上的一層網路。交易延展性可以造成閃電網路工作異常。
閃電網路是基於雙重簽名的交易來工作的,也就是說交易需要有雙方同時簽名才能生效,每次進行一個新的微支付就會建立對應的交易並由雙方共同簽署這個交易。
建立一個閃電網路的通道就需要發起充值交易把一筆錢轉入一個雙重簽名地址。閃電網路的工作原理決定了充值交易是不會被直接廣播到網路並打包到區塊中。後續發起的微支付交易會通過交易 ID 關聯充值交易。當雙方需要關閉交易通道的時候才需要廣播交易。這樣,如果在廣播之前有人利用交易延展性修改了充值交易的 ID,那麼後續的微支付交易也就失效了。也就是說,交易延展性會給建立交易通道帶來風險。
雖然閃電網路也可以想辦法避免交易延展性的影響,但是如果交易延展性被修復了,實現閃電網路就變得非常容易。
隔離見證是如何修復交易延展性的
隔離見證通過把簽名從交易中取出的方式解決了交易延展性問題
攻擊者只有通過修改簽名才能夠修改交易 ID,也就是說,才能夠利用交易延展性。實施了隔離見證之後,比特幣的每個交易之中不再包含簽名,這就意味著即使攻擊者修改了簽名,交易ID也會保持不變。交易的簽名依然可以用來檢查交易的有效性,只是在計算交易 ID 的時候不會涉及簽名了。
所以,隔離見證解決了交易延展性。
總結
通過在計算交易雜湊的時候把簽名排除在外,隔離見證解決了交易延展性問題。而解決了交易延展性,閃電網路的運轉就會更順暢。
參考:
https://bitcointechtalk.com/transaction-malleability-explained-b7e240236fc7