ASIC Miner je zařízení se specializovanými čipy pro těžbu bitcoinu. Jeho úkolem je opakovaně počítat číselný otisk hlavičky připravovaného bloku, tedy stručného záznamu jeho hlavních údajů, a hledat výsledek, který splní pravidla těžby. Vyšší výkon znamená více pokusů za sekundu, nikoli jistotu odměny. K provozu patří také elektřina, chlazení, řídicí software a zdroj těžebních úloh.
Anna vidí vedle počítače malý těžební přístroj a ptá se, zda by totéž nezvládl její notebook. Technicky může potřebné výpočty provádět i běžný počítač. ASIC je však navržen právě pro ně, a proto za stejnou energii zpravidla zvládne mnohem více pokusů. Zkratka znamená Application-Specific Integrated Circuit: integrovaný obvod určený pro konkrétní použití. V běžné řeči se slovem ASIC označuje i celý miner s takovými čipy. Bitcoinový miner používá výpočet SHA-256 k hledání vhodného číselného otisku neboli hashe. Nevypočítává dopředu správnou odpověď; mění vstupní údaje a zkouší další výsledky. Právě tato specializace postupně vytlačila z konkurenceschopné těžby běžné procesory CPU, grafické čipy GPU i programovatelné obvody FPGA. Čip pro těžbu SHA-256 ale nelze jednoduše proměnit v univerzální počítač. [6] [8]
Představme si modelový miner s výkonem 100 TH/s a příkonem 3 000 W. Nejde o parametry konkrétního výrobku. TH/s znamená biliony hashů za sekundu, takže přístroj provádí sto bilionů pokusů každou sekundu. Tomuto výkonu říkáme Hashrate. Elektroměr ovšem počítá odebranou energii: při stálém příkonu 3 kW spotřebuje za 24 hodin 72 kWh. Teprve cenu jedné kWh násobíme tímto množstvím. Pro srovnání strojů se používá J/TH, tedy energie v joulech na bilion pokusů. V našem příkladu je to 3 000 / 100 = 30 J/TH. Nižší číslo znamená méně energie na stejnou práci. Je však potřeba porovnávat stejný způsob měření a nastavení. Údaj pro samotný čip nelze bez dalšího porovnat s odběrem celého stroje ze zásuvky. [7] [8]
Téměř všechna energie spotřebovaná minerem nakonec skončí jako teplo. Anna proto při hledání místa pro přístroj musí řešit také odvod tepla a podle konstrukce i hluk ventilátorů. Malý domácí miner a průmyslový stroj mohou mít velmi odlišné nároky; samotné označení ASIC nic neříká o velikosti ani příkonu. Uvnitř pracují kromě čipů také napájecí zdroj, regulátory napětí, řídicí jednotka a desky osazené těžebními čipy, zvané hashboards. Teplo odvádějí ventilátory nebo kapalinové chlazení. Prach, vadný ventilátor, nevhodné napájení či příliš vysoké nastavení výkonu mohou způsobit chyby a odstávky. Proto je užitečnější sledovat celý provoz než jen nejvyšší číslo v nabídce výrobce. [7] [8]
Po připojení k Mining Pool dostává Annin miner úlohy od služby, která koordinuje těžaře. Pool není součástí čipu: je to samostatný software a provozovatel. Při samostatné těžbě musí odpovídající infrastrukturu zajistit Anna. Firmware, tedy řídicí software zařízení, předává úlohy čipům a odesílá nalezené výsledky. Nejdříve musí někdo sestavit návrh bloku s transakcemi, nazývaný Block Template. Návrh poskytuje Full Node nebo jiný poskytovatel šablon. Full Node je program, který samostatně kontroluje bloky a transakce podle pravidel Bitcoinu. Rozhraní getblocktemplate popisuje BIP22 a jeho rozšíření pro pooly BIP23. Stratum V2 rozděluje komunikaci na Mining Protocol pro těžební úlohy, Job Declaration pro návrhy vlastní práce a Template Distribution pro předávání šablon. Možnost těžaře vybírat transakce závisí na použitém zapojení a podpoře těchto částí; samotný čip je nevybírá. [1] [2] [4] [5] [9]
Anna v přehledu poolu vidí přijaté shares, přestože její zařízení nenašlo nový bitcoinový blok. Share je výsledek, který splnil mírnější podmínku poolu a pomáhá statisticky doložit odvedenou práci. Pool podle svých pravidel tuto práci používá při výpočtu výplat. Share není další mince ani automaticky část bloku. Jen mnohem vzácnější výsledek splní i obtížnější podmínku celé bitcoinové sítě. Teprve s ním lze předložit blok, který musí obstát také ve všech ostatních kontrolách. Změna obtížnosti shares ovlivní, jak často je miner posílá poolu; sama nezvýší jeho skutečný výkon ani nezmění obtížnost těžby v síti. [4] [6]
Nalezený výsledek je návrh pro síť, nikoli příkaz ostatním. Full Node, tedy uzel, který sám kontroluje pravidla Bitcoinu, odmítne neplatný blok i od velmi výkonného těžaře. ASIC nedovoluje vytvořit odměnu nad povolený limit, utratit cizí mince bez oprávnění ani přinutit uzly přijmout jiná pravidla. Provozovatel přesto rozhoduje o důležitých věcech: jaký firmware používá, ke kterému poolu se připojí a podle možností také nad jakými transakcemi těží. V provozu má smysl porovnávat výkon hlášený strojem s delším měřením poolu, sledovat odmítnuté shares, teplotu a skutečný odběr. Krátké výkyvy poolového odhadu samy o sobě neznamenají poruchu. [5] [10]
Dva stejné minery mohou mít zcela jiný hospodářský výsledek. Jeden stojí v dobře chlazeném prostoru s levnější elektřinou, druhý často vypadává a platí dražší energii. Do výsledku navíc vstupují pořizovací cena a opotřebení zařízení, poplatky poolu, cena bitcoinu, síťová obtížnost a transakční poplatky v těžených blocích. Technická účinnost tedy není příslib návratnosti. Specializace přinesla i vyšší nároky na výrobu čipů a provoz velkých těžebních center. Při debatě o koncentraci těžby je ale potřeba rozlišovat výrobce čipů, vlastníky strojů, fyzická umístění a pooly. Vysoký podíl jednoho poolu sám nedokazuje, že všechny připojené stroje patří stejné firmě. [6] [8]
Frekvence určuje tempo práce čipu a napětí pomáhá udržet jeho výpočty spolehlivé. Ani dva čipy stejného typu nemusejí zvládat stejné nastavení: při výrobě vznikají drobné rozdíly v elektrických vlastnostech. Firmware může hledat vhodné nastavení pro konkrétní čip nebo desku; tomu se říká Autotuning. Snížení frekvence spolu s vhodným napětím může zlepšit J/TH, i když klesne celkový Hashrate. Naopak přetaktování může přidat výkon za cenu nepoměrně větší spotřeby a tepla. Výsledek závisí na konkrétním zařízení, chlazení a nastavení. Nejvyšší dosažitelný výkon proto nemusí být nejrozumnější dlouhodobý provozní režim. [7]
Základem výpočtu je 80bajtová hlavička bloku, krátký souhrn jeho základních údajů. Obsahuje verzi, hash předchozího bloku, Merkle Root shrnující transakce, časový údaj, zakódovaný cíl obtížnosti nBits a 32bitové pole Nonce. Výpočet SHA-256(SHA-256(header)) znamená, že se SHA-256 použije dvakrát; header zde označuje právě hlavičku. Výsledný hash se čte jako číslo. Aby vyhověl požadovanému důkazu práce, musí být nejvýše roven cíli: hash ≤ target. Čip si může výpočet urychlovat opakováním mezivýsledků pro neměnné části vstupu. Uzly ovšem kontrolují výsledek a správný cíl, nikoli způsob, jakým si výrobce uspořádal obvody. Splnění této podmínky stále nenahrazuje ostatní pravidla platnosti bloku. [6] [10]
Nonce poskytuje 2^32 různých hodnot. Rychlý miner je vyzkouší velmi brzy, proto těžební systém musí měnit i další údaje. Extranonce je pomocná hodnota v Coinbase Transaction, zvláštní první transakci bloku s těžební odměnou. Její změna změní transakci, navazující Merkle Root a tím i vstup do dalšího kola výpočtů. Lze pracovat také s časovým polem nTime v povolených mezích nebo s vhodnými bity verze. Návrh BIP320 popisuje vyhrazení některých bitů pro obecné použití; nejde o oprávnění ignorovat pravidla sítě. Stratum V2 vyžaduje rozdělit práci mezi zařízení tak, aby zbytečně nezkoušela stejné kandidáty. Smyslem celé této techniky je zásobovat čipy novými možnostmi, ne zvětšovat odměnu za jednotlivý blok. Novější návrh BIP323 má BIP320 nahradit a vyhradit pro tento účel 24 bitů verze. Současná specifikace Stratum V2 již odkazuje na BIP323. Ten má stále stav Draft: samotné zveřejnění návrhu nemění pravidla Bitcoinu. [3] [4] [11]
Pro nejúplnější obraz čtěte toto heslo společně s Těžba, Hashrate, SHA-256, Block Header, Nonce, Extranonce. Opačným směrem na něj odkazují také Mining Pool, Hashrate, Nonce, Braiins.