K čemu to vlastně je

Jediný problém, který blockchain řeší. Všechno ostatní je stroj v jeho službách.

Co se naučíš: Pochopíš jediný problém, který blockchain řeší, a získáš test, kterým prosejeme každý nápad ve zbytku kurzu.

6 min čtení + cvičení

Než se pustíme do hashů, podpisů a bloků, potřebuješ jednu věc, kterou většina materiálů o crypto nikdy neřekne nahlas. Blockchain řeší jeden jediný problém. Všechno ostatní, co o něm uslyšíš, je stroj postavený v jeho službách.

Ten problém se jmenuje dvojí utracení bez důvěryhodné třetí strany. Až budeš vědět, co to znamená, budeš umět vyhodnotit každé tvrzení o crypto, které kdy uslyšíš, jednou otázkou.


Digitální peníze mají jednu vadu

Zkus si představit, že vyrobíš digitální peníze jako soubor. Mince je soubor mince.dat. Pošleš ho Bobovi. Bob má mince.

Jenže ty ji máš pořád taky. Kopírování je u digitálních dat zdarma a nerozeznatelné od originálu, takže tu samou minci můžeš poslat i Evě, Cyrilovi a komukoli dalšímu. Tomu se říká dvojí utracení a je to důvod, proč digitální peníze nemůžou být prostě soubor.

U fyzické hotovosti tenhle problém neexistuje. Když dáš bankovku Bobovi, nemáš ji. Vzácnost je zabudovaná v tom, že věc je fyzická.


Řešení, které funguje sto let

Existuje řešení a používá se dávno: někdo to eviduje.

Banka drží účetní knihu a rozhoduje, který převod platí. Dvojí utracení nejde, protože banka vidí, že Alice už těch deset poslala. Funguje to, je to rychlé, levné a v drtivé většině případů je to správná odpověď.

Cena je jedna: musíš té bance věřit. Věřit, že knihu nepřepíše, že ti účet nezablokuje, že nezkrachuje a že tam bude zítra.


Otázka, na kterou blockchain odpovídá

Satoshi Nakamoto se v roce 2008 zeptal takhle:

Dá se vést účetní kniha, na které se shodnou tisíce cizích lidí, kteří si navzájem nevěří, a která nikomu z nich nepatří?

Odpověď je ano, a je drahá. Musíš zaplatit:

Co obětuješKolik
Rychlostpotvrzení v minutách až desítkách minut, ne v milisekundách
Kapacitujednotky až desítky transakcí za sekundu proti desetitisícům u karetní sítě
Energii nebo kapitálpráce nebo vklad, jinak by šlo hlasování koupit
Opravitelnostpřepsat omyl nejde, a to je vlastnost, ne chyba
Jednoduchostklíč ztratíš a peníze jsou nedostupné, bez výjimky a bez podpory

Za to dostaneš jedinou věc: nepotřebuješ nikomu věřit. Pravidla vynucuje matematika a ekonomika, ne instituce.


Jediná otázka, kterou potřebuješ

Odsud plyne test, který ti prořeže devadesát procent všeho, co o crypto uslyšíš:

Potřebuje ta věc zabránit dvojímu utracení mezi stranami, které si navzájem nevěří, a bez prostředníka? Nebo by stačila databáze?

Vyzkoušej si to:

NápadPotřebuje blockchain?
Poslat peníze do země, kde nemáš bankovní přístupAno. Není prostředník, kterému by obě strany věřily.
Sledovat původ kávy od farmáře do obchoduNe. Data zadává jeden dodavatel, kterému musíš věřit stejně jako předtím.
Program, který vyplatí sázku bez arbitraAno, pokud oba účastníci nevěří nikomu třetímu.
Interní evidence majetku ve firměNe. Firma je ta důvěryhodná strana.
Vydat vlastní měnu, kterou nikdo nemůže zablokovatAno. To je přesně ten původní účel.
Uložit zdravotní záznamyNe, a je to horší než databáze: neměnnost se bije s právem na výmaz.

