Není horník jako horník aneb Jak se těží bitcoiny

Bez bitcoinových „horníků“ by nemohly fungovat ani bitcoiny, které už byly dávno vytěžené. Co nastane v roce 2140?

 | na serveru Lidovky.cz | aktuální zprávy foto: © ilustrace ČESKÁ POZICE, Richard Cortés, foto ReutersČeská pozice
 | na serveru Lidovky.cz | aktuální zprávy

Bitcoiny se dají, s nasazením čím dál složitější techniky, těžit skoro jako zlato nebo diamanty. Bitcoinoví „horníci“ mají ovšem v celém systému mnohem důležitější funkci než horníci v dolech – bez nich by totiž nemohly fungovat ani bitcoiny, které už byly dávno vytěžené. Jak vlastně „těžba“ digitální měny probíhá a co se stane, až budou všechny bitcoiny v roce 2140 vytěženy, popisuje Vladimír Meier.

Digitální měna bitcoin má řadu zajímavých vlastností, a to jak společných s tradičními měnami, tak i naprosto rozdílných. Bitcoiny totiž, kromě toho, že je už lze kupovat a prodávat a platit jimi v internetových i kamenných obchodech, je také možno získat „zadarmo“ jen tím, že se zájemce zapojí do bitcoinové sítě a provede ve správném okamžiku správný výpočet.

Při současném kurzu bitcoinu to zní dost lákavě, ale bohužel jsou už asi nenávratně pryč doby, kdy tento výpočet bylo možné provést jen tak na normálním počítači za několik minut nebo hodin. Podívejme se ale nejdřív na to, co vlastně toto „těžení“ znamená.

Uloženo v informacích...

Bitcoin je absolutně decentralizovaná měna – není zde žádná centrální autorita, která o ní rozhoduje, vše se děje v celé síti podle definovaného protokolu a jen se souhlasem účastníků sítě. Když někdo vlastní nějaké bitcoiny, neznamená to, že je má uložené na konkrétním místě nebo počítači, informace o nich je v celé síti.

Co se tedy musí stát, aby někdo mohl koupit třeba 20 bitcoinů?Co se tedy musí stát, aby někdo mohl koupit třeba 20 bitcoinů (BTC)? V bitcoinové síti je to trochu paradoxně vyřešeno úplně obráceně než v tradičních měnách. Neexistují zde jednotlivá konta, na kterých by byly bitcoiny uložené, ale existuje jeden záznam úplně všech transakcí, které byly kdy s bitcoiny provedeny, takzvaný blockchain. Tento záznam je zcela veřejný, každý si ho může kdykoli prohlédnout, třeba na serveru blockchain.info. A z těchto transakcí je pak možné vyčíst, kolik je na které adrese bitcoinů k dispozici.

Bitcoinové adresy jsou shluky písmen a číslic (jako například 192CZLoRfCRgTpTXchDrxRaZcvWagnnyrH), kterých si každý účastník může vytvořit, kolik chce, a pak s nimi disponovat – vzdáleně jsou podobné e-mailovým adresám. V každé transakci je zapsáno, že určitá adresa (nebo i více adres) posílá nějaký obnos na jednu nebo více dalších adres.

Když se například podíváme na tuto transakci, vidíme, že tam pět vstupních adres posílá celkem 304,163 BTC na šest výstupních adres, přičemž na každou posílá jinou částku. Na každou z uvedených adres lze přitom dál kliknout a zjišťovat, odkud a kam se bitcoiny pohybovaly, jejich pohyb je tedy absolutně transparentní.

Proč se tedy bitcoiny označují jako „kryptodigitální“ měna, když je úplně všechno vidět? Je to proto, že sice všechny transakce a pohyby peněz vidíme, ale téměř nikdy nevíme, komu tyto adresy patří. Sledováním pohybů bitcoinů se sice někdy dá vyvodit, komu nějaká adresa patří, ale když si účastníci transakce přejí zůstat anonymní, nikdo jejich totožnost nezjistí, a proto jsou krádeže bitcoinů možné a také nevratné.

Celý záznam transakcí, blockchain, obsahuje tedy všechny transakce a neustále do něj nové transakce přibývají. Ne po jedné, ale z nezařazených transakcí se vždy nejprve vytvoří blok, a ten se pak po ověření k blockchainu přidá; odtud také pramení jeho název.

Rozpor architektury

A teď se dostáváme k našemu tématu: jak se může nový blok připojit k blockchainu? Řekli jsme, že blockchain je jen jeden – jeho kopie jsou sice všude v síti, ale všechny jsou stejné. Jestliže zde neexistuje žádná centrální autorita, tak kdo rozhodne, které z nových transakcí se spojí do nového bloku a přidají k blockchainu a kdy se to stane?

