Úvod do Bitcoinu

22 11 2011

V roce cca 2011 jsem si na svůj již neexistující blog napsal něco o bitcoinu, protože tou dobou nebyl o BTC na webu ani jeden český článek (!!!).

Nikdy jsem nenapsal víc, než jeden díl plánované ságy, protože jsem neměl pocit, že by to někdo četl nebo to někoho zajímalo (možná proto, že zabíhám až příliš do technických detailů, když to není potřeba). Tak jsem toho nechal.

Taky jsem se od té doby stal ze zapáleného fanouška mírným skeptikem; hlavně asi proto, že představy současných fanoušků jdou trochu mimo mě.

Ale nechávám si to tady, jen tak, a mírně budu updatovat úplně neaktuální informace (poslední aktualizace listopad 2014). Kromě toho jsem také do deníku referendum psal článek o pádu burzy Mt. Gox, kde se trochu šířeji rozepisuji o historii bitcoinu a jeho ideových kořenech; možná je článek o Mt. Gox pro někoho lepší a čitelnější, než tento.

Bitcoin

Bitcoin je platební síť, vytvořená záhadným japoncem, o kterém nikdo pořádně nic neví. Bitcoin je měna, co může změnit fungování států od základů. Bitcoin je bublina, které pořádně nikdo nerozumí. Co Bitcoin je a jak funguje se pokusím shrnout tak dobře, jak umím. (A hned na začátek mírná reklama - pokud mi chcete poslat nějaké koiny, moje adresa je 1CrwjoKxvdbAnPcGzYjpvZ4no4S71neKXT :-) )

Co je to sakra Bitcoin?

Bitcoin je zároveň virtuální měna a zároveň systém, který umožňuje s touto měnou obchodovat. Zjednodušeně funguje Bitcoin z uživatelského pohledu takhle - na svůj počítač si stáhnete tzv. peněženku, což je prostě aplikace (je jich víc a mají různé výhody a nevýhody, já můžu jenom doporučit aplikaci Electrum).

Tato aplikace vám ukazuje, jaký máte zrovna stav na účtu, a kromě toho vám také ukáže vaší adresu. Pokud budete chtít peníze přijmout, dáte ji odesilateli a on vám na ní svoje peníze pošle. Pokud chcete někomu peníze poslat, musíte zase znát jeho adresu. Z uživatelského hlediska je tedy vše velmi jednoduché.

Chcete-li například poslat peníze mně, pošlete je na adresu 1CrwjoKxvdbAnPcGzYjpvZ4no4S71neKXT a já je s radostí přijmu.

Kromě toho, že se "bitcoin" jmenuje celá síť a celý projekt, je "bitcoin" (někdy BTC či XBT) také jednotka této virtuální měny. Tj. "bitcoin" je projekt, ale někomu můžu poslat 1 bitcoin (nebo půl bitcoinu, nebo 10.78 bitcoinů.)

Bitcoin je od začátku navržený tak, aby byl v podstatě anonymní (někdy se používá termín pseudonymní, který se snažím vysvětlit o něco níže), aby neměl centrální bod - tj. jedno místo, na které by se dalo zaútočit - a jako side-effect je tato měna nikým neregulovaná a v podstatě neregulovatelná.

Kdo se o síť "stará"?

Pokud ale síť nemá žádný centrální bod, kdo se o ní "stará", kdo potvrzuje transakce, kdo zajistí, že si nemůžu "vymyslet" peníze, co mi nepatří? Ve skutečnosti transakce potvrzují samotné stroje, zapojené do sítě.

Za to, že potvrzují transakce, dostávají stroje odměnu. Libovolný člověk může začít takzvaně "těžit" peníze, což velmi zjednodušeně znamená to, že půjčujete síti výkon svého počítače k potvrzování cizích transakcí za to, že možná dostanete odměnu.

Což odpovídá i na otázku, kde se nové virtuální peníze v systému vlastně berou - jediné místo, kde se nové bitcoiny v systému objevují, jsou odměny za potvrzování transakcí.

(O technických detailech a mining poolech jsem chtěl mluvit v dalších, nikdy nedopsaných dílech ságy. Chjo.)

O samotný projekt se stará široká komunita na developerském serveru github.com - je ale důležité dodat, že tahle parta transakce nijak nepotvrzuje a naopak, pokud by někdo všechny vývojáře postřílel a projekt na githubu zavřel a zakázal, tak síť díky decentralizaci funguje dál.

Kde Bitcoiny vezmu?

