買以太坊 買以太坊
Ctrl+D 買以太坊
ads
首頁 > NEAR > Info

ORE:比特幣不屬于任何個人 但誰在掌控 Bitcoin Core?_BIT

Author:

Time:1900/1/1 0:00:00

誰在控制BitcoinCore的GitHub信息庫,這個問題經常被人提出。但這本身就是一個轉移視線的提法,源于威權主義的觀點。顯然,這種提法不適用于BTC。

本文旨在揭示BitcoinCore如何運作,以及在更高層次上BTP本身如何發展。

本文作者為BitcoinCore開發者,由加密谷獨家編譯

BitcoinCore的歷史

BitcoinCore是開發BTP的焦點,而不是一個指揮和控制點。如果它因為任何原因不復存在,一個新的焦點就會出現——它所基于的技術通信平臺(目前是GitHub存儲庫)是一個方便而非定義/項目完整性的問題。事實上,我們已經目睹BTC發展重心改變了平臺甚至名字!

2009年初,BTC項目的源代碼只是托管在SourceForge上的一個.rar文件。早期的開發人員實際上會通過E-mail與Satoshi交換代碼補丁。

2009年10月30日,Sirius(MarttiMalmi)在SourceForge上為BTC項目創建了一個subversion存儲庫。

2011年,BTC項目從SourceForge遷移到了GitHub。

2014年,BTC項目更名為BitcoinCore。

不輕信任何人

雖然一些少數有組織的GitHub“維護者”帳戶能夠將代碼合并到主分支中,但這更像是一種“清潔工”的職位,而非掌權者。

BitcoinCore遵循最小特權原則,即如果被濫用,任何賦予個人的權力都很容易被顛覆。

PeterTodd推文:“Core對于重要的列表是公開透明的,可以簽署合并提交的PGP密鑰。”

這里要學到的教訓是:不要輕易相信GitHub!即便BitcoinCore也不知道可以更改回購的人員的完整列表,因為這可能擴展到數十名GitHub員工。”

從反抗者的角度來看,GitHub是不可信任的。任何GitHub員工都可以使用他們的管理權限將代碼注入存儲庫,而無需維護人員的同意。但GitHub攻擊者不太可能破壞BitcoinCore維護者的PGP密鑰。

BitcoinCore不是基于GitHub帳戶代碼的完整性,而是具有持續集成系統,該系統執行必須對每個合并提交簽名的可信PGP密鑰進行檢查。雖然這些密鑰與已知身份相綁定,但仍然無法確保萬無一失。密鑰可能會被泄露,除非原始密鑰持有者通知其他維護者,否則我們將無從得知。因此,提交密鑰也不能提供完美的安全性,它們只會使攻擊者更難以注入任意代碼。

美SEC確認收到Bitwise的現貨比特幣ETF重新申請:金色財經報道,美國證券交易委員會(SEC)已正式確認收到(acknowledged)Bitwise的現貨比特幣申請。這家總部位于舊金山的數字資產管理公司于2021年10月首次申請了現貨比特幣ETF,但于今年6月28日修改并重新提交了申請。

美國SEC稱,根據紐約證券交易所ARCA規則8.201-E(基于商品的信托股票)提交擬議規則變更的通知,以列出和交易Bitwise比特幣ETP信托的股票。[2023/7/14 10:55:53]

開啟王國的鑰匙

在撰寫本文時,這些是可信賴的PGP指紋:

71A3B16735405025D447E8F274810B012346C9A6133EAC179436F14A5CF1B794860FEB804E66932032EE5C4C3FA15CCADB46ABE529D4BCB6416F53ECB8B3F1C0E58C15DB6A81D30C3648A882F4316B9BCA03882CB1FC067B5D3ACFE4D300116E1C875A3D

這些密鑰注冊給了:

WladimirJ.vanderLaan

PieterWuille

JonasSchnelli

MarcoFalke

SamuelDobson

