Jak fungují bitcoiny a další virtuální měny
14.03.2018
Jak fungují bitcoiny a další virtuální měny

​​​​​​Před několika lety přišla na scénu revoluční technologie blockchain, jež je pravděpodobně největším vynálezem od vzniku internetu. Pvní kryptoměnou používající blockchain byl bitcoin a od té doby vznikly tisíce dalších. Blockchain nemá jeden centrální bod, proto je pro autority a korporace skoro nemožné ho jakkoliv kontrolovat a regulovat. V tomto článku si ukážeme, jak probíhá těžba, proč je tak náročná a podíváme se na různé možnosti skladování bitcoinů.

Bloc​​kchain

Kryptoměny reprezentují takový druh decentralizace, která bere bankám kontrolu nad penězi v tom smyslu, že žádné instituce nemohou zasahovat do vývoje měny. A to hlavně díky revoluční technologii, na které bitcoin stojí - blockchainu.

Zjednodušeně se jedná o globálně distribuovanou “účetní knihu”. Je to řetěz “bloků”, které v sobě drží proběhlé transakce a jsou navzájem napevno spojeny pomocí silných kryptografických funkcí.

Je politicky a architektonicky decentralizovaný, takže ho nemůže přímo ovlivnit ani regulovat žádná instituce, a je rozdělen mezi více výpočetních jednotek, typicky globální síť počítačů. Logicky je však centralizovaný, protože se jeho celek chová jako jeden velký superpočítač, co provádí stejnou činnost. Uložit na něj lze skoro cokoliv, a to bez nutnosti třetích stran - hodnota se předává přímo mezi lidmi a nikdo si nebere žádné poplatky, ale​spoň ne přímo (viz Jak vzniká bitcoin). A navíc, co je jednou zapsáno do blockchainu, je díky nejvyšší kryptografické bezpečnosti nezměnitelné a nesmazatelné.

Těžba nových bl​​oků

Jak již víme, blockchain je řetěz bloků. Tento blockchain je distribuován mezi všemi aktivními uzly na internetu, podobně jako P2P torrenty, přičemž některé z těchto uzlů jsou tzv. těžaři (neboli horníci). Pokud chci poslat transakci, nejprve ji podepíšu svým privátním klíčem a takto digitálně podepsaná je transakce poslána do světa. Těžaři následně ověří její validitu, když ji porovnají s mým veřejným klíčem, který je, jak název napovídá, veřejně přístupný (viz peněženky a privátní klíče). Potom proběhnou další ověření, včetně toho, zda jsem již posílané bitcoiny (nebo jinou kryptoměnu) neutratil někde jinde a nesnažím se posílat neexistující peníze. To je možné díky tomu, že kompletní transakční historie celého bitcoinového blockchainu je veřejná, tím pádem pouze stačí prohledat historii s mým veřejným klíčem (bitcoin adresou). Ačkoli je blockchain historie veřejná, nic mi  nebrání anonymně používat více bitcoinových adres.

Pokud vše proběhlo v pořádku, těžaři moji transakci “zabalí” (nebo by se dalo říci “zatěží”) do bloku a tento blok spojí s předchozím blokem pomocí dalších kryptografických funkcí (ECDSA, SHA-256 hash), takže vzniká spojovaný seznam. Nutno ještě podotknout, že správné řešení bloku je výsledkem náročných kryptografických operací, které mají za cíl najít správný hash bloku - náročnost těchto operací tak tvoří i skvělé zabezpečení. Vytvořit hash z určitých proměnných je jednoduché, ale najít tyto proměnné, když máme k dispozici pouze hash je velice obtížně - to je základem asymetrické kryptografie, na které těžba staví. Asymetrie spočívá ve snadné ověřitelnosti výsledku, ale k jeho nalezení potřebujeme asymetricky více výpočtů (což dělá z těžení NP-úplný problém v terminologii výpočetní vědy).

Nový blok je vytvořen přibližně každých 10 minut. 

graf.png 

