人們常說,比特幣抗拒變化,在某種程度上,說得沒錯 —— 在協議變更的事項上,比特幣開發者保守得令人發指 —— 但這種看法未免有些偏狹:比特幣也擁抱變化,但是僅限于那些讓比特幣變得更好的變化。
比特幣要做到之前沒有任何技術能做到的事,成為一種貨幣,就必須是無懈可擊的。不能容許網路停機、區塊出錯、溢出錯誤和舍入錯誤。比特幣必須保持穩定:任何對比特幣代碼的改進和修改都有可能造成災難性的經濟后果,故而給人以如臨深淵、如履薄冰之感。
我們不能僅僅因為一個升級提案可能對網路中的部分參與者有利就認可它。除非為了全體利益,比特幣開發者絕不會拿網路公正性冒險。這是為了讓比特幣對每個人都更有用、更易用,而不是追求只有一小部分人會用到的花哨特性,
為什么隔離見證(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 的投票過程比起 SegWit 要正式很多,在預期激活時間之前的很長一段時間里,礦工被鼓勵升級客戶端并在區塊中發出支持信號。每一個表示支持的礦池所挖出的區塊,都被當做一張支持激活的投票,如果在投票期內,支持的區塊超過 90% ,則意味著投票通過,
這種方法將礦工的共識置于用戶之前,避免了普通節點和礦工之間因意見分歧而產生激烈沖突。如果礦工未能在投票期結束前就 Taproot 升級達成一致意見,要求實行 UASF 的呼聲無疑會再度響徹整個社區。
我們可以預見到,同樣的歷史還會在今后的網路升級時重演,但是否會跟 Taproot 采取相同的做法則不得而知,如果這個流程標準化,可能會被別有用心的人利用,在本應避免的情形中要求礦工投票并激起 UASF。
閃電降臨
雖然隔離見證的緩慢采用令人失望,但它所帶來的好處正逐漸顯露出來,閃電網路是一個建立在比特幣基礎之上的二層網路,過去一年來常駐各大媒體的頭版頭條。閃電網路可以提供即時、近乎免手續費的支付交易,并保證能在比特幣上結算;因此,它讓比特幣對普通人來說更容易獲得,也更容易使用。如果使用得當,它還能提供更好的隱私性。
沒有隔離見證,可靠的即時支付是不可能實現的;但是,由于上文提到的交易不定形問題得到解決,這類新場景的大門已然打開,比特幣上已經有了一個即時支付層和數據路由層,還可以進一步構建計算處理層,例如,智能合約、去中心化應用和專用網路。
SegWit 解鎖了比特幣的新技能。隨著閃電網路發展壯大,它所能提供的新功能也會隨之增加,過去幾年中,另類幣嘗試構建了許多新奇的應用,其中一些較為實用的應用可能會整合到基于閃電網路的計算層中,并享受比特幣的安全性,Taproot 激活已成定局,今年 11 月就將激活,比特幣未來必將變得更有效率、帶來更多創新。敬請期待!