這是否意味著我們可以完全相信這五個人?并不是。鑰匙不是身份證明,可能落入其他人的手中。如果運行verify-commitspython腳本,你能得到什么保證呢?

python3contrib/verify-commits/verify-commits.pyUsingverify-commitsdatafrombitcoin/contrib/verify-commitsAllTree-SHA512smatchedupto309bf16257b2395ce502017be627186b749ee749Thereisavalidpathfrom“HEAD”to82bcf405f6db1d55b684a1f63a4aabad376cdad7whereallcommitsaresigned!

Verify-commits腳本是一個完整性檢查,任何開發人員都可以在他們的機器上運行。執行后,它會在自2015年12月提交82bcf405之后的每個合并提交中檢查PGP簽名。在編寫時已經超過3,400次合并。

比特幣全網未確認交易數量為3.267筆:金色財經報道,BTC.com數據顯示,目前比特幣全網未確認交易數量為3.267筆,全網算力為273.20 EH/s,24小時交易速率為3.16交易/s,目前全網難度為36.76 T,預測下次難度上調2.33%至37.62 T,距離調整還剩9天7小時。[2022/11/13 12:56:31]

如果腳本成功完成,它告訴我們,自那時起已經更改的每一行代碼都已通過BitcoinCore開發過程,并被具有維護者密鑰的人進行了“簽名”。雖然這無法完全保證沒有人注入惡意代碼,但會大大減少攻擊面。

什么是“維護者”,以及他們是如何實現這一角色的,這點我們稍后會深入研究。

多層防御

BitcoinCore代碼的完整性不能僅僅依賴于少數密鑰,這就是為什么存在大量其他檢查的原因。

有許多安全層來提供深度防御:

PullRequest安全性

任何人都可以通過在Bitcoin/Bitcoin上打開針對主分支的PullRequest(簡稱PR),來自由地提出代碼更改,以改進軟件。

開發人員審核PR以確保它們無害。任何人都可以自由地審查PR并提供反饋。在為BitcoinCore做出貢獻時,沒有門檻或入門測試。如果沒有人對一個PR提出合理的反對意見,那么維護者就會進行合并。

Core維護者設置pre-pushhook,以確保它們不會將未簽名的提交推送到存儲庫中。

合并提交可以選擇通過OpenTimestamps加上安全時間保障。

TravisContinuousIntegration系統會定期運行此腳本以檢查gittree的完整性,并驗證主分支中的所有提交是否都由可信的PGP密鑰進行簽名。

任何想要運行此腳本以驗證所有合并提交的PGP簽名的人都可以追溯到2015年12月。

發布安全性

Gitian確定性構建系統由多個開發人員獨立運行,目標是創建相同的二進制文件。如果有人設法創建與其他開發人員不匹配的構建,即表明引入了非確定性,則最終版本不會發生。如果存在非確定性,開發人員會追蹤出錯的地方,修復它,并構建另一個候選版本。一旦確定性構建成功,那么開發人員就會對生成的二進制文件進行簽名,從而保證文件和工具鏈不被篡改并且使用相同的源代碼。此方法將構建和分發過程作為單點故障刪除。任何具有技術技能的人都可以運行自己的構建系統。

美國國會議員稱比特幣“沒有社會價值”,只適合逃稅:金色財經報道,美國國會議員Brad Sherman在接受采訪時否定了比特幣成為未來貨幣的潛力,他表示,比特幣比美元具有的優勢是可以幫助諸如逃稅之類的犯罪。他還表示,比特幣無法幫助改善經濟。他說:“假設它成為一種貨幣。在這種情況下,只是因為它可以在一些相當大的市場上超越美元,特別是逃稅市場,這就是為什么它沒有社會價值。”

不過Sherman承認,目前幾乎不可能取締這種資產,但他指出,通過監管,政府可以重新獲得“一些控制權”。(Finbold)[2022/9/12 13:23:28]