Vytvořit a přidat nový blok může jenom jeden z těch tisíců počítačů v sítiNa serveru blockchain.info můžeme vidět, jak nové transakce přibývají, v každém okamžiku jsou generovány nové transakce všude na celém světě a tisíce počítačů v síti je sbírají a posílají dál. A protože chvíli trvá, než se transakce rozšíří, má každý počítač v každém okamžiku trochu jiný seznam nových transakcí, které by nový blok měly vytvořit. Tato architektura – na jedné straně decentralizovaná síť a na druhé straně jeden společný záznam, který se neustále mění – v sobě nese evidentní rozpor: jenom jeden z těch tisíců počítačů může nový blok vytvořit a přidat.

Tento rozpor lze řešit například tím, že proběhne nějaká „loterie“, která ze všech účastníků sítě vybere jednoho šťastlivce a řekne mu: „Ty teď rozhodneš, které z nových transakcí vytvoří nový blok a přidají se k blockchainu. Prosím, tvoř.“ To je ovšem jen posunutí problému jinam – kdo by měl takovou loterii uspořádat, a hlavně rozhodnout?

Tvůrci bitcoinu tento rozpor vyřešili elegantním způsobem, který zároveň eliminuje několik dalších problémů: každý z adeptů dostane úkol k vyřešení a ten, kdo s ním bude první hotov, má právo a zároveň povinnost vytvořit další blok a přidat ho k blockchainu. A pro případ, že by se do toho nikomu nechtělo, zároveň stanovili, že tento výherce za svoji snahu dostane odměnu v bitcoinech, a ta zajistí, že bude vždy dost zájemců a do blockchainu budou moci neustále přibývat nové transakce.

A právě tuto činnost budeme nazývat těžení bitcoinů (bitcoin mining). Takže nejdůležitější činností, bez které by celý systém nemohl fungovat, je ověřování a registrace nových transakcí, a celé těžení bitcoinů je vlastně jen její malý vedlejší efekt.

V bitcoinové síti tedy existují dva druhy účastníků:

  • Ti, kteří bitcoiny používají a vytvářejí nové transakce.
  • Ti, kteří bitcoiny těží a tím zajišťují, aby nové transakce mohly být ověřeny a přidány do společného registru, blockchainu.

Důležitou vlastností bitcoinového protokolu také je, že dokud se nová transakce nestane částí nového bloku v blockchainu, platí jako neověřená a nelze se spolehnout na to, že opravdu přidaná bude. Nepoctivý účastník se totiž může pokusit utratit své bitcoiny několikrát tím, že rozešle několik transakcí, ve kterých posílá stejné bitcoiny z jedné adresy pokaždé na jinou. K tomu by sice musel upravit použitý program, ale protože všechny programy jsou open source, není to vyloučené. Než tedy „horník“ vytvoří nový blok, musí všechny transakce ověřit a zkontrolovat, že všechny adresy, odkud se bitcoiny posílají, opravdu obsahují tolik bitcoinů, kolik transakce vyžaduje.

Úkol právě pro jednoho výherce

Všechno další už jsou jen technické detaily, ale pro zajímavost si některé z nich také popíšeme. První, co nás asi napadne, je, jaký úkol můžeme dát tisícům počítačů v síti k vyřešení tak, aby se v daném čase našel právě jeden výherce? Jeho zadání nesmí být ani příliš lehké – pak by se našlo řešení příliš brzo a v síti by mohl nastat chaos –, ani příliš těžké – pak by trvalo příliš dlouho, než se nové transakce ověří.

Tvůrci bitcoinu nalezli velmi elegantní řešení, které je tak jednoduché, že se zdá, že by na to mohl přijít každýZároveň musí složitost tohoto úkolu umět reagovat na to, jak výkonné počítače si horníci obstarají, a když začnou tento úkol řešit příliš rychle, musí být možné ho zkomplikovat. V opačném případě, kdyby to polovina horníků vzdala, musí se úkol zase dát zjednodušit. Také musí být možné rychle ověřit, jestli předložené řešení je opravdu správné, aniž by se musel opakovat celý jeho složitý výpočet.

