Bitcoin po letech: alternativní klienty a alternativní měny

8. 8. 2013
Doba čtení: 6 minut

Sdílet

O virtuální měně Bitcoin už píší i běžná média. Už jste o ní mohli slyšet v televizi, rozhlase či si přečíst článek v tištěném deníku. Bitcoin už je prostě moc mainstream, proto vznikly nějdříve alternativní klienty a potom se odštěpilo mnoho nových měnových systémů. Některé přinášejí zajímavé novinky.

Klienty

Armory

Armory (tentokrát nejde o obchod se zbraněmi z minulého dílu) je nadstavba nad originálním klientem, která nabízí lepší GUI, správu více peněženek a funkce jako klikací sestavování transakcí na míru.

Bobtnání blockchainu

Z principu Bitcoinu je nutné, aby se historie veškerých transakcí uchovávala. Běžná transakce má asi 500 bajtů, ale najdou se i bumbrlíčci – třeba když si někdo defragmentuje nebo mixuje peněženku (pro dosažení vyšší anonymity). Do blockchainu jdou taky ukládat data (1, 2, 3, 4).

Aby nikdo neuložil do blockchainu terabajt, byly zavedeny transakční poplatky. Čím větší je transakce, tím víc stojí.

Přesto ale blockchain roste, naštěstí ale zatím pouze lineárně. Momentálně má asi 9 GB. Ne každému se to může chtít držet na disku, navíc leckdo by chtěl mít možnost platit Bitcoiny mobilem.

Chainless klient

Nejjednodušší řešení je nechat „plnotučného“ klienta bežet na nějakém serveru a z mobilu se k němu prostě připojovat. Klíče pro podepisování transakcí stále drží mobil a kryptografie probíhá také na něm (běžný smartphone to zvládne), ale ověřování transakcí probíhá přes server. Toto řešení implementuje třeba oblíbený klient Electrum.

Výhoda: Je to strašně rychlé a nenáročné na datové přenosy a místo na disku.

Nevýhoda: Server vám může lhát. Nemá sice přímo přístup k vašim klíčům, takže nemůže peníze přímo ukrást, ale může vás pomocí zmanipulovaných informací a sociálního inženýrství dostat do stavu, kdy si myslíte, že už vám někdo zaplatil, ale ve skutečnosti vám nezaplatil. Navíc server vidí, na jaké adresy se ptáte, takže vás může sledovat.

Simplified Payment Verification (SPV)

To lze vyřešit tím, že si budete držet jen hlavičky a ne samotný obsah bloků. Díky hlavičkám určíte, který řetěz je důvěryhodný (nejdelší). Když potom chcete zjistit, jestli vám přišla na účet daná transakce, vyžádáte si ze sítě tu větev Merkle-stromu, ve které transakce leží. Zde je tedy oproti „plnotučnému“ klientu zásadní rozdíl:

  • Plnotučný klient při ověřování nějaké transakce projde od začátku celý blockchain a zkontroluje, že je řetěz transakcí od vytěžení až k této transakci validní (například že tam nejsou double-spendy).
  • SPV klient se spoléhá na to, že toto ověřování udělal ten, kdo transakci přidal do bloku (kdyby transakce nebyla validní, nebyl by validní ani blok).

Brainwallet

Pokud ztratíte soukromé klíče, kterými podepisujete transakce, ztratili jste přístup ke všem svým Bitcoinům. I když všichni uživatelé (samozřejmě) pravidelně zálohují, může občas dojít k nějaké katastrofě. Byl vymyšlen koncept Brain wallet/Deterministic key, který implementuje třeba klient Electrum. Při prvním startu se vygeneruje hodnota (seed), ze které se následně všechny klíče odvozují. Hodnota je relativně krátká (128 bitů) a klient ji umí vyjádřit pomocí dvanácti anglických slov (ve slovníku je 1626 slov, tedy každé slovo kóduje 10,7 bitů entropie) – tato slova si buď zapamatujete, nebo zapíšete a uložíte na bezpečné místo. Ze slov lze pak dekódovat seed a z něj znovu vypočítat klíče.

Offline peněženka

Pro extra bezpečnost můžete mít peněženku na jiném počítači, který není připojen k internetu, a transakce přenášet na disketě flash disku.

Webová peněženka

Webová peněženka je prostě web interface podobný internetovému bankovnictví. Server, na kterém to běží, má plnou kontrolu nad uloženými Bitcoiny. Když ho někdo hackne, Bitcoiny si vezme. Doporučuji nepoužívat.

Webové GUI

Pro koukání do blockchainu existuje webová služba Block Explorer. Novější Blockchain.info je barevnější a poskytuje víc informací.

Alternativní sítě

Objevily se alternativní sítě (též nazývané alternativní chainy) principem podobné Bitcoinu, které se ale v některých detailech liší (typicky se snaží opravit nějaký problém nebo „problém“). Je jich hodně, ale většina jich má jenom pár uživatelů. Pojďme se podívat na ty nejzajímavější z nich.

Litecoin

