Víte, že... Bitcoin


Bitcoin bude stát 1 milion dolarů

Když někdo rozporuje, že jeden bitcoin může stát $1,000,000, tak neví, jak funguje složené úročení, respektive v tomto případě inflace, která se aplikuje rok co rok.

Bitcoin dnes znovu překročil $50,000 a je jen otázka času, než jej uvidíme za $1,000,000. Tohle není vlévání "hopia" do žil, ale když si spočítáte 2% inflaci na fiat měnách každý rok, dojdete k závěru, že bitcoin bude stát milion dolarů nejpozději za cca 150 let jen díky inflaci.

V dlouhodobém měřítku je téměř hloupé tvrdit, že tolik stát nebude. Musíme se ovšem dívat na kupní sílu takové částky. Otázkou zůstává, jestli si za milionový bitcoin koupíme v budoucnu vilu nebo maximálně ojeté auto.

Nekoukejte na hodnotu v dolarech, korunách, złotých, eurech. Štosujte saty, přidávejte si postupně měsíc co měsíc něco málo a použijte Bitcoin jako spoření nebo pojištění.

Svoje bitcoiny můžete anonymizovat přes různé mixery

K tomuto účelu slouží např. Wasabi wallet, nahrajete tam své BTC, Wasabi z nich udělá obrovské transakce společně s dalšími účastníky, které mají třeba 50 vstupů a 50 stejně velkých výstupů. Takovouto operaci provede několikrát, až je historie v podstatě nedohledatelná.

Pozor však, takové bitcoiny byste neměli posílat na burzu, mohou s nimi mít problém, případně vám smazat účet. Jsou tedy určeny výhradně pro Non-Kyc obchody, ideálně P2P.

Stále platí, že lightningové transakce žádnou historii nemají. Vytvoření kanálů z takovýchto coinů by neměl být žádný problém.

Místem v blockchainu bychom měli opravdu šetřit

Dnešní bitcoinový blockchain má cca 500 GB, což je poměrně dost. Stáhnutí takového množství dat je i dnes záležitost na několik hodin, někdy desítek hodin. Dalším parametrem je cena uložení, protože každý nemá v PC asi 500GB jen tak.

Za několik let už se 500 GB nebude zdát zase tolik, jak jde technika dopředu, nicméně musíme udržet zdravý růst této decentralizované databáze. Pokud se utrhneme z rětězu, naše děti budou stahovat terabajty dat.

Tento problém řeší Lightning network. Pomocí ní nebudeme do blockchainu zapisovat každé kafe, každé pivo, každý jeden nákup. Můžeme udělat vyrovnání na základní vrstvu třeba jednou za rok. Pokud tohle bude používat většina lidí, technologie budou růst rychleji a nebude tak problém blockchain pořád ukládat i v domácích podmínkách.

Velký blockchain by znamenal, že jej budou moci uchovávat jen velké společnosti, čímž by výrazně utrpěla decentralizace. Čím menší bude, tím snazší pro lidi bude mít vlastní full node (celý blockchain) doma a tím bude vyřešená i decentralizace.

Proof of work nepřišel až s Bitcoinem, ale je tu už od roku 1997

Adam Back použil proof of work (PoW) ve svém projektu Hashcash již roce 1997, kde zabraňoval DoS útokům a spamu.

Proof of work je důkaz o vykonané práci. Není to fyzická ani lidská práce, ale jedná se o výpočetní výkon. Funguje na principu, kdy uživatel (těžař) zkouší různé kombinace dat (transakcí), než mu vyjde správný hash. Tohle spotřebuje nějaký výpočetní výkon, tedy elektrickou energii. Ověření správnosti už je potom triviální.

V Bitcoinu jsou tedy role rozděleny na dvě. První - těžaři soupeří, kdo najde správný výsledek dřív, spotřebovávají tak elektřinu a bitcoinové uzly (malé počítače, klidně bez velkého výkonu, mobily) jen jednoduše ověří správnost daného bloku.

Vykonaná práce, spálená elektřina zajišťuje, aby se nevyplatilo podvádět, dává celému blockchainu punc pravosti.

Shamir Backup a k čemu slouží

Shamir Backup je metoda "rozdělení" seedu na několik různých částí, jejichž počet si může uživatel zvolit. Pokud si zvolíme rozdělení na 5 částí, můžeme určit, že k obnově seedu použijeme minimálně 3 z 5 (nebo 4 z 5, 5 ze 7, 13 ze 17 apod).

Vhodná peněženka (Trezor T) vám tento "seed" vygeneruje a vy si postupně zapíšete vašich 5 částí seedu ve variantě 3 z 5 (je to tedy např. 5 x 20 slov). Slova si ukryjete na bezpečných místech. Každé části říkejme fragment. Každý fragment samostatně je úplně k ničemu, potřebujeme požadovaný počet fragmentů, aby Trezor byl schopen obnovit naše privátní klíče a adresy.

Dva fragmenty (v našem případě) tedy můžeme úplně ztratit, tři nám budou stačit. Tato metoda je považována za bezpečnější, než mít někde uložený celý seed, jehož zůstatek lze potom jednoduše vybrat, pokud seed někdo objeví. Proto taky používejte passphrase se Shamir i bez Shamir Backup.

Uložení takových fragmentů je pak na kreativitě, ale je důležité, abyste měli nějaký záložní plán, kdybyste třeba zapomněli, kde máte vaše fragmenty uložené, případně instruovat okolí, jak fragmenty najít a co s nimi udělat (včetně předání passphrase).

Se svobodou přichází odpovědnost.

Bitcoiny vám nikdo neukradne

Bitcoin využívá asymetrickou kryptografii, kterou je zabezpečená většina systémů na světě. Neexistuje zatím způsob, jak prolomit jeho šifrování, to by vyžadovalo vyřešit problém diskrétního logaritmu. Pokud tedy nikomu nevyzradíte svůj náhodně vygenerovaný seed, není možné vaše bitcoiny ukrást. To nemůžeme říct o některých DeFi projektech. Z jednoho nedávno hacker ukradl přes 600 milionů dolarů. Kupte si Bitcoin a nespekulujte, to je má rada.

Bitcoin má jasnou a dopředu danou měnovou politiku

Již přes 12 let v Bitcoinu existuje jasná politika, kolik bitcoinů se do oběhu uvolňuje tzv. těžbou. Na začátku to bylo 50 BTC za každý blok. Tato inflace se každé cca 4 roky snižuje na polovinu. Stejně, jako tomu bylo, bude tomu tak i v budoucnu, až v roce cca 2140 odměny v podobě nových BTC sníží na 0 BTC a síť budou živit pouze poplatky transakcí.

Bitcoin nemění svoji monetární politiku každých 14 dnů a tak přesně víte, jak bude vypadat i za 100 let. Můžete se tak připravit na na jakoukoliv situaci, aniž by vám do plánu hodil kdokoliv vidle, ať už je to centrální banka nebo vývojáři ETH.

Bitcoin vyřešil problém dvojí útraty

Dvojí útrata neboli double spend je problém, který jsme vždy řešili nějakou autoritou. Banky zařizují, že stejná stokoruna, kterou jsme zaplatili na internetu nebude utracena ještě jinde na internetu. Pro hotovostní peníze je touto autoritou stát. Vydává vlastní peníze a za jejich padělání vám hrozí vězení.

U bitcoinových transakcí je tento centrální kontrolní mechanismus nahrazen konceptem proof of work, který zajišťuje, aby z případných dvou transakcí utrácející stejné coiny (stejnou stokorunu), byla platná pouze jedna.

Těžaři tedy do bloku zahrnou pouze platné transakce podle pravidel, jinak by nedostali odměnu za vytěžený blok a chrání si tak své finanční zájmy. Kdyby chtěli podvádět, ostatní uzly v síti takové neplatné bloky odmítnou a tudíž by odměna za tento blok připadla někomu jinému, kdo hraje podle pravidel.

První těžební pool vymyslel čech, Marek "Slush" Palatinus

Asi už víte, že těžba bitcoinů samostatně už je dnes v domácích podmínkách téměř nemožná. Síť už má takový hashrate, že byste potřebovali halu plnou speciálních minerů.