Průměr je vždy cca 6 bl​​​​oků za hodinu (https://fork.lol/blocks/time​).

Bitcoin protokol je seberegulující a dynamicky mění každých 2016 vytěžených bloků svou obtížnost (obtížnost značí, jak výpočetně náročné je nalézt jeden bitcoin). Ať už je v síti připojen jeden počítač, nebo půl miliardy, vždy se obtížnost nalezení upraví tak, aby bylo možné vytěžit jeden bitcoin průměrně za 10 minut. 

Jak tedy víme, transakce se shlukují do bloků, které potom těžaři spojí s blokem předchozím. Spolu s 10minutovým omezením na blok a tím, že velikost jednoho bitcoin bloku je dnes 1MB a vejde se do něj cca 2700 transakcí (transakce mají variabilní velikost, která záleží na fragmentaci mincí v naší peněžence), to ve výsledku dělá rychlost 7 transakcí za sekundu.

Celková bezpečnost tkví v tom, že pokud by chtěl nějaký útočník pozměnit transakci a například přesměrovat peníze k sobě, musel by změnit nejenom blok, na který útočí, ale i všechny bloky po něm, jelikož jsou navzájem provázány, a když se změní jeden, tak se změní i všechny ostatní. A nejenom na jednom počítači, ale musel by to provést s více jak polovinou celkového výpočetního výkonu blockchain sítě.

Tento útok je v dnešní době již nemyslitelný, když si vezmeme, že celkový výpočetní výkon bitcoin blockchain sítě je dnes 22 Exahashů/s a například ruský superpočítač ve městě Sarov má výkon 1 Petahashů/s (1000 Peta = 1 Exa). Takže bychom potřebovali pár desítek tisíc superpočítačů, abychom mohli změnit jednu transakci. Jenom k doplnění - v Sarovu se pokusila skupinka nukleárních vědců v únoru 2018 použít jejich superpočítač k těžení bitcoinu, byli ale přistiženi a zatčeni.

Těžba dnes probíhá na grafických kartách, ale u těžby bitcoinů to již dávno není ekonomicky efektivní, proto se dělají ASIC chipy specificky navržené pro těžbu​​. Grafickou kartou se dnes těží určité altcoiny, nejznámější je asi Ethereum, které však v následujících měsících změní svůj algoritmus a bude netěžitelné.

Jak vzniká bitcoin?

Bitcoin vzniká, když je vytěžen nový blok. Přesněji řečeno, je udělena odměna tomu těžařovi, který nalezl správně řešení bloku (hash), a to ve výši 12,5 bitcoinu + veškeré transakční poplatky v bloku. Tato odměna se dělí na půl každých 210000 bloků (každé 4 roky), takže příště to bude 6,25 bitcoiny. Dá se předpokládat, že cena bitcoinu bude v té době větší.

(Nyní je odměna za blok 12,5 bitcoin, při 9752 USD/BTC je to 2,47 milionu Kč).

Transakční poplatek si může uživatel posílající transakci určit sám, samozřejmě ale horníci upřednostňují transakce s vyššími poplatky, jelikož to pro ně znamená větší odměnu. Když zaplatíte malý poplatek za transakci, můžete čekat i několik desítek bloků, neboli několik stovek minut (1 blok ~ 10 minut). To je stále lepší skóre než u bankovních plateb, kde platba trvá kdekoliv v rozmezí pár dnů, až několik týdnů v případě určitých zahraničních plateb.

Alternativní měny jako třeba litecoin nebo dogecoin mají dobu vytěžení bloku (obtížnost) nastavenou na menší hodnotu, u LTC je to 2,5 minuty a u DOGE je to pouze minuta.

Obtížnost a t​​​ěžba

Těžba bitcoinů “sólo” je dnes již nereálná. Obtížnost nalezení jednoho bitcoinu je přibližně stejná, jako hledání jednoho zrnka písku na celé planetě Zemi. Proto se začali horníci sdružovat do tzv. poolů, kde sdílí svůj výpočetní výkon za cílem nalezení bitcoinů. Pokud se jim to podaří, spravedlivě si mezi sebe rozdělí odměnu v závislosti na vykonané práci.

Vznikají i služby, kde je možné pronajmout svoji grafickou kartu do takového poolu (služby typu nicehash.com) a dostávat za to peněžní odměnu.

​​image8.png

Celkově lze vytěžit 21 milionů BTC. Po vytěžení posledního bloku s bitcoinem se bude těžit i nadále, bloky již ale budou poskytovat pouze odměnu ve formě transakčních poplatků. Jsou také teorie, že bitcoin časem přejde na algoritmus Proof of Stake (místo Proof of Work, na kterém funguje bitcoin protokol, který je popsán v předchozích kapitolách). V Proof of Stake již není potřeba těžit, ověřování transakcí bude probíhat distribuovaným konsenzem mezi všemi uzly, kde bude rozhodovací váha určena stářím nebo množstvím měny na účtu ověřovacího uzlu. Ethereum na PoS algoritmus přejde během následujících měsíců, proto již nebude těžitelné.

Peněženky a privátní klíče

Každá peněženka, ať už softwarová (Bitcoin Armory, Electrum) nebo hardwarová (Ledger Nano S, Trezor) obsahuje jeden nebo více privátních klíčů. Tyto privátní klíče matematicky souvisí se všemi bitcoinovými adresami vygenerovanými pro tuto peněženku.

image10.png

HW peněženka Ledger Nano S (CC1)

Privátní klíč je v podstatě “podpis”, který umožňuje z peněženky utrácet bitcoiny, proto je důležité je uchovávat v tajnosti a zálohované na více místech - ten kdo zná tento klíč, má přístup k peněžence a může z ní utrácet. Naopak, kdo tento klíč nezná,​ nebo ho zapomene, už pravděpodobně nikdy nebude mít přístup do svojí peněženky. V případě softwarové peněženky je proto moudré zálohovat si klíč, třeba i na papír nebo do knihy a schovat na bezpečné místo. V případě hardwarové peněženky, která drží klíč v sobě, můžeme postupovat stejně a jako dodatečnou ochranu si ji ještě zamknout do trezoru. Potom můžeme mít HW peněženku Trezor schovanou v trezoru.

Bitcoin privátní klíč je 256 bitové číslo. Většina peněženek používá 12-24 anglických slov, ze kterých je tento privátní klíč vytvořen pomocí hashovací funkce. Klíč se generuje asymetrickou kryptografií, takže je snadné vytvořit adresu z privátního klíče, ale takřka nemožné zjistit z adresy její privátní klíč.

private_key.png

Příklad privátního klíče

V příštím článku probereme hlavní alternativní měny a jejich výhody.

​ Jan Jileček