U většiny podnikatelských nápadů s blockchainem je odpověď „stačila databáze". To nedělá tu technologii špatnou, dělá to špatnou volbu nástroje.


Co v tomhle kurzu bude a co ne

Bude: jak to funguje uvnitř, do posledního detailu, a hlavně si to napíšeš sám. Hashovací funkci, podpis na eliptické křivce, Merkle tree, celý blockchain, a pak na něj zkusíš tři útoky a změříš, co stojí. Všechno v čistém Pythonu, bez knihoven, bez API klíčů, běží to za sekundy.

Nebude: ani slovo o tom, co si kupovat. Žádné ceny, žádné projekty jako doporučení, žádné předpovědi. Ne z opatrnosti, ale protože to je jiná disciplína a míchat ji do výuky mechanismu znamená pokazit obojí.

Až kurz dočteš, budeš umět přečíst whitepaper a poznat, jestli za ním něco je. To je užitečnější než jakýkoli tip.


Cvičení

  1. Vezmi tři nápady „na blockchainu“, které jsi kdy slyšel, a projeď je tou jedinou otázkou. U kolika z nich vyšlo, že by stačila databáze?
  2. Proč nejde dvojí utracení vyřešit tím, že se ke každé minci připojí seznam jejích minulých vlastníků a ten se ověří?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Obvykle u všech tří. Nejčastější vzor je „chceme neměnný záznam“, jenže neměnnost se dá mít i podepsaným logem v databázi, pokud existuje strana, které všichni věří. Blockchain je potřeba teprve tehdy, když taková strana neexistuje a nedá se vytvořit. Druhý častý vzor je „chceme transparentnost“, což je taky vlastnost, kterou zvládne veřejné API nad databází.
  2. Protože ten seznam ti neřekne, jestli tentýž převod neproběhl ještě jednou jinam. Historie dokáže ověřit, že mince kdysi patřila Alici a že podpis je pravý. Nedokáže ale rozhodnout, který ze dvou platných podepsaných převodů té samé mince nastal první. A to je celý problém: potřebuješ shodu na pořadí, ne na pravosti. Pořadí je přesně to, co blockchain vyrábí, a proto je celý postavený kolem času a práce, ne kolem podpisů.

Shrnutí

  • Digitální data se dají zdarma kopírovat, takže digitální mince nemůže být soubor.
  • Dvojí utracení se dá vyřešit prostředníkem, který vede knihu. Většinou je to správná odpověď.
  • Blockchain řeší totéž bez prostředníka, a platí za to rychlostí, kapacitou, energií a nevratností.
  • Test na každý nápad: potřebuje bezdůvěrné zabránění dvojímu utracení, nebo stačí databáze?
  • Skutečný problém není pravost podpisů, ale shoda na pořadí transakcí.
Jaký jediný problém blockchain řeší?

Zabránit dvojímu utracení bez důvěryhodné třetí strany. Digitální data se dají kopírovat, takže tu samou minci lze poslat dvěma lidem; potřebuješ tedy shodu na tom, který převod byl první. Neměnnost, decentralizace i konsensus nejsou samostatné cíle, jsou to mechanismy, které tuhle jednu věc zajišťují.

Firma chce sledovat původ výrobků na blockchainu. Co je na tom podezřelé?

Data do systému zadává dodavatel, takže mu musíš věřit úplně stejně jako předtím. Blockchain zaručí, že se zápis nezmění, ale nezaručí, že byl pravdivý už při vložení. Tam, kde existuje strana, které všichni věří, odvede stejnou práci obyčejná databáze s podepsaným logem, a to levněji a rychleji.

Proč nestačí ke každé minci přiložit historii vlastníků?

Protože historie dokáže ověřit pravost podpisů, ale ne pořadí. Když Alice podepíše dva platné převody té samé mince dvěma lidem, oba budou vypadat správně a nic v historii neřekne, který nastal první. Potřebuješ shodu na pořadí, a právě tu blockchain vyrábí pomocí bloků a práce.