Autoři Litecoinu byli nešťastní, když všichni kolem začali těžit na grafických kartách a tím naprosto znemožnili těžbu lidem, kteří mají jenom CPU (grafická karta je na Bitcoin klidně o dva desítkové řády rychlejší než CPU). Proto se rozhodli vzít Bitcoin a vyměnit používaný algoritmus SHA256 za scrypt. Scrypt je funkce pro derivaci klíče (výpočetně velmi náročný algoritmus, který z hesla udělá šifrovací klíč – cílem je, aby byl brute-force hesla co nejpomalejší). Scrypt má velké paměťové nároky, respektive vyžaduje spoustu náhodných přístupů do paměti – a to se na grafických kartách špatně dělá. Na FPGA a ASIC zařízeních je zase paměť velmi drahá. Nakonec se tedy podařilo napsat GPU implementaci, ale je pomalejší než GPU implementace Bitcoinu.

Další změnou je, že blok se najde v průměru každé 2,5 minuty (u Bitcoinu je to 10 minut). Transakce se tedy potvrdí o něco rychleji, ale zase dochází k častějším forkům a provoz sítě je náročnější.

Namecoin

Namecoin využívá možnosti schovat si do bloků nějaká data. Konkrétně takto staví klíč=hodnota databázi, která se nejčastěji využívá k registraci doménových jmen v alternativní TLD .bit. Bohužel z různých důvodů (např. cena za doménu je fixní, ale počet mincí v oběhu klesá, protože s registrací domény dojde k destrukci mince [coin destruction]) Namecoin postupně umřel.

PPCoin

PPCoin má úplně jiný přístup k potvrzování transakcí: zatímco ostatní *coiny používají proof-of-work (důkaz výpočetním výkonem – pravdu má ten, kdo má největší výkon), PPCoin se snaží implementovat proof-of-stake (důkaz vlastnictvím). Motivací je, že těžba Bitcoinu spotřebovává spoustu výpočetního výkonu, který by šel použít k užitečnějším věcem, případně spotřebovává spoustu elektřiny. Bohužel k PPCoinu existuje pouze velmi mlhavá dokumentace (máte přece zdroják, tak nepotřebujete dokumentaci, ne?), takže následující odstavce o tom, jak jsem PPCoin pochopil, berte s rezervou. Uvítám upřesnění v diskuzi.

Zavedeme si veličinu zvanou coin-age. Vyjadřuje, jak dlouho ležely peníze na jednom účtě. Například pokud mám na účtě dva roky 10 coinů, naakumuloval jsem 20 coin*years.

Blok musí obsahovat transakci, která utratí peníze těžaře (klidně na jeho vlastní účet). Následně se spočítá HASH(blok + timestamp) a získaná hodnota se porovná s targetem stejně jako u Bitcoinu. Ovšem nejde o prosté porovnání, jestli je hash nižší než target – v úvahu se bere i množství utraceného coin-age. Čím víc coin-age se při tvorbě bloku utratilo, tím měkčí podmínky na výsledný hash jsou.

Protože timestamp má rozlišení na sekundy, nemá cenu počítat víc než jeden hash za sekundu. Díky tomu těžba nemá žádné výpočetní nároky.

Na druhou stranu, pokud přijmeme tvrzení, že půl procenta populace kontroluje 40 procent světového majetku, mohli bychom se brzy dostat do stavu, kdy tito lidé kontrolují PPCoin prostě proto, že jsou schopni vygenerovat podstatnou část bloků.

Primecoin

Taky se dají těžit prvočísla. Je na čase vytvořit Jendacoin!

Merged mining

Merged mining je technologie, která umožňuje těžit několik altcoinů současně – například Bitcoin a Namecoin. Do Merkle-stromu se jakoby sesypou transakce z obou sítí a pak se těží. Může se najít blok, který je validní jen v některých sítích (mají volnější target), nebo klidně ve všech. A blok se prostě publikuje.

Těžba včera a dnes

Mining se pochopitelně také vyvíjí. Úplně nejdřív se těžilo na CPU. Výkon lepšího procesoru jsou řádově jednotky MH/s (megahashů za sekundu). Brzy se začalo těžit na GPU (stovky MH/s). Potom nastoupila FPGA, která mají při výkonu grafických karet mnohem nižší spotřebu elektřiny. No a teď nastupují ASIC minery – specializované obvody určené pouze pro počítání SHA256, které jsou zase o desítkový řád dál. Výkon sítě neustále roste.

bitcoin_skoleni

Historie výkonu sítě. Zdroj: bitcoin.sipa.be

S ASICy byl problém, že je výrobci stále nebyli schopni vyprodukovat (a dosud nejsou v dostatečném množství, které uspokojí poptávku). Například Butterfly Labs s ročním zpožděním vyprodukovalo zařízení pochybných parametrů a stability. Další výrobce, Avalon, byl obviněn z toho, že se zařízeními těží před tím, než je odešle zákazníkům.

Protokoly

Pro distribuci práce těžařům v poolu se kdysi používal protokol getwork založený na HTTP. Kvůli výkonnějším těžařům se přechází na optimalizovaný protokol Stratum. Dalším parametrem je, jak velká je jedna share (za jejíž vyřešení těžař dostane „bod“ – pool si tak kontroluje, kolik toho těžař spočítal, i když nenašel blok). Původně to byl jakoby blok s difficulty=1, tedy na začátku měl hash 32 nul. Jednu share tak těžař získal za zhruba 232 ~ 4G operací. Při výkonu ASIC strojů v řádech 400 GH/s je to 100 shares za sekundu, což opět pool velice zatěžuje. Nově má být složitost share nastavitelná.

Autor článku

Vystudoval informatiku na MFF UK, dělal linuxového admina, vyvíjel elektroniku a nyní vyvíjí meteorologický radar ve společnosti Meteopress.