隔離見證(SegWit)

隔離見證(Segregated Witness,簡稱 SegWit)是比特幣交易格式中一次軟分叉更改的名稱。

正式名稱為「隔離見證(共識層)」,對應的比特幣改進提案編號為 BIP141[1]。其聲明的目的是防止非故意的比特幣交易延展性問題,允許可選的數據傳輸,並通過軟分叉繞過某些協議限制(如區塊大小限制)[2]。隔離見證於2017年8月24日正式激活。

此外,隔離見證還旨在緩解區塊鏈大小限制問題,該問題會降低比特幣的交易速度。它通過將交易拆分為兩個部分來實現這一目標:從原始部分中移除解鎖簽名(「見證」數據),並將其作為一個單獨的結構附加在末尾。原始部分仍然包含發送者和接收者的數據,而新的「見證」結構則包含腳本和簽名。原始數據部分會按照正常大小計算,而「見證」部分實際上將按其實際大小的四分之一來計算。

發展歷程 編輯

區塊大小限制 編輯

比特幣是一種加密貨幣,通過密碼學技術來確保交易安全。由區塊頭加上一系列比特幣交易組成的集合,經過工作量證明保護並記錄在一組計算機網絡上,這被稱為「區塊」。所有區塊通過對前一個區塊進行加密哈希並將其輸出存儲在下一個區塊中按順序連接在一起,從而形成區塊鏈[3]

每個區塊包含有關比特幣發送方和接收方(即交易)的信息,以及批准每筆交易的簽名。最初,區塊的大小沒有限制。然而,這使得惡意行為者可以偽造非常大的「區塊」數據作為一種拒絕服務攻擊(DoS 攻擊)。這些偽造區塊會被檢測到,但檢測過程需要很長時間,從而減緩整個系統的運行速度。因此,引入了 1 MB 的區塊大小限制。

擴展性和延展性 編輯

當前的比特幣區塊鏈設計被認為存在兩個缺點。

擴展性 編輯

主條目:比特幣可擴展性問題

新的區塊以平均十分鐘的隨機間隔添加到區塊鏈中(這是由工作量證明機制設計所導致的延遲)。再加上區塊大小的限制,這限制了在特定時間內可以處理的交易數量。一些網站通過使用「鏈下支付」來繞過這個問題,這種方式進行交易而不將其記錄到區塊鏈中,但這涉及關於信任和交易最終性的各種權衡[4]

另一些人則提出了對比特幣的更改建議,這些更改將以向後不兼容的方式改革區塊格式。例如,FlexTrans(靈活交易)通過改變交易描述的方式為「標籤」系統,從而使交易變得更小,允許每個區塊容納更多的交易。然而,這種方式與未升級的系統不兼容。

延展性 編輯

主條目:比特幣交易延展性問題

一筆交易使用來自之前交易的未使用輸出(即未花費交易輸出,UTXO)。這形成了一條由交易標識符連結的相關交易鏈。然而,有人可以在不使比特幣交易無效的情況下更改(變異)未確認的交易,從而改變交易的標識符。這會導致子交易失效(即交易之間的連結被破壞)[5]

隔離見證作為解決方案 編輯

被稱為「見證」的簽名數據將從 Merkle 樹中記錄比特幣發送方和接收方的數據中分離出來。見證數據被移到交易的末尾,每個字節僅計為「一個單位」的四分之一。

此外,通過將簽名與交易數據的其他部分分開序列化,隔離見證還解決了簽名延展性問題,從而使交易 ID 不再具有延展性。

激活 編輯

SegWit 升級的激活窗口從2016年11月15日 UTC 午夜開始,一直到2017年11月15日 UTC 午夜結束。

只有在至少 95% 的礦工在2016 個區塊的目標調整周期內表示準備好接受升級時,SegWit 才會被激活。

2017年8月9日,達成了一個里程碑,當時區塊 477,792 到 479,807 之間的 100% 礦工表示支持 SegWit,這意味着 SegWit 升級已經「鎖定」,並將在大約兩周後,目標調整周期開始時完全激活。

隔離見證(SegWit)隨後於2017年8月24日在區塊高度 481,824 激活。SegWit 激活後的下一周,比特幣價格上漲了近 50%。2017年7月21日,比特幣交易價格為 2,748 美元,比 7月14日的 1,835 美元上漲了 52%。

SegWit 通過兩種方式緩解了擴展性問題:

  1. SegWit 解決了交易延展性問題,從而使得閃電網絡得以實現。閃電網絡是一個由微支付通道組成的覆蓋網絡,假設通過支持幾乎無限數量的即時、低費用的「鏈下」交易來解決擴展性問題。
  2. 最初,大多數比特幣交易並未能使用此升級。

在 10月的第一周,使用 SegWit 的網絡交易比例從 7% 上升到 10%,顯示出使用率的增長。

一個主要由中國礦工組成的小團體,對比特幣提出的 SegWit 改進計劃不滿,推動了一個分裂的替代計劃,最終創造了比特幣現金(Bitcoin Cash)[6]

截至2018年2月,使用 SegWit 的交易已超過 30%。

SegWit2x 編輯

隔離見證(SegWit,BIP141)不應與 SegWit2x(SegWit2Mb)混淆。2017年5月,數字貨幣集團(Digital Currency Group,注意與麻省理工學院媒體實驗室的數字貨幣計劃(Digital Currency Initiative)不同)宣佈提出了一個提案,稱為 SegWit2x(「紐約協議」)。該提案提出在比特幣總哈希率達到 80% 的閾值時激活隔離見證,並通過比特位 4 信號;並在六個月內激活 2 MB 的區塊大小限制,前提是比特幣總哈希率支持超過 80%。

截至2017年中,儘管 SegWit2x 提案獲得了超過 90% 哈希率的支持,但該提案具有爭議,因為該項目的工作僅限於一個僅限邀請的開發者小組。2017年7月中旬,礦工支持在2017年8月1日的用戶激活軟分叉(UASF)之前實現協議中的 SegWit 部分,從而試圖避免比特幣網絡發生硬分叉的風險。

2017年11月8日,SegWit2x 的開發者宣佈,由於缺乏共識,原定於2017年11月16日左右進行的硬分叉計劃已被取消[7]

參考連結 編輯