Hlavní navigace

Jan Čapek (Braiins): Přišel čas vrátit kontrolu nad těžebním softwarem minerům

Jak se z ovládacího softwaru pro těžbu bitcoinu stal „closed source“ a proč je potřeba to zase změnit? Mluvili jsme s druhým ředitelem české firmy Braiins Janem Čapkem.
Karel Wolf 18. 2. 2020
Doba čtení: 10 minut

Sdílet

Software pro těžbu kryptoměn začínal jako zcela otevřený, dnes jej minimálně v případě ASICů dodavatelé těžebních zařízení před uživatelem maximálně skrývají. Děje se tak navzdory tomu, že sami často využívají komponenty, které jsou pod GPL licencí, kterou tím vědomě porušují.

Proč je to celé špatně a jak se to snaží změnit open source operační systém Braiins OS pro minery od českých vývojářů z Braiins, společnosti, která stojí za nejstarším českým mining poolem, jsme mluvili s jejím druhým spoluzakladatelem Janem Čapkem.

První softwary pro těžbu bitcoinu začínaly zcela přirozeně jako open source, nebo svobodný software, dnes ale vypadá situace, alespoň pokud jde o ovládání ASIC minerů, diametrálně jinak. Jak se trh dostal do stádia, kdy je potřeba za něco, co dřív bylo samozřejmé, bojovat?

Celý problém vznikl tak, že první těžební software pro Bitcoin mining počítal s těžbou na CPU, kde se nedalo vymyslet příliš mnoho variant, jak by člověk mohl dosáhnout dramatických úspor, takže zde nebyla tak silná potřeba vymýšlet si vlastní řešení. I tak bychom ale při troše práce nějaký proprietární software stejně našli.

To se trochu změnilo v okamžiku, kdy někoho napadlo, že je efektivnější těžit pomocí GPU. I tam byl zpočátku software převážně open source, ale už mnohem častěji využíval kernely, které byly proprietární a lidé si je drželi pod pokličkou.

Pak někoho napadlo naprogramovat SHA256 hashování pro FPGA a celé to následně připojit k cgmineru a tam se již docela začala nabízet otázka, jestli ten kód pro FPGA zveřejnit, nebo ne. To hlavní, k čemu postupně docházelo, bylo, že se postupně přesouvala těžící logika z cgmineru, který se stával více a více jen „triviálním“ ovladačem, nebo řekněme překladačem miningového protokolu do řeči zařízení, které ovládá.   

Ve stejném trendu pak pokračovali výrobci těžebních zařízení, pro které bylo výhodné, že nemusí vyvíjet celý miningový stack včetně operačního systému (je tam běžný Linux), ale zároveň si uchovali kontrolu nad těžební logikou, ze které se stalo byznys know how a o níž již neříkají vůbec nic.

V extrémním případě se vložila mezi těžící software a čipy ještě další mezivrstva (FPGA), která zprostředkovávala překlad. To byl příklad Bitmain Antmineru S9. Zde došlo k jedné paradoxní situaci, kdy výrobce udělal tu chybu, že v překladači nechal poměrně hodně těžební logiky, o které ale nikomu neřekl. Díky tomu jsme mohli v roce 2018 publikovat náš report o Asic Boostu, kdy se nám podařilo dokázat, že ta zařízení jej umí, jen o tom výrobce nikoho neinformoval.

Dnes se nalézáme ještě v trochu bizarnější situaci kvůli tomu, že někteří výrobci to dotáhli ještě dále a přestali publikovat i zdrojové kódy k částem, které jsou pod GPL, čímž porušují podstatu této licence, protože jako jejich zákazník mám na ten zdrojový kód právo.

Ta praxe „neposkytovat vůbec nic“ přišla až s příchodem ASIC zařízení?

Přesně tak, bylo to někdy kolem roku 2015.

O jaké části kódu těžebního software se primárně jedná?

Primárně jde o operační systém, který je téměř výhradně nějaká běžná upravená linuxová distribuce, ale i o těžební logiku, kterou v 90 % tvoří variace na open source software cgminer, u kterého to všechno začalo.

Ještě horší je, že dnes je trend zákazníky tzv. „chránit“, to znamená, že výrobci pod záminkou toho, aby zařízení vždy pracovala „tak, jak mají“, úplně odstraňují možnost se k zařízením napřímo připojit (a eventuálně jej jailbreaknout) a máte možnost s nimi pracovat pouze v omezeném režimu skrz výrobcem navržené API.

Předpokládám, že to souvisí i s tím, že se výrobci chrání před kopírováním své vlastní architektury.

To je velmi zajímavá otázka, před čím se vlastně výrobci konkrétně chrání. Přestože celý systém je na první pohled poměrně komplexní, tak v principu není ničím jiným než překladačem těžícího protokolu. To znamená že úkoly, které mu dávají těžící pooly, překládá do jazyka, kterému rozumí těžební hardware. A samotné rozhraní těžebního hardware není technicky ničím překvapivé, jsou to jednoduché integrované obvody, se kterými se komunikuje standardní protokolem (Serial Peripheral Interface nebo Universal asynchronous receiver-transmitter – pozn. redakce).

