Bitcoinový slovník naučný

Bitcoin

Název decentralizované P2P sítě sloužící k uchování a přenosu hodnoty. Síť byla spuštěna 3. ledna 2009, když došlo k vytěžení prvního bloku.

bitcoin

V síti přenášená jednotka hodnoty. Protokol stanoví maximální počet (téměř) 21 milionů bitcoinů. Zkracuje se obvykle jako BTC.

satoshi

Základní a zároveň nejmenší možná jednotka používaná v základní vrstvě sítě. 1 bitcoin = 100 000 000 satoshi. Pojmenování se ujalo jako pocta tvůrci Bitcoinu vystupujícímu pod pseudonymem Satoshi Nakamoto. Také se zkracuje jako sat, saty, satů či anglickým sats.

P2P

peer-to-peer (rovný s rovným)

Jedná se o síť bez centrálních či nadřízených uzlů.

uzel, node

Zařízení (počítač) tvořící síť. Do bitcoinové sítě je v současnosti (rok 2021) zapojeno na tisíce uzlů. Pokud se uzel neúčastní těžby, má jen minimální nároky na výpočetní výkon a jeho provoz si tak může dovolit široká veřejnost.

blockchain

Speciální typ databáze, kde každý nový záznam v sobě obsahuje otisk toho předchozího. V Bitcoinu jsou těmito záznamy bloky bitcoinových transakcí.

krypto

Vokativ jednotného čísla podstatného jména krypta (hrobka pod kostelem).

lightning network

Bitcoinová platební síť. Hovoří se o ní jako o druhé vrstvě nad základní vrstvou (poměrně drahých) bitcoinových transakcí. Speciální bitcoinovou transakcí je otevřen tzv. platební kanál, v rámci kterého může probíhat neomezený počet velmi levných plateb. Další bitcoinovou transakcí může být kanál zase uzavřen, čímž teprve dojde k finálnímu vypořádání zápisem do blockchainu. Oproti základní vrstvě Bitcoinu umožňuje další dělitelnost až na tisíciny satoshi.

blok

Předepsaná datová struktura transakcí omezené velikosti (4 000 000 WU; dříve 1 MB). Sestává se z hlavičky bloku a serializovaných transakcí.

hlavička bloku

Sestává se z verze bloku, hashe předchozí bloku, hashe (rootu) merklovského stromu obsažených transakcí, času vytěžení, stanoveného targetu sítě a nonce – variabilního čísla, jehož změnou se dosahuje různých hashů hlavičky.

genesis blok

První blok bitcoinové sítě vytěžený Satoshim 3. ledna 2009. Jeho mincetvorná transakce v sobě obsahuje text odkazující na legendární novinový titulek „The Times 03/Jan/2009 Chancellor on brink of second bailout for banks“.

hash, otisk

Výstup jednosměrné matematické funkce, která libovolně dlouhá vstupní data převede na číslo v daném rozsahu. I velmi malá změna vstupních dat způsobí velmi velkou změnu na výstupu funkce. Zároveň nelze předvídat jaká změna vstupních dat by mohla způsobit kýženou změnu výstupu, např. získání menšího čísla na výstupu (což je mimochodem cílem těžby). Výstupem v Bitcoinu používané funkce SHA256 je 256bitové číslo, zpravidla zapisované v šestnáctkové soustavě.

Příklady:

vstup sha256
"Ahoj" f23e6807b3fb0be0ea999ea8cb88a3e94dc359c84230461f9761efac57dcb081
"Ahoy" 491312f2ce2f0d05cc8821956a34138428a72d6cbf3e426ef6bcc87f2905b614
"Ahoj, jak se dneska máš?" 56528a982b106e43d1f236360b6a72c4334918c0a83413d810ac0041f8f2e377

peněženka

Software, případně i samostatné HW zařízení, které generuje a uchovává soukromé klíče, vytváří a podepisuje transakce.

HD peněženka

hierarchical deterministic

Peněženka, která namísto jednotlivých soukromých klíčů generuje a uchovává pouze tzv. seed, z kterého pak deterministicky odvozuje hierarchistické uspořádání prakticky neomezeného počtu klíčů a k nim náležících adres.

slova seedu

Počáteční entropie (zpravidla 128 až 256bitové číslo) vyjádřená – z důvodů čitelnosti a odolnosti vůči chybě při čtení/psaní – variací 12 až 24 slov z 2048 prvkového seznamu. Slova se mohou opakovat a případná chyba v psaní je odhalena „kontrolním součtem“ (v posledním slově je zakódováno 4 až 8 bitů hashe počáteční entropie).