Tvůrci bitcoinu nalezli velmi elegantní řešení, které je tak jednoduché, že se zdá, že by na to mohl přijít každý, ale asi to bude zase tak jako s Kolumbovým vejcem. Použili totiž kryptografickou hashovací funkci SHA-256. Ten název zní sice velmi komplikovaně, ale funkce je to v podstatě jednoduchá: libovolně dlouhá vstupní data vytvoří výstup, takzvanou signaturu nebo hash, který je 256 bitů dlouhý, a dá se proto znázornit jako text se 64 (hexadecimálními) písmeny. Má přitom tři důležité vlastnosti:

  • malá změna ve vstupních datech má za následek obrovskou změnu ve výstupním textu,
  • k danému vstupu lze hash spočítat poměrně jednoduše, ale z daného hashe je téměř nemožné najít nějaký vstupní text, který by ho generoval,
  • výstupní hash lze proto interpretovat jako digitální podpis vstupních dat.

Podívejme se pro ilustraci, jak tato funkce funguje:

VstupVýstup
Máma má maso47c413eee8a3cd396b61c5a727d59e507c139ac098f52034bfec33a78c0f2aa0
máma má masoa1f541b8800ca6eef0c999bff66157cffd308f7a447b2d4f1ac253d8c3800410
mama má maso6d20851d333c27d9256b3bcd53676becd666b0bf8f09bfb9631646c21cbd3023
Máma má maso.b48866d01cf2bf3c679a1d9a80ea89136e7d16cb7a9537ce4f2b4c34f73c4965

Vidíme, že i když je vstup mnohem kratší než výstup, přesto minimální změna na vstupu celý výstup úplně změní. A tak úkol, který mají horníci řešit, je vzít celý nový blok s neověřenými transakcemi a tak dlouho na jeho konec přidávat rostoucí celá čísla, až hash těchto dat bude mít na začátku daný počet nul. Zjednodušeně to vypadá takto:

VstupVýstup
Posílám ti
20 BTC.0
2fb0230cfb56acf42afef54743ff3557e622c4ed5983734e297ab8b96a6c27a3
Posílám ti
20 BTC.1
0400a5febdf9fac0cad43723a9b066977af6bce495f13b50bfe7c784cf77cdff
Posílám ti
20 BTC.2
227703396c6decf4ba282eb6129b8e9e88327c3cd4fb3d067f605e8eb24ddc68
... 
Posílám ti
20 BTC.210
00cfd66168afaa9fa36935984ee6649d4a79024ef24fa6d4e610dd8182d0a61d
... 
Posílám ti 20
BTC.3640
000416334bb0ed3bf475543b8defec4ad540673eb23d5ae273e5c1c3f7e730b2
Posílám ti 20
BTC.42939
000085b060ca8fb1cdc379b821bf0d863b9abcc28975ca35879b968cf8d4d7fd
Posílám ti 20
BTC.412233
00000eb0779752ff396fa1ac15b4518ba06b734b51defaa9076f44a9f6dcbf21
Posílám ti 20
BTC.6311003
000000a2d6e85d9a6439e8558f97a293075ee7fd53c111d8f7ab759f0c37bf04

Je-li tedy požadavek najít hash se šesti nulami na začátku, museli bychom k tomu spočítat přes šest milionů hashů, než najdeme ten pravý. S každou další nulou roste složitost úlohy mnohonásobně a zároveň není znám žádný „chytrý“ algoritmus, který by našel řešení rychleji než postupným zkoušením jednotlivých čísel za sebou. Takže tahle úloha má všechny vlastnosti, které jsou potřeba. Zároveň slouží jako ověření celého bloku, protože s danou signaturou není možné blok jakkoli měnit, protože by hned bylo zřejmé, že k němu tato signatura nepasuje (pro zajímavost, počet aktuálně vyžadovaných nul je vidět zde).

Každý horník řeší trochu jinou úlohu, protože má v bloku jiné a jinak seřazené transakce, a hlavně je první transakce v každém bloku tou, na které mu nejvíc záležíPřitom každý horník řeší trochu jinou úlohu, protože jednak má v bloku jiné a jinak seřazené transakce, ale hlavně je první transakce v každém bloku tou, na které mu nejvíc záleží. Touto transakcí si připisuje na svou adresu odměnu za blok – ta je momentálně 25 BTC. V každém bloku tedy jako první vidíme transakci označenou jako „No inputs (Newly generated coins)“, tedy „Žádný vstup, nově vytvořené mince“. Blok může obsahovat i transakční poplatky, ale o tom až později.