Dříve byl ale standard těžit na grafických kartách, případne v úplných začátcích na CPU.

Slush těžil bitcoiny na svém laptopu, ale jak se hashrate zvyšoval, čekal pak už měsíce na plnou odměnu 50 BTC.

Přišel tak s nápadem spojit málo výkoné počítače, aby mohl spolu s ostatními konkurovat těm, kteří už pro těžbu používali výkonnější grafické karty.

Vzniknul tak SlushPool, první těžební pool, který měl v jednu chvíli přes 30 % hashratu celé sítě.

Ukázal takto světu, jaká je budoucnost těžby a dnes už je to zavedený standard. Kde bychom bez něj dnes vůbec byli.

Posílat bitcoiny můžete z několika adres opět na několik adres

Šetříte tak místo, protože poslat jednu transakci, která má 5 výstupů (příjemců) je levnější než poslat 5 jednotlivých transakcí. Některé peněženky dokonce podporují Coin Control, což je vybírání a posílání kontrétních UTXO.

Dnes ještě není placení v BTC tak časté, ale teoreticky můžete zaplatit nákup na třeba 10 e-shopech jen jednou transakcí, stejně by mohl zaměstnavatel zaplatit své zaměstnance jedním transferem, místo 100 malých plateb.

Tohle je důvod, proč např. výběr z burzy vás stojí 1,000 satů, ale vy v peněžence vidíte poplatek třeba 50,000 satů. Burza vezme poptávky k výběru od klientů, a až jich je více, obslouží jednou transakcí všechny - poplatek rozdělí mezi klienty.

Pokud chcete mít naprostou jistotu, že vaše transakce jsou platné, měli byste mít doma vlastní full node

Většinou si jej lidé skládají jako počítač na Raspberry Pi, protože nespotřebuje moc elektřiny a stačí výkonově na ověřování transakcí.

Vlastním nodem přispějete k robustnosti sítě a ve vlastní kopii blockchainu si můžete procházet předchozí transakce, které váš node předtím ověřil, takže pokud vidíte např. 6 potvrzení, je téměř 100%, že vaše transakce už je nevratná.

Pokud se díváte do veřejných prohlížečů, nemůžete si být 100% jistí, že vám tvrdí pravdu.

Komponenty, z jakých si postavit bitcoinový (a případně i lightningový) node najdete zde: discord.com

Bitcoinová transakce neobsahuje žádnou informaci o nastaveném poplatku

Každá bitcoinová transakce se skládá ze vstupů (odkud bitcoiny posíláme) a výstupů (kam bitcoiny posíláme). V peněžence si také nastavujeme výši poplatku v sat/B nebo sat/vB. Protože peněženka ví, jak bude transakce veliká (v bajtech), ukáže nám i přesně, kolik bude poplatek, ale kam se tedy zadává?

No vlastně nikam. Poplatek je jen rozdíl mezi tím, co do transakce vstupuje a tím, co z ní vystupuje. Obvykle je tento rozdíl celkem minimální, ale každý tento minimální "poplatek" si může utratit pouze těžař, který vytěží daný blok. V transakci tedy specifikuji, že posílám třeba 1 BTC a pokud chci, aby moje transakce byla vytěžena v dalším bloku, v transakci pošlu třeba jen 0.99 BTC. Rozdíl mezi těmito částkami si tedy "připíše" těžař.

Nepoužívejte brainwallets!

Brainwallet je způsob uložení, kdy nemáte nikde zapsaný seed. Buď si ho pamatujete a nebo (většinou) jsou to nějaká snadno zapamatovatelná slova v jistém pořadí. Pokud si takto sám vytvořím peněženku (brainwallet, jednu adresu, jeden klíč), je skoro jisté, že mi ji někdo vykrade. Princip např. hardwarových nebo i softwarových peněženek je takový, že generují (pseudo)náhodné číslo, které slouží jako výchozí bod pro generování adres (a soukromých klíčů). Takovouhle vlastnost, generování náhodného čísla nemá dokonalou ani sám počítač, natož člověk a náš mozek.

Pokud by někdo použil třeba slova "satoshi sakamoto" pro vytvoření bitcoinové adresy, je obrovská šance, že to již někdo zkusil a nebo minimálně někdo takovou adresu sleduje a čeká, jestli tam někdo něco nepošle, aby ji mohl "vybrat". Počítače mohou zkoušet miliardy takových kombinací slov za sekundu a věřte, že se za chvíli trefí.

Příklad:
"satoshi nakamoto" ➔ 1Q7f2rL2irjpvsKVys5W2cmKJYss82rNCy

Ke generování adres tedy používejte Trezor a nebo důvěryhodné softwarové peněženky.

Víte, že slova bitcoinového seedu jsou jen převedená čísla do čitelného textu pomocí jednoduchého "slovníku"? Peněženky je ale vnímají jen jako jedničky a nuly za sebou.

Váš 12slovný nebo 24slovný seed máte jistě bezpečně zapsaný a víte, že ta slova jsou velice důležitá. Ve skutečnosti ale jen každé slovo reprezentuje číslo od 1 do 2048 a není za tím žádná velká věda. Např. slovo "amazing" je v anglickém bitcoinovém "slovníku" na pozici 63.

Příkladem může být seed "song wreck display sniff possible manage camp crack guilt junior bomb trust". Nikdy tenhle seed na nic nepoužívejte, ale pro ukázku nám poslouží.

Každé slovo najdeme ve slovníku a podíváme se na jeho index. 1658 (song), 2034 (wreck) ... Od indexů odečteme jedničku a zapíšeme: 1657, 2033, 508, 1643, 1348, 1079, 262, 398, 829, 969, 201,1869.

Pokud je převedeme do binární soustavy, ve které pracují sw i hw peněženky a poskládáme za sebe, dostáváme číslo, což je náš seed v binární podobě. Jako byste házeli korunou 128x dokola a zapisovali si buď 1 nebo 0 (poslední slovo je odvozené z předchozích jedenácti).

11001111001 11111110001 00111111100 11001101011 10101000100 10000110111 00100000110 00110001110 01100111101 01111001001 00011001001 1110100

Pokud by někdo chtěl uhodnout váš seed, je to tedy téměř nemožné, protože by musel 128x hodit kostkou a hodit naprosto stejné číslo jako vy.

Bitcoinová síť má neuvěřitelný uptime přes 99.98 %

Od 3.ledna 2009 potkaly Bitcoin pouze 2 události, které ochromily celou síť, které ale byly vyřešeny za cca 6-8 hodin.

První z nich, 15.8.2010, se pojí s chybou v Bitcoinu, kdy někdo vytěžil přes 180 miliard (popisovali jsme v jenom z předchozích Víte, že). Týmu vývojářů se ale povedlo dodat opravu do několika hodin a celkem tedy první výpadek trval 8h27m.

Druhý výpadek popisoval Slush u Urzy na streamu. Počet vstupů v aktuálním bloku byl extrémní, což nody verze pod 0.8 nezvládaly a odmítaly tyto bloky, došlo tedy k forku sítě. Slush tedy downgradoval SlushPool na verzi 0.7 a taky tedy pomohl opět sjednotit dva chainy, které běžely paralelně vedle sebe. Slush tak "zahodil" 1200 vytěžených bitcoinů, které tehdy SlushPool vytěžil na již neplatném chainu. Než se zkoordinovaly všechny úkony, Bitcoin tak vypadnul asi na 6h20m.

Celkem tedy necelých 15 hodin od roku 2009 je doba, kdy Bitcoin nebyl funkční. Zkuste to srovnat se svojí bankou, která vám každý měsíc píše, že bude od 00:00 do 05:00 nefunkční internet banking, platby kartou, ať si vyberete hotovost.

buybitcoinworldwide.com
youtube.com

Text písně Never Gonna Give You Up leží na všech bitcoinových uzlech, stejně jako opening crawl Star Wars: A New Hope?