Skutečné peníze si můžete do systému převést např. pomocí online směnáren. Nejjednoduší pro menší částky v ČR mi přišla směnárna Kraken; pro větší asi Bitstamp. Kvůli zákonům o praní špinavých peněz je nutné vypisovat konkrétní osobní údaje; výhoda Krakenu je, že u menších částek není potřeba zasílat informace, jako skeny občanky, kdežto u Bitstampu ano.

Pokud vám ale nevadí trošku dražší cena, chcete zůstat anonymní a jste z Prahy nebo Brna, doporučuji jeden z bitcoinových automatů. V Praze má nejlepší cenu bitcoinomat v alternativní kavárně Paralelní Polis (otevírací dobu se mi nedaří najít, ale bylo to od pondělí do pátku, od rána do cca 8 do večera); pokud je zrovna víkend, můžete zkusit obousměrný automat ve Slovanském domě, který má ale mnohem horší kurz.

V Brně je, myslím, automat pouze wBTCb v galerii Vaňkovka. Nevím, jestli jsou v ČR jiné bankomaty, než v Brně a Praze; nevím o nich.

(Pro zasvěcené - v předchozí verzi článku z roku cca 2011 jsem zde doporučoval Mt. Gox. Ha ha ha.)

Asi bych ale všechny chtěl upozornit, aby hodně přemýšleli, než do bitcoinu vloží nějaké výrazné finanční částky. Bitcoin podle mého nemá cenu vnímat jako nějakou jistotu investice; pokud vám bitcoin přijde vtipný nebo je na něco potřebujete, tak prosím, ale na uložení většího objemu peněz si radši kupte dluhopisy, nebo tak něco.

OK. To zní dobře. Jak to celé funguje?

Celý systém je poměrně komplexní a ani já mu 100% nerozumím - ale tady se budu tvářit, že ano.

Hlavní část systému je tzv. blockchain. Blockchain obsahuje informace o všech transakcích, které kdy byly uskutečněny. Tento blockchain je veřejný a je sdílen všemi, co těží (v současnosti má celý asi 30GB).

Jediné, co je potom potřeba udělat k tomu, aby člověk zjistil svůj zůstatek je projet celý blockchain a zjistit, které transakce jsou "jeho".

Vše, co se dále odehrává, je jenom zápis a čtení do dlouhého blockchainu. Bitcoiny jinak neexistují; "máte" je tehdy a jenom tehdy, pokud vám je buď někdo pošle a dá informaci do blockchainu (případně pokud dostanete jako odměnu při potvrzování transakcí - viz co jsem zmiňoval - jediné nové bitcoiny vznikají jako odměna za potvrzování). Ještě jednou - všechna tato data - jak odměny, tak samotné transakce - jsou jen a pouze v blockchainu.

Můžu se na blockchain podívat?

Jak už jsem uvedl, blockchain je naprosto veřejný a může si ho prohlédnout kdokoliv.

Kromě toho, že je "v systému", se blockchain dá prohlížet i veřejně na stránkách http://blockchain.info nebo https://blockexplorer.com/ - ano, doopravdy jsou informace o všech transakcích dostupné zdarma, komukoliv, nalezitelné přes Google.

Malá, ale důležitá poznámka. Je poněkud nešťastné, že se soukromé firmy pojmenovávají po kusech bitcoin protokolu, což dělá v systému trochu chaos. Server blockchain.info není onen blockchain, o kterém mluvím. Server blockchain.info je jeden ze serverů, co blockchain zobrazují; je ale provozován soukromou firmou, co si na zobrazování blockchainu věší svoje další aktivity. Bohužel je ale také asi nejvíce uživatelsky přívětivým serverem na prohlížení skutečného blockchainu. My teď použijeme ten druhý - Block Explorer.

Tedy. Pojďme se na blockchain podívat společně, protože na něm je krásně vidět, jak BTC aspoň přibližně funguje. Víme například, že mobilní operační systém Replicant má veřejnou BTC adresu 13tgjejUJ6NtQVX9HvKz8svdcuWPNwgr5T.

Pokud dáme adresu do hledání na blockexplorer, je vidět, jaké všechny transakce má a kolik BTC jim na této adrese zbývá. (moc ne.) Každý řádek v tabulce představuje jednu transakci - jak přijatou, tak odeslanou. Ve sloupečku "Amount" je velikost transakce, ve sloupečku "Balance" je zůstatek na této adrese po provedené transakci. Ve sloupečku From/To je vidět cílová nebo zdrojová adresa transakce. Jak je vidět, transakce sama o sobě může mít jak více cílových, tak zdrojových adres! Co to je?

