比特幣是一種分佈式開源軟件,這意味著沒有官方的團隊來維護軟件升級,並且任何人都可以自由地使用、修改並且更新相關代碼,這並不意味著比特幣沒有自己的治理方式。
相反,比特幣遵循著一套開源軟件協作治理模式BIPs,這種協作方案借鑒了ARPANET在1969年創建的Request for Comments文件標準。
現在比特幣即代表了區塊鏈技術也是一種數字貨幣系統。雖然比特幣交易會永久保留在區塊鏈上並且不可更改,但軟件世界需要不斷迭代,所以比特幣的基礎協議仍在不斷改進和升級。
正是BIPs標准在執行對比特幣協議的升級。 BIP為參與者根據標準化的流程,為協議提出新想法,對其進行測試並對其進行同行評審。
在本文中,我們將詳細介紹用於升級比特幣協議的BIP流程,並展示以協議來治理比特幣軟件的運作流程。
為什麼需要BIP
比特幣代碼最初完全由中本聰(Satoshi Nakamoto)本人編寫,並且當時所有人認為比特幣只是一個驗證去中心化數字貨幣可行性的實驗方案。在經歷了一系列事件後,如今比特幣已經證明了數字貨幣的可行性。
在比特幣開發的早期階段,並沒有相關的協議開發標準。 Satoshi 自己撰寫了大部分原始代碼,之後隨著軟件不斷更新以及技術改進。
他開始在一個密碼學家云集的論壇Cryptography Mailing List向相關專家徵求改進意見。在收到大量反饋後,最終Satoshi創建了BitcoinTalk論壇,這個論壇主要致力於討論比特幣的技術迭代。
起初協議採用的決定權仍在Satoshi手中。當有人向Satoshi報告比特幣代碼庫中的錯誤,這一漏洞可能會使任何人都可以花費其他人的比特幣時,Satoshi就會推動比特幣協議的迭代更新,並告訴網絡上的每個人升級他們的客戶端。
但是為了增加比特幣生態的生命力,Satoshi認為需要使比特幣減少對個人的依賴程度,比特幣的迭代應該依賴於整個開發者社區。由此產生了比特幣的BIPs方案,最終Satoshi從比特幣項目離開時社區的穩定運營也證實了BIPs的有效性。
在比特幣項目開發初期,Satoshi獲得了很多積極參與社區活動的開發者的幫助,比如Gavin Andresen。
當Satoshi宣布他將於2011年離開該項目時,他將項目的決定權交給了Andresen。但Andresen不想獨自把控著比特幣代碼的權力,畢竟這違背了去中心化的原則,因此他邀請了另四位開發人員參與比特幣項目的決策,包括Pieter Wuille,Wladimir van der Laan,Gregory Maxwell和Jeff Garzik。
這些開發人員被便是我們當前所熟知的“比特幣核心開發者”,因為他們將負責管理比特幣核心客戶端的升級過程與迭代方案。
比特幣核心開發人員不僅負責比特幣協議的大部分開發任務,他們也維護比特幣的代碼庫,是唯一能夠將最新代碼集成到比特幣核心客戶端的團隊。
雖然這些年來有數百人為比特幣貢獻了代碼,但只有十幾個人曾經擁有對代碼庫的訪問權限。
雖然這導致人們認為比特幣核心開發人員對比特幣協議的開發具有專制的影響力,但事實並非如此,核心開發人員只是參與共識生成的過程,並執行最終的升級方案。
比特幣核心的貢獻者Jameson Lopp 指出:
雖然維護人員在技術上有可能劫持GitHub代碼庫,審查不同意見的開發人員,甚至維持“比特幣核心”的品牌名稱,但結果將是比特幣核心將不再是開發焦點。不同意比特幣升級路線的開發人員只需將代碼分叉並將其工作轉移到不同的存儲庫,而比特幣核心維護者沒有對新代碼的管理員權限。
隨著比特幣網絡多年來的發展,比特幣也確實發生了多次技術分歧,由於產生了關於技術改進的辯論,有開發者認為比特幣核心團隊對協議的絕對控制會導致比特幣走向失敗。
由此誕生了比特幣改進提案流程(BIPs),它方便了開發者圍繞比特幣的開發過程展開討論,並讓更多社區成員更容易理解技術的升級方案,並使開發人員的開發流程正式化。
BIP的剖析
比特幣改進提案是一項提議改進比特幣協議的標準,由Amir Taaki於2011年在BIP 0001中提出,並由Luke Dash Jr.在BIP 0002中進行了擴展。
BIP過程嚴重依賴於Python增強提議(PEP 0001),甚至直接複製了一些文本。它還提到了一個名為“在IETF中達成共識”的文件,這是一套來自互聯網工程任務組的開源協作原則。
BIP流程的目標是允許任何人提出改進比特幣協議,但在實施可能威脅網絡穩定性的任何代碼之前,還要徹底審查安全性和可行性。
BIP賦予了社區提出對比特幣軟件改進想法的權力,也使社區可以進行同行評審。 BIP對於像比特幣這樣沒有領導者的分散協議的發展至關重要。自BIP流程建立以來,Github已有形成了191個BIP文件標準。
有三種不同類型的BIP:
標準跟踪BIP提議對比特幣進行更改,包括更改網絡協議,阻止或交易有效性規則,或影響使用比特幣的應用程序的互操作性的任何更改。
信息BIP描述協議中的設計問題或向社區提供信息,他們不建議為協議實現新功能。
流程BIP:提出圍繞開發比特幣的流程,或建議對流程進行更改。它們不直接影響比特幣的代碼庫,但它們可能包括新程序,開發決策的變化,或者用於開發比特幣的工具的變化。
每個BIP必須經過幾個不同的階段才能實施。這是BIP 001中描述的工作流程:
要實施BIP必須從草案階段,提議階段,到最終階段。
草案:BIP作為草案提交給比特幣開發郵件列表和BIP Github存儲庫。
建議:BIP包括一個工作實施,其中包含部署BIP的計劃。
最終:BIP符合現實世界的採用標準。
在此過程中,BIP可以被社區拒絕,撤回或替換:
延期:BIP的作者可以在沒有取得進展的情況下將其狀態更改為延期。
撤回: BIP的作者也可以選擇完全撤回BIP。
被拒絕:如果三年內沒有取得任何進展,任何人都可以請求將BIP拒絕。
替換:如果先前的最終BIP變得無關緊要,則將其標記為已替換。例如,如果在軟叉中實施的BIP在三個月之後被硬叉翻轉,就會發生這種情況。
分佈式網絡中共識的達成機制
比特幣運行在由節點,用戶,開發人員和礦工提供支持的分佈式網絡上,沒有中心化的團體控制協議的升級迭代方向。雖然不可能改變比特幣區塊鏈上的交易數據,但為協議提供支持的基礎技術正在不斷改進。
通過工作量證明機制來達成關於升級方案的共識,隨著時間的推移,協議更新要求不同類型的社會成員達到共識。 BIP流程是開發人員就如何以分散和開放的方式協作和貢獻比特幣代碼的關鍵機制。
原文: https://blog.sfox.com/bitcoin-governance-what-are-bips-and-how-do-they-work-276cbaebb068