Nový blok se v bitcoinové síti generuje asi každých 10 minut a každé dva týdny se to překontroluje. Když se počet nových bloků znatelně liší od 2016 (počet desetiminutových intervalů za dva týdny), složitost se patřičně upraví. Většinou se zvýší, protože horníci používají stále výkonnější počítače, ale už se také stalo, že se složitost musela snížit. První horník, který najde hash nového bloku, ho přidá k blockchainu a rozešle zprávu všem ostatním, že mají smůlu a můžou začít znova. Ti nejprve ověří, že jeho nový blok je opravdu v pořádku a má správný hash, a když ano, označí všechny jeho transakce za registrované a začnou počítat další blok.

Závody v těžení... bez přidané hodnoty

A tak za nějaký čas po startu bitcoinů v roce 2009 začaly závody v těžení. Nejdřív to jejich účastníci brali spíš jako sport nebo nadšení z nové technologie, ale když postupně začalo být jasné, že bitcoiny nejsou jen virtuální chimérou, ale že se budou moci vyměnit za reálné zboží nebo služby, začali je jejich účastníci brát čím dál víc vážně, zvlášť když v květnu 2010 byla za bitcoiny zakoupena první pizza. V krátké historii těžby bitcoinů se už vystřídalo několik vývojových etap:

  1. CPU. Na začátku se pro těžbu používaly normální počítače. Jejich výkonnost, měřená v MHash/s, tedy ve výpočtu miliónů hodnot hashů za vteřinu, byla většinou mezi 0,1 a 20 MH/s, výjimečně až 100 MH/s. Zúčastnit se mohl každý, kdo měl k dispozici počítač, a protože odměna za vytěžený blok byla 50 BTC, vytěžilo se v tomto období 2 625 000 BTC ročně. Měřeno dnešním kurzem tu vzniklo množství nových milionářů a miliardářů. Spotřeba elektřiny tehdy nehrála velkou roli, protože počítače běžely tak jako tak.
  2. GPU. Po čase přišli horníci na to, že grafický procesor počítače je vlastně pro výpočet hashovací funkce mnohem vhodnější než CPU. GPU může na rozdíl od CPU zpracovávat až stovky jednoduchých operací zároveň, a to je přesně to, co je pro výpočet hashů potřeba. Horníci si začali pořizovat další a další grafické karty a programovat je na těžbu bitcoinů. Výkonnost grafických karet byla až 600 MH/s. Tady už ale začala být rostoucí spotřeba elektřiny problematická.
  3. FPGA. Na konci roku 2011 se objevila programovatelná hradlová pole, která posunula výkonnost o další příčku výš, standardně až 800 MH/s, ale jejich cena už dosahovala 1000 dolarů.
  4. ASIC. Aplikačně specifické integrované obvody už jsou od konce 2012 vyráběné přímo pro těžbu bitcoinů a dosahují závratných rychlostí až 600 GH/s, ale také stojí několik (desítek) tisíc dolarů. Vztaženo na výpočet jednoho hashe spotřebují méně elektřiny, ale s obrovským výkonem se zvyšuje i celková spotřeba. Podle různých kalkulátorů už je opravdu zapotřebí stovek GH/s na to, aby se vůbec generoval smysluplný zisk. Celá síť dnes počítá rychlostí kolem 15 000 TH/s (T je terrahash, milion milionů), a proto už dnes normální počítač nemá šanci něco vytěžit – pravděpodobnost, že jeden vygenerovaný hash bude ten správný, je už mizivá.

Tyto „hornické závody“ sice posunují hardwarovou technologii stále dál, ale ve skutečnosti nepřinášejí žádnou přidanou hodnotu. Se zvyšující se rychlostí bitcoinové těžby se zvyšuje složitost úlohy, takže výsledek je úplně stejný, jen stojí víc opravdových peněz. Při každé změně technologie je na eBayi k dostání spousta starého dolovacího hardwaru, který má použití jen pro velmi nenáročné horníky.

Vytěžit jeden bitcoin je tedy čím dál tím dražší, jednak kvůli rostoucím cenám hardwaru, ale také kvůli spotřebě elektřiny. Z některých statistik vyplývá, že celkově jsou horníci v minusu, hodnota vytěžených bitcoinů je nižší než jejich výdaje a tento trend bude dál pokračovat. Proto se těžba začíná přesunovat do zemí, kde je elektřina lacinější, jako jsou například Indie nebo Čína.

Je ovšem zajímavé si uvědomit, že úloha, kterou všichni řeší a na kterou se vyvíjí stále silnější hardware, je ve skutečnosti úloha, jak prolomit kryptografické kódy, které se dnes používají na zabezpečení datových přenosů. Milovníci spikleneckých teorií mohou proto přidat další, a to že za celým bitcoinem stojí americká NSA, která tak chce dosáhnout likvidace všech šifrovacích metod, které sama zatím nedokáže prolomit, případně že chce digitální měnu jen ovládnout.