Dvě zajímavé transakce lze identifikovat v blockchainu. První podle jejího OP_RETURN výstupu. Vtipálek nebo prostě jen popový nadšenec tento výstup zaplnil textem písně Never Gonna Give You Up od Ricka Astleyho a navždy zvěčnili již tak populární počin.
explorer.sats.cz
btc-zdarma.cz

Pravděpodobně nadšenec do Bitcoinu tak StarWars uložil do blockchainu také opening crawl Star Wars: A New Hope "It is a period of civil war. Rebe spaceships...". Není ale uložený v OP_RETURN, ale ukrytý v bitcoinových adresách. Tyto adresy musel tzv. bruteforce metodou vygenerovat a stálo ho to jistě nemalé množství prostředků (adresy si není možné vygenerovat libovolně, takže zkoušel a zkoušel, než mu vyšla např. adresa např. "1EpisodeiV111111111111111111wbq9i2" nebo "1ANewHope1111111111111111111vnYm6D".
explorer.sats.cz

Lightningové platby jsou naprosto anonymní?

Problém, který Bitcoinu komplikuje používání je možnost stopovat v blockchainu vaše transakce. Například, kdysi jste si koupili 1 BTC za pár dolarů, dnes je z něj poměrně hodně peněz. Pokud ale kamarádovi zaplatíte třeba za oběd, z adresy může odejít celý 1 BTC a 0.99 BTC se vám vrátí zpět na change adresu v jedné transakci. Váš kamarád v tuto chvíli ví, že vlastníte alespoň jeden bitcoin. Někomu by tohle mohlo vadit.

Lightningové platby fungují ale naprosto anonymně. Není možné zjistit, od koho vám platba po Lightning network přišla, protože ani samotné uzly, přes které tyto prostředky "tečou", o platbě nevědí nic kromě toho, z jakého posledního uzlu jim platba přišla a na jaký další uzel ji mají poslat. Po cestě může být třeba 1000 uzlů, ale každý jen ví nutné minimum. Vše je ukryto v Lightningové síti už z principu. Jediné, co příjemce odhaluje je svůj veřejný klíč - v ln invoice.

Odesílatel, ani příjemce pak nemohou o svém protějšku vědět, kam kdo si bitcoiny případně přeposlal, jak je tomu v případě on-chain bitcoinů. Do blockchainu se v tomto případě totiž nic nezapisuje. Nikdo vám tedy nebrání používat Bitcoin plně anonymně, stačí mít Lightning peněženku a používat ho jako výchozí způsob. Ideální je nakupovat rovnou Lightningový zůstatek. Velké částky samozřejmě ale patří na Trezor, takže si z Phoenix můžete "vybrat" na Trezor nějaké prostředky, než si je zase (za měsíce, roky) do Phoenix nahrajete, abyste je mohli utrácet.

Bitcoinové transakce posílané "na IP adresu"

Je to tedy záležitost opravdu historická, ale dříve prý opravdu bylo možné posílat bitcoiny na IP adresu. V Bitcoin Core nižším než 0.8.0 se nacházel kód, který tuto funkcionalitu zajišťoval. Bylo třeba zveřejnit svoji IP adresu spolu s veřejným klíčem, což bylo o něco (24 bajtů za každý výstup) efektivnější než posílat přímo na adresu (hash veřejného klíče).

Vtipný je také poznatek uživatele gmaxwell na githubu, který chtěl tyto IP adresy využít k loterii o bitcoiny, kde by soutěžili uzly s nejnovější verzí kódu a motivoval je tak k upgradu. Těžko říct, jak moc vážně to myslel.

Tento satoshiho návrh měl své zastánce, transakce byly o něco menší a teoreticky by příjemci takových transakcí mohly transakci ještě odmítnou, než by vůbec byla provedená, což je jistě zajímavé. Není ovšem jasné, jestli této možnosti, jak odeslat své bitcoiny někdo využil a jestli to celé bylo plně funkční. V podcastu The Van Wirdum Sjorsnado ji také zmiňoval přímo jeden z vývojářů Bitcoinu, ale o nikom, kdo by ji někdy použil nevěděl.

Prakticky se ale tato funkcionalita neuchytila a byla nejdřív v bitcoinovém rozhraní skryta, později úplně odstraněna i z Bitcoin Core ve verzi 0.8.0.

bitcointalk.org
github.com
spotify.com

V začátcích Bitcoinu vůbec neexistoval seed?

Původně se klíče k bitcoinovým adresám ukládaly do souboru na počítači, který jste si museli střežit. S myšlenkou, jak offline uchovat své bitcoiny, respektive klíče k nim pomocí 12 nebo 24 anglických (či jiných, ale doporučuje se nepoužívat jiné jazyky, protože většina peněženek je stejně nepodporuje) slov přišla čtveřice Marek Palatinus, Pavol Rusnák, Aaron Voisine a Sean Bowe. První dvě jména vám mohou být povědomá.

Později přišli Marek Palatinus (Slush) a Pavol Rusnák (Stick) i s metodou, jak tato slova bezpečně vygenerovat a uchovávat pomocí malého a jednoduché počítače, dnes známého pod značkou Trezor. Česká stopa tedy zásadně ovlivňuje bitcoinový svět. Bez těchto průkopníků by Bitcoin tak daleko nebyl.

github.com
trezor.io

Vstup na Lightning je dražší než jedna on-chain transakce. Jak přesně funguje vyvážení kanálů ve Phoenix?

Provozovatelé peněženek, jako je Phoenix (teď rozebíráme non-custodial peněženky) si vezmou např. 1 % z platby, která je tak velká, že už se nevejde do vašich stávajících kanálů (nebo pokud žádný nemáte). A je to správně! Phoenix musí otevřít platební kanál, což stojí on-chain poplatek, který musí zaplatit (toto břemeno tedy převede na vás formou poplatku).

Otevřením kanálu tedy Phoenix zamkne svoje bitcoiny a okamžitě vám je vzniknutým kanálem přepošle na vaši stranu. Na vaši stranu už se tedy více nevejde. Funguje to jako např. injekční stříkačka, která má nějaký objem (kapacita kanálu) a víc už do ní nenaberete, není kam. To je případ, když si dobijete Phoenix. Pro opětovné přijmutí do kanálu musíte z kanálu poslat ven, abyste uvolnili místo pro příjem (jako když stlačíte píst stříkačky, vznikne místo pro další nabrání tekutiny). Pokud to neuděláte a budete se snažit přijmout znovu, Phoenix nemůže připsat prostředky do existujícího kanálu (ten je plný), tak musí vytvořit nový. Vezme si tedy opět 1 % poplatek.

Není tedy žádoucí štosovat do "nepřipravené" peněženky (ze které průběžně neutrácíte), protože s každou další platbou se otevře další kanál, což je zbytečné a ve výsledku dražší, než jen poslání on-chain (logicky, je to on-chain + poplatek Phoenixu).

Jak tedy peněženku připravit na průběžné štosování? Jenoduše. Převeďte si na Phoenix první platbou větší částku (klidně i větší, než vůbec chcene na LN mít) a jakmile k vám Phoenix otevře kanál (kterým teď nejde příjmat), pošlete ty prostředky ven z peněženky (Android aplikace to umí nativně, iOS využijte nějaké směnárny jako boltz.exchange ) zpět na Trezor nebo kamkoliv jinam. Doporučuji minimálně takovou částku, aby vám to dávalo smysl. Minimálně bych doporučil vyšší stovky tisíc satoshi, spíš miliony satoshi.

V tuhle chvíli jste vašim kanálem "poslali ven" a jste ready už jen příjmat po LN bez problému (samozřejmě můžete i utrácet, to vám zase dělá prostor pro další přijímání) i malé částky. Je to trochu k zamyšlení, ale investice v zaplacení 1% poplatku se časem vyplatí. Vstup na LN je záměrně dražší. Pokud byste tohle chtěli obejít, museli byste používat custodial peněženky a potom si to jednou za čas vybrat. Řešení popsané v odstavcích výše vyžaduje zanedbatelnou důvěru ve Phoenix a spravujete si svoje prostředky pod vlastními klíči.

Velký lightningový kanál je INVESTICE!

Darovat bitcoiny je dnes velice jednoduché díky Lightning network

Nejen Kicom se kdysi zamýšlel, jak jednoduše někomu darovat část bitcoinu tak, aby si to dejme tomu kamarád opravdu vybral a aby nebyl kompromitovaný seed (mnou, když bych si pro jistotu nechal kopii).

Dnes už je možné vytvořit tzv. LNURL withdrawal odkaz (odkaz pro vybrání prostředků z vaší peněženky), který stačí kamarádovi dát. On jej může až za několik týdnů, měsíců nascanovat svojí peněženkou a obnos si převést na svoji peněženku, až uzná za vhodné. Do té doby leží bitcoiny na vaší peněžence, takže kdyby ztratil váš "voucher", můžete mu jednoduše vystavit nový.

pay.sats.cz

Tweet od Elona Muska "In retrospect, it was inevitable" najdete zapsaný v blockchainu

Krátce předtím, než Tesla oznámila nákup bitcoinů, Elon Musk si v profilu nastavil pouze "#Bitcoin" a tweetnul právě tento tweet, jenž znamená "Vlastně to bylo nevyhnutelné". V tu chvíli tím pravděpodobně myslel ještě tehdy neveřejný nákup.

V transakci 883493...e8b0f0 zvěčnil F2Pool tento tweet, když ho zapsal do coinbase transakce bloku č. 668197. Ať už si o Elonovi myslíme cokoliv, tak tohle byl důležitý okamžik pro Bitcoin, jenž rozšířil povědomí o kryptoměnách k davům, které by o ně jinak nezavadily.

explorer.sats.cz

Vyzrazení xPub a libovolného soukromého klíče může vést ke ztrátě všech prostředků na peněžence

Privátní neboli soukromé klíče jsou opravdu velice soukromá záležitost, o to víc, pokud jde o peníze (o Bitcoin). To, že nikomu neukazujete váš seed, beru jako samozřejmost, to byste opravdu dělat neměli, pokud nechcete o své prostředky přijít. Seed je ale takový "rodič" vašich dalších privátních klíčů (ke každé adrese je právě jeden), a chránit byste měli i tyhle "potomky", aby je nikdo neznal (aby se ani jediný nedostal na veřejnost). Dokonce je žádoucí, abyste ho vůbec sami neznali, to zajišťují hardwarové peněženky, které tyto klíče nikdy neopustí a dokonce je neukáží ani vám. Vám stačí znát "rodiče", seed, který na ně dohlíží. Softwarové peněženky by vám tyhle klíče ukázat mohly (např. pro import do jiné peněženky).

V žádném případě nikomu nesdělujte ani jediný privátní klíč. Tento úkon sám o sobě by nebyla taková pohroma. Pohroma by mohla nastat, pokud používáte svůj rozšířený veřejný klíč (xpub, ypub nebo zpub ... odteď jen jako "xpub") pro "watch only" peněženku a uniknul vám společně s libovolným privátním klíčem. Samotný xpub není problém, pokud se jej někdo dozví, v nejhorším případě se může koukat na vaše transakce, ale neudělá žádnou škodu tím, že by vám vaše mince ukradnul.

Ve spojení xpub s jakýmkoliv privátním klíčem ale přichází na řadu matematika. Pokud máte tyto dva údaje, jste schopní dopočítat všechny další privátní klíče, a tudíž vybrat celý účet (jen adresy, které se sledují stejným xpub). Je proto důležité nikomu neposílat soukromý klíč k jedné adrese, ani kdyby na adrese nebyly žádné bitcoiny. Prostředky na jiných účtech nebo dokonce pod jinými passphrase v žádném ohrožení nejsou.

Pokud používáte Ledger nebo Trezor, nemusíte se bát. Není způsob, jak je z toho hardwaru dostat jako běžný uživatel. Nicméně pokud používáte nějaké softwarové peněženky, myslete na to, že privátní klíč se nikam neposílá, za žádných okolností.

ztohoven.cz
btc-slovnik.cz

Půlení není přesně každé čtyři roky

Půlení je událost v bitcoinové síti, kdy se těžařům sníží odměna z vytěženého bloku na polovinu (tím jsou myšleny nové bitcoiny, co se dostávají do oběhu, odměny z poplatků se tohle netýká). Tohle se děje tedy cca každé 4 roky, ale to je jen důsledek toho, jak je bitcoin nastaven. Blok by se měl vytěžit jednou za deset minut, v průměru. Půlení nastává jednou za 210,000 bloků, což když si správně roznásobíme a podělíme, dostaneme se ke výsledku cca 4 let. Nicméně jestli to bude třeba týden dřív nebo později opravdu nejde odhadnout.

Stejně se počítá například úprava obtížnosti. Ta probíhá každých 2016 bloků (každých 14 dní). Pokud by tedy hashrate spadnul např. o 90 % a nevrátil se na svoji úroveň do nějaké doby, trvalo by 2016 bloků, než by se obtížnost upravila, a každý blok by trvalo vytěžit zásadně delší dobu než normálně. Způsobilo by to určitě krátkodobé "zasekání" sítě, transakce by zdražily a chvíli byste se museli spoléhat pouze na Lightning network. Ta bude fungovat, i když by se těžba na nějakou dobu úplně zastavila.

Ověření vlastnictví adresy je velice jednoduché

Uveďme příklad, že mi někdo pošle donate např. 1 BTC. Následně v e-mailu najdu dvě zprávy. Jedna bude obsahovat "Vrat mi to prosim na adresu XXX." a druhá "Diky za tvoji praci, pokracuj v tom co delas!". Jak poznám, kterému člověku mám věřit? Vrátit platbu nebo si ji mám nechat?

Protože adresa je jen hash veřejného klíče, stačí, aby dárce podepsal svoji zprávu soukromým klíčem (kterým se bitcoiny odesílají) a poslal mi tento podpis. To můžete každý udělat ve webovém rozhraní Trezoru nebo třeba Electru. Adresa, ze které bitcoin přišel je 3FsJKPVA2kJKwLhpXNjzckd1T3txEdRgCY. Pro ověření nám tedy stačí zpráva, podpis a adresa, ze které donate přišel.

Zpráva 1: "Vrat mi to prosim na adresu XXX."
Podpis z e-mailu: "I/Xp1dLgQWx+omnMq49QucfF8wVO+2G1qDZ1KHp6f7zgHwFOA9UcmLAf6h3a/U+ZldwgeeierXVkNH4HLfRbAXg="

Zpráva 2: "Diky za tvoji praci, pokracuj v tom co delas!"
Podpis z e-mailu: "JDAU/7Kf7QEMB+AdgRsu+deO7oRiE9jUx4isDoKMTkYMIxP9QlazIgX2sz25kpegkL5W43hbo4Ykqb5XrAGri+0="

Tyto údaje teď ověříme spolu s "3FsJKPVA2kJKwLhpXNjzckd1T3txEdRgCY" adresou, ze které nám přišel bitcoin (zkuste si sami na odkazu níže, zadejte všechno uvnitř uvozovek, můžete použít i trezor wallet na webu nebo electrum).
verifybitcoinmessage.com

Pro zprávu č.1 peněženka hlásí neplatný podpis (červené pozadí), ale pro zprávu č.2 hlásí "Podpis úspěšně ověřen" (zeleně). Podpis, otisk původní zprávy tedy byl podepsán stejným klíčem, jakým byl odeslán příspěvek na tuto adresu. Můžu si být tedy 100% jistý, že dotyčný, který poslal zprávu č.2 je majitelem adresy, ze které mi příspěvek došel.

Transakční poplatek lze zvýšit

Spousta dnešních peněženek (já vycházím z Trezor Suite) již podporuje zvýšení poplatku bitcoinové transakce. Při odesílání akorát zatrhnete možnost RBF (Replace by fee), a pokud transakce z důvodu nízkého poplatku zůstane "viset", tak můžete jednoduše navýšit poplatek ve své peněžence.

Replace by fee by se do kontextu v češtině dalo přeložit jako "nahraď transakci a zvyš poplatek". V peněžence tuto funkcionalitu aktivujete jedním kliknutím, ale na pozadí se vlastně vytvoří úplně nová transakce, ve které je nastavené akorát vyšší fee. Tato transakce přepíše v mempoolu (shromaždišti nepotvrzených transakcí) původní transakci a uzly s tou původní již přestanou počítat. I kdyby ji uzly nevyřadily z mempoolu, pak stejně bude vytěžena jen jedna, protože obě najednou platit nemohou. Ve většině případů si těžař vybere tu s vyšším poplatkem. Původní se potom ztratí, jakoby neexistovala.

Dobré je připomenout, že tato funkcionalita musí být explicitně povolená v prvotní transakci. Trezor Suite ji má zapnutou ve výchozím stavu. Pokud tato funkcionalita není zapnutá u původní transakce, není možné již zvýšit poplatek a musíte tak počkat, než projde, případně až ji uzly "zapomenou" po delší době a odeslat ji znovu.

wiki.trezor.io

Passphrase není jen tak nějaké heslo

Pokud používáte passphrase (a já věřím, že používáte), tak passphrase se v algoritmu, jakým se generuje celá peněženka (soukromé klíče, adresy apod) projeví ze začátku procesu jako parametr, který kompletně změní a znáhodní výsledek funkce (PBKDF2_HMAC, abych byl konkrétní), takže bez vaší passphrase se začnou generovat úplně, ale úplně jiné adresy a k nim soukromé klíče (hesla).

Docílíte tak vyšší bezpečnosti, protože případnému útočníkovi, který by získal nebo nějak odposlechl váš seed (online phishing, vaší chybou apod.) bude naprosto k ničemu, protože není možnost reprodukovat vaše adresy a klíče právě bez vaší passphrase (pokud vaši passphrase zapomenete nebo špatně opíšete, tak se k prostředkům nedostanete, i když máte svůj seed!). Takovýchto passphrase můžete mít spousty. Útočník by zcizil jen prostředky, které si pošlete na "Standardní peněženku", bez passphrase. Ve skutečnosti i obyčejná peněženka, bez passphrase obsahuje tento passphrase parameter.

Samotný parametr té funkce je slovo "mnemonic" následovaný hned vaší passphrase. Pokud bych měl passphrase "GorrdyhoTajnáPeněženka", bitcoin si to zpracuje jako "mnemonicGorrdyhoTajnáPeněženka", kdežto bez passphrase se předá pouze "mnemonic".

btc-slovnik.cz

Nejmenší bitcoinové jednotce se říká satoshi

Jednu stomiliontinu bitcoinu nazýváme satoshi (zkr. sat). V češtině používáme "štosovat saty", "kupovat satoshi", v angličtině "stack sats". Návrh na pojmenování různých částeček bitcoinu se objevil na bitcointal.org už v roce 2010. Tehdy šlo v peněženkách zobrazovat zůstatky s přesností na 0.01 BTC (i když bitcoinová síť uměla i tehdy pracovat s osmi desetinnými místy), a tak uživatel ribuck navrhul pojmenovat satoshi právě část bitcoinu 0.01. S tím ale neuspěl, a tak o 4 měsíce později přichází s nápadem pojmenovat tak jednotku nejmenší, tedy jednu stomiliontinu (0.00000001 BTC).
bitcointalk.org - návrh na pojmenování 0.01 satoshi
bitcointalk.org - návrh na pojmenování nejmenší jednotky satoshi

Rozhodující post, jak nejmenší jednotce napsal na fórum uživatel marcus_of_augustus 18.02.2011 a název se ujal.
bitcointalk.org

V historii i dnes se občas používají i další jednotky jako 'bitcent', 'milicent', 'microcent', 'milibitcoin', 'microbitcoin', ale osobně jejich význam nějak nespatřuji a už dnes je přemýšlení v základní, nejmenší, bitcoinové jednotce vlastně standardem v bitcoinové komunitě. K dnešnímu dni je hodnota 150 sat = 1 Kč. Pokud cena celého bitcoinu vystoupá zpět na 1 milion korun, nastane parita 1 haléř = 1 satoshi a tedy 100 sat = 1 Kč.

twitter.com/btcslovnik

Proč je v bitcoinové adrese vždy bc1 na začátku?

Pokud používáte nejnovější standard (native segwit), což byste měli, pak jste si všimli, že každá adresa začíná znaky "bc1". Jde o lidsky čitelnou část adresy, aby bylo zřejmé, že se jedná o adresu Bitcoinu. Litecoin např. používá začátek adresy ltc1. Ale to sem nepatří.

Začátek je tedy jasný, jen nám ukazuje, že se jedná o bitcoin. Ale ukážeme si kouzlo. Vygenerujte si novou "bc1" adresu. Jaká je šance, že tipnu další znak právě ve vaší adrese? Je to malé "q"? Rád bych tvrdil, že mám jasnovidecké schopnosti, ale asi vám došlo, že to "q" je tam zatím vždy a tak všechny aktuální adresy začínají vlastně "bc1q". Dvojice znaků "bc" tedy značí Bitcoin, následuje "1", což je jen pouhý oddělovač, nezastává žádnou funkci, a poslední ze čtveřice je písmeno "q", označuje verzi adresy. Aktuálně používáme adresy "verze segwitu 0" zastávanou právě písmenem "q".

S blížícím se softforkem Taproot, a taky "verzí segwitu 1", budeme jako čtvrtý znak v adrese používat písmeno "p" (zástupce pro číslo 1). Budoucí bitcoinové adresy se tedy budou lišit opravdu minimálně:

Aktuální: bc1qw3kky508zj7eytzsfu3t2kc047x5cn02mg2c5n

Taproot: bc1pn5c2gm20nc5x740ck2t3ufsztye7jz805ykk3w

99.5 % bitcoinů se vytěží už za tři půlení

Každé cca 4 roky probíhá bitconové půlení, krácení odměn těžařů na polovinu. V začátcích odměňovala síť těžaře 50 BTC za blok, následně 25, 12.5 až dnes odměna klesla k 6.25 BTC za blok.

Všechny bitcoiny budou vytěženy v roce 2140, ale drtivá většina už po dalších třech půleních, za cca 11 let.

98.5 % bitcoinů se dostane do oběhu už v roce 2028, a za další 4 roky, po třech půleních (ode dneška) už podíl vystoupá na právě oněch 99.5 %.

Spousta lidí se obává roku 2140 kvůli tomu, že odměna za bloky klesne k nule, ale reálně už za 12 let bude naprosto minimální a místo aktuálních 6.25 BTC se sníží postupně až na cca 0.78 BTC.

Nicméně se není čeho obávat, odměny těžařů jsou dvousložkové a místo block subsidy zaplatíme těžařům vyššími poplatky za transakce.

Používejte Lightning.

V začátcích Bitcoinu někdo vytěžil 184 miliard bitcoinů

Odehrálo se to celé v bloku č. 74638, kdy se v blockchainu objevila transakce se dvěma výstupy, každým po 92 miliardách bitcoinů. Tuto skutečnost se podařilo zjistit až teprve po ~90 minutách. V ten okamžik začalo pátrání, co se vlastně stalo. Bug byl způsoben technickou záležitostí, útočník nastavil takový poplatek, aby součet vstupů, výstupů vyšel záporně, a vyústilo to v nesmyslný efekt, připsání miliard bitcoinů na dvě adresy.

Kritická chyba byla opravena asi po dvou hodinách dvojicí Gavin Andresen a Satoshi Nakamoto, a tato 184 miliardová transakce byla zneplatněna, což vyústilo v soft fork. Tehdy bylo celkem obtížné kontaktovat přes 50 % provozovatelů nodů, ale nakonec většina upgradovala své nody na Bitcoin Core 0.3.10 a vytvořila tak delší chain, tu větev, kterou používáme i dnes.

news.bitcoin.com

Hardwarová peněženka je jen generátor náhodného čísla

Umí to tedy extrémně bezpečně, aniž by se tohle číslo dostalo někam ven ze samotné peněženky, ale váš seed je opravdu jen jedno číslo od 0 do 2²⁵⁶ (pro představu je to číslice 1 a dalších 77 míst).

Tohle číslo lze zapsat binárně jako 256 po sobě jdoucích jedniček nebo nul. Pokud chcete, můžete si vyzkoušet tohle číslo vygenerovat třeba hody mincí.

Stačí 256× hodit mincí a zapisovat si, na kterou stranu padla jako 1 nebo 0. Jakmile budete mít zapsané všechny hody a všech 256 jedniček nebo nul, rozdělte je do skupin po 11. Každá skupina číslic (převedeno do desítkové soustavy + přičteme číslo 1) potom reprezentuje index slova v bitcoinovém slovníku github.com.

Jakmile máme těch 24 slov, všechno, co potom peněženka dělá už je předem dané a žádné další náhodné jevy se nepoužívají. Tzn. že kdokoliv disponuje seedem, disponuje všemi prostředky, které se na adresy jím vygenerované kdy pošlou.

*tohle platí pro 24 slovný seed, pro 12 slovný se počítá s 128 hody místo 256

Přesný postup pro fajnšmekry, kteří si to chtějí vyzkoušet: btc-slovnik.cz

Blok 364292 obsahoval transakci tak velkou, že se tam už žádná další nevlezla

Popravdě, blok obsahoval transakce dvě, coinbase (mincetvornou, za kterou si připsal F2Pool 25 BTC) a k tomu mega-transakci, která zaplnila zbytek bloku. Uzlům trvalo neuvěřitelných 25 sekund ověřit jenom tuto transakci. Zde se můžete podívat na tento blok a jeho 2 transakce.
mempool.space

Mega-transakce měla neuvěřitelných 5570 vstupů (neutracených UTXO z předchozích transakcí), všechny tyto vstupy pochází ze 3 adres. Protože si ji F2Pool vytěžil sám, nemusel zaplatit žádný poplatek za její zpracování. Otázkou je, jestli se to vyplatilo. Objem, který takto F2Pool zachránil byl 0.0556 BTC, tehdy asi $15, v dnešní hodnotě je to sice asi $2,000, ale připravil se tak o "běžné" poplatky z běžných transakcí. Bloky s odměnou z poplatků přes 0.5 BTC (dnes přes $17,000) nebyly výjimkou. Pokud bychom kalkulovali s tímto rozdílem, připravil se tehdy F2Pool o dnešních asi $15,000.

Nicméně motivací mohl být zrovna prázdný mempool a příležitost zachránit malá UTXO z těchto adres "zdarma" (nebyla alternativa jiných transakcí). Zajímavým faktem je, že to nebyly prostředky F2Poolu, ale nezabezpečených brainwallets (to je když si vygeneruji peněženku třeba ze 3-4 vlastních slov, které zadám do nějakého programu, který mi z nich vygeneruje seed - tohle je extrémně nebezpečné, je pak strašně snadné odhadnout jen pár slov). Další motivací by mohlo být vytvoření největší transakce a "zapsat se do historie".

Z finančního hlediska mi tahle "konsolidace" ale nedává smysl, protože prostě mohli těch $15 nechat být, odepsat a vzít si odměnu z klasických transakcí v daleko větší hodnotě. Ale něco mi říká, že to udělali, protože mohli. Je to tedy dokonalý příklad, že nechávat si na adresách zůstatky po pár korunách nebo centech není dobré řešení. V podstatě jsou nadobro ztraceny, protože utratit je stojí více než je jejich zůstatek.

rusty.ozlabs.org

Nikdy nezadávat seed z Trezoru do softwarové peněženky, ani naopak

Vygenerovat si bezpečně seed na počítači nebo telefonu je docela oříšek. Jak zjistíte, že si nestahujete škodlivou aplikaci, která si váš seed přepošle, a jakmile si na peněženku nahrajete dost vysoký obnos, a nepřesune ho z vaší peněženky do té svojí? Nemusí to být hned škodlivá aplikace, stačí, aby v ní byla chyba (nebo chyba v operačním systému). Pak se může stát, že si všichni uživatelé budou generovat stejný seed. A to opravdu nechcete.

Váš seed je tak bezpečný, jako zařízení, kde byl vytvořen. Žebříček těchto zařízení podle bezpečnosti může vypadat např. takto (od nejvíce bezpečných shora).

Hardwarová (HW) peněženka(Trezor, Ledger)
iPhone
Android telefon
Mac/PC
PC v kavárně
PC kamaráda, který si holduje v různorodém obsahu na internetu

Po tomhle žebříku se neleze nahoru, pouze dolů. Jestliže si vygenerujete seed na kamarádově zavirovaném počítači, pravděpodobně tam už bude mít pár virů, které scanují každý krok. Zadat takovýto seed potom do HW peněženky je z pohledu bezpečnosti k ničemu, protože mohl uniknout jinou, snazší cestou. Vygenerování v HW peněžence je naopak extrémně bezpečné, protože tento mini-počítač dělá jen to, k čemu byl vytvořen a nemůžete ho nijak infikovat nebo hacknout.

Opačně to taky smysl nedává. Seed vygenerovaný v HW peněžence nesmím zadat do jakéhokoliv méně bezpečného zařízení (maximálně do jiné HW peněženky, to je ok), třeba právě počítače někde v kavárně (sestoupit na žebříku níž). Ve chvíli, co bych to udělal není sice zvýšená šance, že mi někdo hackne můj Trezor/Ledger, ten je stále stejně bezpečný, ale ten útočník nepotřebuje. Mu stačí pouze seed, který jste zadali na počítači, kde číhá jeho virus a hledá.

Takže seed ze SW peněženky nezadáváme do Trezoru, protože tím ztrácí pořízení Trezoru smysl (to už jsem mohl používat rovnou tu SW peněženku). A nikdy nezadáváme seed z Trezoru do jakékoliv SW peněženky (android, ios, pc...), protože tak sestoupíme na žebříku bezpečnosti dolů a v tu chvíli je Trezor opět naprosto neužitečný, protože šance na prozrazení seedu se ohromně zvýšila.

Nově vytvořené bitcoiny, po vytěžení, nejdou utratit dřív než po 100 blocích

Jakmile se těžaři povede uhodnout blok, může si odměnu nechat vyplatit na svoji adresu. Nemůže ji však utratit po 100 bloků, což je asi 17 hodin. Zabraňuje to komplikacím, kdyby se v bitcoinové síti odehrála reorganizace vrcholu blockchainu, což není úplně výjimečný úkaz, občas se to prostě stane (když dva těžaři vytěží stejný blok ve stejnou chvíli).

Komplikací by byly právě již utracené nově vytvořené mince, protože není jednoduché vzít coinbase transakci a jen ji přesunout do jiného bloku, což s klasickými transakcemi, které utrácejí dávno vytisknuté mince, není problém.

Nejčastější reorganizace jsou 1-2 bloky, výjimečně se stane, že je reorganizace většího rozsahu, takže vypadá, že 100 bloků bohatě dostačuje jako rezerva.

Těžení je jen hádání, není to žádný složitý matematický výpočet

Aby těžař dostal odměnu za blok, musí vzít data předchozího bloku, zkombinovat s transakcemi, které čekají na potvrzení (nejspíš ty s nejvyšším poplatkem), k tomu přidat číslo od 0 do 4,294,967,295 (0 - ffffffff) a aplikovat na tohle celé hashovací funkci (hashovací funkce vám udělá z libovolného množství dat unikátní otisk o zavedené délce, takže je pak jednodušší porovnávat tyto otisky, než celá data).

Hash (výsledek) je potom úplně náhodné číslo, např.

00000000000000000000706c7f21388b285414c4829ee3981398e0cac82e43e3.

Pokud je tohle číslo nižší, než je aktuální cíl těžby, např.

0000000000000000000cdf6f0000000000000000000000000000000000000000,

blok je platný (to zde splňujeme, viz zelené nuly, je jich víc než červených). Pokud je vyšší, tak ho těžař zahodí a zkouší znovu. I když nonce k hádání je přes 4 miliardy, těžaři už dnes mají k dispozici takový výkon, že tento počet kombinací vyzkouší na zlomek sekundy. Ale protože jakákoliv změna v bloku způsobí změnu i výsledného hashe, stačí prohodit pár transakcí a může opět zkoušet další 4 miliardy pokusů.

Tohle je extrémně náročné na výpočetní výkon, protože většina práce, co uděláte přijde "vniveč". Naopak ověření, že je hash menší než cíl obtížnosti je velice primitivní. Stačí vzít data z bloku, transakce a nonce, kterou vám poskytne těžař, který ji "trefil" a vyzkoušet si to. Tohle přesně dělají nody. Pokud je blok takto platný, zahrnou ho do svého blockchainu a kolečko se opakuje.

btc-slovnik.cz
learnmeabitcoin.com

Platební (lightningový) kanál je jenom adresa kterou kontrolují dvě protistrany

Platební kanál totiž není nic jiného, než že se Alice dohodne s Bobem a vytvoří trošku složitější adresu, jejíž zůstatek lze utratit, jen pokud to schválí oba. Platba na lightning network je potom jenom změna stavu "účtů". Dejme tomu, že na začátku má Alice i Bob každý 0.5 BTC, který zamknou do platebního kanálu. V tuhle chvíli vzniknul tedy platební kanál o kapacitě 1 BTC a každý z nich má v tuhle chvíli stejnou část, tedy 0.5 BTC, což si obě strany schválily a podepsaly transakci, která by každému z nich poslala adekvátní část na jinou, svoji, bitcoinovou adresu.

Alice si bude chtít od Boba koupit telefon, a Bob jí ho tedy chce prodat za 0.1 BTC. Alice i Bob tedy vytvoří a podepíší transakci, ve které je napsáno, že Alice dostane 0.4 BTC a BoB 0.6 BTC (0.1 BTC se vlastně "přesunulo" od Alice k Bobovi, i když se fyzicky nic nepohnulo), ale nepošlou ji do bitcoinové sítě, jen si ji nechají u sebe. Oba tuhle transakci drží a kdokoliv z nich by ji poslal do sítě, tak bude platná a zůstatky se vypořádají, i kdyby Bob spadnul do Macochy.

Alice s Bobem takto mezi sebou obchodují další měsíce a roky, podepisují další a další transakce, které neposílají do blockchainu, ale kdyby chtěli, tak mohou (uzavřeli by tak platební kanál, na té multisig adrese by nezbylo nic).

Bob se rozhodne odstěhovat do Austrálie, a tak udržovat platební kanál s Alicí přestane mít smysl. Mohou se tedy dohodnout a platební kanál uzavřít (vypořádat si zůstatky k sobě na své adresy). V součtu je to tedy stálo dvě on-chain transakce. Jednu, ve které tento kanál "nabili" zůstatkem a druhou, ve které si zůstatek rozdělili mezi sebe. Mezitím mohla proběhnout klidně miliarda malých nebo mikro transakcí, o kteých žádný blockchain nemá ani tušení. Na blockchain se potom jen zapíše koncový stav.

Odměna 50 BTC z prvního bloku nejde utratit

Transakce totiž není zahrnutá v databázi transakcí, i když v blockchainu samotném je. Což občas způsobuje drobné trable, když někdo vyvíjí třeba průzkumníka blockchainu.

Nevíme, jestli to Satoshi udělal úmyslně či neúmyslně, nicméně prvních 50 BTC je zabetonováno na adrese 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa, protože nody by blok s transakcí, jejíž předchůdce není v databázi, odmítnuly.

Ostatní UTXO (neutracené výstupy) by měly jít odeslat z této adresy dál. Ale je nepravděpodobné, že privátní klíč k této adrese vůbec existuje, resp. jestli jej někdy Satoshi vůbec někam zaznamenal nebo zálohoval.

V blockchainu je uložený celý bitcoinový whitepaper bitcoin.pdf

Do transakce 54e48e...86e713 byl zapsán kompletní bitcoinový whitepaper tak, jak ho publikoval Satoshi Nakamoto. Tato transakce stála neuvěřitelných 0.596 BTC na poplatku, ale výsledkem je absolutně decentralizované uložení významného dokumentu. Nemůže se tedy stát, že by jej někdo úspěšně zcenzuroval, protože kdokoliv s bitcoinovým plným uzlem si jej může z této transakce vyexportovat.

Na linuxu s plným uzlem jej můžete získat tímto způsobem pomocí bitcoin-cli.
./bitcoin-cli getrawtransaction 54e48e5f5c656b26c3bca14a8c95aa583d07ebe84dde3b7dd4a78f4e4186e713 0 00000000000000ecbbff6bafb7efa2f7df05b227d5c73dca8f2635af32a2e949 | sed s/0100000000000000/n/g | tail -n +2 | cut -c7-136,139-268,271-400 | tr -d n | cut -c17-368600 | xxd -p -r > bitcoin.pdf

SHA256SUM mého bitcoin.pdf
umbrel@umbrel:~/umbrel/bin $ sha256sum bitcoin.pdf
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 bitcoin.pdf

Pokud provozujete bitcoinový uzel, tak stačí nainstalovat Bitcoin RPC Explorer, který vám jej dekóduje.

Poté si jej stáhnete nebo přečtete přímo v prohlížeči, např. na adrese https://192.168.1.111:3002/bitcoin-whitepaper (nahraďte IP/port vašeho node).
Ukázka na veřejném bitcoinexplorer.org

V blockchainu je ukrytá "minihra". A nejen jedna, je jich vlastně pět

V blockchainu se vyskytuje několik adres, kde jsou přichystané bitcoiny pro člověka, který najde alespoň jeden případ kolize hashů jakýchkoliv dat. Programu stačí dát jakýkoliv text a on by vám měl vytvořit jeho unikátní otisk, a my hledáme jeden případ, kdy bude otisk stejný (dojde ke kolizi).

SHA1 (dohráno)
SHA256
RIPEMD160
RIPEMD160(SHA256())
SHA256(SHA256())

SHA funkce (cs.wikipedia.org)
RIPEMD funkce (cs.wikipedia.org)

Zkusit si to můžete sami třeba zde, ale nebudu vám lhát, ručně se vám to nejspíš nepovede. Najdete zde i konkrétní popis všech funkcí. learnmeabitcoin.com

Jedna z "miniher" už je dohraná. První kolize byla opravdu nalezena pro funkci SHA1, jenž už je prakticky odepsaný algoritmus, protože se podařilo nalézt v něm chyby, a už přes 15 let ji lidé považují za nepraktickou. Přesto tuto kolizi hashů někdo vyrobil až v roce 2017 a bitcoiny si z adresy vybral. Nicméně odhaduje se, že najít takovou kolizi mělo vyjít na cca 2.3 milionů dolarů, proto asi nikdo nebyl až tak motivován tuto odměnu vybírat. bitcoinexplorer.org

SHA256 už bude větší oříšek. Číslo 2256 >> 2128. I kdybychom hádali pouze 2128 možností (což není polovina, polovina z 2256 je 2255), trvalo by to pravděpodobně 3.6 × 1013 let při aktuálním výkonu celé bitcoinové sítě. Nicméně pokud se na to cítíte, běžte do toho. bitcoinexplorer.org

Pro další 3 případy je to vlastně obdobné, zatím se žádný příklad další kolize, kromě SHA1 nepodařilo demonstrovat.
RIPEMD160 bitcoinexplorer.org
RIPEMD160(SHA256()) bitcoinexplorer.org
SHA256(SHA256()) bitcoinexplorer.org

Tohle je vlastně geniální ukazatel bezpečnosti těchto algoritmů. Pokud se vám podaří najít jeden případ, můžete si tyto odměny vybrat na jakoukoliv adresu. Pokud by někdo "porazil" tyto algoritmy v efektivním čase a za efektivní cenu, první na řadě budou tyto prostředky, protože jsou to jednoduše free money. Dokud tam ty zůstatky jsou, můžete být v klidu.

Nemůžete posílat jen část svých bitcoinů, musíte odeslat všechny

Běžnou bitcoinovou transakci si spousta lidí představí tak, že část svého zůstatku z peněženky pošle protistraně, jako když někomu posílá peníze na účet a tedy se jim odečte pouze odesílaná částka. Přesně takhle ... to ale nefunguje. Ze své adresy musíte odeslat všechny svoje bitcoiny. Samozřejmě to neznamená, že když zaplatíte někde pivo, tak restauratér dostane všechny vaše bitcoiny, dostane pouze takovou část, kterou vypíšete, že chcete zaplatit.

Nicméně platí, že transakce opravdu obsahuje celé vaše jmění. Rozdíl mezi placenou částkou a celkovým zůstatkem se vám vrátí nazpět do peněženky, na novou, tzv. change adresu, kde opět bude tento výstup (zůstatek) čekat na další utracení. Tomuto zůstatku se říká neutracený výstup, který má na první pohled strašidelnou anglickou ztratku UTXO [jů-tý-ex-ou] (unspent transaction output), ale na tu si rychle zvyknete. Je to snažší než říkat pořád dokola "neutracený výstup bitcoinové transakce" :)

