人們常說,比特幣抗拒變化。在某種程度上,說得沒錯—— 在協議變更的事項上,比特幣開發者保守得令人髮指—— 但這種看法未免有些偏狹:比特幣也擁抱變化,但是僅限於那些讓比特幣變得更好的變化。
比特幣要做到之前沒有任何技術能做到的事,成為一種貨幣,就必須是無懈可擊的。不能容許網絡停機、區塊出錯、溢出錯誤和舍入錯誤。比特幣必須保持穩定:任何對比特幣代碼的改進和修改都有可能造成災難性的經濟後果,故而給人以如臨深淵、如履薄冰之感。
我們不能僅僅因為一個升級提案可能對網絡中的部分參與者有利就認可它。除非為了全體利益,比特幣開發者絕不會拿網絡公正性冒險。這是為了讓比特幣對每個人都更有用、更易用,而不是追求只有一小部分人會用到的花哨特性。
為什麼隔離見證(SegWit)如此重要?
四年前的2017 年8 月24 日,在區塊高度 481824 處,SegWit 升級激活。根據比特幣升級提議(BIP)141 至144 的描述,SegWit 解決了不定形(malleability)問題,與此同時也解決了由區塊大小限製而引起的可擴展性挑戰。
那時,即使SegWit 已經被加到了Bitcoin Core 軟件的代碼庫中,比特幣應不應該接受它仍然引發了激烈的爭論,暴露出了節點運營者和礦工的權力拉鋸戰。
鏈接:比特幣挖礦行業的一次內部升級
出於許多理由,許多礦工並不支持SegWit,還試圖阻止這場升級。但可預見的好處最終還是讓用戶推動了一次用戶激活的軟分叉(UASF)。這是一種帶有強制力的網絡升級,因為激活UASF 的節點會拒絕來自不合作礦工的區塊。這是比特幣的一個歷史性時刻,證明了兩點:比特幣網絡是去中心化的;礦工是服務用戶的,不能顛倒過來。
SegWit 如何工作
SegWit 的首要目標不是節省區塊空間,而是修復交易的不定形漏洞。在SegWit 啟用之前,尚未上鍊確認的交易的ID (txid)可能會因為所納入的腳本或者簽名本身的變化而發生變化。 SegWit 將腳本簽名(ScriptSig)轉移到了交易的一個新部分“witness”(該部分不用來計算txid)中,交易的不定形漏洞得以修復,交易ID 也變成了未確認交易可以依賴的標識符。這對於閃電網絡來說極為關鍵。
鏈接:比特幣地址及使用方法
雖然這一關鍵升級讓交易的ID 變成可以依賴的數據,但將腳本和簽名數據移到Witness 字段中使得開發者必須提出一種新的交易費計量方法,即,根據“block weight” 而非“block size” 計算交易費(譯者註:後者是以數據量的大小來衡量,而前者為不同類型的數據設計了數據量的乘數)。在SegWit 啟用之前,區塊大小是100 萬字節(約1 MB)。而在SegWit 啟用之後,區塊大小上限變成了400 萬weight,換算過來就是平均每區塊1.5 ~ 2.0 MB 左右(具體視區塊中包含的交易量而定),但是最多可容納4 MB 的數據。這是因為witness 數據和交易中其它數據的weight 比是1:4,區塊中可以塞入更多交易,連帶會讓手續費水平降低。
從SegWit 中我們學到了什麼
作為一次學習的經歷,SegWit 告訴了我們很多關於比特幣的事情,不論是實踐意義上,還是哲學意義上。 SegWit 升級見證了廣泛的用戶群體站出來與貪婪的礦工對抗,通過拒絕非SegWit 的區塊來迫使礦工升級。它利用了比特幣的博弈經濟學來降低礦工的動力—— 如果他們的區塊會被拒絕,就不能從中收穫區塊獎勵和手續費了。
節點掌握權力
用戶激活的軟分叉,顧名思義,反應了節點在這個系統中的權力範圍。不是投入了大量資本買入ASIC 設備、控制著巨大算力的礦工有這個權力,反而是微不足道、保存著比特幣賬本的副本來驗證的用戶具有這個權力。這是一場由用戶主導的針對比特幣去中心化原則的最強壓力測試,而它最終產生了我們想要的效果,迫使礦工接受了分叉。
Segwit 升級也產生了一些副作用,比如,幫助反對SegWit 和支持區塊擴容的礦工發聲的《區塊大小之爭》。據推測,礦工們有此反應,是因為他們使用了一種叫做“AsicBoost” 的技術來提高挖礦效率,但是該技術與SegWit 並不相容。
這場衝突讓我們看清了誰才是真正的比特幣支持者,也淘汰了那些只想為一己私利而改變網絡的人。最終也產生了兩種後果:一些礦工投誠了分叉鏈;比特幣網絡也經歷了艱難而緩慢的SegWit 升級,花了超過一年的時間才獲得了50% 的支持。
分叉不是非得以爭議收場
很長一段時間,人們並不知道SegWit 的結局會如何。一些節點激活UASF 反對礦工,在社區中造成了意料之外的分裂;如果沒有來自用戶的壓力,升級的走向可能有所不同,甚至根本不會發生。此外,這些經驗也被帶到了比特幣的下一次升級,也就是今年的Taproort 軟分叉中,最近,這一計劃已經鎖定了。
鏈接:Taproot 會給硬件錢包帶來什麼好處?
Taproot 的投票過程比起SegWit 要正式很多,在預期激活時間之前的很長一段時間裡,礦工被鼓勵升級客戶端並在區塊中發出支持信號。每一個表示支持的礦池所挖出的區塊,都被當做一張支持激活的投票,如果在投票期內,支持的區塊超過90% ,則意味著投票通過。
這種方法將礦工的共識置於用戶之前,避免了普通節點和礦工之間因意見分歧而產生激烈衝突。如果礦工未能在投票期結束前就Taproot 升級達成一致意見,要求實行UASF 的呼聲無疑會再度響徹整個社區。
我們可以預見到,同樣的歷史還會在今後的網絡升級時重演,但是否會跟Taproot 採取相同的做法則不得而知。如果這個流程標準化,可能會被別有用心的人利用,在本應避免的情形中要求礦工投票並激起UASF。
閃電降臨
雖然隔離見證的緩慢採用令人失望,但它所帶來的好處正逐漸顯露出來。閃電網絡是一個建立在比特幣基礎之上的二層網絡,過去一年來常駐各大媒體的頭版頭條。閃電網絡可以提供即時、近乎免手續費的支付交易,並保證能在比特幣上結算;因此,它讓比特幣對普通人來說更容易獲得,也更容易使用。如果使用得當,它還能提供更好的隱私性。
鏈接:你的金融數據沒有隱私,看比特幣如何解決這問題
沒有隔離見證,可靠的即時支付是不可能實現的;但是,由於上文提到的交易不定形問題得到解決,這類新場景的大門已然打開。比特幣上已經有了一個即時支付層和數據路由層,還可以進一步構建計算處理層,例如,智能合約、去中心化應用和專用網絡。
SegWit 解鎖了比特幣的新技能。隨著閃電網絡發展壯大,它所能提供的新功能也會隨之增加。過去幾年中,另類幣嘗試構建了許多新奇的應用。其中一些較為實用的應用可能會整合到基於閃電網絡的計算層中,並享受比特幣的安全性。 Taproot 激活已成定局,今年11 月就將激活,比特幣未來必將變得更有效率、帶來更多創新。敬請期待!
原文鏈接:
https://blog.trezor.io/segwit-and-its-legacy-taproot-uasfs-and-lightning-82ce40e94fe2
作者: SatoshiLabs
翻譯&校對: 阿劍 & 閔敏