Těch zařízení už jsme viděli tolik, že můžeme s klidem prohlásit, že zde nelze vymyslet nic skutečně inovativního z pohledu toho, jak systém pracuje. Pořád je potřeba připravit těžící job, nahrát jej do čipů, které jej spočítají a odešlou výsledek. Mezi tím je samozřejmě nějaké nastavovaní – ladění frekvence (jak má čip fungovat rychle), některé čipy umí měřit teplotu a podobně, ale nic zásadního u nich už nevymyslíte. Jediné místo, kde se skutečně něco opisovat dá, je, jakým způsobem jsou skutečně navržené fyzické hashboardy, a to ti výrobci mezi sebou stejně dělají, protože tomu lze jen obtížně zabránit. Stačí si zařízení koupit a rozebrat jej. Někteří z nich nám to i v neformálním rozhovoru potvrdili.

Další level by pak byla průmyslová špionáž toho, jak jednotlivé ASIC čipy fungují uvnitř, což ti výrobci dělají také. Pro běžného člověka je to ale něco naprosto nedostupného kvůli obřím vstupním investicím. I kdyby se mu ale reverse engineering povedl a chtěl na takovém úspěchu založit vlastní byznys, nejde o čip, který mu jen tak někdo vyrobí. Čipy, které ASIC zařízení dnes používají, jsou totiž cutting edge toho, co se dnes používá v mobilních telefonech, bavíme se zde o 7 nm výrobním procesu. Musel by tedy celou věc zvážit jako plnohodnotný investiční projekt s velkým množstvím rizik.

Když to shrnu, duševní vlastnictví zde leží na úrovni hardware, který se nechrání a naopak se chrání počítačový kód, který je z velké části pod GPL licencí, kterou tímto výrobci porušují.

Tím se dostáváme k zajímavé odbočce. Vy jste v minulosti měli v šuplíku docela zajímavý vlastní návrh mining čipu. Proč jste s ním nikdy nevyšli ven a máte v tomto ohledu ještě nějaké plány do budoucna?

Ten čip máme v šuplíku pořád, problém je ten, že navrhnout čip na logické úrovni je pouze první část úkolu, ale pak je tu ještě druhá část, která spočívá v tom najít firmu, která by se zaručila za jeho fyzické navržení (je to podobné jako návrh plošného spoje, pouze se vše odehrává nanometrech) a nechala u nějaké renomované firmy (například GlobalFoundries) vytvořit jeho masku.

To zní sice jednoduše, ale je to investiční náklad, který v sobě nese spoustu rizika. Návrh ASIC čipů navíc není jen o samotné výpočetní logice, ale také o tom, jak zaručit, že budou čipy schopné běžet v tak náročném prostředí. Těžební zařízení má na malé ploše desítky podobných čipů a vy musíte vyřešit, jak je napájet, aby to celé fungovalo. To rozhodně není standardní úloha z oblasti vývoje počítačových systémů, nikdo soudný totiž normálně nedává integrované obvody za sebe do série.

Když to ale zjednoduším, víme, že miner má dvě části – hardware a těžební software a my jsme si řekli, že si nejdříve potřebujeme odškrtnout ten jednodušší úkol, tedy vytvořit plnohodnotný open source těžební operační systém, který může běžet na cizích minerech. Až tento úkol budeme mít za sebou, tak teprve začneme zvažovat, zda-li by dávalo smysl se poohlížet po investorech na tu hardwarovou část.

Kdy vlastně vznikl nápad na vlastní otevřený operační systém pro minery?

Do značné míry se to kryje s podporou ASIC Boostu v těžebním protokolu. V roce 2017 se na trhu začala objevovat nová zařízení s podporou ASIC Boost a bylo potřeba do stávajícího těžebního protokolu přidat jeho podporu. My jsme se toho úkolu chopili a tím jsme se obratem dostali k tvorbě firmwaru pro jedno z těchto těžebních zařízení (Dragonmint T1). Naivně jsme si mysleli, že by se výrobci mohlo líbit, když to bude open source.

Výrobci se to nelíbilo, takže k dohodě, že by Braiins OS fungoval v těch zařízeních přímo z výroby, nakonec nedošlo. Když už jsme ale měli ten kód hotový na testování těchto zařízení, tak jsme začali uvažovat, co dál. Nakonec jsme se rozhodli udělat port pro S9, což tehdy byla majoritní zařízení na trhu, a tam začalo celé naše dobrodružství s ASIC Boostem. Tehdy také vznikl oficiální název Braiins OS.

Můžeš ve zkratce pro neznalé čtenáře zrekapitulovat, o co v kauze ASIC Boost šlo?