Bitcoin tohle prostě dělá. Ve skutečnosti totiž člověk nevlastní jenom jednu adresu, ale kupu adres. Peníze, co "máte", jsou součet zůstatků na všech vašich adresách. Bitcoin klient potom - bez vědomí uživatele - bitcoiny různě přestrkává po adresách.

V BitExploreru lze prohlížet i jednotlivé transakce. Tohle je první transakce na replicantí adresu. V tomhle "přiblíženém" pohledu na transakci jsou vidět jak zdrojové, tak cílové adresy. (Inputs a Outputs)

V této transakci bylo evidentně na účet Replicantu posláno 0.3 bitcoinů. Zbytek transakce je nějaké interní přehazování z jedné adresy na druhou.

Tohle přehazování jenom přidává další míru obfuskace a anonymity / pseudonymity.

Pokud chcete, můžete se podívat na stejný účet na serveru blockchain.info a na tutéž transakci (jak jsem zmiňoval, blockchain.info je nešťastný název pro server, co prohlíží transakce podobně, jako block explorer). Odkaz na účet, odkaz na transakci.

Co znamená to “pseudonymní”? Je to teda anonymní, nebo ne?

Ano a ne.

Jak jsem se snažil vysvětlit, všichni vidí všechny transakce a nikdo se přitom o peníze nikam "nehlásí" - peníze jsou vaše tehdy, pokud jsou na některé z vašich adres.

Proto je to anonymní v tom smyslu, že naprosto netušíte, k jakému člověku patří jaká adresa, pokud se o ní veřejně nepřihlásí; na druhou stranu u konkrétní adresy vidíte naprosto všechny její transakce. (Už ale nevidíte, jaké další adresy vlastní tentýž člověk.)

Pokud tedy dáte dohromady konkrétního uživatele Pepu Nováka z Brna s adresami 12345 a ABCDEF, tak víte, na jaké adresy Pepa peníze posílal (ale nevíte, co jsou ty adresy zač).

Pokud potom víte, že adresa YPERIT je používána stránkou, která prodává yperit, a vidíte, že z ABCDEF na YPERIT šlo nějaké množství BitCoinů, tak víte, že Pepa Novák si asi kupoval něco, co neměl, a můžete ho jít zavřít (i když o účtu YPERIT vůbec netušíte, komu patří). Naopak, pokud na adresu YPERIT přišlo něco z adresy DALSI, tak "stačí" dát dohromady DALSI s jinou reálnou osobou a dojít ho zavřít.

Tohle "stačí" je ve skutečnosti mnohem těžší, než se zdá. Ve skutečnosti se totiž doporučuje na straně příjemce pro každou transakci vytvořit novou adresu (adresy jsou zdarma). Přidejme si k tomu to, že Bitcoin si peníze rozestrkává do různých interních adres podle svých nálad a reálné osoby jsou potom dohledatelné velmi těžko.

Zajímavé ale je, že policie a podobné orgány mají přesně stejný přístup k datům, jako kdokoliv jiný. V síti opravdu není víc informací, než je v blockchainu, který se dá prohledávat na Bitexploreru.

S tím, jak se začínají používat tenčí klienti, jako je už zmiňované Electrum, a začíná se vlastně rezignovat na P2P princip, to vlastně už není tolik pravda, protože vlastně "důvěřujete" nadřazeným nodům, že na vás nic "neprásknou". To je bohužel pravda. Dá se ale stále použít "plný" P2P nod a skutečně nedávat o sobě další informace; to je ale bohužel zase o něco komplikovanější. Uf. Příliš se do toho zamotávám. A to jsem ještě nezačal mluvit o analýze transakcí, bitcoin "mixérech", coinjoinu,..... no.

To je všechno krásné. Ale jak to může všechno fungovat a držet pohromadě? Jakto, že nemůže nikdo podvádět? Co je to blok? Co je to "bitcoin mining"? Co je to "mining pool"? Kde si můžu koupit yperit za bitcoiny? Proč je na některých adresách takové množství BTC? Proč se za nějaké transakce musí platit - něměly by být zadarmo? Jak rychle peníze do systému přibývají? Chci informace, informace, informace!

Uff. Nic dalšího už se mi moc psát nechce. Možná jindy.

Pokud se vám nechce čekat, velmi obšírně odpovídá na různé otázky bitcoin wiki nebo bitcoin dokumentace. Pokud vám ani to nestačí, zdrojový kód referenčního klienta je k dispozici na už linkovaném githubu.

Pokud se vám článek líbil, pošlete mi něco na adresu 1CrwjoKxvdbAnPcGzYjpvZ4no4S71neKXT. Pokud se vám nelíbil, napište mi mail.