14listopad–prosinec 2010

Slush Pool: pražský nápad proti těžařské loterii

Marek Palatinus spojil výkon drobných těžařů a rozdělil mezi ně častější malé výplaty. První veřejný pool vyřešil jednu nejistotu Bitcoinu a současně vytvořil nový bod důvěry.

Na konci listopadu 2010 mohl domácí těžař nechat počítač běžet týdny a přesto nezískat nic. Pokud měl štěstí, připadla mu celá odměna 50 BTC; pokud ne, zaplatil elektřinu a čekal dál. Pražský programátor Marek „Slush“ Palatinus navrhl, aby lidé přestali hrát každý svou loterii. Jejich stroje měly pracovat na společném bloku a služba měla odměnu rozdělit podle prokázané práce. Dne 27. listopadu představil „cooperative mining server“. O necelé tři týdny později pool vytěžil blok 97 834. Z improvizovaného projektu jednoho člověka vyrostl model, bez něhož si dnešní těžbu téměř nelze představit — i spor o to, kolik koordinace může decentralizovaná síť bezpečně snést.

01

Padesát bitcoinů, nebo dlouho nic

Bitcoin tehdy odměňoval vítěze bloku padesáti mincemi. Pro síť to byl jednoduchý mechanismus, pro jednotlivce však tvrdá loterie. Pravděpodobnost nalezení bloku odpovídala podílu jeho výpočetního výkonu na celé síti. Jakmile celkový výkon rostl, malý těžař mohl čekat stále déle, přestože jeho stroj pracoval bez přestávky.

Dlouhodobý průměr mohl vypadat příznivě, ale účty za elektřinu chodily každý měsíc. Jednotlivec potřeboval nést velký rozptyl: buď získal celou odměnu, nebo po dlouhé období vůbec nic. To vytlačovalo lidi s menším výkonem, i když by jejich práce byla z pohledu sítě stejně užitečná jako práce velkého provozu.

Palatinus problém znal z vlastní zkušenosti. Ve fóru popsal, že společný server může spojit tisíce malých pokusů a výsledky rozdělit. Účastník už nebude čekat na vlastní vzácný úspěch; dostane menší podíl pokaždé, když se podaří blok komukoli ve skupině.

Mining pool tím nemění pravděpodobnost celé skupiny ani nevytváří více bitcoinů. Mění rozdělení rizika v čase. Je to rozdíl mezi jedním losem s velkou výhrou a pravidelným podílem z velkého svazku losů. Za stabilnější příjem platí těžař poplatkem a závislostí na správném účetnictví provozovatele.

Slush svůj návrh nepředstavil jako čistě technické vítězství. Už v prvním vlákně vyjmenoval výhody, nevýhody a nutnou důvěru. Server musel správně měřit odevzdanou práci, nekrást odměny a zůstat dostupný. Pool odstraňoval jednu nejistotu, ale přidával prostředníka, kterého samotný bitcoinový konsenzus nekontroloval.

Pro malého těžaře nebyla největším problémem průměrná návratnost, ale čas. Statisticky mohl mít nárok na zlomek odměny každý den, skutečný protokol však nevyplácel zlomky za snahu. Buď jeho stroj našel platný blok a získal celých padesát bitcoinů, nebo nezískal nic. Dlouhá série neúspěchů přitom neznamenala, že zařízení nepracovalo; znamenala jen, že loterie zatím nedopadla v jeho prospěch. Společný server převáděl tuto nepravidelnou událost na menší podíly podle doložené práce. Pool nezvýšil očekávaný počet nalezených bloků, ale změnil rytmus příjmu, a právě tento rozdíl mohl rozhodnout, zda si člověk mohl dovolit těžit dál.

02

Cooperative mining server

Oznámení z 27. listopadu 2010 nebylo hotovým firemním produktem. Palatinus sháněl lidi ochotné testovat protokol, připojení a způsob odměňování. Systém musel přijímat částečné důkazy práce — výsledky příliš slabé pro platný blok, ale dostatečné k prokázání, že těžař opravdu počítá.

Tyto takzvané shares dovolily poolu odhadnout příspěvek každého stroje. Když některý účastník našel hash splňující obtížnost celé sítě, pool obdržel blokovou odměnu a rozdělil ji podle zvoleného účetního pravidla. Pro běžného těžaře se výsledek změnil z nepravidelných padesáti bitcoinů na proud menších plateb.

První podoba služby běžela pod názvem Bitcoin.cz Mining Pool. Web, server i podpora byly z velké části prací jediného člověka. To dává českému prvenství přesnější rozměr: nešlo o národní projekt ani státní program, ale o programátora, který z Prahy řešil konkrétní ekonomický problém globální sítě.

Pool zároveň potřeboval sestavit kandidátní blok a rozeslat těžařům úlohu. Jednotlivé stroje dodávaly výkon, ale provozovatel určoval, na jaké hlavičce pracují a jaké transakce šablona obsahuje. Rozdělení hardwaru mezi mnoho lidí proto samo o sobě nezaručovalo rozdělení rozhodování.

Pozdější vývoj těžebních protokolů, včetně Stratum V1, se snažil komunikaci mezi pooly a zařízeními zefektivnit. Základní obchod však zůstal stejný: pool prodává předvídatelnější výplatu a těžař mu svěřuje část koordinace. První server vytvořil vzor, který ostatní rychle následovali.

