
比特幣最重要的特性是哪些?
TechFlow Selected深潮精選

比特幣最重要的特性是哪些?
比特幣是什麼?它應該努力成為什麼樣子?
撰文:Jameson Lopp
編譯:BTC Study
比特幣是什麼?已經有很多人給出瞭解答,但是我相信我們對這個問題的求索註定是永無止境的。比特幣是什麼?它應該努力成為什麼樣子?最前沿的研究和討論成果將決定比特幣協議的發展方向。
新手或許很難分辨哪類比特幣提案最有可能得到採用,因為比特幣協議變更有很多不成文的規則。有的規則更偏重哲學,有的更偏重工程和安全,還有的二者兼顧。
共識不是命令和控制
比特幣系統中沒有所謂的權力機關,即使是本文所述的原則也不具有任何權威性,僅僅源於我個人和生態系統中其他參與者的觀察。
-
比特幣是一個會自動持續發現參與者之間的共識的系統。它通過機器共識來執行人類共識。
-
共識失敗會導致參與者不再信任比特幣系統,從而摧毀整個系統。
-
應儘可能避免更改共識代碼。
-
未經用戶同意,不應強制用戶接受協議更變。換言之,應該讓那些願意接受的用戶自由加入,而不是強迫那些不願意接受的用戶退出。
-
因此,軟件客戶端不應該自動更新,因為這無異於將原本屬於用戶的權利變成了開發者手中的權力。
-
由於比特幣本質上是分佈式網絡,我們不能預設每位用戶都在時刻關注協議變更。
我們該如何改變比特幣系統?在更改共識代碼之前,我們必須先就變更的內容達成人類共識。這裡有篇文章介紹了比特幣改進提案(BIP)的具體流程。這一流程並非完美無缺,然而共識的形成過程非常複雜。
Johnson Lau 曾在一篇文章中詳細介紹了分叉(更改機器共識的手段)的不同類型,Paul Sztorc 又深入剖析了不同分叉在強制性上的差異。
歷史上的比特幣協議變更採取過哪些方式?
哪些人有權接受或拒絕協議更改提案? 開發者的目的是實現“大致共識”,也就是說提案無需獲得 100% 參與者的同意,但是提案必須開發到。
我們如何衡量比特幣生態對一項更改提案的支持程度?開發者將與有可能受提案影響的參與者共同討論。任何關注開發進程的人都可以通過郵件列表、代碼庫、社交媒體等渠道做貢獻。
最後,協議治理不會通過已經定義好的方式自上而下展開。恰恰與傳統治理模型相反,比特幣協議治理採用的是自下而上的方式。
信任最小化
“比特幣是點對點電子現金,相比傳統(貨幣)系統更有價值,因為它通過去中心化的方式賦予了用戶貨幣自主權。比特幣旨在解決傳統貨幣的根本問題:只有依託信任才能發揮作用。這並不足以證明信任不好,但信任確實會讓系統變得脆弱、不透明,同時產生高昂的運行成本。信任破滅會造成系統崩潰,信任篩選會導致不平等現象和壟斷封閉,進而產生阻礙正當訪問的信任瓶頸。”
“利用密碼學證明和去中心化網絡,比特幣儘可能減少並替換掉了信任成本。從根本上來說,僅憑現有技術,我們仍需在可擴展性和去中心化之間作出權衡。如果運行系統的成本過高,人們將無法獨立執行系統規則,只能信任第三方來執行。如果比特幣區塊鏈在資源消耗量上遠遠超過現有技術,就會在傳統系統面前失去競爭力,因為過高的驗證成本(超出很多用戶的承受範圍)必然會將信任重新引入系統。如果吞吐量太低且交易方式效率過低,通過訪問區塊鏈的方式解決爭議將產生過高的成本,導致信任捲土重來。”
—— Greg Maxwell
比特幣開發者 Matt Corallo 同樣強調過信任最小化的重要性:
“在比特幣具備的諸多特性中,免信任(除了運行中的開源軟件之外,比特幣用戶無需信任其它人或物)迄今為止仍是重中之重。說得更具體些,人們對比特幣的興趣大體可以歸究為一個原因,他們渴望再也不用信任某個第三方個體或聯盟。想必這點已經人盡皆知,但是理解免信任為何如此重要(以及它以哪些形式呈現)對於比特幣技術的開發和改進來說至關重要。”
本文介紹的其它比特幣原則中,很多都以信任最小化需求為基礎。這些原則既源於低信任需求,又以之為目標。我們永遠都無法達到 100% 免信任,因為沒人有足夠的資源可以審計他們用來與網絡交互的所有軟件和硬件。但是,我們可以非常接近這一目標。如此一來,我們完全可以相信,公開透明且利益一致的參與者不會勾結起來做出對生態不利的事。
去中心化
像比特幣這樣的開放系統如果中心化程度過高,以至於網絡受到某個個體或壟斷聯盟的操控,將無法保有本文所述的其它理想特性。去中心化 是手段,而非目的。通過儘可能廣泛地將權力分散出去,我們可以將對任一實體的信任需求降至最低,因為我們知道沒有哪個實體能夠干涉我們使用系統。
“很多人想當然地認為電子貨幣註定無法成功,因為自 20 世紀 90 年代以來有過嘗試的公司均以失敗告終。我希望明確的是,導致這些電子貨幣系統失敗的原因只有一個,那就是集中化控制。我認為這是我們首次嘗試建立一個不以信任為基礎的去中心化系統。”
—— 中本聰
以下是中心化的潛在衡量維度,而且很難進行量化:
-
交易所
-
開發者
-
軟件客戶端
-
礦池
-
挖礦軟件
-
高收入節點
-
廣義的價值所有權分佈
-
自己控制私鑰的用戶佔比
-
自己運行節點來審計賬本的用戶佔比
上述任一指標呈現出高度中心化特徵,並不一定代表整個系統是中心化的。但是,我們應該考慮到一個系統有多強大由其短板決定。因此,在對系統作出任何更改之前,我們都應慎重考慮,以免任一維度出現權力集中化趨勢。
抗審查性
任誰都不應該有權阻止其他人與比特幣網絡交互,或無限期地阻止有效交易得到確認。雖然礦工可以自由選擇是否確認一筆交易,但只要是支付了高昂交易費的有效交易最終都會得到理性礦工的確認。
偽匿名性
任何持有或使用比特幣的人都無需提供官方身份證明。該原則增強了系統的抗審查性和同質化特性,因為在系統本身不追蹤用戶的情況下篩查 “汙點” 交易會變得更難。該原則也可作延伸理解:系統不要求其用戶是人類。
開源
比特幣客戶端的源代碼應該永遠開放,供所有人瀏覽、修改、複製和分享。比特幣的價值建立在系統的透明度和可審計性之上。正因為我們能夠對系統進行全方位審查,我們沒必要信任任何實體是誠實的。在經濟激勵下,生態參與者會誠實行事,因為他們知道作惡將招來懲罰。如果被用來與系統交互的代碼本身不讓用戶審計,利用這種代碼實現的審計功能又有何價值?
開放協作
雖然任何人都可以私下進行研究和開發,但是任何協議變更嘗試,尤其是非向後兼容的那種,應該公開推進,而非暗中謀劃。比特幣為人類所有,因此任何改進提案都應該公開接受大眾評審。通過比特幣改進提案流程提議變更方案是受到推崇的方式,但也不會成為強制要求,因為沒有權力機關強制執行。
自發組織本身的問題及由此產生的權力動態可能會讓人覺得某些人或團體是掌權者,但這是一種錯覺。
免許可
沒有看門人可以阻止任何人(以交易者、節點、礦工等等身份)參與網絡。這是信任最小化、抗審查性和偽匿名性的功勞。
法律中立
比特幣的開發不會考慮任何國家或地區的法律,就像其它互聯網協議一樣。比特幣不會迎合監管需要,反而是監管機構需要考慮如何應對通過比特幣技術實現的功能。
同質化
同質化是健全貨幣需要具備的重要特性。如果每位用戶都需要分析自己收到的比特幣是否“有汙點”,比特幣系統的效用將大幅降低。
所有 UTXO 在被用來花費時都應該是平等的。遺憾的是,目前的情況並非如此,已經出現了追蹤與犯罪活動相關的“汙點”UTXO 的服務。這種區別對待帶來的副作用是,無辜的用戶可能會因花費了由“汙點”UTXO 轉了幾手產生的 UTXO 而遭到逮捕。
同質化需要隱私性。隱私性就是外人無法在龐大的用戶群中找到任何一筆交易的所有者。問題是,比特幣用戶的隱私正面臨很多已知威脅。因此,當前的比特幣離完全同質化還差得遠。
向前兼容性
比特幣容許簽署但不廣播交易的行為。因此,任何已簽署但未廣播的交易均被視為有效且可以廣播。帶有時間鎖的交易就是個很好的例子。這類交易只有等到指定時間才能得到有效確認,適用於遺產繼承或其它有延時需求的場景。更改這一規則可能會造成非常嚴重的後果:一批未知數量的未廣播交易將變成無效交易。一旦用戶過去依賴的規則被打破,用戶或將承受經濟損失,沒人會願意當這個罪人。
事實上,正因比特幣堅守向前兼容原則,讓人們對比特幣協議充滿了信心。人人都可以構想和部署任意措施來保護自己的比特幣,無需徵得許可。只要用戶遵守協議規則,最壞的情況也只是節點默認停止轉發某些交易。
資源使用最小化
為了將驗證成本維持在較低水平,區塊空間成為稀缺資源。因此,佔用大量區塊空間對於任何人來說都很昂貴。這裡有一個重要原則是,鼓勵花費(消耗)UTXO,不鼓勵創造 UTXO。如果 UTXO 累加器能夠成功解決 UXTO 膨脹問題,這一原則可能會改變。
驗證應該是低成本的,因為這樣可以讓更多用戶負擔得起審計系統的費用,有助於實現信任最小化。低驗證成本也會大幅提高資源耗盡攻擊的成本。比特幣提供一種可以快速拒絕低成本無效區塊的機制。這是 hash cash(哈希現金)的基本原則,攻擊者只有付出昂貴的代價才能創建垃圾郵件。在同步一個區塊內的交易之前,節點可以先下載 80 字節大小的區塊頭,獲得工作量證明並進行快速而準確的驗證。
此外,我們應以高效利用區塊空間為重,僅在鏈上存儲驗證複雜操作所需的最少數據,而非直接在鏈上存儲和執行復雜操作。
驗證 > 計算
這屬於資源最小化原則。在理想情況下,需要執行復雜邏輯的人越少越好。其他在網絡上運行完全驗證節點的人不應該細究邏輯的每個步驟,只要確保邏輯正確執行即可。正確性比完整性更重要。
“讓區塊鏈發揮它的長處。”
—— Andrew Poelstra
對於任何系統來說,最好的優化是避免執行計算。區塊鏈的優點是可以存儲時間戳數據以滿足審計之需。相比要求所有參與者計算與自己無關的交易的邏輯,存儲可由相關參與者驗證的計算證明就足夠了。
收斂
假設任意兩個比特幣客戶端都連接至同一個誠實的對等節點,它們最終應該會聚於同一個區塊鏈首。舉個反面例子,Bitcoin ABC 提出的最高 10 個區塊的鏈重組規則打破了這一原則。結果是,一旦出現網絡分區或網絡封鎖之類的情況,受影響的礦工將持續挖另一條鏈。等到網絡合並後,兩條分叉也不會收斂到累積工作量證明最多的鏈上。
所有交易操作都必須具有確定性。如果系統狀態相同,交易應該只能以一種方式執行,系統之外的因素不會對相關計算產生影響。同樣地,在兩臺不同的機器上,腳本也不應該有兩套不同的運作方式。唯一的解決方案就是隔絕 —— 智能合約和交易必須獨立於非確定性因素。
協議變更不應該給交易帶來會因區塊鏈重組而失效的風險。交易操作不僅應該具有確定性,還應該是無狀態的。例如,2010年的 OP_BLOCKNUMBER 提案。
一些人提議了重組之後可能會導致交易無效的操作碼。這些提案通常會被要求使用 OP_CLTV 重新設計,以確保向前兼容。但是,這種做法有時是多此一舉或不切實際的。有人建議說,可以引入一個操作碼讓某個交易無法在 100 個區塊內上鍊,類似 coinbase 交易或通過 OP_CSV 設置 100 個區塊的時間鎖。
交易不可變性
給定一個區塊,跟在這個區塊之後的區塊越多,這個區塊因鏈重組而變成孤塊的可能性越低。雖然比特幣協議容許任意長度的鏈重組,但是過長的鏈重組可能會帶來破壞,因為一些軟件或節點可能無法處理得當。此外,超過 100 個區塊的鏈重組具有更強的破壞力,因為它會將已花費的 coinbase 交易作廢,摧毀這部分價值。
雖然從技術層面上來說無法保證不可變性,但是我們可以確保在累積工作量證明足夠多的情況下,回滾交易的成本會變得異常高。
抗 DoS 攻擊
遠端對等節點不應能夠向本地節點發送導致本地消耗太多資源的消息。然而,SPV 布隆過濾器的出現打破了這一原則。攻擊者可以利用該功能讓目標對等節點掃描大量區塊數據,從而佔用大量磁盤 I/O。點擊此處搜索“meisbehav”,可以看到很多抗 DOS 攻擊規則。有害行為被賦予了不同的分數,只要某個對等節點的有害行為分數超過上限,你的節點就會斷開連接,以防繼續受害。
避免爭搶進入
如果系統行為取決於不可控事件的發生順序或時間,就會產生爭搶行為(race condition)。在比特幣之類的分佈式免許可系統中,事件通常是不可預測的。UTXO 模型可以幫助我們避免爭搶,因為輸出只能花費一次 —— 交易輸出的狀態是二元的(要麼已花費,要麼未花費)。
這也是交易不應該依賴系統狀態的另一個原因:如果狀態在鏈重組過程中發生變化,就有可能產生爭搶和複雜性。
穩健性
-
從長期來看,貨幣應該是穩定的。
-
我們對待變革應持保守態度,一方面儘可能降低系統風險,另一方面讓人們繼續以他們認為合適的方式使用系統。
-
不要指望用戶會積極應對系統問題。因此,我們應該謹慎行事,主動避免這些問題!
穩健性究竟有什麼意義?它有助於保障社會可擴展性。
比特幣成功的秘訣是,它以高能耗和低下的計算可擴展性為代價換來了更珍貴的特性:社會可擴展性。
—— Nick Szabo
很多由人類運行的系統都存在一個固有問題:系統規則執行起來過於隨意,或容易被個體想法左右。這會影響系統的可靠性。
如果我們可以利用計算機科學代替傳統的會計師、監管機構、調查員、警察和律師來保護金融系統,就可以將原本需要手動操作的弱安全局部系統變成自動化的強安全全球系統。
—— Nick Szabo
激勵一致
比特幣之所以能運行,是因為系統規則激勵參與者誠實守信。例如,從理論上來說,礦工可以通過重組區塊鏈發起雙重花費攻擊,但這無異於搬起石頭砸自己的腳,投入大量硬件和電力成本卻損失慘重。對於礦工來說,將資源花在保護區塊鏈上更有利可圖。
固化
人們普遍認為,隨著生態日益壯大,更改底層協議會越來越難。這是因為隨著用戶群體的立場和動機日益多樣化,不會引起爭議的變更將越來越少。因此,改進更有可能發生在以比特幣為基礎的其它層上。
無法改變的共識
-
發行超過 2100 萬發行上限的比特幣。雖然精度/可細分程度有可能增加,但是所有權比重必須保持不變。
-
引入任何必然會增加中心化程度的規則。例如,新增要求所有區塊必須由中心化組織簽署的規則。
-
逾期處理(刪除或重新分配被判定為“已丟失”或“從未使用過”的比特幣)。就客觀角度而言,我們不能因為某個 UTXO 在一段特定時間內未被花費就斷言其私鑰已經丟失。截至本文發佈時,雖然疑似丟失的比特幣數量超過100 萬個,但是隻有大約 5000 個 BTC 已證實丟失或銷燬。
衝突性原則
通過改進同質化(隱私性)讓供應量無法審計是不可能的,就像以降低可審計性為代價來提高同質化同樣存在爭議。
有時,我們可能會出於保護網絡的目的希望某些 UTXO 無法被花費,例如,對量子攻擊抵抗力弱的 P2PK 比特幣。這類提案都是有爭議的,但是在利遠大於弊的情況下,用戶可能會接受。
比特幣提供的有效性不是恆久的,因為鏈重組有可能發生在 coinbase 交易之前,也就是在交易還沒有創造出新的比特幣之時。coinbase 交易的 100 區塊確認規則有助於避免這類情況發生。截至發稿時,比特幣主網上極少發生區塊深度超過 1 的重組。
最後,比特幣生態內部產生衝突的主要原因之一是,比特幣無法同時滿足所有人的需求。否則比特幣就會走向衰敗,因為很多重要原則都不可兼得,例如:
-
同時實現低全系統驗證成本和低交易成本
-
使用功能豐富的編程語言的同時確保攻擊面小
協同推進
為了讓用戶一如既往地信任並使用比特幣交易,比特幣社區必須堅持只在獲得廣泛共識的情況下才進行變更。反之,為了防止比特幣停滯不前,比特幣社區必須願意達成共識,做出既不傷害他人又有利於系統的改變,無論這些基於共識的改變採用何種形式。重要的是,這意味著只要有可能,凡是無損比特幣在各應用場景中的效用又能帶來助益的改變都應該被執行。
—— Matt Corallo
歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News