一旦Gitian構建成功完成,并由構建者簽署,BitcoinCore維護者便會簽署一條包含每個SHA256哈希值的消息。如果你決定運行預構建的二進制文件,則可以在下載后檢查其哈希值,然后使用哈希值驗證簽名版本消息的真實性。

以上所有內容都是開放源代碼,任何有技能和意愿的人都可以審核。

最后,即使完成上述所有質量檢查和完整性檢查,提交到BitcoinCore,并最終進入版本的代碼也不會被任何中心化的實體部署到節點網絡上。相反,每個節點運行者必須有意識地決定是否更新他們運行的代碼。BitcoinCore刻意沒有加入自動更新功能,因為它可能用于使用戶運行他們沒有明確選擇的代碼。

盡管BitcoinCore項目實施了所有技術安全措施,但它們也并非完美。理論上,任何代碼都有可能遭到損害。BitcoinCore代碼完整性的最后一道防線與任何其他開源項目相同:時刻保持警惕。有越多的人盯著BitcoinCore代碼,進入發布版本的惡意或缺陷代碼就越少。

代碼覆蓋范圍

BitcoinCore有許多測試代碼。有一個針對每個PR運行的集成測試套件和一個每晚在主服務器上運行的擴展測試套件。

可以通過以下方式自行檢查測試的代碼覆蓋率:

1.克隆BitcoinCore的GitHub存儲庫;

2.從源代碼安裝構建所需的依賴項;

3.運行這些命令;

4.在./total_coverage/index.html上查看報告;

或者,可以查看由MarcoFalke主持的代碼覆蓋率報告。如下圖:

代碼覆蓋率報告

代碼覆蓋率越高,意味著預期運行的確定性越高。

當涉及到共識關鍵軟件時,測試非常重要。對于特別復雜的更改,開發人員有時需要進行艱苦的變異測試。也就是說,他們通過故意破壞代碼來查看測試是否會按照預期一樣失敗。

貝寶金融佟磊:加密資產機構間拆借利率對把握比特幣價格走勢有指導意義:金色財經現場報道,4月24日,由印比特主辦、金色財經和易礦聯合主辦,珠海市橫琴新區數鏈數字金融研究院指導的《2021新基建區塊鏈峰會》在成都召開。貝寶金融金融服務負責人佟磊以《把握加密貨幣市場機遇拐點》為題進行分享。他指出,利率是資產定價的核心,在傳統金融市場,把握住利率變化大概就知道了一個資產的價格和走勢。比特幣也是一項金融資產,它的價格和邏輯也離不開宏觀經濟的分析框架。歸根到底,這一輪牛市最終動力來源還是美聯儲主導的各國央行的貨幣寬松,這是一系列資產價格上漲的來源。我們關注利率指標,就能大概率提前去預知牛市的節奏。盡管目前在加密資產市場還沒有一個統一指標把握其市場利率,但有一個值得關注的點,就是加密貨幣信貸市場里的機構之間存在著相互拆借的交易,拆借市場的利率是值得關注的指標。2020年312暴跌之前,機構間拆借利率快速升高,我們認為是對市場杠桿過高的提前預警。[2021/4/24 20:54:18]

GregMaxwell在討論0.15版本時,對這個過程給出了一些見解:

“測試是對軟件的測試。要測試,你必須破解軟件本身。”

自由市場競爭

BitMEX曾撰寫了一篇關于BTC實現路徑生態系統的精彩文章。目前有十幾種不同的BTC實現方式,甚至會有更多的“競爭網絡”實現。這是開源的自由,任何對BitcoinCore項目不滿意的人,都可以自由地開啟他們自己的項目。他們可以從頭開始,也可以分叉Core軟件。

在撰寫本文時,有96%的BTC節點正在運行某種版本的BitcoinCore。為什么會出現這種情況?

如果切換到另一個軟件實現路徑所需的努力最小,那么是否意味著BitcoinCore在節點網絡上具有近乎壟斷的地位?畢竟,許多其他實現方法提供了與BitcoinCore兼容或高度相似的RPCAPI。

