V roce 2016 se vývoj bitcoinů stal modelem pro celou komunitu open-source integrací budovy Gitian – rámce „počítač v počítači“, který vývojářům umožňuje ověřovat binární počítačové soubory transparentnějším způsobem. Ale s nedávné sloučení Guix, která podporuje deterministické a bootstrapovatelné bitcoinové jádro, práce na protokolu se stala ještě důvěryhodnější.
Ačkoli je tento proces poměrně sofistikovaný a týká se hlavně vývojářů, jedná se o dva problémy, které zahrnují důvěru a jazyk – komponenty bitcoinu, na kterých nám všem záleží. Jak vám řekne jakýkoli rychlokurz v informatice, počítače dostávají instrukce v binárních souborech („jedničky“ a „nuly“), ale lidé musí psát v programovacím jazyce, který je pro ně logický a srozumitelný. Po dokončení kódovací části je třeba pokyny zkompilovat do takového jazyka, kterému počítače rozumějí. A když vývojáři potřebují sdílet výsledné binární soubory, existuje vzájemná důvěra, kterou musí mít (pokud proces nezahrnuje další kroky pro ověření, které jsou časově náročné).
Jako decentralizovaný protokol vyžaduje bitcoin zvláštní pozornost a opatrnost. Pokud dojde k mírné změně třetí strany (například zlovolnému hackerství) v binárních souborech, která se vymění mezi vývojáři, může mít nová verze klienta chyby a vedlejší účinky, které vedou k masivním ztrátám finančních prostředků . Pokud není zaveden řádný proces ověřování, může se tento problém snadno stát jediným bodem selhání.
Gitian a Guix
Myšlenka, že by všichni vývojáři spouštěli stejný kód a porovnávali binární soubory, je nereálná, protože rozdíly – i malé – v proměnných, jako je architektura systému, operační systém a dokonce i doba kompilace, mohou poskytnout různé výsledky. Proto, aby se tento problém vyřešil, pseudonymní vývojář, který se jmenuje Dev Random vytvořil Gitian.
Jak popsal Aaron van Wirdum z časopisu Bitcoin Magazine, Gitian je „počítač v počítači“, který poskytuje virtuální prostor, kde lze kompilovat binární soubory bez proměnných. Bez ohledu na to, které zařízení nebo operační systém se pro tento proces používá, jsou výsledky zaručeně vždy stejné.
Tento postup však není dostatečný pro potřeby vývojářů Bitcoin Core, protože se příliš spoléhá na operační systém Ubuntu. Tato závislost sama o sobě se může stát bodem selhání a proces ověření vyžaduje větší transparentnost a auditovatelnost.
Jak řekl inženýr Chaincode Labs Carl Dong pro Bitcoin Magazine: „Standardizované prostředí do značné míry závisí na Ubuntu. Způsob, jakým jsme konstruovali prostředí, byl ve skutečnosti stahováním neprověřitelných neprůhledných binárních souborů (jinými slovy „důvěryhodných binárních souborů“) z Ubuntu, což nás vystavovalo riziku třetích stran. Dalo by se představit, jak může útočník otrávit všechny spustitelné soubory bitcoinového jádra vniknutím do infrastruktury Ubuntu (nebo snad jednoduše tím, že tam pracuje). “
Dong je zodpovědný za zavedení Guix, binárního ověřovacího systému, který zvyšuje důvěryhodnost vývoje a je nastaven tak, aby zcela nahradil Gitian.
“Guix nám umožňuje konstruovat prostředí takovým způsobem, že se spoléháme na výrazně omezenou sadu důvěryhodných binárních souborů,” řekl. “Většina prostředí je vytvářena budováním z malého binárního semene a tento proces budování je mnohem více auditovatelný.”
Dále implementace minimalizace důvěry (která bylo sloučeno do bitcoinového jádra dne 12. července 2019) má za cíl eliminovat riziko třetích stran. Dong to považuje za jednodušší a méně platformově specifický přístup k práci na Bitcoin Core. V budoucnu Guix také umožní vývojářům stavět na různých architekturách CPU a vytvářet reprodukovatelné spustitelné soubory v čase. Tyto funkce jsou nezbytné pro transparentní a etický vývoj a také zrychlí a zefektivní výměnu binárních souborů.
Je pravda, že Dong se inspiroval záměry a architekturou Gitian. Neexistuje však prostor pro oba a Guix se má stát náhradou.
“Moje práce na integraci Guix do bitcoinového jádra se určitě inspirovala od Gitian, ale moc se navzájem nedoplňují,” řekl Dong. “Očekávám, že jakmile bude podpora křížové kompilace pro cíle OS X a Windows dokončena, Gitian bude vyřazen.”
Guix a průměrný uživatel bitcoinů
Pokud je Guix nástroj vytvořený vývojáři a pro jejich vlastní výměnu kompilovaných binárních souborů, proč by se o to průměrný uživatel staral? Rovněž vylučuje důvěru v data stažená pro klienta Bitcoin Core. I když jsou šance velmi nízké, mohou během procesu zasáhnout zlovolné třetí strany, jako jsou phishingové weby, které vám při neexistenci řádného rámce pro ověření ukradnou vaše bitcoiny. Guix přesně sleduje filozofii „nedůvěřuj, ověřuj“, která je hluboce zakořeněná v bitcoinové kultuře.
Podle Donga „Guix umožňuje uživatelům ověřit si, že klient Bitcoin Core, který si stáhnou, přesně odpovídá kódu, který píší vývojáři Bitcoin Core. Zmírňuje útoky, které se zaměřují na způsob, jakým z naší kódové základny uděláme klientské spustitelné soubory, které vydáváme. “
Navzdory jasnému zaměření na potřeby vývojářů je Guix také něco, co uživatelé možná potřebují a chtějí použít, pokud se rozhodnou být opatrní ohledně softwaru, který provozují..
V době tisku je Guix k dispozici pouze pro verze Ubuntu. Dong však odhaduje, že verze pro Windows a Mac OS budou vydány „optimisticky“ do konce roku 2019. Ve skutečném konzervativním duchu bitcoinu je připojena klauzule „když je dokončena a důkladně otestována“, takže bychom neměli držet náš dech pro termíny, kdy jasnou prioritou je robustnost.