Že leta 2016 je razvoj Bitcoinov postal model za celotno odprtokodno skupnost z integracijo stavbe Gitian – „računalnik v računalniku“, ki razvijalcem omogoča preglednejše binarne datoteke. Toda z nedavno združitev Guixa, ki podpira deterministične in zagonske zgradbe Bitcoin Core, je delo na protokolu postalo še bolj nezaupljivo.

Čeprav je vpleten postopek precej izpopolnjen in večinoma zadeva razvijalce, zadevni vprašanji vključujeta zaupanje in jezik – sestavni deli Bitcoina, ki sta pomembni za vse nas. Kot vam bo povedal vsak zgrešen tečaj računalništva, računalniki prejmejo navodila v binarnih datotekah (“eno” in “nič”), vendar morajo ljudje pisati v programskem jeziku, ki je zanje logičen in razumljiv. Po končanem delu kodiranja je treba navodila sestaviti v jezik, ki ga računalniki lahko razumejo. In ko si morajo razvijalci deliti nastale binarne datoteke, je treba zaupati drug drugemu (razen če postopek vključuje dodatne korake za preverjanje, ki so dolgotrajni).

Kot decentraliziran protokol Bitcoin zahteva posebno pozornost in previdnost. Če se v binarnih datotekah zgodi rahla sprememba tretje osebe (na primer zlonamerno vdiranje), ki jo izmenjujejo razvijalci, potem ima nova različica odjemalca napake in neželene učinke, ki vodijo do velike izgube sredstev. . Če ni vzpostavljen ustrezen postopek preverjanja, lahko ta težava zlahka postane samo ena točka napake.

Gitian in Guix

Zamisel, da bi vsi razvijalci uporabljali isto kodo in primerjali binarne datoteke, je nerealna, saj lahko razlike – tudi majhne razlike – v spremenljivkah, kot so sistemska arhitektura, operacijski sistem in celo čas prevajanja, dajo različne rezultate. Zato je za reševanje tega vprašanja psevdonimni razvijalec, ki se imenuje Dev Random ustvaril Gitian.

Kot je opisal Aaron van Wirdum iz revije Bitcoin, je Gitian “računalnik v računalniku”, ki zagotavlja virtualni prostor, v katerem je mogoče binarne datoteke sestaviti brez spremenljivk. Ne glede na to, katera naprava ali operacijski sistem se uporablja za postopek, bodo rezultati zagotovo enaki.

Vendar postopek ne zadostuje za potrebe razvijalcev Bitcoin Core, saj se preveč zanaša na operacijski sistem Ubuntu. Ta odvisnost sama po sebi lahko postane točka neuspeha, postopek preverjanja pa zahteva več preglednosti in preglednosti.

Kot je za Bitcoin Magazine povedal inženir Chaincode Labs Carl Dong, je »standardizirano okolje močno in nekoliko slepo odvisno od Ubuntuja. Pravzaprav smo oblikovali okolje tako, da smo z Ubuntuja prenesli nerevidirane, neprozorne binarne datoteke (z drugimi besedami, “zaupanja vredne binarne datoteke”), ki so nas izpostavili tveganju tretjih oseb. Lahko bi si predstavljali, kako lahko napadalec z vdorom v infrastrukturo Ubuntuja (ali morda preprosto z delom tam) zastrupi vse izvršljive datoteke Bitcoin Coreja. “

Dong je odgovoren za uvedbo sistema Guix, binarnega sistema za preverjanje, ki naredi razvoj bolj nezaupljiv in naj bi popolnoma nadomestil Gitian.

“Guix nam omogoča, da zgradimo okolje tako, da se zanašamo na močno zmanjšan niz zaupanja vrednih binarnih datotek,” je dejal. “Večina okolja je zgrajena iz drobnih binarnih semen in ta postopek gradnje je veliko bolj pregleden.”

Poleg tega je izvajanje zmanjšanja zaupanja (ki je bil združen v Bitcoin Core 12. julija 2019) želi odpraviti tveganje tretjih oseb. Dong meni, da gre za preprostejši in manj specifičen pristop k delu na Bitcoin Core. V prihodnosti bo Guix razvijalcem tudi omogočal, da gradijo na različnih arhitekturah CPU in sčasoma proizvajajo ponovljive izvedljive datoteke. Te funkcije so bistvene za pregleden in etičen razvoj, prav tako pa bodo omogočile hitrejšo in učinkovitejšo izmenjavo binarnih datotek.

Resda se je Dong navdihoval iz namenov in arhitekture Gitiana. Kljub temu ni prostora za oba, Guix pa naj bi postal nadomestni.

“Moje delo pri integraciji Guixa v Bitcoin Core je zagotovo navdihnilo Gitian, vendar se ne dopolnjujeta veliko,” je dejal Dong. “Pričakujem, da se bo Gitian, ko bo končana podpora za navzkrižno prevajanje za cilje OS X in Windows, upokojil.”

Guix in povprečni uporabnik Bitcoinov

Če je Guix orodje, ki so ga ustvarili razvijalci za lastno izmenjavo sestavljenih binarnih datotek, zakaj bi potem skrbel povprečni uporabnik? No, odpravlja tudi zaupanje v podatke, prenesene za odjemalca Bitcoin Core. Čeprav so verjetnosti precej majhne, ​​lahko med postopkom posredujejo zlonamerne tretje osebe, kot so spletna mesta z lažnim predstavljanjem, ki vam, če ni ustreznega okvira za preverjanje, ukradejo bitcoin. Guix natančno sledi filozofiji “ne zaupaj, preveri”, ki je globoko zakoreninjena v kulturi Bitcoin.

Dong pravi: »Guix uporabnikom omogoča, da preverijo, ali odjemalec Bitcoin Core, ki ga prenesejo, natančno ustreza kodi, ki jo napišejo razvijalci Bitcoin Core. Omili napade, ki ciljajo na način, kako svojo kodno bazo spremenimo v odjemalske izvršljive datoteke, ki jih sprostimo. “

Kljub jasni osredotočenosti na potrebe razvijalcev je Guix nekaj, kar bodo uporabniki morda potrebovali in želeli uporabiti, če bodo previdni pri programski opremi, ki jo izvajajo..

V času tiska je Guix na voljo samo za gradnje Ubuntuja. Vendar Dong ocenjuje, da bosta različici za Windows in Mac OS “optimistično” izdani do konca leta 2019. V resničnem konservativnem duhu Bitcoina je priložena klavzula “ko je dokončan in temeljito preizkušen”, zato ne smemo držati naš dih za roke, ko je jasna prednost robustnost.