我認為,這是BitcoinCore成為開發焦點的結果。它擁有更多開發人才和時間作為支持,這意味著,BitcoinCore項目生成的代碼往往擁有最好的性能、穩健和安全。

在資金管理方面,節點運營商不會想運行次好的軟件。同時,鑒于這是一個共識軟件,BTP不具有,一個正式的規范,因為沒有人有權威制訂。因此,用焦點開發人員的實現方式或多或少都更安全。

從這個意義上說,開發焦點的代碼是最接近現有規范的代碼。

誰是Core的開發人員?

CME比特幣期貨4月合約收報56715美元:金色財經報道,成交量最高的CME比特幣期貨2021年4月合約今日收漲670美元,收報56715美元。2021年5月、6月及7月合約分別收報57080美元、57480美元和58025元。[2021/4/21 20:41:57]

對于不熟悉BitcoinCore開發過程的人,從外部看這個項目,可能會認為Core是一個單一的實體。實際情況遠非如此!

核心貢獻者之間經常存在分歧,即使是最多產的貢獻者也編寫了大量從未合并到項目中的代碼。如果閱讀相關指南,你可能會注意到,它們相當松散——這個過程可以用“粗略的共識”來描述。

維護人員會考慮:一個補丁是否符合項目的一般原則?是否符合納入的最低標準?進而對貢獻者的普遍共識進行判斷。

誰是BTCCore的維護者?他們是在一段時間內做出高質量的代碼、在項目中累積了足夠的社會資本的貢獻者。

當現有的維護者們認為,某位貢獻者是在某一領域能力表現突出、可靠、積極的人選時,他們可以授予該人員GitHub帳戶提交訪問權。

首席維護者的角色負責監督和協調項目的方方面面。它是多年來自愿流傳下來的:

SatoshiNakamoto:1/3/09-2/23/11

GavinAndresen:2/23/11-4/7/14

WladimirvanderLaan:4/7/14—present

作為一個BitcoinCore維護者通常被稱為“清潔工”,因為維護者實際上沒有權力做出違背貢獻者或用戶共識的決定。然而,由于整個生態系統被外界過分關注,這個角色的工作可能相當繁重。

例如,GregoryMaxwell(格雷戈里·麥克斯韋爾)在2017年出于個人原因放棄了他的維護者角色,很可能是因為他在擴容討論期間所承受的公眾壓力。

Wladimir寫了一篇作為核心維護者的壓力的文章,其中解釋了為什么移除Gavin的提交訪問,這讓很多人感到不安。

同樣地,當JeffGarzik被從GitHub組織中移除時,他和其他人也都感到不滿,但他已經兩年沒有為Core做貢獻了。保留他GitHub帳戶對儲存庫的訪問權限,不僅對項目沒有任何好處,反而會構成安全風險,并且違反了Wladimir在他的文章中提到的最小特權原則。

其他人可能會關注Core,認為它是一個技術統治或象牙塔,讓新人很難加入。但如果你和貢獻者交談,就會發現事實并非如此。雖然多年來只有十幾個人擁有提交訪問權限,但已有數百名開發人員做出了貢獻。我自己也做了一些小貢獻。雖然我不認為自己是一個“核心”開發人員,但嚴格來說,我也是一名Core開發者。沒有人能阻止你做出貢獻!

MattCorallo推文:“2011年,作為一名不懂標記的高中生,開發者社區與我合作,讓我糟糕的補丁變得值得合并,并創造了一個偉大的學習環境。”

JohnNewbery推文:”2016年,@TheBlueMatt在@ChaincodeLabs組織了一次訪問。我一直在閱讀有關BTC的所有內容,我可以放手嘗試,但還是不敢提交PR。Matt,Alex和Suhas非常慷慨地花時間教我們關于BTC的一切,以及如何做貢獻。”

JeffRade推文:”我開始對@bitcoincoreorg進行小型提交,并且對@MarcoFalke@pwuille@orionwl@LukeDashjr和@jfnewbery加入我的PR深深感動,這真是一個熱情的項目!”