V předchozích odstavcích jsem trochu zalhal, schválně, pro zjednodušení. Utratit musíte pouze celý neutracený výstup (UTXO), nikoliv obsah celé adresy nebo dokonce peněženky. UTXO totiž vniká pokaždé, když na adresu dojdou nějaké bitcoiny. Pokud si tedy 10x pošlu po 1 BTC z burzy, vytvoří se mi 10 UTXO, každé o hodnotě 1 BTC. Je jedno, jestli posílám na různé adresy nebo jen na jednu adresu. Nové UTXO vznikne i v případě, kdy už na adrese nějaké jiné UTXO je, a tak jich tam bude prostě více.

Pokud máte 10 různých neutracených výstupů (ať už na jedné nebo více adresách) v hodnotě 1 BTC a chcete poslat 2.5 BTC, stačí tedy odeslat 3 BTC ze 3 UTXO (dva by bylo málo, více je zbytečné), a zbytek vám peněženka vrátí na novou adresu, čímž vznikne nové UTXO o hodnotě asi 0.5 BTC (3 BTC odesílané minus 2.5 BTC minus poplatek, které posíláme protistraně). Plně jste tak využili dva výstupy, třetí sice jen z poloviny, ale musíme ho utratit celý a vytvořit nový o hodnotě právě rozdílových 0.5 BTC na jiné, change adrese. Zbytku se dotknout nemusím a ty čekají na příští transakce. Pokud bych chtěl znovu zaplatit třeba 0.1 bitcoinu, tak se vezme pouze jeden z výstupů. Který, to záleží na peněžence, ale měla by "ukrajovat" z nejmenších možných.

