Bitcoin je otevřený systém pro převod peněžní hodnoty bez povinného centrálního správce. Stejné jméno označuje protokol, síť účastníků i její peněžní jednotku; značka jednotky je BTC a jeden BTC se dělí na 100 000 000 satoshi. Chceme-li porozumět Bitcoinu, je užitečné sledovat jednu platbu: kdo s hodnotou může nakládat, jak předá toto oprávnění příjemci a jak ostatní ověří její přijetí do společné historie.
Na bankovním účtu vidíme závazek banky vůči klientovi. Při vlastní úschově bitcoinu máme prostředky ke splnění podmínek utracení konkrétních záznamů v síti. Protokol eviduje částky a podmínky, nikoli občanská jména vlastníků. Peněženka z těchto záznamů skládá zobrazený zůstatek; samotné mince nejsou soubory uložené v telefonu. Zůstatek u správce nebo burzy má jiný význam: zpravidla jde o nárok vůči službě, která ovládá klíče. Technická schopnost podepsat platbu sama nerozhoduje o právním vlastnictví. [Bitcoin Developer Guide — Transactions] [Bitcoin.org — Securing your wallet]
Příjemce poskytne adresu vytvořenou peněženkou. Ta je návodem k vytvoření výstupu s určitými podmínkami utracení, nikoli schránkou na mince ani tajným heslem. V běžném případě příští útratu autorizuje digitální podpis vytvořený soukromým klíčem; ověření podpisu nevyžaduje zveřejnění klíče. Podmínky mohou vyžadovat i více podpisů nebo čekání. Znalost adresy nestačí k utrácení. Kdo získá potřebná tajemství, může však vytvořit platnou útratu; síť nerozezná krádež klíče od souhlasu jeho držitele. [Bitcoin Developer Guide — Transactions]
Nevyčerpaný výstup předchozí transakce se označuje UTXO. Běžná transakce na vybrané UTXO odkáže vstupy, spotřebuje je celé a vytvoří nové výstupy. Má-li odesílatel vhodný výstup 100 000 sat, může z něj vytvořit 60 000 sat pro příjemce a 39 000 sat zpět pod vlastní kontrolu. Zbývajících 1 000 sat je poplatek; nejde o doporučenou sazbu. Původní výstup už nelze v téže historii utratit znovu. Adresa pro vrácení zbytku nemusí být původní adresa. Před podpisem se kontroluje příjemce, částka i poplatek. [Bitcoin Developer Guide — Transactions]
Peněženka připravuje a podepisuje platbu; plný uzel, Full Node, ověřuje data podle konsenzuálních pravidel. Kontroluje například existenci a nevyčerpanost vstupů, splnění podmínek utracení a to, že běžná transakce nevytváří hodnotu navíc. Platnou nepotvrzenou transakci může přijmout do místní čekárny Mempool a předat sousedům. Každý uzel má vlastní čekárnu a pravidla pro šíření; odmítnutí šířit není vždy neplatnost v bloku. Peněženka může používat vlastní uzel nebo cizí server, od kterého pak přebírá informace. Ani vlastní uzel neochrání odcizený podpisový klíč. [Bitcoin Developer Guide — Transactions] [Bitcoin Developer Guide — Operating Modes]
Oprávněný držitel klíče může podepsat dvě různé transakce utrácející stejné UTXO. Oba podpisy mohou být správné a různí účastníci mohou nejprve vidět jinou platbu. Proto vedle oprávnění potřebujeme určit společné pořadí. Dvojí útrata neznamená zkopírování souboru s mincí: jde o pokus prosadit dvě konfliktní použití stejného výstupu. Do jedné platné historie mohou patřit nejvýše jedno z nich. Samotný čas přijetí zprávy, počet připojených uzlů ani tvrzení peněženky tento konflikt globálně nerozhodnou. [Bitcoin: A Peer-to-Peer Electronic Cash System]
Těžaři sestavují kandidátní bloky a opakovaným počítáním hashů hledají důkaz práce, Proof of Work, splňující cílovou obtížnost. Blok odkazuje na předchozí blok; změna starší historie vyžaduje přepočítat navazující práci. Uzel nejprve ověří pravidla a mezi platnými větvemi vybírá tu s největší kumulovanou prací, nikoli nutně s nejvíce bloky. Těžba tedy pomáhá určit pořadí, nedává oprávnění utrácet cizí výstupy. Ani většina výpočetního výkonu nepřinutí nezměněný uzel přijmout neplatný blok; může však narušovat pořadí a dostupnost potvrzení. [Bitcoin Developer Guide — Block Chain]
Zařazení transakce do přijatého bloku znamená první potvrzení. Další bloky nad ním zpravidla zvyšují náklady na nahrazení historie. Rozestup bloků není jízdní řád: deset minut je dlouhodobý cíl, nikoli slíbená doba platby. Reorganizace může dosud přijatý blok vyřadit a transakci vrátit mezi nepotvrzené nebo ji nahradit konfliktní útratou. Počet potřebných potvrzení proto závisí na hodnotě a riziku platby; absolutní jistotu nedává. Protokol nemá správce pro storno. Dobrovolné vrácení je nová platba a její poplatek se řeší znovu. [Bitcoin: A Peer-to-Peer Electronic Cash System] [Bitcoin Developer Guide — Block Chain]
První transakce bloku, Coinbase Transaction, smí přidělit těžaři blokovou dotaci a poplatky za zahrnuté transakce. Jen dotace vytváří nové jednotky; poplatky převádějí existující hodnotu. Maximum dotace začalo na 50 BTC a každých 210 000 bloků se půlí. Toto půlení, Halving, se netýká poplatků. Součet povolených dotací kvůli zaokrouhlování na celé satoshi zůstává pod 21 miliony BTC. Uzly odmítají překročení povolené odměny. Ztracené klíče nezvyšují další emisi a omezený počet jednotek sám neurčuje kupní sílu. [Bitcoin Developer Guide — Block Chain]
Zdrojový kód lze zkoumat a změny navrhovat veřejně. Vývojář vydává software, provozovatel uzlu volí pravidla, která ověřuje, a těžař vybírá obsah kandidátního bloku. Žádná z těchto rolí sama nerozhoduje za všechny; neslučitelné změny mohou rozdělit síť. Ekonomický vliv účastníků přitom není stejný. Omezený prostor v blocích omezuje nároky na ověřování a šíření dat, ale při vysoké poptávce vede k soutěži o místo. Poplatek proto souvisí s velikostí transakce a poptávkou po zařazení, nikoli jednoduše s převáděnou částkou. [Bitcoin Developer Guide — Block Chain] [Bitcoin Developer Guide — Transactions]
Veřejná historie umožňuje ověření, ale také spojování plateb s identitou, například pomocí údajů burzy. Pseudonymita není anonymita. Vlastní úschova odstraňuje nutnost žádat správce o podpis, současně přenáší odpovědnost za zálohy, bezpečnost zařízení a kontrolu příjemce na držitele. Záloha musí obnovit potřebné klíče a konfiguraci; odhalené tajemství nelze znovu učinit tajným pouhým obnovením peněženky. Vlastní uzel pomáhá ověřovat historii, nezaručuje cenu, soukromí ani bezpečný podpis. Smyslem samostatného ověřování je vědět, kterou z těchto otázek právě kontrolujeme. [Bitcoin.org — Protect your privacy] [Bitcoin.org — Securing your wallet]
Pro nejúplnější obraz čtěte toto heslo společně s Satoshi Nakamoto, Bitcoin Whitepaper, Genesis Block, Proof of Work, Full Node, 21 milionů. Opačným směrem na něj odkazují také Satoshi Nakamoto, Bitcoin Whitepaper, Genesis Block, Full Node.