Vuonna 2016 Bitcoin-kehityksestä tuli malli koko avoimen lähdekoodin yhteisölle integroimalla Gitian-rakennus – “tietokone tietokoneessa” -kehyksen, jonka avulla kehittäjät pystyivät tarkistamaan binaaritietokonetiedostot avoimemmalla tavalla. Mutta äskettäin sulautettu Guix, joka tukee deterministisiä ja käynnistettäviä Bitcoin Core -rakennuksia, työ protokollan parissa on tullut entistä luotettavammaksi.
Vaikka kyseinen prosessi on melko hienostunut ja koskee enimmäkseen kehittäjiä, kaksi kyseessä olevaa kysymystä sisältävät luottamuksen ja kielen – Bitcoinin komponentit, jotka ovat tärkeitä meille kaikille. Kuten mikä tahansa tietojenkäsittelytieteen kaatumiskurssi kertoo sinulle, tietokoneet saavat ohjeet binääreinä (“ykkökset” ja “nollat”), mutta ihmisten on kirjoitettava heille loogisella ja ymmärrettävällä ohjelmointikielellä. Kun koodausosa on valmis, ohjeet on koottava sellaiselle kielelle, jota tietokoneet ymmärtävät. Ja kun kehittäjien on jaettava saadut binäärit, heillä on jonkin verran luottamusta, joka heillä on oltava toisiinsa (ellei prosessi sisällä ylimääräisiä tarkistusvaiheita, jotka ovat aikaa vieviä).
Hajautettuna protokollana Bitcoin vaatii erityistä huomiota ja varovaisuutta. Jos binääreissä sattuu olemaan pieni kolmannen osapuolen muutos (kuten pahantahtoinen hakkerointi), jota vaihdetaan kehittäjien välillä, asiakkaan uudella versiolla voi olla vikoja ja sivuvaikutuksia, jotka johtavat huomattaviin varojen menetyksiin . Ellei asianmukaista varmennusprosessia ole luotu, tästä asiasta voi helposti tulla yksi vika.
Gitian ja Guix
Ajatus siitä, että kaikki kehittäjät käyttäisivät samaa koodia ja vertaisivat binäärejä, on epärealistinen, koska erot – jopa pienet erot – muuttujissa, kuten järjestelmäarkkitehtuurissa, käyttöjärjestelmässä ja jopa kokoamisajalla, voivat tuottaa erilaisia tuloksia. Siksi tämän ongelman ratkaisemiseksi nimimerkki kehittäjä, joka käyttää nimeä Dev Random loi Gitian.
Kuten Bitcoin Magazinen Aaron van Wirdum kuvaili, Gitian on “tietokone tietokoneen sisällä”, joka tarjoaa virtuaalisen tilan, johon binäärit voidaan koota ilman muuttujia. Riippumatta siitä, mitä laitetta tai käyttöjärjestelmää prosessissa käytetään, tulokset ovat taatusti samat.
Menettely ei kuitenkaan riitä Bitcoin Core -kehittäjien tarpeisiin, koska se riippuu liikaa Ubuntu-käyttöjärjestelmästä. Tästä riippuvuudesta itsessään voi tulla epäonnistumiskohta, ja todentamisprosessi vaatii enemmän läpinäkyvyyttä ja tarkastettavuutta.
Kuten Chaincode Labs -insinööri Carl Dong kertoi Bitcoin Magazine -lehdelle, “Standardoitu ympäristö riippuu suuresti ja hieman sokeasti Ubuntusta. Itse asiassa tapa rakentaa ympäristö oli lataamalla Ubuntusta ei-auditoitavat, läpinäkymättömät binäärit (toisin sanoen “luotetut binäärit”), mikä altistaa meidät kolmannen osapuolen riskeille. Voisi kuvitella, kuinka hyökkääjä voi myrkyttää kaikki Bitcoin Core -julkaisutiedostot Ubuntun infrastruktuurin tunkeutumisen kautta (tai ehkä yksinkertaisesti työskentelemällä siellä). “
Dong on vastuussa Guixin, binäärisen varmennusjärjestelmän käyttöönotosta, joka tekee kehityksestä epäluotettavampaa ja on tarkoitus korvata Gitian kokonaan.
“Guix antaa meille mahdollisuuden rakentaa ympäristö tavalla, jolla luotamme huomattavasti vähentyneeseen luotettavien binaarien joukkoon”, hän sanoi. “Suurin osa ympäristöstä rakennetaan rakentamalla pienestä binäärisiemenestä, ja tämä rakennusprosessi on paljon auditoitavampi.”
Lisäksi luottamusminimoinnin toteutus (mikä yhdistettiin Bitcoin Core -ohjelmaan 12. heinäkuuta 2019) tarkoituksena on poistaa kolmansien osapuolten riski. Dong pitää sitä yksinkertaisempana ja vähemmän alustakohtaisena lähestymistapana työskennellä Bitcoin Core -sovelluksessa. Tulevaisuudessa Guix antaa kehittäjille mahdollisuuden rakentaa erilaisia suorittimen arkkitehtuureja ja tuottaa toistettavia suoritettavia tiedostoja ajan mittaan. Nämä ominaisuudet ovat välttämättömiä läpinäkyvälle ja eettiselle kehitykselle, ja ne myös tekevät binaarien vaihdosta nopeampaa ja tehokkaampaa.
Tosin Dong on saanut inspiraation Gitianin aikomuksista ja arkkitehtuurista. Molemmille ei kuitenkaan ole tilaa, ja Guixista on tarkoitus tulla korvaava.
“Työni integroida Guix Bitcoin Coreiin sai varmasti inspiraatiota Gitianilta, mutta ne eivät täydennä toisiaan paljon”, Dong sanoi. “Odotan, että kun ristikokoamisen tuki OS X- ja Windows-kohteille on valmis, Gitian jää eläkkeelle.”
Guix ja keskimääräinen Bitcoin-käyttäjä
Jos Guix on työkalu, jonka kehittäjät ovat luoneet ja heidän omalle vaihdettujen binääritiedostojen vaihdolle, miksi keskimääräinen käyttäjä hoitaa sitä? No, se poistaa myös luottamuksen Bitcoin Core -asiakkaalle ladattuihin tietoihin. Vaikka kertoimet ovat melko pienet, pahantahtoiset kolmannet osapuolet, kuten tietojenkalastelusivustot, voivat puuttua prosessiin ja varastaa bitcoinisi, jos asianmukaista vahvistuskehystä ei ole. Guix noudattaa tarkasti “älä luota, tarkista” -filosofiaa, joka juurtuu syvälle Bitcoin-kulttuuriin.
Dongin mukaan “Guix antaa käyttäjille mahdollisuuden tarkistaa, että heidän lataama Bitcoin Core -asiakas vastaa täsmälleen koodia, jonka Bitcoin Core -kehittäjät kirjoittavat. Se lievittää hyökkäyksiä, jotka kohdistuvat tapaan, jolla koodikanta muutetaan julkaisemiksi asiakkaan suoritettaviksi tiedostoiksi. “
Huolimatta selkeästä kehittäjien tarpeista, Guix on myös jotain, jota käyttäjät saattavat tarvita ja haluta käyttää, jos he päättävät olla varovaisia käyttämistään ohjelmistoista.
Lehdistöaikana Guix on saatavana vain Ubuntun koontiversioihin. Dong arvioi kuitenkin, että Windows- ja Mac OS -versiot julkaistaan ”optimistisesti” vuoden 2019 loppuun mennessä. Bitcoinin todellisessa konservatiivisessa hengessä on liitetty lauseke “kun se on valmis ja perusteellisesti testattu”, joten meidän ei pitäisi pitää hengitämme määräaikoja, kun selkeä prioriteetti on kestävyys.