要想完全理解比特幣開發現狀背后的原因,就不能不了解一些歷史事件。本文著重列舉了中本聰離開這個項目前后的歷史事件、軟件發布和漏洞修復;還額外添加了一個章節敘述比特幣開發的現狀。文章后附的時間線為每一個事件提供了額外的細節。
對于這里的大部分事件,我都不是親歷者。所以這份時間線的一大部分引自JohnNewbery的一次名為“比特幣開發的歷史與哲學”的演講。本文的標題也寫得很清楚了,本文沒有,也做不到包含每一個重要事件。歷史總在不斷變化,如果你認為我遺漏了什么事件,或想提議我作一些修改,請在開源項目bitcoin-development-history中提交一個issue,這也是我用來附加更多時間線的辦法。
中本聰仍在的時候
這份時間線的起點是2007年早期。中本聰開始開發比特幣。這個點對點的電子現金系統沒有受信任的地方。整個系統完全由用戶運行的軟件來控制。
早期,有貢獻者加入了中本聰的工作。除了軟件的開發,這些新來的貢獻者還為軟件添加了Linux和maxOS操作系統的支持。到了2010年夏天,中本聰給軟件做了一些關鍵的修改。比如,引入了“檢查點”作為一項安全措施,來對抗傳播低難度鏈的攻擊。使用了這些檢查點的節點會拒絕那些特定高度與特定區塊不符的鏈。檢查點是由中本聰獨自硬編碼的,理論上來說,這讓中本聰可以自己決定整個網絡要跟隨哪條鏈。
加入檢查點的幾天后,中本聰在版本v0.3.3的軟件中放出了第一個共識機制變更。中本聰敦促用戶升級。在接下來一個月里,多個小版本更新陸續放出。其中一個修復了一個致命的溢出漏洞。這個漏洞被利用來創造了兩個高價值的UTXO。中本聰建議礦工們重組包含了惡意交易的區塊。
一周以后,中本聰加入了一個警報系統,來提醒節點運營者網絡中出現的類似bug和問題。這個警報系統有一個安全模式。這個安全模式一旦觸發,就會禁用整個網絡的所有關于貨幣處理的RPC方法。只有中本聰能夠用一個私鑰簽名來創建有效的網絡警報。一些用戶開始提出質疑:如果其他人,比如某個政府,拿到了這個私鑰,那網絡會變成什么樣呢?
這個時候,中本聰對比特幣網絡有太大的權力。但大家主要擔心的不是中本聰會變壞、會摧毀整個網絡,而是一個去中心化的網絡中不應該存在一個單點故障。
到了2010年10月,中本聰在bitcointalk論壇上發布了他的最后一個帖子,宣布移除這個安全模式。中本聰在他最后留下的電子郵件之一里面寫道:“我準備到別的地方去了。有了Gavin和大家,這個項目會得到很好的維護。”一些人主張,中本聰離開比特幣世界,是他最偉大的貢獻之一。
中本聰離開之后
幾乎同一時間,整個開發流程從SVN轉移到了GitHub上。BlueMatt、sipa、laanwj和gmaxwell加入了這個項目。在2011年中,BIP流程應運而生。在2011年的最后一個季度和2012年的第一個月,社區討論了允許交易的接收者指定花費條件的多個提案。由此,P2SH交易引入了比特幣。
在2012年末,比特幣基金會宣告成立。比特幣基金會模仿的是Linux基金會。在公告帖子下面,一些人留言表示擔心開發會變得中心化。
前以太坊聯創抨擊以太坊:技術不完善是以太坊社區追求合并的根本原因:9月26日消息,前以太坊聯創兼 Cardano 創始人 Charles Hoskinson 在個人社交媒體上發布文章表示,以太坊核心開發者并不能客觀看待 Cardano,此行為結果是挫傷整個行業發展、用戶采用以及相互協作。
以太坊基金會社區經理 Hudson Jameson 對此做出回應稱,Charles 曾在四年前構建 Cardano 時蓄意抹黑以太坊,以太坊開發者忽略 Cardano 是由于 Charles 言行惡劣。Charles 回復稱,他承認四年前的言論,當時以太坊技術并不完善,現在也一樣。這也是以太坊社區追求合并的根本原因。如果沒有大規模鏈下基礎設施,無法實現網絡擴張。托管的、非流動性質押不可取。[2022/9/26 22:30:08]
Bitcoinv0.8.0在2013年春天發布。兩周以后,一場意料之外的硬分叉在網絡中升級了和沒升級的節點間爆發。硬分叉很快就被解決了,礦工們都把挖礦算力切換到了對已升級和未升級節點都有效的鏈上。
在2013年末,Bitcoin軟件更名為BitcoinCore。在接下來幾年里,包括Chaincode和Blockstream在內的公司成立。后來,MITDigitalCurrencyInitiative加入了Chaincode和Blockstream,為開發比特幣的開發者和研究者提供報酬。在2015年二月,JosephPoon和TadgwDryja放出了閃電網絡白皮書的第一份草稿。
第二年,LukeDashjr?通過BIP2修訂了BIP流程;BitcoinCore放出了v0.13.0,加入了SegWit作為軟分叉。在2016年11月,警報系統完全棄用。到了2017年8月,SegWit在比特幣網絡上激活。2019年,又一家公司SquareCrypto開始資助比特幣開發。在2019年5月,PieterWuille提出了BIPtaproot。
比特幣開發的現狀
在過去幾年中,比特幣的開發文化日益去中心化、目標明確而且嚴格。現在BitcoinCore代碼庫有6名維護者,分布在三個國家。只有他們能夠合并由貢獻者提出的代碼更改。不過,在內容合并之前,更改的內容還需經過一個審議流程,這個流程也變得嚴格得多。
舉個例子,在比特幣早期,有個與P2SH相競爭的提議,叫做“OP_EVAL”。有個實現了OP_EVAL的pullrequest在2011年底被合并到了代碼庫中。即便是這樣對共識有重大變更的代碼,它也只有一個審核人。RussellO’Connor開了一個issue批評了這個實現的一部分,并主張這么大的、對共識極為關鍵的變更應該得到更多的審核和測試。
這件事推動了如何通過更多的測試和審核來實現更高質量的代碼的持續討論。到了今天,每一個合并請求都有多個開發者來審核。如果某個改變觸及到了對安全性甚至共識的關鍵部分,審核的流程還需要通過更多的審核員審核,需要大量的測試,通常會花費幾個月的事件。活躍的BitcoinCore貢獻者JohnNewbery告訴我,“只需一個審核人員首肯就能合并影響共識的代碼的事情,已經一去不復返”。
BM:EOS治理挑戰可通過不完全修復來改善:EOS創始人BM(Daniel Larimer)在回復推特網友時稱:“EOS治理的挑戰可以通過不完全修復來改善。所有區塊鏈都存在治理問題。那些“運行平穩”的是中心化的。”[2020/10/30]
人們也投入了很多精力到自動化的測試中,比如,有C++語言編寫的單元測試和Python語言編寫的功能性測試。每一個不簡單的變更都要相應更新現有的測試或者在框架中加入新的測試。在單元測試和功能測試以外,還要在BitcoinCore上做模糊測試,以及建立基準測試框架來度量代碼的性能。舉個例子,bitcoinperf.com網絡提供了Grafana和codespeed接口來可視化周期性的基準測試的結果。
多年努力下來,BitcoinCore軟件已經形成了一個清晰的發布流程。BitcoinCore的大版本每6個月發布一次。發行計劃包括一個翻譯流程,一個特性凍結流程,還通常有多個候選版本。近期CoryFields和CarlDong還致力于提高BitcoinCore構建過程的安全性,使用確定性和可引導的構建包。這個新的構建系統可能還沒準備好支持即將在今年秋天發布的BitcoinCorev0.19.0,但未來可以提供更好的構建過程安全性。
結論
十年間,比特幣的開發文化滄海桑田,從圍繞中本聰的高度中心化,變為圍繞幾千名GitHub貢獻者的去中心化。顯然,代碼審核、代碼質量和安全性的高標準都是有必要的。這些標準得到了遵循和持之以恒的提高。
我認為,要完全理解比特幣開發現狀背后的哲學,了解這些歷史事件是必不可少的。所以我做了一個把更多事件串起來的時間線。
若有進一步的研究需求,建議閱讀AlexB.寫的TheTaoOfBitcoinDevelopment、EricLombrozo寫的TheBitcoinCoreMergeProcess以及JamesonLopp的大作WhoControlsBitcoinCore?。
致謝
感謝JohnNewbery幫助我梳理并審核這篇文章。他在自己的演講HistoryandPhilosophyofBitcoinDevelopment中做了很多歷史考證工作,該演講也是我這篇文章的基礎。此外,我非常感激ChaincodeLabs,他邀請我參加他們的2019夏令營,在那里我遇見了很多有意思的人,學到了很多東西,也正是在哪里,我開始著手整理時間線和撰寫這篇文章
時間線
2007年早期:中本聰開始開發比特幣
中本聰開始寫比特幣的代碼。這是根據中本聰在Cryptography郵件列表中一份寫于2008年11月17日的郵件中得出的:
“我確信自己已經在過去一年半的編程工作中解決了所有這些細節問題。”
見:e-mail(metzdowd.com)以及e-mail(nakamotoinstitute.org)
2008年11月1日:比特幣白皮書發布
中本聰在Cryptography郵件組中公布了白皮書:
聲音 | 中國信通院孫克:區塊鏈技術和融合大部分還處在不完善的階段:據21世紀經濟報道消息,關于區塊鏈技術的風險,中國信通院政策與經濟研究所數字經濟部主任孫克認為,一是去中心化的分布式共享賬本帶來了治理主體分散的問題;二是自動執行的智能合約帶來了其法律有效性的問題;三是區塊鏈難以篡改的特性帶來的數據隱私和內容治理問題;四是激勵機制與數字資產帶來的金融治理問題。此外,區塊鏈還有其技術本身風險如中心悖論、密鑰丟失風險等以及融合的風險如經濟社會風險、金融融合的風險。現在的技術和融合大部分還處在不完善的階段。對此,孫克提出建議:技術方面,要多方協同推進,加強關鍵技術研究,制定人才和標準;應用方面,以點帶面探索,加速行業應用推進,引導好應用的真實落地;監管層面,近期遠期結合,開展審慎包容監管,防范潛在風險。[2019/12/23]
“我一直在開發一個全新的數字現金系統,它是完全點對點的,沒有需要用戶信任的第三方。”
見:e-mail(metzdowd.com)以及e-mail(nakamotoinstitute.org),以及白皮書
2009年1月3日至9日之間:比特幣的創世區塊挖出
創世區塊的時間戳是1月9日。
這個區塊的coinbase交易包含了著名的一段話:
“TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks”
見:區塊瀏覽器、百科詞條
2009年1月9日:Bitcoinv0.1軟件發布
中本聰在Cryptography郵件組中寫道:
“我發布了Bitcoin軟件的第一個版本。比特幣是一種新的電子現金系統,使用點對點網絡來防止多重支付。它是完全去中心化的,沒有服務端,也沒有中心化的權威。”
見:e-mail
2009年12月16日:Bitcoinv0.2軟件發布
MarttiMalmi(sirius-m)加入了對Linux系統的初步支持。其它新功能包括在利用CPU的多個核心來挖礦以及初步支持使用代理。
見:bitcointalk.org
2010年7月6日:Bitcoinv0.3軟件發布
LaszloHanyecz(Bitcoinpizzaguy)加入了對macOS的支持。其他新特性包括JSON-RPC接口,以及一個新的daemon模式。用戶幫助把軟件的圖形界面翻譯成了德語、荷蘭語和意大利語。
見:bitcointalk.org
2010年7月15日:Bitcoinv0.3.1軟件發布
修復了各種各樣的bug。GavinAndresen開始作貢獻。
見:bitcointalk.org
2010年7月17日:Bitcoinv0.3.2軟件發布
中本聰加入了檢查點作為一項安全措施。檢查點就是鎖定某個高度的區塊哈希值必須是某個,否則就拒絕。中本聰寫道:
聲音 | 農行劉剛:基于大數據和區塊鏈技術 緩解三農地區信用體系不完善的問題:據金融界消息,3月22日,2019中國數字普惠金融大會在北京召開。中國農業銀行科技與產品管理局高級專家劉剛在會上表示,以前很難想象我們能夠把金融服務產品,尤其是信貸服務產品,能送到村里去。隨著技術的發展,我們能夠采用“云+端”的模式,把各種各樣的終端形式,在村一級的地方部署,基于大數據和區塊鏈技術,實現交易信息和客戶信息真實性、隱私保護和防篡改,有效緩解三農地區信用體系不完善的問題。[2019/3/22]
“我可能會從現在開始,每發布一個新版本就增加一個檢查點。如果軟件已經決定了哪個是被普遍接受的區塊鏈,就沒有必要留下一個徒增困擾的、可能在幾個月后發生逆轉的機會。”
見:bitcointalk.org、checkpointsadded(diffonGitHub)
2010年7月25日:Bitcoinv0.3.3軟件發布
這個版本加入了第一個共識層面的變更。
比特幣軟件開始跟隨累積工作量最多的鏈。在此之前,是跟隨字面意義上的最長鏈。
見:bitcointalk.org、consensuschange(diffonGitHub)
整個2010年夏天
Bitcoinv0.3.xx的多個版本在此期間放出
2010年8月15日:致命的溢出漏洞得到修復
中本聰在v0.3.9(ish)中放出一個補丁,告訴用戶和礦工要重組帶有溢出錯誤交易的區塊。
見:bitcointalk.org
2010?年8月22日:警報系統引入
中本聰開始開發一個警報系統,計劃在v0.3.11加入。他寫道:
“我一直在編寫一個警報系統。警報會在網絡中廣播,并在一些版本的軟件中生效。警報消息要用只有我知道的一把私鑰簽名。”
“節點偶爾陷入暫時的停機可能給你驚嚇,但總好過你發現自己的錢被全部吸走的驚嚇。”
“等什么時候我們很長一段時間都沒有再發現新bug、透徹的安全檢查也沒有發現任何問題時,這個系統可以縮減。我并不主張我們會永遠使用它。但比特幣還是一個beta階段的軟件。”
見:bitcointalk.org
2010年12月12日:中本聰發出最后一個帖子
中本聰在bitcointalk.org上發表他自己的最后一個帖子。他加入了一些DoS限制,并移除了前述的警報系統安全模式。
“在DoS保護上還有許多工作要做,但我正在開發一個備份的快速構建包,以備不測;更復雜的主意則以后再說。這個包所構建的軟件是v0.3.19。”
見:bitcointalk.org
2010年12月19日:開發工作轉移到GitHub上
Bitcoin軟件的活躍開發和issue跟蹤轉移到了GitHub上。
現場 | 姜寧:數字貨幣的交易系統是不完善的:金色財經現場報道,12月26日,在由金色財經主辦的金色沙龍上海站現場,加拿大COINSCIOUS聯合創始人姜寧參加了圓桌對話環節,他表示,現在資源集中到了頭部,但數字貨幣的交易系統是不完善的,和傳統IT有很大不同。我們應該給很多量化團隊,去提供一個很好的金融交易環境。[2018/12/26]
見:GitHub記錄的第一個issue
2011年4月23日:中本聰最后一次發聲
據稱來自中本聰給MikeHearn的最后一份電郵:
“我已經做別的事情去了。Gavin和大家會把這件事做好。”
見:pastebin.com上的電子郵件對話
2011年3月至6月:新的貢獻者加入
多位新的貢獻者加入:TheBlueMatt、sipa、laanwj和gmaxwell。
他們的第一次合并請求見:TheBlueMatt、sipa、laanwj、gmaxwell
*2011年8月19日:第一個BIP*
第一個BIP“BIP1:BIP的目的和指南”?出現。
見:BIP1onGitHub
2011年9月23日:Bitcoinv0.4推出
v0.4放出,主要的新功能是錢包加密。見:更新說明
2011年11月21日:Bitcoin-QTv0.5發布
新特性是新的qt圖形界面以及錢包加密功能的一個重大補丁
見:更新說明、CVE-2011-4447
2011年11月~2012年4月:P2SH和其他提議上的工作
多個提議都旨在允許交易的接收者可以指定花費資金的腳本。
P2SH在Bitcoin-Qtv0.5.4上實現。另外兩個則都被放棄了。
見:BIP12:OP_EVAL、OP_EVAL和并請求、OP_EVAL遞歸問題、BIP16:P2SH、BIP17:OP_CHECKHASHVERIFY
2012年3月30日:Bitcoin-QTv0.6發布
新特性包括地址二維碼,BIP30的一個實現,以及修復內存相關的拒絕服務攻擊向量。
見:更新說明
2012年9月17日:Bitcoin-QTv0.7發布
包括了BIP22、BIP34和BIP35的實現,以及圖形界面上的許多變更,還有聯網的RPC代碼。
見:更新說明
2012年9月27日:BitcoinFoundataion宣布成立
GavinAndresen宣布成立BitcoinFoundation。
見:bitcointalk.org上的帖子
2013年2月19日:Bitcoin-QTv0.8發布
本版更新將區塊鏈的存儲從BerkleyDB數據庫格式遷移成LevelIDB數據庫。“Ultraprune”功能由sipa(PieterWuille)實現了,他將UTXO集合從區塊鏈數據庫中分離了出來。
見:更新公告
2013年3月11日:意料之外的硬分叉
一次意料之外的硬分叉發生,將v0.8的節點與更老版本的節點分離了開來。
見:BIP50:2013年3月鏈分裂事件的事后報告,bitcoin.org網絡警報
2013年12月12日:軟件品牌重新包裝
Bitcoin-Qt軟件重新包裝,使用BitcoinCore的新名稱。
見:GitHub上的PR
2014年3月19日:BitcoinCorev0.9發布
新特性包括:OP_RETURN操作碼可以在區塊鏈中寫入數據,但也會讓相關的UTXO變成不可使用的狀態。此外,autotools用作構建系統,而bitcoin-cli作為一個RPC客戶端引入。
見:更新說明
2014年某個時間:ChaincodeLabs成立
AlexMorcos和SuhasDaftuar在2014年成立了ChaincodeLabs以打造一個工程師和科學家能夠支持去中心化數字貨幣開發的空間。
2014年10月23日:Blockstream成立
AdamBack、MattCorallo、GregMaxwell、PieterWuille等人創立了Blockstream公司并放出了他們的側鏈白皮書。
見:為什么我們要成立Blockstream?
2015年2月16日:BitcoinCorev0.10.0發布
重要的更新包括:首先同步區塊頭的同步方法,REST接口以及用來創建和操控交易的bitcoin-tx模塊。
見:更新說明
2015年2月:閃電網絡白皮書發布
JosephPoon和ThaddeusDryja發布了LightningNetwork白皮書第一版草稿
見:閃電網絡白皮書
2015年4月15日:MITDCI成立
MITMediaLab啟動了DigitalCurrencyInitiative。DCI是一個研究社區,聚焦密碼貨幣和區塊鏈技術。
見:DCI啟動公告
2015年7月12日:BitcoinCorev0.11.0發布
這一版軟件將區塊文件修剪當成一個主要的特性。
見:更新說明
2016年2月3日:BIP2
LukeDashjr起草了BIP2,提出了一個定義更清晰的BIP流程。這個提議被社區接受
見:BIP2:BIP流程修訂
2016年2月23日:BitcoinCorev0.12.0發布
主要更新是引入了libsecp、sendheader,選擇進入的RBF以及交易內存池限制。
見:更新說明
2016年4月15日:BitcoinCorev0.12.1發布
這一版本包含了BIP9以及OP_CHECKSEQUENCEVERIFY?軟分叉的定義。
見:更新說明
2016年8月23日:BitcoinCorev0.13.0發布
包含了為segwit預備的變更、壓縮區塊功能,交易池基于手續費價格的篩選,HD錢包的遲滯,以及CPFP交易選擇算法。
見:更新說明
2016年10月27日:BitcoinCorev0.13.1發布
這個版本包含了SegWit軟分叉。
見:更新說明
2016年11月1日:警報系統退休
網絡層的警報系統代表著比特幣的一個很大的中心化力量,如今走入歷史。
見:公告
2017年3月8日:BitcoinCorev0.14放出
本版軟件大幅提高了初次下載區塊的速度。
見:更新說明
2017年8月24日:SegWit激活
SegWit在比特幣主網上激活。
2017年9月14日:v0.15放出
本版軟件加入了一個更好的手續費預估功能,可在圖形界面追加手續費,還有多錢包功能以及腳本緩存功能。
見:更新說明
2017年11月11日:v0.15.1放出
這個版本著力于P2P網絡的安全性,以預防未來可能的網絡分叉,也修復了一些bug,為0.15.x系列做了優化和升級。
見:更新說明
2018年2月26日:BitcoinCorev0.16放出
這一版主要是為BitcoinCore錢包增加了SegWit支持。
見:更新說明
2018年10月3日:BitcoinCorev0.17放出
這一版本為錢包增加了一些功能。其中一個是支持部分簽名的比特幣交易。
見:更新說明
2019年3月20日:SquareCrypto成立
JackDorsey宣布SquareCrypto將招聘3~4名工程師和1位設計師來全職為比特幣生態作開源的貢獻。
見:tweet
2019年5月2日:BitcoinCorev0.18放出
本版更新包括了大量新功能和一些小變更。
見:更新說明
2019年5月6日:Taproot提出
PieterWuille提出了多個BIP以在比特幣中實現Schnorr簽名以及taproot,以提高比特幣智能合約的隱私性、效率和靈活性。
見:郵件組帖子
2019年8月9日:BitcoinCorev0.18.1放出
這個小版本加入了新功能,多個補丁以及性能升級,還更新了翻譯。
見:更新說明
2019年8月19日:Miniscript推出
PieterWuille提出了Miniscript,讓比特幣腳本的編程更友好的語言。
見:郵件組帖子,項目頁面
2019年11月24日:BitcoinCorev0.19.0.1發布
這個版本加入了新功能,多個補丁以及性能升級,還更新了翻譯。
見:更新說明
2020年3月9日:BitcoinCorev0.19.1發布
這個版本修復了多個bug,提高了性能。
見:更新說明
2020年6月3日:BitcoinCorev0.20.0發布
這個版本修復了多個bug,提高了性能。
見:更新說明
2020年8月1日:BitcoinCorev0.20.1發布
這個小版本的更新包括應對不軌對等節點的方式不同,錢包提醒以及PSBT支持帶witness和不帶witness的UTXO。
見:更新說明
2020:為比特幣項目和個人貢獻者設置的開發獎
包括BitMEX、SquareCrypto、OKCoin、BTSE、Kraken在內的公司,以及HumanRightsFundation、Paradigm和Coinbase交易所,為比特幣項目和個人貢獻者設立了多個開發獎項。
見:SquareCryptoGrants、BitMEXGrants、OKCoinGrants、CoinbaseGrants、PolylunarGrantTracker、BitcoinWordsGrantTracker
原文鏈接:https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/
作者:0xB10C
翻譯:阿劍
Tags:OINCOICOINBITcoinw幣贏交易所quantumbitcoinExtra Ordinary Coinbybit下載蘋果
閃電網絡是一種去中心化的鏈下技術方案,可支持每秒上萬筆交易并發,接近于Visa系統能做到的程度.
1900/1/1 0:00:00原標題:起底騰訊游戲“元宇宙”全家桶天美、光子、北極光、魔方四大工作室傾巢出動技術上能否實現暫擱一邊,反正“Metaverse元宇宙”概念是又火了一把.
1900/1/1 0:00:00注:原文作者為BenGiove,Bankless撰稿人兼ChapmanCrypto總裁,以下為全文編譯。永遠不要低估簡并的力量.
1900/1/1 0:00:00NFT即非同質化代幣,是基于區塊鏈技術的一種資產類型。它代表了某種獨一無二的具體資產的所有權,比如數字藝術品、虛擬游戲物品、稀有收藏品或其他數字或實體資產等.
1900/1/1 0:00:00美聯儲公布利率決議之際加密市場出現短時下跌。不過隨著靴子落地,加密市場止跌。隨后,市場消息傳出推特將添加比特幣為小費支付方式,在全球范圍內推出iOS的打賞機制,即將支持Android,還計劃引入.
1900/1/1 0:00:00在以太坊2.0到來之前,新興公鏈和Layer2始終都有機會。不過現在新興公鏈的角逐已經進入下半場,而Layer2賽道的角逐才正式開始.
1900/1/1 0:00:00