7.2 比特幣核心錢包軟件
區塊鏈:技術驅動金融 作者:阿爾文德·納拉亞南 / 約什·貝努 等 投票推薦 加入書簽 留言反饋
比特幣核心錢包(bitcoin core)是一款開源軟件,是對比特幣規則進行討論和爭議的焦點。這款軟件由極為寬鬆的開源(open source)許可證——mit許可證認證。隻要注明版權聲明和許可聲明,就可以將該軟件用於各種用途。比特幣核心錢包是目前運用最為廣泛的一款比特幣軟件。即便不利用它進行軟件開發,許多人也會通過研究它來了解比特幣的規則。在構建其他比特幣軟件時,人們會借鑒其規則定義部分的內容,包括判定交易和區塊的有效性。
<blockquote>
比特幣核心錢包實際是比特幣的規則手冊。通過研究比特幣核心錢包及其相關解釋,可以了解到在比特幣係統中真正有效的內容。
</blockquote>
比特幣改進方案
任何人都可以通過“提交請求”(pull requests)按鈕,幫助比特幣核心錢包進行技術改進,這一過程在開源軟件(open-source software)世界極為常見。若想對軟件進行更大的改動,特別是對協議進行修改,則可以通過一個較為正式的叫作比特幣改進方案(bitcoin improvement proposal,簡稱bip)的流程來實現。因此,如果你有意通過技術改變來改進比特幣,你可以把你的想法寫下來,根據比特幣改進方案的要求,與其他文件一起公開發表。這會觸發比特幣社區就你的方案進行討論,並決定下一步行動。雖然任何人都可以提交正式方案,但正如所有開源項目(open-source project)一樣,這存在學習曲線。
bip以編號序列形式發布,每項方案有一名擁護者,負責宣傳方案、協調討論活動並努力促成方案在比特幣社區向前順利開展或實施。
我們上麵所說的內容適用於對技術更改的方案。事實上,也存在一些bip,或者隻是為了提供信息,傳播關於比特幣的知識;或者將之前僅在源代碼中明確的部分代碼進行標準化。而其他一些bip側重流程,討論比特幣社區如何決策事項。
總之,除了包含規則手冊中的內容外,bip還包含方案、製定和討論規則變更的流程。
比特幣核心錢包開發人員
要了解比特幣核心錢包的作用,我們需要了解比特幣核心錢包開發人員所發揮的作用。原始代碼的作者是中本聰(satoshi nakamoto),我們在7.4節還會介紹。現在,中本聰本人已經不再活躍,但還有一群開發人員在維護著軟件。有數百名開發者在為這個項目寫代碼,但隻有少數幾個人擁有對核心錢包數據庫的“調配”mit)權限。這些核心錢包的首席開發人員持續維護該軟件,並決定哪些新代碼可以加入軟件新版本中。
這些人的權力有多大?從某種意義上說,他們的權力是很大的,因為他們對代碼做出的規則改變終將呈現在比特幣核心錢包中,這些規則會默認被遵守。這些人寫下比特幣事實上的規則手冊。但從另一個角度來看,他們根本就沒有什麽權力。因為這是一款開源軟件,任何人都可以複製、修改它(隨時創建一個比特幣分叉)。因此,如果首席開發人員的表現不被社區接受,社區可能走向不同的方向。
可以這麽想,首席開發人員就像在引領遊行隊伍前進。他們在隊伍的最前麵,當他們拐彎時,隊伍一般會跟著他們拐彎。但是如果他們試圖把隊伍帶入災難性的境地,那麽隊伍中的其他成員可能會選擇不同的方向。這些首席開發人員可以敦促社區,但是,如果他們試圖把係統帶入不被社區接受的技術方向,他們並沒有正式的權力,來迫使人們跟隨他們。
現在來思考一下,作為係統的使用者,如果你不喜歡它的規則或係統運行的方式,能夠做些什麽,並與集中式貨幣(如法定貨幣)進行比較。在集中式貨幣係統中,如果有異議,你有權退出,也就是說,你可以不用它。你必須想辦法把持有的貨幣賣出,然後移居到使用另一種貨幣的地方。有了集中式貨幣,退出是你的唯一選擇。
在比特幣係統,你當然也有權退出,但是,因為它作為開源係統(open-source system)運行,你就有了對規則進行分叉的權利。也就是說,你、你的朋友和同事可以選擇運行一套不同的規則,而且,通過對規則進行分叉,走向與首席開發人員不同的方向。與退出相比,分叉賦予用戶更多的權力,像比特幣這樣開源係統的社區比完全集中係統的社區擁有更多權力。所以,雖然首席開發人員看似一個擁有控製權的集權式實體,事實上,他們並不擁有一個完全集權式管理人員或軟件所有者所擁有的權力。
規則分叉
創建軟件分支或規則分叉的一種方式是,以新的創世區塊創建新的區塊鏈。人們經常通過這種方式來創建另類幣,我們將在第10章談到這個問題。現在,我們來談談對規則的另一種分叉,這種分叉不僅對規則進行分叉,還對區塊鏈進行分叉。
在第3章中,我們談到了硬分叉和軟分叉之間的區別,這裏我們談的是硬分叉。當對規則有分歧時,區塊鏈中會有分叉,導致兩個分支。其中一個分支在規則a下有效,而在規則b下無效,反之亦然。礦工一旦在兩種不同的規則下操作,他們就無法合並到一起,因為每個分支都將包含在另一規則下無效的交易或區塊。見圖7.2。
圖7.2 貨幣中的分叉
注:如果規則的分叉導致區塊鏈的硬分叉,那麽貨幣本身就會分叉成兩種新貨幣。
我們可以把分叉前的貨幣看作比特幣,深受人們認同和喜愛的比特幣。分叉之後,出現兩種新貨幣,符合規則a的貨幣a和符合規則b的貨幣b。分叉時,每一個持有一個比特幣的人得到一個貨幣a和一個貨幣b。分叉後,貨幣a和貨幣b開始分開運行,而且它們可能會獨立運行。這兩者的規則還可能以不同方式繼續發展。
需要強調的是,不僅僅是軟件,或規則,或實現規則的軟件分叉了,貨幣本身也分叉了。這個有趣的現象隻可能發生加密數字貨幣中,卻不能發生在傳統貨幣中,因為傳統貨幣並不允許用戶將貨幣進行分叉。就目前我們所了解的情況,不管是比特幣還是任何另類幣,尚未以這種方式分叉過,但確實存在這個奇妙的可能。
人們會對這樣的分叉做出何種反應呢?這取決於分叉的原因到底是什麽。第一種情況是,進行分叉的原因並不是對規則存在異議,而是想創建一種另類幣。如果想創建一種與比特幣規則類似的另類幣,有些人會通過將比特幣的區塊鏈分叉的方式來實現。這對比特幣社區來說並不構成真正的問題,另類幣單獨運行,與比特幣主分支和平共存,一些人偏好比特幣,另一些人更偏好另類幣。但是,正如之前我們說過的,截至目前,還沒有人通過將比特幣或現有另類幣的區塊鏈分叉的方式來創建新的另類幣,他們一般都通過新的創世區塊來創建。
一個有趣的情況是,如果分叉的原因是人們對比特幣的未來發展存在分歧,換言之,比特幣社區內部發生叛亂,因為一些成員認為自己對係統如何運行有了更好的想法,決定脫離出去。在這種情況下,兩個分支成為對手,會爭奪市場份額。貨幣a和貨幣b都會努力說服更多商家接受它,讓更多人購買它。每種貨幣都想成為“真正的比特幣”。它們都聲稱自己是合法的,並將對方描述成一個怪胎,這可能會引發一場公關之戰。
結果很可能就是某一分支勝利,另一分支則漸漸消失在人們的視線中。這種類型的競爭往往指向某一方向。一旦人們認為這兩個分支中的某一個更合法並獲得了更大的市場份額,網絡效應會越來越明顯,而另一種貨幣將成為一種利基(niche)[1]貨幣並將最終消失。獲勝方的規則和管理架構將成為比特幣事實上的規則和管理架構。
[1] (商業用語)是指針對企業的優勢細分出來的市場,這個市場不大,而且沒有得到令人滿意的服務。產品推進這個市場,有盈利的基礎。在這裏特指針對性、專業性很強的貨幣。——譯者注
<blockquote>
比特幣核心錢包實際是比特幣的規則手冊。通過研究比特幣核心錢包及其相關解釋,可以了解到在比特幣係統中真正有效的內容。
</blockquote>
比特幣改進方案
任何人都可以通過“提交請求”(pull requests)按鈕,幫助比特幣核心錢包進行技術改進,這一過程在開源軟件(open-source software)世界極為常見。若想對軟件進行更大的改動,特別是對協議進行修改,則可以通過一個較為正式的叫作比特幣改進方案(bitcoin improvement proposal,簡稱bip)的流程來實現。因此,如果你有意通過技術改變來改進比特幣,你可以把你的想法寫下來,根據比特幣改進方案的要求,與其他文件一起公開發表。這會觸發比特幣社區就你的方案進行討論,並決定下一步行動。雖然任何人都可以提交正式方案,但正如所有開源項目(open-source project)一樣,這存在學習曲線。
bip以編號序列形式發布,每項方案有一名擁護者,負責宣傳方案、協調討論活動並努力促成方案在比特幣社區向前順利開展或實施。
我們上麵所說的內容適用於對技術更改的方案。事實上,也存在一些bip,或者隻是為了提供信息,傳播關於比特幣的知識;或者將之前僅在源代碼中明確的部分代碼進行標準化。而其他一些bip側重流程,討論比特幣社區如何決策事項。
總之,除了包含規則手冊中的內容外,bip還包含方案、製定和討論規則變更的流程。
比特幣核心錢包開發人員
要了解比特幣核心錢包的作用,我們需要了解比特幣核心錢包開發人員所發揮的作用。原始代碼的作者是中本聰(satoshi nakamoto),我們在7.4節還會介紹。現在,中本聰本人已經不再活躍,但還有一群開發人員在維護著軟件。有數百名開發者在為這個項目寫代碼,但隻有少數幾個人擁有對核心錢包數據庫的“調配”mit)權限。這些核心錢包的首席開發人員持續維護該軟件,並決定哪些新代碼可以加入軟件新版本中。
這些人的權力有多大?從某種意義上說,他們的權力是很大的,因為他們對代碼做出的規則改變終將呈現在比特幣核心錢包中,這些規則會默認被遵守。這些人寫下比特幣事實上的規則手冊。但從另一個角度來看,他們根本就沒有什麽權力。因為這是一款開源軟件,任何人都可以複製、修改它(隨時創建一個比特幣分叉)。因此,如果首席開發人員的表現不被社區接受,社區可能走向不同的方向。
可以這麽想,首席開發人員就像在引領遊行隊伍前進。他們在隊伍的最前麵,當他們拐彎時,隊伍一般會跟著他們拐彎。但是如果他們試圖把隊伍帶入災難性的境地,那麽隊伍中的其他成員可能會選擇不同的方向。這些首席開發人員可以敦促社區,但是,如果他們試圖把係統帶入不被社區接受的技術方向,他們並沒有正式的權力,來迫使人們跟隨他們。
現在來思考一下,作為係統的使用者,如果你不喜歡它的規則或係統運行的方式,能夠做些什麽,並與集中式貨幣(如法定貨幣)進行比較。在集中式貨幣係統中,如果有異議,你有權退出,也就是說,你可以不用它。你必須想辦法把持有的貨幣賣出,然後移居到使用另一種貨幣的地方。有了集中式貨幣,退出是你的唯一選擇。
在比特幣係統,你當然也有權退出,但是,因為它作為開源係統(open-source system)運行,你就有了對規則進行分叉的權利。也就是說,你、你的朋友和同事可以選擇運行一套不同的規則,而且,通過對規則進行分叉,走向與首席開發人員不同的方向。與退出相比,分叉賦予用戶更多的權力,像比特幣這樣開源係統的社區比完全集中係統的社區擁有更多權力。所以,雖然首席開發人員看似一個擁有控製權的集權式實體,事實上,他們並不擁有一個完全集權式管理人員或軟件所有者所擁有的權力。
規則分叉
創建軟件分支或規則分叉的一種方式是,以新的創世區塊創建新的區塊鏈。人們經常通過這種方式來創建另類幣,我們將在第10章談到這個問題。現在,我們來談談對規則的另一種分叉,這種分叉不僅對規則進行分叉,還對區塊鏈進行分叉。
在第3章中,我們談到了硬分叉和軟分叉之間的區別,這裏我們談的是硬分叉。當對規則有分歧時,區塊鏈中會有分叉,導致兩個分支。其中一個分支在規則a下有效,而在規則b下無效,反之亦然。礦工一旦在兩種不同的規則下操作,他們就無法合並到一起,因為每個分支都將包含在另一規則下無效的交易或區塊。見圖7.2。
圖7.2 貨幣中的分叉
注:如果規則的分叉導致區塊鏈的硬分叉,那麽貨幣本身就會分叉成兩種新貨幣。
我們可以把分叉前的貨幣看作比特幣,深受人們認同和喜愛的比特幣。分叉之後,出現兩種新貨幣,符合規則a的貨幣a和符合規則b的貨幣b。分叉時,每一個持有一個比特幣的人得到一個貨幣a和一個貨幣b。分叉後,貨幣a和貨幣b開始分開運行,而且它們可能會獨立運行。這兩者的規則還可能以不同方式繼續發展。
需要強調的是,不僅僅是軟件,或規則,或實現規則的軟件分叉了,貨幣本身也分叉了。這個有趣的現象隻可能發生加密數字貨幣中,卻不能發生在傳統貨幣中,因為傳統貨幣並不允許用戶將貨幣進行分叉。就目前我們所了解的情況,不管是比特幣還是任何另類幣,尚未以這種方式分叉過,但確實存在這個奇妙的可能。
人們會對這樣的分叉做出何種反應呢?這取決於分叉的原因到底是什麽。第一種情況是,進行分叉的原因並不是對規則存在異議,而是想創建一種另類幣。如果想創建一種與比特幣規則類似的另類幣,有些人會通過將比特幣的區塊鏈分叉的方式來實現。這對比特幣社區來說並不構成真正的問題,另類幣單獨運行,與比特幣主分支和平共存,一些人偏好比特幣,另一些人更偏好另類幣。但是,正如之前我們說過的,截至目前,還沒有人通過將比特幣或現有另類幣的區塊鏈分叉的方式來創建新的另類幣,他們一般都通過新的創世區塊來創建。
一個有趣的情況是,如果分叉的原因是人們對比特幣的未來發展存在分歧,換言之,比特幣社區內部發生叛亂,因為一些成員認為自己對係統如何運行有了更好的想法,決定脫離出去。在這種情況下,兩個分支成為對手,會爭奪市場份額。貨幣a和貨幣b都會努力說服更多商家接受它,讓更多人購買它。每種貨幣都想成為“真正的比特幣”。它們都聲稱自己是合法的,並將對方描述成一個怪胎,這可能會引發一場公關之戰。
結果很可能就是某一分支勝利,另一分支則漸漸消失在人們的視線中。這種類型的競爭往往指向某一方向。一旦人們認為這兩個分支中的某一個更合法並獲得了更大的市場份額,網絡效應會越來越明顯,而另一種貨幣將成為一種利基(niche)[1]貨幣並將最終消失。獲勝方的規則和管理架構將成為比特幣事實上的規則和管理架構。
[1] (商業用語)是指針對企業的優勢細分出來的市場,這個市場不大,而且沒有得到令人滿意的服務。產品推進這個市場,有盈利的基礎。在這裏特指針對性、專業性很強的貨幣。——譯者注