要想完全理解比特幣開發現狀背后的原因,就不能不了解一些歷史事件。本文著重列舉了中本聰離開這個項目前后的歷史事件、軟件發布和漏洞修復;還額外添加了一個章節敘述比特幣開發的現狀。文章后附的時間線為每一個事件提供了額外的細節。
對于這里的大部分事件,我都不是親歷者。所以這份時間線的一大部分引自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基金會。在公告帖子下面,一些人留言表示擔心開發會變得中心化。
Moelis創始人:不完全相信加密貨幣:投行Moelis創始人:不完全相信加密貨幣,不是忠實的加密貨幣信仰者。70-80%的Meme股票投資者只是在尋找樂趣。 (金十)[2021/6/8 23:22:24]
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告訴我,“只需一個審核人員首肯就能合并影響共識的代碼的事情,已經一去不復返”。
人們也投入了很多精力到自動化的測試中,比如,有C++語言編寫的單元測試和Python語言編寫的功能性測試。每一個不簡單的變更都要相應更新現有的測試或者在框架中加入新的測試。在單元測試和功能測試以外,還要在BitcoinCore上做模糊測試,以及建立基準測試框架來度量代碼的性能。舉個例子,bitcoinperf.com網絡提供了Grafana和codespeed接口來可視化周期性的基準測試的結果。
多年努力下來,BitcoinCore軟件已經形成了一個清晰的發布流程。BitcoinCore的大版本每6個月發布一次。發行計劃包括一個翻譯流程,一個特性凍結流程,還通常有多個候選版本。近期CoryFields和CarlDong還致力于提高BitcoinCore構建過程的安全性,使用確定性和可引導的構建包。這個新的構建系統可能還沒準備好支持即將在今年秋天發布的BitcoinCorev0.19.0,但未來可以提供更好的構建過程安全性。
BM:EOS治理挑戰可通過不完全修復來改善:EOS創始人BM(Daniel Larimer)在回復推特網友時稱:“EOS治理的挑戰可以通過不完全修復來改善。所有區塊鏈都存在治理問題。那些“運行平穩”的是中心化的。”[2020/10/30]
結論
十年間,比特幣的開發文化滄海桑田,從圍繞中本聰的高度中心化,變為圍繞幾千名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郵件組中公布了白皮書:
“我一直在開發一個全新的數字現金系統,它是完全點對點的,沒有需要用戶信任的第三方。”
見: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軟件的第一個版本。比特幣是一種新的電子現金系統,使用點對點網絡來防止多重支付。它是完全去中心化的,沒有服務端,也沒有中心化的權威。”
日本前內閣府副大臣:當前數字貨幣市場法規仍不完善:近日,日本前內閣府副大臣Minukiuki Fuku參與活動表示,盡管當前數字貨幣市場上的法規有很多不清楚的地方,但這是新興市場規則形成過程中所必不可少的。然而在實際參與制定數字貨幣市場的規則中面臨各種障礙,遇到的第一個問題就是如何稱呼除比特幣外存在的虛擬貨幣。[2020/10/26]
見: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軟件發布
中本聰加入了檢查點作為一項安全措施。檢查點就是鎖定某個高度的區塊哈希值必須是某個,否則就拒絕。中本聰寫道:
“我可能會從現在開始,每發布一個新版本就增加一個檢查點。如果軟件已經決定了哪個是被普遍接受的區塊鏈,就沒有必要留下一個徒增困擾的、可能在幾個月后發生逆轉的機會。”
見: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加入。他寫道:
“我一直在編寫一個警報系統。警報會在網絡中廣播,并在一些版本的軟件中生效。警報消息要用只有我知道的一把私鑰簽名。”
Bella Fang:當前的合約交易市場運行規則還不完善:據官方消息,4月30日13:00,WBF創始人Bella Fang受邀出席9+N戰隊發布會,在9+N戰隊直播間向大家分享了WBF“流量帝國”的打造方法,并闡述了瓦特合約的核心優勢。
Bella Fang表示:“當前的合約交易市場運行規則還不完善,合約也是高風險高回報的產品。瓦特合約有強大的風控機制,正常交易頻次下,瓦特合約支持百萬級并發。更是加入了“標記價格“、“梯度保證金”和“部份減倉機制”, 可以有效地加強風險管理,保障用戶權益。”
截至目前,WBF交易所平臺注冊用戶已經超過380萬。[2020/4/30]
“節點偶爾陷入暫時的停機可能給你驚嚇,但總好過你發現自己的錢被全部吸走的驚嚇。”
“等什么時候我們很長一段時間都沒有再發現新bug、透徹的安全檢查也沒有發現任何問題時,這個系統可以縮減。我并不主張我們會永遠使用它。但比特幣還是一個beta階段的軟件。”
見:bitcointalk.org
2010年12月12日:中本聰發出最后一個帖子
中本聰在bitcointalk.org上發表他自己的最后一個帖子。他加入了一些DoS限制,并移除了前述的警報系統安全模式。
“在DoS保護上還有許多工作要做,但我正在開發一個備份的快速構建包,以備不測;更復雜的主意則以后再說。這個包所構建的軟件是v0.3.19。”
見:bitcointalk.org
2010年12月19日:開發工作轉移到GitHub上
Bitcoin軟件的活躍開發和issue跟蹤轉移到了GitHub上。
見: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和其他提議上的工作
日本處罰多家虛擬貨幣交易所,內部管理不完善的交易所或將被迫“關門”:據日經新聞報道,日本金融廳(FSA)向Coincheck下達了額外的業務改善命令,并對多個虛擬貨幣交易所處以行政處罰。目的是優先保護用戶,并徹底識別交易環境中的不足之處。日本金融廳試圖加強監管,并引導長期的市場發展。那些沒有正確實施內部管理和安全措施的交易所將面臨被迫退出的可能性。[2018/3/7]
多個提議都旨在允許交易的接收者可以指定花費資金的腳本。
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:OINCOINCOIBITcoincheck交易所怎么出金coincheck交易平臺合法嗎Creditcoinbitflyer交易所退p2p
9月19日消息,1921年,美國實業家亨利福特提議創建一種“能源貨幣”,它可以構成新貨幣體系的基礎——這與中本聰2008年比特幣(BTC)白皮書中概述的點對點電子現金系統有著驚人的相似之處.
1900/1/1 0:00:00頭條 ▌美國SEC主席:證券法規給予SEC監管加密貨幣的權利美國證券交易委員會主席根斯勒(GaryGensler)稱,證券法規給予SEC監管加密貨幣的權利.
1900/1/1 0:00:00隨著DeFi、NFT等生態輪番上陣,公鏈進入多鏈競爭的新時代。除老牌區塊鏈網絡以太坊之外,Solana、Fantom、Avalanche、Polygon、Cardano?等新生代公鏈開始進入市場.
1900/1/1 0:00:00ETH2質押機制 2020年12月1日,以太坊啟動信標鏈,開始從工作量證明向權益證明過渡——以太坊2.0進入第0階段。以太坊網絡將由質押32個及以上ETH的驗證者保護.
1900/1/1 0:00:00"監管收緊,交易所調整航向,舊事重提STO。"美國證監會SEC與加密領域的對話更加頻繁了,最先接收到監管加強信號的是中心化交易所.
1900/1/1 0:00:00MaskNetwork憑借一款插件先于Twitter在NFT賽道進行前瞻性布局,除NFT展示和NFT頭像外,可能還會在之后讓CryptoPunks成為項目代言人或CEO.
1900/1/1 0:00:00