seed (semínko)

Počáteční entropie (zpravidla 128 až 256 bitů), rozšířená společně s případnou passphrase funkcí PBKDF2 v 512bitové číslo. Z tohoto čísla jsou následně deterministicky odvozovány všechny klíče (resp. adresy).

passphrase

Někdy též poněkud nesprávně zvaná 13./25. slovo seedu, ačkoliv se nemusí a neměla by se omezovat pouze na jedno slovo. Je‐li použita, podílí se (jako salt funkce PBKDF2) v kombinaci s počáteční entropií (v podobě řetězce 12/24 slov) na vygenerování seedu. Na rozdíl od samotné počáteční entropie není uložena v peněžence a neměla by být uchovávána ani společně s fyzickou zálohou (slovy seedu). Pak passphrase poskytuje další vrstvu ochrany, neboť případná extrakce počáteční entropie z peněženky či nalezení zálohy (slov seedu) dává přístup pouze k prostředkům uloženým pod seedem bez passphrase. Pokud zde utočník nějaké uspokojivé množství prostředků najde, dost možná již nebude mít potřebu odhalovat případnou passphrase (pod kterou však může být ukryt větší zbytek prostředků).

asymetrická kryptografie

Způsob šifrování, kde je pro zašifrování zprávy použit jiný klíč, než jaký je použit k rozšifrování zprávy. Obráceným použitím klíčů (viz. níže) lze dosáhnout kryptografického podpisu. Bitcoin používá k podepisování transakcí asymetrickou kryptografii eliptických křivek.

soukromý klíč (private key)

Ten tajný z dvojice klíčů asymetrické kryptografie. Slouží k rozšifrování tajné zprávy, popř. k podpisu. V případě Bitcoinu se jedná o 256bitové číslo.

veřejný klíč (public key)

Druhý z páru klíčů. Slouží k zašifrování tajné zprávy nebo k ověření podpisu. V případě Bitcoinu se jedná o bod na eliptické křivce, který je vypočten násobením stanoveného bodu (tzv. generátor cyklické grupy) a soukromého klíče. Jelikož je bitcoinová eliptická křivka souměrná podle osy x, stačí k jeho reprezentaci souřadnice x (256bitové číslo) a příznak sudosti.

bitcoinová adresa

Je to zahashovaný (funkcí SHA256 a následně ještě RIPEMD160) veřejný klíč, případně skript, případně nově u taprootu samotný veřejný klíč, ve prospěch kterého budou bitcoiny uzamčeny. V minulosti bývala zakódovaná v Base58Check, poslední standard využívá kódování Bech32(m) se sofistikovanější ochranou před překlepy. K vygenerování adresy není nutná komunikace se sítí, lze ji vygenerovat offline. Nutný je pouze zdroj entropie (případně již pomocí kvalitní entropie vygenerovaný seed).

bc1ql0t4gka0j9084nz0zrs9sc9tqtf0w29rdh503g
Na počátku je náhoda, na konci adresa. Vracet se však nelze.

U adresy vygenerováné standardní cestou s dostatkem počáteční entropie je prakticky vyloučeno (teoretická pravděpodobnost je nepředstavitelně nízká), že by již byla někdy vygenerována. Dřív objevíte trpaslíka uprostřed černé díry, jak hledá s baterkou vypínač, než aby se vám podařilo z kvalitní entropie vygenerovat již dříve vygenerovanou adresu.

Příklady různých adres:

typ označení adresa kódování
p2pkh legacy 1GRYfroBCL6wJeggD92VdPvJp5vKaVtsrA Base58Check s počáteční 1
p2sh nested segwit 39qmkmoB1t1mjGAowURRimoQduubbhVoZz Base58Check s počáteční 3
p2wpkh native segwit bc1ql0t4gka0j9084nz0zrs9sc9tqtf0w29rdh503g Bech32 s počátečním bc1
p2tr taproot bc1pr8pk6n4xvnnejnqpd4mxdezms8scn5zjnrw9duxt62x0fdyk8tpqmmdxnt Bech32m s počátečním bc1
bc1ql0t4gka0j9084nz0zrs9sc9tqtf0w29rdh503g
QR kód bitcoinové adresy

transakce

