比特幣開發(fā)的信任語言Guix介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
早在2016年,比特幣開發(fā)就成為了整個(gè)開源社區(qū)的一個(gè)模式,它集成了Gitian building——一個(gè)“計(jì)算機(jī)中的計(jì)算機(jī)”框架。它允許開發(fā)者以更透明的方式驗(yàn)證二進(jìn)制計(jì)算機(jī)文件。但隨著Guix最近的合并,該協(xié)議的工作變得更加免信任。Guix支持確定性和可引導(dǎo)的Bitcoin Core的開發(fā)。
盡管過程相當(dāng)復(fù)雜,而且主要涉及開發(fā)者,但比特幣的組成的兩個(gè)問題涉及信任和語言,這對所有人來說都很重要。任何計(jì)算機(jī)科學(xué)的速成課程都會(huì)告訴你,計(jì)算機(jī)接收二進(jìn)制指令(“1”和“0”),但人類必須用他們能夠理解的邏輯編程語言編寫。編碼部分完成后,指令需要編譯成計(jì)算機(jī)能夠理解的語言。當(dāng)開發(fā)人員需要共享生成的二進(jìn)制文件時(shí),他們必須對彼此有一定程度的信任。除非這個(gè)過程涉及額外的驗(yàn)證步驟,否則都很費(fèi)時(shí)。
作為一種去中心化的協(xié)議,比特幣需要更加謹(jǐn)慎和更多的關(guān)注。如果二進(jìn)制文件中碰巧有一個(gè)微小的第三方更改(例如惡意的黑客攻擊),并且在開發(fā)人員之間交換,那么新版本的客戶端可能會(huì)出現(xiàn)bug和副作用,導(dǎo)致大量資金損失。除非建立適當(dāng)?shù)尿?yàn)證過程,否則這個(gè)問題很容易成為單點(diǎn)故障。
GiTIan與Guix
讓所有開發(fā)人員將運(yùn)行相同的代碼并比較二進(jìn)制文件的想法是不現(xiàn)實(shí)的,因?yàn)橄到y(tǒng)架構(gòu)、操作系統(tǒng)甚至編譯時(shí)間等變量上的差異(即使是很小的差異)可能會(huì)提供不同的結(jié)果。因此,為了解決這個(gè)問題,一個(gè)化名為Dev Random的開發(fā)者設(shè)計(jì)出了GiTIan。
正如Bitcoin Magazine的技術(shù)向作家Aaron van Wirdum所描述的一樣,GiTIan是“計(jì)算機(jī)中的計(jì)算機(jī)”,它提供了一個(gè)虛擬空間,二進(jìn)制文件可以在沒有變量差異的情況下編譯。無論使用哪種設(shè)備或操作系統(tǒng),結(jié)果都是相同的。
然而,這個(gè)過程并不能滿足Bitcoin Core開發(fā)者們的需求,因?yàn)樗^于依賴Ubuntu操作系統(tǒng)了。這種依賴本身可能成為一個(gè)故障點(diǎn),驗(yàn)證過程需要更多的透明性和可審核性。
正如Chaincode Labs開發(fā)工程師Carl Dong告訴Bitcoin Magazine的那樣,“標(biāo)準(zhǔn)化的環(huán)境嚴(yán)重依賴于Ubuntu,而且這樣會(huì)有些盲目。事實(shí)上,我們構(gòu)建環(huán)境的方式是從Ubuntu下載不可審計(jì)的、不透明的二進(jìn)制文件(換句話說,“可信的二進(jìn)制文件”),這會(huì)讓我們面臨第三方的風(fēng)險(xiǎn)。不難想象,攻擊者可以通過入侵Ubuntu的基礎(chǔ)設(shè)施(或者,僅僅通過混入U(xiǎn)buntu工作團(tuán)隊(duì)里)來污染所有的Bitcoin Core發(fā)布的可執(zhí)行程序的?!?/p>
Dong負(fù)責(zé)的工作就是引入Guix。這是一個(gè)二進(jìn)制驗(yàn)證系統(tǒng),可以讓開發(fā)者在無需信任的環(huán)境下進(jìn)行開發(fā),并最終完全取代GiTIan。
他說,“Guix允許我們以一種方式來構(gòu)建開發(fā)環(huán)境,在這種方式中,我們只需要依賴于一組大量減少的可信二進(jìn)制文件。大部分環(huán)境都是由一個(gè)微小的二進(jìn)制種子構(gòu)建而成的,而這個(gè)構(gòu)建過程更具可審核性?!?/p>
此外,信任最小化實(shí)現(xiàn)(于2019年7月12日并入比特幣核心)旨在消除第三方風(fēng)險(xiǎn)。Dong認(rèn)為這是一種更簡單、更少平臺特異性的方法來處理Bitcoin Core的安全隱患。在未來,Guix還將允許開發(fā)者在不同的CPU架構(gòu)上進(jìn)行構(gòu)建,并生成可重復(fù)執(zhí)行的代碼。這些特性對于透明和合乎道德的開發(fā)是必不可少的,它們還將使二進(jìn)制文件的交換變得更快、更有效。
誠然,Dong的靈感來自于Gitian。然而,就算兩者都沒有發(fā)展空間,Guix也將成為替代品。
Dong說道:“我將Guix整合到比特幣核心的工作當(dāng)然受到了Gitian的啟發(fā),但它們之間并不能互相補(bǔ)充。我預(yù)計(jì),一旦對OS X和Windows目標(biāo)的交叉編譯支持完成后,Gitian就會(huì)退出市場。”
Guix與普通比特幣用戶
如果說Guix是由開發(fā)者創(chuàng)建的工具,并且是為他們自己交換編譯后的二進(jìn)制文件而設(shè)計(jì)的,那么普通用戶為什么要關(guān)心它呢?實(shí)際上,它也消除了普通用戶對Bitcoin Core客戶端下載的數(shù)據(jù)的信任顧慮。盡管可能性很小,但惡意的第三方(如釣魚網(wǎng)站)可能會(huì)在這一過程中進(jìn)行干預(yù),在缺乏適當(dāng)?shù)尿?yàn)證框架的情況下,竊取你的比特幣。Guix所遵循的正是根植于比特幣文化中的“無需信任”的理念。
Dong表示,“Guix允許用戶驗(yàn)證他們下載的比特幣核心客戶端與比特幣核心開發(fā)者編寫的代碼是否完全一致。它減少了針對將代碼庫轉(zhuǎn)換為發(fā)布客戶端的可執(zhí)行文件方式的攻擊?!?/p>
盡管Guix對開發(fā)人員而言有更明確的需求,但如果用戶選擇謹(jǐn)慎使用所運(yùn)行的軟件,Guix也是用戶可能需要并希望用到的工具。
到目前為止,Guix只適用于Ubuntu版本。Dong樂觀地估計(jì),Windows和Mac OS版本將在2019年底發(fā)布。本著比特幣的謹(jǐn)慎精神,他還附加了一條“當(dāng)它完成并經(jīng)過徹底測試”的條款,即優(yōu)先級最高的是健壯性,所以我們可以期待它的測試版早日上線。