Bitcoinů nikdy nebude 21 milionů

Víte, že nikdy nebude celých 21,000,000 bitcoinů? Bitcoin funguje tak, že se s každým blokem do oběhu dostane nejdřív bitcoinů 50, 25, 12.5, 6.25, 3.125 ... až budou všechny v roce cca 2140 vytěženy (budou dotěženy spíše dříve).

V součtu tyhle jednotlivé zůstatky za každý blok dají ale jen 20,999,999.9769. To znamená, že 21,000,000 opravdu nikdy nebudeme mít k dispozici, i kdybychom každý jeden bitcoin střežili jako oko v hlavě.

V bitcoinové síti ale kvůli různým chybám, experimentům nebo flexení došlo k transakcím, které odeslaly nějaké bitcoiny na neplatné nebo neznámé adresy.

Uživatel MidnightMagic si záměrně vyplatil odměnu za vytěžený blok č. 124724 o 1 satoshi nižší, než mohl (1). V bloku 501,726 zase jiný těžař špatným vytvořením transakce spálil celou odměnu za tento blok, což bylo 12.5 BTC. Těchto transakcí lze po internetu dohledat spousta, např. blok č. 150,951 jich obsahuje poměrně dost (2). Tyhle bitcoiny tedy nejdou utratit, protože k nim nejsou vygenerovatelné privátní klíče a nebo ani nebyly vytvořeny. Např. zde spálených skoro 500 BTC (3)