Základní operace bitcoinové sítě. Na svém vstupu utrácí (spotřebovává) dosud neutracené výstupy (UTXO) předchozích transakcí. Na svém výstupu uzamyká bitcoiny ve prospěch daných adres, a vytváří tak nové UTXO. Je‐li transakce zařazena jako součást bloku do blockchainu, stává se s každým navazujícím blokem (a tedy snižující se možností reorganizace) nesmazatelnou součástí transakční historie Bitcoinu.

lightning invoice

Datová struktura obsahující instrukce k provedení lightning platby. Typicky obsahuje platební hash, částku, hlavní veřejný klíč přijímajícího uzlu, čas vystavení, čas expirace, popisek a další údaje. Bývá zakódovaná – podobně jako onchain adresa – v bech32 s prefixem lnbc a lidsky čitelnou částkou.

LNURL

lightning network URL

Adresa, resp. protokol pro komunikaci mezi lightning peněženkou a jinou aplikací. Zahrnuje např. LNURL‑pay pro vyjednání lightning invoice a provedení platby z pěněženky, nebo LNURL‑withdraw pro výběr prostředků do peněženky. Jedna taková se nachází v patičce této stránky. Kódována v bech32 s prefixem lnurl.

lightning adresa

Nastavba nad LNURL umožňující použití adresy ve tvaru uživatel@doména, notoricky známé z emailové komunikace.

Script

Název skriptovacího jazyka sítě Bitcoin, prostřednictvím kterého jsou definovány (a vyhodnocovány) podmínky utracení (odemčení) UTXO.

HTLC

hashed time lock contract

Chytrý (smart) kontrakt. Pokud přijímající strana odhalí v daném časovém limitu předobraz (vstup) zadaného hashe, získá uzamčené prostředky; ty se jinak po uplynutí limitu navrátí odesílateli. Tímto způsobem se standarně přesouvají prostředky v rámci Lightning network.

UTXO

unspent transaction output

Neutracený transakční výstup, který může být použit na vstupu nové transakce. Součet částek všech aktuálních UTXO je roven aktuálně vytěženému množství bitcoinů.

konsolidace UTXO

Běžná transakce, ve které držitel spojuje (posílá sám sobě) více svých UTXO do jednoho nového UTXO. Provádí se zejména v období nižších transakčních poplatků tak, aby si v budoucím období vyšších poplatků držitel zlevnil útratu (odemčení) svých bitcoinů tím, že snížil počet potenciálně odemykaných vstupů.

poplatek (fee)

Odměna těžaři za zařazení transakce do bloku. Je to rozdíl mezi součtem částek na výstupu a součtem částek na vstupu. Nesmí být záporný, a v současné době už ani nulový.

mempool

Seznam vyslaných, do blockchainu dosud nezařazených transakcí, vedený každý uzlem. Těžící uzly z tohoto seznamu vybírají transakce do svých kandidátských bloků, přičemž zpravidla upřednostňují transakce s nejvyšším poměrem poplatek/weight unit.

weight unit, WU

Jednotka váhy (velikosti) transakce. Zavedení segwitu stanoví jednotlivým bajtům různých částí transakce jinou váhu, čímž zvýhodňuje právě segwitové transakce, jejichž podpisová data mají vůči předsegwitovým 4x nižší váhu.

vsize, vbytes, vB

Jiné vyjádření weight unit. 1vB = 4WU.

RBF

replace by fee

Využití transakčního pole sequence umožňuje zvyšovat poplatek do bloku dosud nezařazených transakcí. Aby byla transakce nahraditelná, musí mít nastavenou sequence menší než 0xffffffff. Pak je možné ji v mempoolech nahradit transakcí s vyšším poplatkem, která utrácí alespoň jeden stejný neutracený výstup.

CPFP

child pays for parent

Situace, ve které vysoký poplatek transakce utrácející výstup doposud do bloku nezařazené předchozí transakce s nízkým poplatkem zvýší průměrný poplatek obou (nebo i více předcházejících) transakcí. Tím je těžař incentivizován zařadit do bloku všechny přecházející transakce, bez kterých by nemohl vytěžit tuto s vysokým poplatkem, která tak v podstatě platí za své předky.

mincetvorná transakce

coinbase transaction

