比特幣核心的歷史
比特幣核心是比特幣協議開發的焦點,而非命令與控制點。倘若因為什么原因,這個焦點停止存在了,就會有一個新的焦點冒出來。比特幣核心依賴的基礎——技術交流平臺,是因為便利而存在的,不是因為定義/項目的完整性而存在的。現實中,比特幣的開發焦點已經更換了平臺,甚至更換了名稱!2009年初,比特幣項目的源代碼只是一個rar壓縮包,存在SourceForge服務器上。早期的開發者會用電郵跟中本聰交換代碼補丁。2009年10月30日,Sirius在SourceForge網站上創建了一個subversion代碼倉庫。2011年,比特幣項目從SourceForge遷移到GitHub。2014年,比特幣項目更名“BitcoinCore”。不相信任何人
GitHub的組織層面上,確實有不多幾個“維護人員”的賬戶,能夠將代碼合并到“主分支”;然而這種地位不是權力的象征,只是類似“看守”的身份。試想,若是不論張三李四都能把代碼合并到主分支,很快就會變成“廚子多了做壞了湯”的結果。比特幣核心遵守“最小特權原則”,也就是任何人只要濫用權力,就會被輕易推翻。
從對抗角度來看,GitHub是不能被信任的。GitHub任何員工都可以運用管理特權,將代碼注入代碼倉庫,無需經過維護人員的同意。但是,GitHub的攻擊者卻幾乎不可能損害比特幣核心維護人員的PGP密鑰BitcoinCore并沒有將代碼的完整性建立在GitHub賬戶上,他們有一個連續的集成系統,執行那些受信任的PGP密鑰的校驗;這些密鑰必須簽署每一份“合并提交”。這些密鑰的確跟身份已知的某些人相關,但依然不能擔保情況永遠會這樣而不變——某個密鑰可能會受到損害,我們也不會知道密鑰受到損害,除非原始的密鑰主人通知了其他的維護人員。如此一來,“提交密鑰”也就不提供完美的安全保護,只是讓攻擊者插入“任意代碼”的難度提高了。通向王國的密鑰
我寫這篇文章的時候,受信任的PGP指紋如下:71A3B16735405025D447E8F274810B012346C9A6133EAC179436F14A5CF1B794860FEB804E66932032EE5C4C3FA15CCADB46ABE529D4BCB6416F53ECB8B3F1C0E58C15DB6A81D30C3648A882F4316B9BCA03882CB1FC067B5D3ACFE4D300116E1C875A3D這些指紋注冊到:WladimirJ.vanderLaan<laanwj@protonmail.com>PieterWuille<pieter.wuille@gmail.com>JonasSchnelli<dev@jonasschnelli.ch>MarcoFalke<marco.falke@tum.de>SamuelDobson<dobsonsa68@gmail.com>這是否意味著我們就相信這五個人呢?不太對。密鑰不是身份的證明;這些密鑰有可能落到別人手中。我要是運行了verify-commits的python腳本,我有什么保證呢?python3contrib/verify-commits/verify-commits.py使用來自bitcoin/contrib/verify-commits的verify-commits數據所有Tree-SHA512s都匹配到309bf16257b2395ce502017be627186b749ee749有一條從“HEAD”到82bcf405f6db1d55b684a1f63a4aabad376cdad7的有效路徑,其中所有提交都已簽名!verify-commits腳本是一種完整性校驗,隨便什么開發者都能將其在自家機器上運行。執行的時候,腳本會校驗每一份合并提交的PGP簽名。從2015年12月第一次提交82bcf405開始,到我寫這篇文章為止,共有3,400多份合并提交。如果腳本成功完成,它告訴我們自那時以來已經更改的每一行代碼都已通過比特幣核心開發過程并由具有維護者密鑰的人“簽字”。當然,這還不足以百分百確認不會有人插入惡意代碼;但這一措施確實能減少大規模攻擊的可能性。那么,維護人員又是什么人?他們怎么獲得這個身份?我們稍后會深入研究。 多層安全系統
GMX V2測試版現已在Arbitrum和Avalanche主網上線:8月4日消息,GMX V2 測試版已在 Arbitrum 和 Avalanche 主網上線。新版本增加了 SOL、XRP、LTC、DOGE 和 ARB 等新的交易資產,并允許使用多種抵押品進行交易。此外,新的預言機系統每個區塊都會簽署價格,以確保訂單能夠以最接近執行價格的方式被執行,即使存在大量交易。
對于流動性提供者,V2 通過隔離的 GM(GMX 市場)池提供流動性,允許流動性提供者根據自己的喜好定制他們對僅限于特定代幣的風險敞口。V2 還增加了對多頭和空頭持倉的激勵,幫助自動對沖流動性提供者與交易者利潤之間的風險。GMX V2 還帶來了許多其他新功能,包括低費用的交易、增加的交易激勵等。[2023/8/4 16:18:03]
比特幣核心代碼的完整性不能僅僅依賴于少數加密密鑰,這就是為什么存在大量其他檢查的原因。這里有許多安全層來提供深度防御:Pull請求安全1、不論什么人都有權提議改動節點,以改進軟件。其方法是開啟一個針對bitcoin/bitcoin上主分支的“拉取請求”。2、開發者們會評估各個拉取請求,確保這些請求不是有害的。不論是誰,都有權評估各個拉取請求,并提供反饋。只要是為了比特幣核心作出貢獻,就沒有“看門人”或者“入學考試”篩選合格的貢獻者。如果某個拉取請求發展到這樣一種地步,并沒有合理的反對意見反對它合并到主分支,那就會有一個維護人員執行合并。3、Core維護者會設定預push鉤,以確保不會有人把未經簽字確認的“提交”“推入”代碼倉庫。4、各項“合并提交”,會通過OpenTimestamps協議,安全地打上時間戳。打戳行為是可選的,不是必要的。5、“Travis持續集成系統”將定期運行這個腳本,以檢查gittree的完整性,而且驗證所有主分支上的“提交”都已經由某一個受信任的PGP密鑰簽了名。6、不論是誰,只要想運行,就可以運行這個腳本,以驗證從2015年12月開始的一切“合并提交”上的PGP簽名。我在寫這篇文章的時候,就運行了這個腳本,在我的筆電上25分鐘就運行完了。發布安全1、“Gitian確定性構建系統”是一種編譯解決方案。這系統由多個開發者獨立運行,目標是創建相同的二進制文件。假設某人成功創建了一個不符合其他開發者的構建系統,就表示引入了“非確定性”,于是“最終發行”就不會發生。如果存在非確定性,開發者就會追蹤哪里出了問題,修復問題,再構建另外一種發行候選版本。一旦“確定性構建”成功,開發者就會對生成的二進制文件進行簽名,確保這些二進制文件和工具鏈都沒有受到損害,而且使用了相同的源。這個辦法避免了讓構建和分配流程變成一種“單點故障”。任何具有技術的人都可以運行自己的構建系統。操作說明在這里:https://github.com/bitcoin-core/docs/blob/master/gitian-building.md2、一旦Gitian構建成功完成并由構建者簽名,就會有一個BitcoinCore的維護者,用每個構建的SHA256哈希值,給一條信息進行PGP簽名。如果你決定運行預先構建的二進制文件,就可以先下載,然后驗證它的哈希值;然后使用哈希值驗證簽名版本消息的真實性。這里是操作說明:https://bitcoincore.org/en/download/3、以上這些全都是開源的,可審計的;任何人只要有技術,有意愿,都可以執行。4、最后,即使在進行了以上一切的質量與完整性檢查之后,提交到BitcoinCore并最后成功發布的代碼依然不會被任何中心化的組織部署到節點網絡上。相反,每個節點操作員必須有意識地決定更新他們運行的代碼。BitcoinCore故意沒有設置自動更新功能,讓用戶可自行決定需要運行什么版本的代碼,否則這個系統就可能被操縱。盡管比特幣核心有了一切技術上的安全手段,然而這些手段沒有一種是完美的,也全都有理論上被損害的可能性。比特幣核心代碼完整性的最后一道防線,與任何其他開源項目的最后一道防線是一樣的——時刻保持警惕!關注比特幣核心代碼的眼睛越多,惡意代碼或者有缺陷代碼,就越難以進入發布階段。代碼覆蓋率
白宮新聞秘書:已呼吁相關部門解決加密貨幣方面的監管漏洞:12月14日消息,美國白宮新聞秘書讓·皮埃爾表示,已呼吁相關部門解決加密貨幣方面的監管漏洞。[2022/12/14 21:42:46]
BitcoinCore有很多測試代碼,其中包括一個完整性測試組件,可以用來測試所有PR;還有一種擴展測試套件,可以每晚在主分支上運行。你可以自行檢查各種測試的代碼覆蓋率,方法是:克隆一個比特幣核心GitHub代碼倉庫;安裝所需的從源代碼構建的依賴項;運行這些命令;在./total_coverage/index.html查看報告。除此以外,你還可以查看比特幣軟件維護者MarcoFalke主持的的覆蓋率報告,地址是https://drahtbot.github.io/reports/coverage/bitcoin/bitcoin/master/total.coverage/index.html
代碼覆蓋率水平越高,意味著代碼按照預期執行功能的確定性也越高。若想在關鍵的軟件上達成共識,測試就是一件大事。對于某些特別復雜的改動,開發者有時候要進行痛苦的“變異測試”,也就是故意破壞密碼,看看各個測試有沒有按照預期而失敗。比特幣開發者GregMaxwell比特幣核心0.15發布的時候,專門討論過這種變異測試:“測試是軟件的測試,但怎么對測試進行測試?就是用軟件。為了對測試進行測試,必須破壞軟件。”自由市場競爭
比特幣期貨平臺BitMEX寫過一篇名為《與比特幣核心競爭》的文章,論述各種“比特幣部署”的生態系統,這篇文章非常棒。當前,比特幣的“兼容部署”有十幾種,甚至還有更多的“競爭網絡”部署。這就是“開源”的自由:只要哪個人對比特幣核心項目的做法有所不滿,就可以建立自己的項目。他們可以從零開始,也可以選擇去分叉Core軟件。在我寫作本文時,96%的比特幣節點是運行BitcoinCore軟件的。為什么會是這樣?倘若某人切換到另一種軟件部署只需要極小的努力,那么比特幣核心為什么又會在節點網絡中處于類似壟斷的狀態?畢竟,很多其他部署,所提供的RPCAPI,都與比特幣核心兼容,或者起碼也跟比特幣核心高度相似。
我相信,這是因為BitcoinCore成為了開發的焦點。Core擁有數量級更多的開發人才和開發時間的支持,這意味著BitcoinCore項目的代碼往往是性能最高、最安全和最穩健的。在有限的資金下,節點運營商只想運行最好的軟件,不想運行質量第二的軟件。此外,考慮到BitcoinCore是一種共識軟件,比特幣協議不具有并且也不能具有正式的規范,所以使用焦點實現會更為安全。因為假設你運行的是其他版本的軟件,對于網絡的大多數節點而言,你的節點可能就是一個bug。從這個意義上來講,開發焦點的代碼就成了現實中最接近規范的東西了。誰是比特幣核心開發者?
杰克·丹尼威士忌已提交元宇宙、NFT相關商標申請:金色財經報道,NFT和元宇宙商標律師Michael Kondoudis發推稱,全球威士忌品牌杰克·丹尼(Jack Daniels)已于9月13日向美國專利商標局(USPTO)提交元宇宙、NFT相關商標申請,將涵蓋NFT認證數字媒體、虛擬飲料、酒吧用品和服裝、數字錢包和收藏品。[2022/9/20 7:07:08]
那些不熟悉比特幣核心開發過程的人,可能會從外部觀察這個項目,認為“Core”是一個大一統的實體。大錯特錯!核心貢獻者之間常有分歧,而且就算那些最多產的貢獻者,也寫了很多代碼,從沒有合并入核心項目。你看看“貢獻者”的指導方針,就可能會注意到,這方針的原則寬松得很,最多也只能說成一種“大略的共識”。維護人員會考慮,某個補丁是否符合項目的一般原則,是否符合“納入”的最低標準。維護人員會判斷各位貢獻者的一般共識。維護人員都是誰呢?他們是一些特殊的貢獻者。他們已經通過較長時間的高質量的貢獻,在項目內部構建了足夠的社會資本。現有的維護人員團體,只要認為某個貢獻者已經在某特定領域展示了能力、可靠性、動機,有資格當上維護人員,就會把“提交的訪問權”授予這位貢獻者的GitHub賬戶。“維護人員領導”的作用,是監管項目的一切方面,并負責協調各次代碼發布。這幾年來,“維護人員領導”的頭銜自愿更替了幾次:中本聰:2009/1/3-2011/2/23GavinAndresen:2011/2/23-2014/4/7WladimirvanderLaan:2014/4/7-現在比特幣核心維護人員的職責,經常被人比作“看門人”,因為維護人員實際上并沒有權力作出決定,反對貢獻者或者用戶的集體共識。不過,這一職責的任務卻可能相當繁重,因為大生態系統會特別注意這一職責。比如,2017年,GregoryMaxwell就因為個人原因而辭去了維護人員的職務,很可能是因為公開辯論升級,面臨的輿論壓力太大了。Wladimir寫了一篇有深意的帖子,說的就是擔任維護人員壓力多么大,還說了為什么應該取消Gavin的提交權限,這帖子讓很多人很不高興。還有一個類似的情況:GitHub組織曾經開除了JeffGarzik,Jeff和其他人都非常惱火。但是,Jeff的錯誤在于,他整整兩年沒有為核心作出貢獻了。組織再繼續讓Jeff的GitHub賬戶擁有代碼倉庫的寫入權限,對項目也沒有好處了,反而憑空增加了安全風險,也違反了“最小特權原則”。這原則,Wladimir在帖子里專門提到了。還有其他人可能會觀察Core,認為Core是一個技術官僚群體,或是象牙塔,很難讓新的參與者加入進來。然而,只要你跟那些貢獻者真正交流過,就會發現不是這樣。這幾年確實只有少數幾個人擁有提交權限,但卻有數百名開發者已經作出了貢獻。我自己也作了幾個小貢獻,雖然我不自認為是“核心開發者”,從技術上卻算是一名核心開發者。誰也不能不讓你作出貢獻!
NEAR基金會:邀請Harmony生態開發者加入NEAR社區,已籌集大量救濟資金:7月30日消息,NEAR基金會發布博客表示,目前許多在Harmony網絡上啟動或正在積極構建的項目現在都面臨著不確定性,因此公開邀請目前在Harmony上構建的任何人加入NEAR社區,并已經為Harmony生態系統的項目籌集了大量救濟資金。[2022/7/30 2:47:53]
最難以讓人們理解的,似乎是這樣一個問題:比特幣開發的關注點,并不僅僅是由比特幣核心GitHub賬戶定義的那個結構。確實,比特幣核心是有一種結構的,但項目本身卻不受任何參與者控制,甚至不受那些對GitHub代碼倉庫有高級特權的人控制。從技術上說,確實有可能讓一群維護人員發動“政變”,黑進GitHub代碼倉庫,審查那些異議開發者,甚至還能保持“比特幣核心”這個品牌名稱;但結果就會是,比特幣核心不再成為開發關注點了。這種政變萬一真的出現了,那些不同意維護人員的開發者,就會直接讓代碼分叉,把自己的工作換到另一個代碼倉庫,換到比特幣核心維護人員沒有管理權限的地方。就算不是真正的“政變”,如果核心真的發生了有爭議的變化,還是會有一些開發者將軟件分叉,除掉那個有爭議的變化,然后對用戶發布。歷史上,AmaurySechet曾經讓比特幣核心分叉,在功能上除掉了“隔離見證”,創造了BitcoinABC。你可以認為,當時發生的就是這種情況。另外,如果某些人提議作出某些變化,而核心否決了這些提議的變化,開發者也可以將核心分叉,加上這些變化。歷史上這種事情發生了很多次,例如:MikeHearn將核心分叉,創造了BitcoinXTAndrewStone將核心分叉,創造了BitcoinUnlimitedJeffGarzik將核心分叉,創造了BTC1將代碼分叉容易,可是改變比特幣開發的焦點就難了。你必須說服貢獻者:“你們的時間最好能花在我這個不一樣的項目上!”
你也很難說服許多人,讓他們相信,用戶們并不盲目跟從BitcoinCoire作出的各種變化。這可能是一個自我強化的信念,因為如果用戶不通過保持對選項的了解來參與共識的過程,他們就會把部分權力讓給開發人員。不過,2017年,用戶的權力已經通過“用戶激活軟分叉”運動得到了行使。當時,有個比特幣的匿名開發者,用假名“shaolinfry”提出BIP148,強迫礦工在8月1日前后要出現“區塊高度”時激活“隔離見證”功能。但是,BIP148的爭議實在太大,比特幣核心無法采用。于是,shaolinfry將核心分叉,發行了軟件BitcoinUASF。這一軟件部署獲得了非凡的“牽引力”,而且似乎創造了足夠的壓力,能讓礦工采用BIP91,從而在BIP148截止日期之前激活分叉。我個人認為,最好的BitcoinCore貢獻者,是那些踐行了極端所有權的人。舉個典型例子:下圖中這個特定的共識bug所在的代碼,雖然并不是貢獻者JohnNewbery自己寫出來的,但他認為自己沒有認真檢查,而讓這bug代碼合并了;事后在寫測試案例的時候,也沒有查出來,所以自己要承擔責任。
FTX宣布在日本推出FTX Japan:6月3日消息,FTX 宣布在日本推出 FTX Japan,服務日本用戶。FTX Japan 是日本合規交易平臺,取得了日本金融服務廳許可,注冊為《金融工具和交易法》的 Type 1 金融工具業務,旨在 FTX Japan 可以在日本合規提供加密衍生性商品。[2022/6/3 3:59:42]
我們都是中本聰。為BitcoinCore做出貢獻
雖然有足夠的資源可以幫助那些有抱負的開發者,但是邁出第一步為Core做貢獻,依然可能讓人望而生畏。此處可以找到貢獻的指導方針:https://bitcoincore.org/en/faq/contributing-code/但我更推薦從JimmySong寫的簡易入門開始:https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fbitcointechtalk.com%2Fa-gentle-introduction-to-bitcoin-core-development-fdc95eaee6b8此外,核心開發者EricLombrozo也寫了一篇文章,方便人們理解核心代碼倉庫里的種種變化:https://medium.com/@elombrozo/the-bitcoin-core-merge-process-74687a09d81d還有一個特殊案例可能對你有用:在撰寫本文時,為了審計GitHub提交歷史的完整性,我在我的機器上運行verify-commit.py腳本;這個運行過程,正好遇到了一些困難。為了不讓以后的開發者遇到同樣難題,我開啟了一個“pull請求”用來改進存檔過程。為了防止未來的開發人員不得不處理這些問題,我打開了一個pull請求來改進文檔。從PR歷史中可以看出,4個不同的開發人員就如何改進我的pull請求提出了建議。這包括使用不同的wiki標記,簡化的bash命令,以及可以在verify-commit.py腳本中使用的新參數。我同意所有的建議都是有道理的,所以我把它們合并到我的代碼中,并推送了一個更新版的pull請求。此時,參與審查的開發人員承認,他們發現PR是可以接受的,維護人員MarcoFalke將其標記為包含在0.18版本中。幾天過去了,開發人員沒有異議,代碼被維護人員SamuelDobson合并到了Core軟件當中。誰在控制比特幣?
多年來我反復說過,想要完全理解作為“體系”的比特幣,幾乎是不可能的。比特幣協議的定義,就好比語言的定義一樣。語言是人類自發產生的,對于詞義的共識,是有機的、生活中的共識,而不是讓詞典決定意義。詞典的作用是描述一種語言的客觀現象,而不是給語言下定義;同樣,比特幣的部署,也是用代碼描述比特幣的語言。不可能強迫任何人同意某詞典對某詞的定義,也不可能強迫任何人同意某特定比特幣部署里的代碼。言語不受民主體制的管轄,比特幣也不受民主體制的管轄。你可能會聽說人們提到一些概念,如礦工、節點、開發者、用戶投票等等;卻沒有這樣的機制,可以促成任何種類的“多數人投票”,強迫少數異議人士接受那些自己反對的變化。比特幣是一種無政府主義,沒有統治者,但依然有著規矩。規矩由網絡中每一個參與者定義,由每一個參與者強制執行。比特幣協議本身的各種變化,一般通過“比特幣改進提議”的流程實現。不過,哪怕這個提議,也只是一種推薦的操作方式,并不能強迫任何人遵守。只是一種相對規范的途徑,想要通過同行評審,構建共識的辦法來引導實現一種變化。我知道,要解釋這一切很困難,要明白也很困難。但是,這就是比特幣“抗脆弱性”的關鍵方面。如果有了“單點控制”,也就成了“單點故障”。如果那些有權有勢的機構受到比特幣帶來的威脅,他們就會充分利用這一點對比特幣進行攻擊。最終,每一個節點運營商都會自我治理,方法就是確保網絡中其他所有人都不會破壞自己認可的規矩。這種安全模型,就是比特幣自下而上治理的基礎。沒有人控制比特幣。也沒有人控制比特幣開發的焦點。
Tags:比特幣BITCOIITC中國比特幣四大首富rabbitking幣跑路wkgcoinBitcapital coin
本文來自:橙皮書,作者:BenDavidow,編譯:orangefans,星球日報經授權轉發。在中期選舉的那個晚上,許多美國人坐在家里收看電視新聞.
1900/1/1 0:00:00編者按:本文來自橙皮書,作者:李畫,星球日報經授權發布。生活在他人的陰影之下是一種悲哀,而如果這個他人恰巧還是你的親兄弟的話,悲哀或許就成為一出漫長的悲劇.
1900/1/1 0:00:00文章源自DappReview,作者金萍華,Odaily星球日報經授權發布。作者:金萍華,博士,安徽大學新聞傳播學院副教授,碩士生導師,復旦大學社會學博士后,美國麻省理工學院訪問學者,主持和參與教.
1900/1/1 0:00:00編者按:本文來自:深鏈Deepchain,作者:不亮,星球日報經授權轉發。12月20日,比特幣礦機生產商億邦國際的招股說明書再次登陸港交所官網.
1900/1/1 0:00:00與委內瑞拉總統馬杜羅勞心勞力發展石油幣不同,位于同一大洲的智利最高法院作出的一項裁定或許寓示加密貨幣將被該國永久打入冷宮.
1900/1/1 0:00:00本文來自:橙皮書,作者:AndrewZaleski;翻譯:orangefans;星球日報經授權轉發.
1900/1/1 0:00:00