Celkový počet takto spálených bitcoinů je asi 2,733.9. (4)

Ztracené bitcoiny, kterými myslím opravdu ztracené privátní klíče, tudíž také bez možnosti obnovy se odhaduje, že by mohlo být spousta. Satoshiho mince, začátky Bitcoinu nikdo nebral vážně, bude tam spousta mincí ležet do konce věků. Studie uvádějí, že těch ztracených mincí bude něco okolo 2,304,824 (5). Další mince jsou Satoshiho, odhadem 980,000 bitcoinů.

Jen tenhle předpoklad nám tedy dává 20,999,999.9769 - 2,304,824 - 980,000 = 17,715,175.9749 je maximální počet vytěžených bitcoinů, pokud by se nám je dařilo od teď již neztrácet. 17.7 milionu místo původních ~21 milionů. Ztracených mincí tedy může být okolo 20 % z celkového počtu.

Čísla mohou být trochu nepřesná, ale řádově to takto bude. Každý milion ztracených mincí by se měl projevit jako 4-5% nárůst hodnoty bitcoinů zbývajících. Můžete tyhle mince tedy vnímat jako donate všem.

Zdroje:
1) Ztracený Satoshi - mempool.space
2) Hodně spálených bitcoinů v jednom bloku - bitcointalk.org
3) Skoro 500 spálených bitcoinů v jedné transakci - mempool.space
4) Celkový počet spálených bitcoinů - bitcoinwhoswho.com
5) Ztracené mince uživatelů - ritholtz.com