Speciální transakce, která jako jediná nemá žádné skutečné vstupy. Je to první transakce každého bloku, vytváří nové bitcoiny, které jsou společně s poplatky odměnou těžařům. Maximální počet nově vytvořených bitcoinů je pevně stanoven protokolem sítě. Jednou za 210 000 bloků (přibližně každé 4 roky) dochází k jeho půlení z původních 50 BTC na dnešních 6,25 BTC (rok 2021), až při 33. půlení (velmi přibližně v roce 2140) dosáhne nuly.

reorganizace blockchainu

Může v síti vzácně nastat situace, ve které dva různí těžaři vytěži a vyšlou do sítě nový blok prakticky ve stejný okamžik. V síti se pak vyskytují dvě různé verze blockchainu, jedna část sítě přijme blok těžare A, druhá část zařadí blok těžaře B. Jakmile je vytěžen další nový blok, dejme tomu navazující na blok těžaře A, stává se tato verze blockchainu nejdelší v síti a jako taková je přijata i druhou částí sítě. Ty transakce v osiřelém bloku těžaře B, které se nenachází zároveň i v bloku těžaře A, jsou v této části sítě navráceny do mempoolu. Této situaci se říká reorganizace blockchainu a je důvodem, proč např. směnárny vyžadují, aby blok obsahující vkladovou transakci dosáhl určené hloubky v blockchainu („počtu potvrzení“), typicky 3, nebo dokonce 6. Při této „hloubce zatěžení“ je už reorganizace prakticky vyloučena.

segwit

segregated witness

Vylepšení aktivované formou soft‐forku v roce 2017 v síti Bitcoin. Mimo jiného opravuje problém zvaný transaction malleability (tvárnost transakcí) tím, že podpisová data (scriptSig) nejsou součástí serializované podoby transakce, ze které je počítán její hash. Mění limit bloku z milionu bajtů (1 MB) na 4 miliony weight units. Mění se výpočet podpisového hashe, kdy doposud počet vstupů zvyšoval kvadraticky náročnost podepsání/ověření transakce atd…

Taproot

Vylepšení (soft‐fork) bitcoinové sítě aktivované 14. listopadu 2021. Zavádí Schnorrovy podpisy a umožňuje skrytí existence alternativních způsobů odemčení neutraceného výstupu. To snižuje možnosti blockchain analýzy a přináší více soukromí.

soft‐fork

Změna pravidel sítě způsobem, který je kompatibilní s uzly, které tuto změnu neimplementují.

hard‐fork

Změna pravidel sítě způsobem, který je nekompatibilní s uzly, které tuto změnu neimplementují. Následkem může být rozštěpení sítě na dvě (či více) různých větví blockchainu.

těžení

V podstatě se jedná o soutěž o právo zápisu dalšího bloku do blockchainu. Soutěž vyhraje ten, kdo jako první sestaví takový navazující blok transakcí, jehož hash (resp. hash jeho hlavičky) bude menší, než nastavený cíl (target) sítě. Nalezení takového hashe je věcí náhody, šance se zvyšují se schopností otestovat (zahashovat) co nejvíce variant v co nejkratším čase (ergo s početním výkonem).

cíl těžby (target)

256bitové číslo stanovující hranici hashe platného bloku. Pouze pokud je hash bloku nižší než toto číslo, může být zařazen do blockchainu. K přepočtu dochází každých 2016 bloků (přibližně každé dva týdny) – na základě doby potřebné k vytěžení posledních 2015 (toto je stále aktivní bug) bloků se upraví target tak, aby docházelo k vytěžení bloku jednou za 10 minut.

obtížnost sítě (difficulty)

Vyjádření obtížnosti těžby poměrem genesis targetu / současného targetu.

proof of work

Koncept, ve kterém (na výpočetní výkon velmi náročné) vytěžení bloku poskytuje síti v podstatě důkaz o vykonané práci. Objem této vykonané práce zvyšuje šance na vítězství v soutěži o zápis do blockchainu (a získání odpovídající odměny) a zároveň pobízí těžaře sestavit pravidlům vyhovující blok, neboť nevyhovující lze zbytkem téměř bezpracně odhalit a odmítnout, čímž by vykonaná práce přišla vniveč.

Satoshi Nakamoto

Pseudonym tvůrce či snad tvůrců Bitcoinu. Pravá identita je předmětem spekulací.

We all are Satoshi meme.
Andreas Antonopoulos, Luke Dashjr, Nick Szabo, Pieter Wuille, podvodník Craig Wright, Hal Finney, Adam Back, Dorian Satoshi Nakamoto, Greg Maxwell