人們最難以理解的事情之一似乎是,BTC發展的焦點并不僅僅是BitcoinCoreGitHub賬戶定義的結構。雖然BitcoinCore有一些結構(它使用中心化的通信渠道來進行協調),但項目本身不受任何參與者的控制——即使是那些升級了GitHub存儲庫特權的參與者也不行。

雖然從技術上講,維護人員組織內部可能會發生“政變”,并有可能劫持GitHub存儲庫,審查持不同意見的開發人員,甚至可能搶奪“BitcoinCore”的品牌名稱,但結果是BitcoinCore將不再是開發的重點。反對維護者行為的開發人員只需將代碼分叉,并將工作轉移到BitcoinCore維護者沒有管理權限的另一個存儲庫。

即使沒有“政變”,如果一個有爭議的變更以某種方式進入Core,部分開發人員會將軟件分叉,刪除這個變更,并將其提供給用戶使用。你可能會說,這正是AmaurySechet分叉BitcoinCore,并刪除隔離見證,創建比特幣ABC時所發生的事情。或者,如果Core拒絕一些人想要的提議的變更,開發人員可以分叉,再添加這些變更。這種情況發生過很多次,例如:

MikeHearn用forkedCore創建了BitcoinXT

AndrewStone創立了Core,創建了BitcoinUnlimited

JeffGarzik用forkCore創建了BTC1

分叉代碼很容易。轉移BTC發展的焦點卻很困難的——你必須說服貢獻者,他們最好把時間花在另一個項目上。

JamesLopp推文:”我不對任何人、任何比特幣開發團隊效忠。我的意圖是運行最能保護我財務主權的代碼。”

很難說服公眾。用戶不會盲目地追隨BitcoinCore的變化,這是一種自我強化的信念,因為如果用戶不參與共識過程,并意識到自己的選擇,他們就會把部分權力拱手讓給開發者。

然而,用戶在2017年的UASF(UserActivatedSoftFork)運動中,實行了他們的權利。一位化名shaolinfry的BTC開發者提出了BIP148,這個提案將迫使礦工在8月1日左右激活隔離見證。

然而,由于BIP148爭議太大,無法被BitcoinCore采納,所以shaolinfry將Core進行了分叉,并提供了“BitcoinUASF”軟件。這個軟件實現獲得了不小的吸引力,并且創造了充分的壓力來說服礦工在BIP148截止日期之前采用BIP91來激活fork。

在我看來,最好的BitcoinCore貢獻者是那些充分實行主權的人。例如JohnNewbery,盡管他沒有編寫包含這個特定共識錯誤的代碼,但是他認為自己有責任仔細地檢查來阻止它被合并,并且在編寫測試時發現這個錯誤的代碼。

JohnNewbery推文:”我為CVE-2018-17144的錯誤全權負責。錯誤的代碼被合并是不對的。由于沒有徹底地審查共識變更,整個社區搞砸了它,開發人員需要注意!這是大家的責任。”

我們都是Satoshi(中本聰)!

為BitcoinCore做貢獻

雖然有足夠的資源可以幫助有抱負的開發人員,但為Core做貢獻仍舊讓人感到畏懼。你可以從JimmySong寫的指導說明“AGentleIntroductiontoBitcoinCoreDevelopment”入手。

Core開發人員EricLombrozo還撰寫了一篇文章“TheBitcoinCoreMergeProcess”,了解如何在Core存儲庫中進行更改。

此外,AlexB.撰寫了一篇關于BTC開發理念的優秀文章“TheTaoofBitcoinDevelopment”,任何想要成為貢獻者的人都可以通過閱讀它來節省大量時間。

具體的示例可能會有所幫助。在寫這篇文章時,我嘗試在我的機器上運行verify-commits.py腳本,以便審核GitHub提交歷史記錄的完整性,但遇到了困難。

