Tilbake i 2016 ble Bitcoin-utvikling en modell for hele open source-fellesskapet med integrasjonen av Gitian-bygningen – en “datamaskin innenfor en datamaskin” -ramme som lar utviklere verifisere binære datafiler på en mer gjennomsiktig måte. Men med nylig sammenslåing av Guix, som støtter deterministiske og bootstrappable Bitcoin Core builds, har arbeidet med protokollen blitt enda mer pålitelig.
Selv om den involverte prosessen er ganske sofistikert og hovedsakelig gjelder utviklere, involverer de to problemene som står på spill tillit og språk – komponenter av Bitcoin som betyr noe for oss alle. Som ethvert kollisjonskurs i informatikk vil fortelle deg, mottar datamaskiner instruksjoner i binærfiler (“ener” og “nuller”), men mennesker må skrive på et programmeringsspråk som er logisk og forståelig for dem. Etter at kodingsdelen er fullført, må instruksjonene kompileres til det språket som datamaskiner kan forstå. Og når utviklere trenger å dele de resulterende binærfiler, er det en viss tillit de må ha til hverandre (med mindre prosessen innebærer ekstra trinn for verifisering, som er tidkrevende).
Som en desentralisert protokoll krever Bitcoin ekstra oppmerksomhet og forsiktighet. Hvis det skjer en liten endring fra tredjepart (for eksempel en ondskapsfull hacking) i binærfiler, som blir utvekslet mellom utviklere, kan den nye versjonen av klienten ha feil og bivirkninger som fører til store tap av midler . Med mindre en riktig bekreftelsesprosess er etablert, kan dette problemet lett bli et eneste feilpunkt.
Gitian og Guix
Ideen om at alle utviklere vil kjøre den samme koden og sammenligne binærfiler er urealistisk, da forskjeller – til og med små forskjeller – i variabler som systemarkitektur, operativsystem og til og med kompileringstid kan gi forskjellige resultater. Derfor, for å takle dette problemet, en pseudonym utvikler som går under navnet Dev Tilfeldig opprettet Gitian.
Som beskrevet av Bitcoin Magazines Aaron van Wirdum, er Gitian en “datamaskin i en datamaskin” som gir et virtuelt rom der binærfiler kan kompileres uten variabler. Uansett hvilken enhet eller hvilket operativsystem som brukes til prosessen, vil resultatene garantert alltid være de samme.
Imidlertid er prosedyren ikke tilstrekkelig for behovene til Bitcoin Core-utviklere, siden den er avhengig av Ubuntu-operativsystemet. Denne avhengigheten i seg selv kan bli et feilpunkt, og bekreftelsesprosessen krever mer åpenhet og revisjon.
Som ingeniør for Chaincode Labs, Carl Dong, sa til Bitcoin Magazine, “Det standardiserte miljøet avhenger tungt og litt blindt av Ubuntu. Faktisk var måten vi konstruerte miljøet på, ved å laste ned uhørbare, ugjennomsiktige binærfiler (med andre ord ‘pålitelige binarier’) fra Ubuntu, og utsatte oss for tredjepartsrisiko. Man kan forestille seg hvordan en angriper kan forgifte alle Bitcoin Core-frigjørbare kjørbare filer gjennom et inntrenging av Ubuntus infrastruktur (eller kanskje bare ved å jobbe der).
Dong er ansvarlig for innføringen av Guix, et binært verifiseringssystem som gjør utviklingen mer pålitelig og er satt til å erstatte Gitian fullstendig.
“Guix tillater oss å konstruere miljøet på en måte der vi stoler på et sterkt redusert sett med pålitelige binære filer,” sa han. “Det meste av miljøet er konstruert ved å bygge fra et lite binært frø, og denne byggeprosessen er mye mer kontrollerbar.”
Videre tillit minimering implementering (som ble slått sammen til Bitcoin Core 12. juli 2023) tar sikte på å eliminere tredjepartsrisiko. Dong anser det for å være en enklere og mindre plattformspesifikk tilnærming til å jobbe med Bitcoin Core. I fremtiden vil Guix også tillate utviklere å bygge på forskjellige CPU-arkitekturer og produsere reproduserbare kjørbare filer over tid. Disse funksjonene er avgjørende for gjennomsiktig og etisk utvikling, og de vil også gjøre utveksling av binærfiler raskere og mer effektiv.
Riktignok har Dong hentet inspirasjon fra intensjonene og arkitekturen til Gitian. Likevel er det ikke plass til begge deler, og Guix er satt til å bli erstatningen.
“Mitt arbeid med å integrere Guix i Bitcoin Core tok absolutt inspirasjon fra Gitian, men de utfyller hverandre ikke mye,” sa Dong. “Jeg forventer at når kryss-kompileringsstøtten for OS X- og Windows-mål er ferdig, vil Gitian bli pensjonert.”
Guix og den gjennomsnittlige Bitcoin-brukeren
Hvis Guix er et verktøy som er laget av utviklere og for egen utveksling av kompilerte binære filer, hvorfor skulle den gjennomsnittlige brukeren bry seg? Vel, det eliminerer også tilliten til dataene som er lastet ned for Bitcoin Core-klienten. Selv om oddsen er ganske slank, kan ondsinnede tredjeparter som phishing-nettsteder gripe inn under prosessen, og i fravær av et riktig verifiseringsrammeverk stjele bitcoin. Guix følger nøyaktig “ikke stol på, verifiser” -filosofien som er dypt forankret i Bitcoin-kulturen.
Ifølge Dong, “lar Guix brukere bekrefte at Bitcoin Core-klienten de laster ned tilsvarer nøyaktig koden som Bitcoin Core-utviklere skriver. Det demper angrep som retter seg mot måten vi gjør kodebasen om til klientkjørbare filer vi slipper. “
Til tross for det klare fokuset på utviklerens behov, er Guix også noe som brukere kanskje trenger og vil bruke hvis de velger å være forsiktige med programvaren de kjører..
Ved pressetiden er Guix bare tilgjengelig for Ubuntu-bygg. Imidlertid anslår Dong at Windows- og Mac OS-versjonene vil bli utgitt “optimistisk” innen utgangen av 2023. I den virkelige konservative ånden til Bitcoin er en “når den er fullført og grundig testet” -klausul vedlagt, så vi bør ikke holde pusten vår for frister når den klare prioritering er robusthet.