Satoshi se ztratil v blockchainu

Víte, že těžař, jenž vytěžil blok č. 124,724 si záměrně vyplatil méně*, než 50 BTC? Připravil se tedy jen o 1 satoshi (stomiliontina bitcoinu, nejmenší bitcoinová jednotka), takže asi moc neutrpěl, ale tento "1 chybějící satoshi" má symbolicky vzdát hold skutečnému Satoshimu Nakamotovi, jenž zmizel z veřejného prostoru a už jsme o něm nikdy neslyšeli.

* Těžař si může při vytěžení určit, kolik dostane. 50 BTC byla tehdy horní hranice.

"Missing Satoshi" transakce: bitcoinexplorer.org

Transakce s nulovým poplatkem jsou out

Víte, že dnes již nelze poslat transakci s nulovým poplatkem (0 sat/B)?

Dříve to bylo běžné, protože Bitcoin nikdo nepoužíval a často vás těžař zahrnul do svého bloku, protože chtěl pomoct síti a udělal to dobrovolně. Dnes je to téměř nemožné. Bitcoinové uzly tyto "transakce zdarma" neposílají dál, protože takových transakcí by se najednou objevily tisíce, desetitisíce, možná statisíce, což by mohlo zaspamovat síť.

Tyto transakce by se téměř jistě nikdy nepovedlo vytěžit, takže je vlastně zbytečné je brát v úvahu dlouhodobě.