為了便于未來的開發人員規避這些問題,我打開了一個PR來改進文檔。從PR歷史中可以看出,有4位不同的開發人員提出了如何改進PR的建議。這包括使用不同的wiki標記到簡化的bash命令,以及可以在verify-commits.py腳本中使用的新參數。我認為所有的建議都很合理,所以我將它們合并到我的代碼中,并為我的PR推送了更新版本。在那時,參與審查的開發人員承認可他們發現PR,維護者MarcoFalke將其標記為包含在0.18版本中。經過幾天的努力,開發人員沒有反對意見,代碼被維護者SamuelDobson合并到了Core中。

總結:沒有人能夠掌控BTC

正如飽受爭議的那樣,把BTC理解為一個系統是不可能的。對BTP的定義(控制),就如同對語言的定義。語言是自然產生的,對詞匯含義的共識是有機的,而不是由字典決定的。就像字典描述一種語言的現象而不是定義它,BTC的實現方式也用代碼描述了BTC的語言。沒有人被迫同意字典中給出的定義,同樣,也沒有人被迫運行BTC實現方式或認同這一過程中的代碼。

語言不受民主支配,BTC也不受民主管理。雖然你可能會聽到人們提到礦工、節點、開發人員或用戶“投票”,但是,沒有任何一種機制能夠讓多數人迫使持不同意見的少數人接受他們不同意的變更。簡言之,BTC是無政府狀態——沒有統治者,但也不是沒有規則。規則由網絡上的各個參與者定義和執行。

對BTP本身的更改通常是通過BTC改進提案流程進行的,即使這只是一個推薦的最佳實踐,也不能強迫任何人遵循它。它只是一種更正式的方式,試圖通過同行審查和建立共識的過程來指導變革。

BTC抗脆弱性的一個重要方面——如果只有一個單一的控制點,那么它也是一個單一的故障點,會被強大實體所利用。最終,每個節點運行者通過確保網絡上沒有其他人違反它們達成一致的規則來管理自己。這種安全模型是BTC自下而上治理的基礎。

沒有人掌控BTC。沒有人掌控BTC開發的焦點。

-END-

JamesonLopp作者

DUANNIYI翻譯

SonnySun編輯

Roy排版

Tags:COREOREBITTCOcore幣釋放規則Restorebybit交易所官網下載安裝bitcoin交易所怎么樣

NEAR
COI:KuCoin上線Crypto.com Chain (CRO)!_fishcoin

親愛的KuCoin用戶:KuCoin現在已上線Crypto.comChain(CRO)并支持交易對:CRO/BTC.

1900/1/1 0:00:00
DLO:趙長鵬手撕澳本聰:你個辣雞!帶著BSV好走不送_NAUT

“澳本聰根本不是中本聰。夠了,我們要下架!”今日,幣安CEO趙長鵬發推稱,該交易所可能會下架BitcoinSV——目前市值排名第12位的加密貨幣.

1900/1/1 0:00:00
PRO:比特幣礦機迭代:一場7NM芯片引發的“軍備競賽”_BOLTT價格

-31QU的第289期推送-2018年下半年以來,在臺積電等全球頂級芯片企業芯片制造工藝不斷推陳出新的推動下,7nm芯片得到了量產.

1900/1/1 0:00:00
IOTA:沖突的公鏈!來自 P2P 協議的異形攻擊漏洞_比特幣價格實時行情

作者:慢霧安全團隊 當我們談論區塊鏈時,總是離不開這些技術:分布式存儲、P2P網絡和共識機制,本次我們要談的問題就是出現在P2P對等網絡協議上.

1900/1/1 0:00:00
BUN:搖號公證“鏈”上跑 浙江首個區塊鏈公證搖號系統上線測試_UNCH

浙江在線4月29日訊購房,上牌,入學……不知不覺間,搖號成了生活里不可或缺的一部分。那你知道嗎?從下個月開始,杭州的搖號系統中將正式出現區塊鏈的影子.

1900/1/1 0:00:00
ads