Základní zápletka byla taková, že ve své době dva lidé (Timo Hanke a Sergio Lerner – pozn. redakce) vymysleli, jak navrhnout ASIC čipy tak, aby v nich byla určitá část logiky vynechaná, čímž dojde k energetické úspoře (v praxi někde mezi 10–20 %). Princip využívá určitých vlastností hlavičky bitcoinového bloku. Toho lze využít buď k adekvátní energetické úspoře, nebo k tomu, že zařízení bude běžet rychleji. Tito lidé si tento vynález nechali patentovat a chytli se toho někteří výrobci.

Následně se na trhu objevil Antminer S9 od Bitmainu, u kterého bylo podezření, že ASIC Boost má. Bitmain nicméně světu tvrdil, že jej nemá a neumí. My jsme v té době začali řešit podporu Braiins OS pro S9 a součástí tohoto snažení byl i výzkum, zda-li umí, či neumí ASIC Boost. Náš závěr byl, že jej umí (analýzu jsme publikovali a je volně ke stažení), ale má to háček, protože spočítané výsledky jsou špatně. Není to proto, že by čipy samotné počítaly špatně, ale v tom, že se jim špatně zadá práce. To lze jednoduše snadno vyřešit úpravou softwaru, ale zde se právě dostáváme zpátky k odpovědi na první otázku a postupnému uzavírání softwaru v minerech.

Zde se konkrétně jako problematická ukázala ta FPGA komponenta, což je vlastně programovatelné logické pole, které se stará o překlad. Bitmain do ní totiž vložil poměrně hodně samotné těžební logiky a zároveň k ní neposkytl prakticky žádnou dokumentaci. My jsme se proto (a zároveň i z licenčních důvodů) rozhodli tuto logiku úplně eliminovat a napsat vlastní těžební kód, který se přeloží a vloží do FPGA místo ní.

Následně jsme publikovali již zmíněný analytický report. Tam jsme říkali: víme, že zařízení teoreticky podporuje ASIC Boost, ale současný FPGA kód to neumožňuje, ale my pracujeme na vlastní open source verzi, a pokud Bitmain v nějaké rozumné době nevydá update, která tuto vlastnost opravuje, tak obratem vydáme Braiins OS s podporou ASIC Boostu. Bitmain překvapivě zareagoval a do týdne byl nový firmware na světě. Vtipné na tom bylo, že jejich první release upraveného firmware obsahoval chybu, takže jsme ve finále měli funkční ASIC Boost dříve než Bitmain.

Kolem Bitmainu rezonovala na začátku roku 2017, tedy ještě před ASIC Boostem, ještě jedna kauza související s uzamčeným těžebním softwarem, a to Antbleed. Ten se vás také nějak dotkl?

Antbleed představoval dokonce druhou hlavní motivaci, proč jsme se rozhodli jít s vlastním otevřeným operačním softwarem pro minery ven. U Antbleedu se ukázalo, že nejenom že vám výrobce nevěří, ale zároveň do firmwaru tajně dodává komponenty, které umožňují zařízení na dálku ovládat, a dokonce i vypnout. Oni pak argumentovali tím, že jde o diagnostický nástroj pro dálkový management, který lze vypnout. Jenže tento argument se objevil až v rámci krizové komunikace, když se o to lidé začali zajímat, do té doby žádný uživatel o jeho existenci neměl tušení a na diagnostický nástroj měl poměrně silná oprávnění (viz schopnost vypnout zařízení). Bitmain s Bitfury přitom v té době ovládali prakticky celý trh s ASIC těžebními zařízeními.

V jakém stavu je váš operační systém dnes? Vím, že loni proběhl jeden důležitý release.

Poslední oficiální velký release Braiins OS je z června loňského roku, tehdy jsme si řekli, že uděláme zatím freeze, opravíme případné chyby a budeme se soustředit na výměnu cgmineru (s tím souvisí i podpora Stratum V2). Další velký milník nastal před Vánoci 2019, kdy jsme vydali plnohodnotné preview Braiins OS pro S9 na SD karty, který již má nový těžební software (BOSminer) a ten již umí těžit se třemi hashboardy.

Zní to jako malý pokrok, ale v tomto releasu již je i náš open source FPGA kód pro řízení těžicích čipů. Samozřejmě pořád platí, že chceme být univerzálním systémem pro všechny minery, takže jsme vzali upstream API všech výrobců (každý si jej nějakým způsobem pozměnil) a k němu teprve doplňujeme rozšíření pro konkrétní hardware (v daném případě S9). Nyní finišujeme některé části na frontendu samotného těžicího softwaru tak, aby poskytoval API kompatibilní se cgminerem, což je prerekvizita, kterou nechceme měnit, protože jde o zažitý standard.

MIF mobilni aplikace

Braiins OS vyvíjíte pro komunitu zdarma, jeho vývoj vám ale polyká velké množství času a prostředků, je za tím skrytý nějaký obchodní model?

Naše filosofie je taková, že chceme, aby těžební software byl plně transparentní a open source, což náš systém vždycky bude. Kdo nás chce podpořit a využívá Braiins OS, tak může těžit u nás na poolu (Slushpool). Zvažovali jsme také rozdělení na veřejnou a komerční variantu, jako je tomu u některých linuxových distribucí.