Konec osamělých horníků

Když se závody v těžbě bitcoinů stávaly stále náročnější, začali se horníci spojovat do těžebních spolků (mining pools). Za tím stojí poznatek, že s rostoucí konkurencí je čím dál těžší odhadnout těžební zisk, protože závisí na náhodě: správný hash se může najít za minutu, nebo také za rok. Když se víc horníků spojí a své zisky rozdělí, dostane každý sice jen zlomek z každé odměny, ale zato více méně pravidelně.

Když se víc horníků spojí a své zisky rozdělí, dostane každý sice jen zlomek z každé odměny, ale zato více méně pravidelněV současné době se už jednotliví horníci téměř nevyskytují, pole ovládlo deset největších spolků. Na stránce aktuální statistiky (sloupec Relayed by napravo) je vidět, kdo vytvořil posledních sedm bloků – většina z nich bývá z holandského spolku Ghash.IO.

Začátkem tohoto roku už tento spolek dosáhl takových rozměrů, že se rozšířila obava, že by mohl dodat 51 procent všech bloků a tím ovládnout celý bitcoin. To je jedna z mála slabin celého projektu: kdyby někdo ovládl většinu výpočetní kapacity sítě, mohl by rozhodovat, které transakce budou přijaty a které ne, a to by decentralizovaný bitcoin zničilo.

Jako reakce na to, že Ghash.IO dosáhl 45 procent kapacity, ho řada jeho členů opustila a přidala se k ostatním spolkům, takže Ghash.IO má už zase jen kolem 35 procent. Je to pochopitelné, protože kdyby bitcoin ztratil kredibilitu, přišli by všichni o svůj bitcoinový majetek, a to není v zájmu nikoho, kdo bitcoiny vlastní.

Co se stane po vytěžení?

A ještě jedna věc je pro těžbu důležitá: počet vydolovatelných bitcoinů je předem omezený. Počáteční odměna za vytvoření bloku byla 50 BTC, ale každých 210 000 bloků (4 roky) se zmenší na polovinu. Nejmenší jednotka počtu bitcoinů je 0.00000001 BTC, takže v roce 2140 už se odměna nebude moci vydělit dvěma a klesne na nulu. Co se bude dít pak, když je práce horníků pro fungování bitcoinů nezbytně nutná, protože bez nich nemohou být nové transakce ověřené a přidané do blockchainu?

Zákazníci, kteří budou chtít své transakce zaregistrovat, budou muset nechat v transakci „spropitné“Pak přijdou ke slovu transakční poplatky. Ty fungují už teď, i když nejsou nezbytně nutné: každá transakce nemusí totiž nutně posílat celý obnos ze zdrojových adres na cílové adresy. Jestliže něco zbývá, považuje se to za transakční poplatek a horník si ho připíše na svou adresu spolu s odměnou za těžbu. Až už žádná odměna za blok nebude, budou horníci motivováni jen získáním tohoto poplatku. Zákazníci, kteří budou chtít své transakce zaregistrovat, budou muset nechat v transakci toto „spropitné“, jinak nebude žádný horník mít důvod jejich transakci přidat do svého nového bloku.

Na to ani nebudeme muset čekat až do roku 2140, protože třeba už v roce 2032 bude odměna za jeden blok méně než 1 BTC, a nestoupne-li kurz bitcoinu mezitím dvacetinásobně (což samozřejmě není úplně vyloučené), budou horníci vyžadovat své poplatky už mnohem dřív.

Fungující palivo – ziskuchtivost

Těžba bitcoinů je opravdu geniálně vymyšlená, využívá lidské ziskuchtivosti jako paliva pro pohon celého systému, a to je kombinace, která zaručeně funguje. Jen možná až trochu příliš dobře – aby bitcoinová síť fungovala, musí být decentralizovaná, ale když budou muset horníci za své stroje vydávat čím dál tím víc peněz, skončí tento vývoj dvěma nebo třemi mocnými spolky, které si všechny bloky rozdělí mezi sebe.

Je otázka, jestli bitcoin něco takového může přežít. Doufejme, že ano, nebo aspoň že se z bitcoinu poučíme a najdeme ještě lepší řešení. Už teď jsou ostatně ve startovních blocích desítky jiných digitálních kryptoměn, které vznikly jen úpravou zdrojového programu bitcoinu.

Počet příspěvků: 29, poslední 28.4.2014 12:53 Zobrazuji posledních 29 příspěvků.