Bitcoin Lite Paper: od Satoshiho k vám bez technického žargonu
Bitcoin
Toto je přepis původního dokumentu "Bitcoin: A Peer-to-Peer Electronic Cash System" od Satoshiho Nakamota, publikovaného 31. října 2008, přeložený do netechnické češtiny se zachováním přesné struktury textu sekce po sekci.
Název
Bitcoin: peer-to-peer systém elektronické hotovosti
Autor
Satoshi Nakamoto, satoshin@gmx.com, www.bitcoin.org
Abstrakt
Peer-to-peer elektronická hotovost by umožnila elektronické platby mezi účastníky transakce bez zprostředkující finanční instituce. Digitální podpisy poskytují jednu část řešení, důkaz vlastnictví. Zde navrhujeme druhou část, řešení prevence dvojité útraty pomocí peer-to-peer sítě, tj. bez nutnosti důvěryhodné třetí strany.
Tato síť zaznamenává transakce do řetězce informačních bloků s využitím výpočetního výkonu. Nejdelší řetězec slouží jako důkaz posloupnosti událostí a jako důkaz, že pochází z největší skupiny uzlů. Záznam nelze změnit bez opětovného provedení výpočetního výkonu. Dokud většina uzlů jsou poctiví aktéři, kteří nespolupracují na útoku proti síti, vytvoří nejdelší řetězec bloků a tím předstihnou případné útočníky.
1. Úvod
Online obchodování spoléhá na důvěryhodné finanční instituce pro zpracování elektronických plateb, což vede k dodatečným nákladům a rizikům. Tyto instituce mají povinnost řešit platební spory, takže transakce musí být nutně vratné. Náklady na vyřešení těchto sporů zvyšují náklady transakcí, navíc obchodníci musí vyžadovat od zákazníků jejich identitu. Určité procento podvodů je považováno za nevyhnutelné.
Řešením by byl elektronický platební systém založený na kryptografickém důkazu místo důvěry. Klíčovým problémem je zajistit, aby žádný z vlastníků neutratil hodnotu minci vícekrát (tzv. dvojitá útrata). Navrhujeme řešení pomocí distribuovaného časového serveru k vytvoření výpočetního důkazu chronologického pořadí transakcí. Systém je bezpečný, pokud poctivé uzly kolektivně ovládají více výpočetního výkonu než útočníci.
Uzel neboli nod je každý počítač či výpočetní zařízení, které se připojí k síti, uchovává data a vyměňuje data s okolními uzly. V peer-to-peer distribuované počítačové síti komunikují jednotliví uživatelé rovnocenně a přímo s jinými uživateli, bez přítomnosti centrálního serveru.
2. Transakce
Elektronická mince je definována jako řetězec digitálních podpisů. Každý vlastník převádí minci digitálním podepsáním předchozí a následující transakce. Příjemce může ověřit podpisy a tím ověřit řetězec vlastnictví.
Nicméně příjemce nemůže ověřit, že některý z předchozích vlastníků neutratil minci dvakrát. Běžným řešením je důvěryhodná centralizovaná autorita, která každou transakci ověřuje. Abychom toho dosáhli bez důvěryhodné strany, všechny transakce musí být veřejně oznámeny v systému, kde většina souhlasí s historií pořadí, v jakém byly přijaty.
3. Časový server (timestamp server)
Navrhované řešení spočívá v umístění časového razítka na blok transakcí a jeho publikování do sítě jako důkaz, že tyto transakce existovaly v určitém čase. Každé razítko označuje to předchozí, čímž vytváří neměnný řetězec, který potvrzuje pořadí a existenci transakcí.
4. Důkaz prací (proof-of-work)
K implementaci distribuovaného časového serveru vytváříme systém, který činí ověřování transakcí jednoduché a levné, ale změnu minulých transakcí prohibitivně nákladnou. Účastníci v síti (tzv. těžařské uzly nebo těžaři) soutěží o nalezení výpočetního řešení, které je těžké vyřešit, ale snadné ověřit. Jakmile první těžař najde řešení, tak ho vyšle do sítě, a pokud je sítí ověřeno jako správné, obdrží odměnu.
Důležitou vlastností tohoto důkazu prací je, že výkon vynaložený na nalezení výpočetního řešení zároveň zpracovává transakce do záznamu v transakčním bloku. V příloze na konci tohoto dokumentu je více informací a technické detaily důkazu prací, které nejsou úplně nezbytné pro konceptuální pochopení Bitcoinu.
Důkaz prací je v podstatě hlasovací systém, kde jedna výpočetní jednotka představuje jeden hlas, a většinové rozhodnutí je reprezentováno nejdelším platným řetězcem (s nejvíce akumulovaným důkazem prací) jako nepozměnitelným záznamem transakcí. Změna minulých transakcí by vyžadovala opětovné nalezení všech předchozích řešení. Tento systém motivuje těžaře k poctivému jednání, protože podvádění by stálo více v energii a hardwaru než potenciální odměny.
5. Síť
Síťový algoritmus je následující:
Nové transakce jsou vysílány všem uzlům.
Každý uzel shromažďuje tyto transakce a ukládá je do svého bloku.
Každý uzel se snaží vyřešit důkaz prací pro svůj blok.
Když uzel najde řešení, pošle blok všem ostatním uzlům v síti. První uzel, který tak učiní, se stává tvůrcem bloku: přidá platný blok do řetězce a obdrží odměnu.
Uzly v síti přijmou blok pouze tehdy, pokud všechny transakce v něm jsou platné a nebyly již utraceny.
Síť vyjadřuje svůj souhlas připojením bloku k předchozímu bloku v řetězci.
Poté se algoritmus opakuje od kroku 1.
6. Motivační odměny
Odměny pro těžaře se skládají ze dvou složek:
Bloková odměna (block subsidy): První záznam v každém bloku je speciální transakce, která vytváří pevně stanovené množství nových mincí, které náleží tvůrci bloku. Tato transakce poskytuje způsob, jak uvést mince do oběhu, jelikož neexistuje žádná centrální autorita, která by je vydávala. Množství nových mincí se přibližně každé čtyři roky (každých 210 000 bloků) snižuje na polovinu v události zvané půlení (halving); do roku 2140 blokové odměny skončí.
Transakční poplatky: Uživatelé, jejichž transakce jsou zahrnuty v bloku, platí poplatky. Tyto poplatky se liší v závislosti na poptávce v síti a prioritě transakce.
7. Uvolňování úložného prostoru na disku
Dostatečně staré bloky lze zmenšit odstraněním záznamů o transakcích, ponechají se pouze základní informace zapsané v hlavičce bloku. Tím se ušetří paměť nutná k uložení celého řetězce, přičemž se zachová možnost ověření transakcí.
8. Zjednodušené ověřování plateb
Uživatel může platby ověřovat i v případě, že neprovozuje plnohodnotný síťový uzel se záznamem celého řetězce transakcí. Od okolních uzlů získá kopie hlaviček bloků z nejdelšího řetězce a odvodí, ve kterém bloku se nachází její časové razítko. Transakci si nemůže transakci ověřit sám, ale dokáže ověřit, že ji nějaký uzel přijal, a později přidané bloky dále potvrzují, že transakci akceptovala celá síť a tedy se jedná o platnou transakci.
9. Slučování a rozdělování hodnoty
Jednotlivé mince lze sloučit nebo rozdělit v jedné transakci; jakákoli zbývající hodnota vstupu, která není přiřazena k výstupu, se stává transakčním poplatkem. Obvykle existuje buď jeden vstup z větší předchozí transakce, nebo více vstupů kombinujících menší částky, a maximálně dva výstupy: jeden pro platbu a druhý vracející částku, pokud nějaká je, zpět odesílateli. V podstatě tyto transakce fungují podobně jako hotovostní platby bankovkami různých hodnot a přijímání "drobných" zpátky.
10. Soukromí
Nutnost veřejně oznamovat všechny transakce vylučuje anonymitu. Nicméně pseudonymita je zachována tím, že transakce nejsou spojeny s identitou. Veřejnost může vidět, že někdo posílá určitou částku někomu jinému, ale bez informací spojujících transakci s konkrétní osobou. Historie transakcí zůstává transparentní pro všechny.
11. Výpočty
Matematické modely uvedené v této části původního dokumentu zde nejsou pro jednoduchost uvedeny. Zjednodušeně řečeno dokazují, že pravděpodobnost se kterou útočník vytvoří alternativní řetězec delší než poctivý řetězec exponenciálně klesá s přidáváním dalších bloků. Úspěšné útoky se tak s přibývajícími blokami stávají extrémně nepravděpodobnými.
12. Závěr
Navrhli jsme systém elektronických transakcí, který není závislý na důvěře. Kombinuje existující rámec digitálních podpisů pro kontrolu vlastnictví s novým konceptem peer-to-peer sítě využívající důkaz prací k vytvoření veřejného záznamu transakcí pro prevenci dvojité útraty. Robustnost této sítě spočívá v její decentralizované nestrukturovanosti a v jednoduchosti. Uzly spolupracují s minimální koordinací, nemusí být identifikovány, mohou se libovolně odpojovat a znovu připojovat k síti, přičemž akceptují nejdelší řetězec důkazu prací jako důkaz toho, co se stalo během jejich nepřítomnosti, a hlasují svým výpočetním výkonem. Prostřednictvím tohoto konsensuálního mechanismu lze prosazovat jakákoliv pravidla a motivační odměny.
_______________________________________________
Reference
Originální verze v angličtině: https://bitcoin.org/bitcoin.pdf.
Úplný překlad do češtiny od Braiins Publishing a glosář pojmů, které jsou použité i zde: https://bitcoin.org/files/bitcoin-paper/bitcoin_cz.pdf.
Low-tech verze v angličtině: https://open.substack.com/pub/milanide/p/bitcoin-light-paper.
_______________________________________________
Přílohy
Tato část nebyla součástí původního dokumentu. Není nezbytná pro konceptuální pochopení Bitcoinu, ale poskytuje podrobnější vysvětlení některých klíčových pojmů.
Příloha 1. Co je to hashovací funkce
Hash je matematická funkce, která převádí libovolná data na krátký řetězec znaků, známý jako hash hodnota. Tento proces je jednosměrný, což znamená, že je snadné převést data na hash hodnotu, ale extrémně obtížné obrátit proces a získat původní data z hash hodnoty. Dokonce i malá změna vstupních dat vede k úplně jiné hash hodnotě.
Hashovací funkce jsou v kryptografii důležité pro zajištění integrity a bezpečnosti dat. Příklad použití: uživatel si stáhne software z webové stránky; aplikuje na něj hashovací funkci a porovnáním výstupní hash hodnoty s hodnotou publikovanou tvůrcem softwaru lze ověřit jeho autenticitu.
Příloha 2. Co obsahuje bitcoinový blok
Bitcoinový blok je v podstatě dokument se záznamy, který obsahuje několik částí:
Tzv. magické číslo: hodnotu signalizující, že přenášená data jsou ve správném formátu.
Velikost bloku
Hlavičku bloku, která obsahuje metadata: verzi bloku, hash předchozí hlavičky bloku, hash všech transakcí v bloku, aktuální časové razítko bloku v sekundách od 1. ledna 1970 00:00 UTC, aktuální cílovou obtížnost a tzv. nonce.
Počítadlo transakcí: kladné celé číslo udávající počet transakcí v bloku.
Data transakcí: seznam transakcí, které jsou součástí bloku.
Nonce je jednorázově použitá arbitární hodnota, který přináší do výpočtu náhodný element.
Příloha 3. Mechanismus proof-of-work
Úloha proof-of-work spočívá v aplikaci hashovací funkce na blok s určitým nonce, dokud jako výsledek nevznikne hash hodnota začínající určitým počtem úvodních nul. Nonce se mění se v každém kole hashování, dokud není nalezeno řešení. Počet úvodních nul souvisí s cílovou obtížností; ta je v síti upravována tak, aby produkovala bloky s přibližně stejnou frekvencí.