Příjmat Lightning network je velice snadné

Víte, že můžete příjmat Lightningové satoshi úplně jednoduše, aniž byste se museli starat o nějaké QR faktury pro příjem satů? Umožňuje to právě standard LNURL. Pro ne-custodial řešení si můžete nainstalovat LNbits na svůj node, ale už to chce trochu nastavování. LNURL je vlastně jen požadavek, který se pošle na uzel a ten vám do peněženky pošle klasickou lightningovou fakturu, kterou peněženka proplatí. Umožňuje to tak používat 1 QR kód pro více plateb.

lnurl1dp68gurn8ghj7urp0yh8xct5wvhxx730d3h82unvwqhkzurf9amrztmvde6hymp0xymqlgh2vm
Ukázat QR

PS: Uložte si URL odkaz peněženky, je to v podstatě váš přístupový kód. Na vlastním nodu jsou vaše prostředky v bezpečí ale i bez této URL.

pay.sats.cz

Jsou tu limity pro bitcoinové účty a adresy, ale jsou obrovské

Víte, že pod jedním seedem si můžete vygenerovat více než 2.1 mld. bitcoinových účtů? Na každém z těchto účtů je dále možné vygenerovat přes 2.1 mld. bitcoinových adres. Není tedy důvod používat adresy opakovaně.

btc-slovnik.cz