03

Blok 97 834

Ostrý provoz začal 16. prosince 2010. Ve stejný den pool vytěžil blok 97 834. Záznam v řetězci dnes ukazuje výsledek, ale ne napětí před ním: zda server správně přijme práci, rozpozná platný blok a připíše podíly lidem, kteří mu věnovali výkon.

První blok potvrdil, že koordinace funguje nejen v testu. Odměna se mohla rozdělit mezi účastníky, z nichž většina by sama v tom okamžiku nic nezískala. Pro drobné těžaře to byl hmatatelný důkaz, že jejich slabší stroje nemusí být z ekonomiky sítě okamžitě vytlačeny.

Datum je důležité odlišit od listopadového oznámení. Nápad, veřejné testování a ostrý výsledek byly tři různé kroky. Příběh nezačíná náhlým nalezením bloku, ale týdny před ním, kdy Slush otevřeně popsal návrh a požádal komunitu, aby mu pomohla najít chyby.

Úspěch přivedl další výkon a s ním odpovědnost. Čím větší část sítě pool sdružoval, tím citlivější byl každý výpadek nebo špatné rozhodnutí. Služba musela chránit účty, počítat odměny a reagovat na útoky. To už nebyl jen skript na vyrovnání štěstí; byla to infrastruktura, na jejíž účetnictví se spoléhali cizí lidé.

Blok 97 834 proto není významný svou částkou. Stejných padesát bitcoinů získávali i jiní těžaři. Výjimečný byl způsob, jakým k němu došli a jak jej rozdělili. Jediný řádek v blockchainu představoval společnou práci mnoha strojů a první praktický důkaz, že pooling může fungovat ve veřejné síti.

04

Od Slushe k odvětví poolů

Projekt později prošel názvy Slush Pool a Braiins Pool. Tým Braiins službu profesionalizoval, zatímco Marek Palatinus věnoval více energie SatoshiLabs a hardwarové peněžence Trezor. Z původního serveru však zůstala nepřerušená historická linie k jednomu z nejstarších jmen bitcoinové těžby.

Pooling rozšířil možnost těžit, ale postupně také soustředil tvorbu blokových šablon do menšího počtu služeb. Sólo těžař rozhoduje sám, jaký blok staví. Účastník běžného poolu často jen počítá zadání, které obdržel. Fyzický výkon může být rozptýlený, zatímco koordinační rozhodnutí zůstává centralizované.

Tato koncentrace neznamená, že pool vlastní všechny připojené stroje. Těžaři mohou výkon přesměrovat jinam, pokud nesouhlasí s poplatky, cenzurou nebo chováním provozovatele. Přesun však vyžaduje informace a ochotu reagovat. Decentralizace se proto měří nejen počtem zařízení, ale i tím, kdo skládá bloky a jak snadno lze změnit koordinátora.

Slushův první text tento kompromis nezamlčoval. Nabídl řešení ekonomického problému a zároveň pojmenoval důvěru, kterou řešení vyžaduje. Právě tato otevřenost pomáhá příběh číst bez pozdějšího triumfalismu: pool nebyl konečnou odpovědí, ale nový nástroj s jasnými náklady.

Pražský projekt změnil těžbu tím, že oddělil práci od štěstí. Jednotlivec už nemusel sám vyhrát celý blok, aby jeho hashrate získal průběžnou cenu. Současně ukázal, že i systém navržený bez centrální banky bude vytvářet služby, kterým lidé svěřují koordinaci. Otázka není, zda vzniknou, ale zda je účastníci dokážou kontrolovat, opouštět a nahrazovat.

Koncentraci poolů proto nelze měřit jen počtem připojených strojů. Důležité je, kdo skládá šablonu bloku, vybírá transakce, nastavuje pravidla výplaty a dokáže účastníky přesvědčit, aby při problému změnili software. Těžař může pool opustit, jen pokud má jinou použitelnou možnost a skutečně sleduje, co služba dělá. Slushův původní popis důvěry je v tomto směru stále aktuální. Pooling vyřešil skutečný ekonomický problém a současně vytvořil novou oblast, v níž je nutná konkurence, transparentnost a možnost odchodu. Decentralizace se neudržuje tím, že koordinaci zakážeme, ale tím, že ji nenecháme ztuhnout v nezkontrolovatelnou moc.

Atlas

Postavy a pojmy v Atlasu

POOL·0Braiins PoolSLUSHMarek „Slush“ PalatinusPOOLMining PoolSOLOSolo MiningHASHTěžbaH/sHashrateSV1Stratum V1
  1. 01
    BitcoinTalk / Satoshi Nakamoto Institute — Cooperative mining

    Původní Slushovo oznámení, argument pro menší pravidelné výplaty a otevřená diskuse o důvěře.

  2. 02
    Braiins — Hashing History

    Historie Bitcoin.cz Mining Poolu, přechod k Braiins a návaznost na SatoshiLabs.

  3. 03
    Braiins — Hashrate as a commodity

    Datum ostrého spuštění 16. prosince 2010, blok 97 834 a ekonomický smysl sdílení odměn.

  4. 04
    Mempool.space — block 97 834

    Veřejný blockchainový záznam prvního bloku poolu.

Další příběh · 15Noc, kdy měl Bitcoin dvě platné historie