Co je blockchain?

Navažme na předchozí nit

Stránka o penězích skončila otázkou: dalo by se vést záznam o tom, kdo co vlastní, kterému všichni věří, aniž by účetní knihu řídila jedna banka, firma nebo vláda? Blockchain je jedna odpověď, kterou lidé skutečně postavili. Tato stránka ji buduje kousek po kousku — platba, pak problém s kopírováním, pak bloky a nakonec to, jak se shodnou cizí lidé — takže na konci „blockchain" nebude módní slovo, ale věc, kterou si dokážete představit.

Platba je podepsaná zpráva

Začněme jedinou platbou a na chvíli zapomeňme na počítače. Když na lísteček napíšete „zaplať £10 ode mě Samovi", jak Sam pozná, že jste to napsali vy a že nikdo nezměnil částku? Obvykle se za vás zaručí banka. Bez banky to musíte dokázat sami.

Nástrojem k tomu je dvojice klíčů. Jeden si necháváte v tajnosti (svůj soukromý klíč) a druhý volně rozdáváte (svůj veřejný klíč, který zároveň slouží jako vaše adresa). Platbu podepíšete soukromým klíčem; kdokoli pak může tento podpis ověřit oproti vašemu veřejnému klíči. Platný podpis dokazuje zároveň dvě věci: platba opravdu pochází od vás a po podpisu nebyl změněn jediný její znak. Nikdo se přitom váš tajný klíč nedozví.

Přesně takto definuje vlastnictví první decentralizovaný blockchain, Bitcoin. Jeho návrhový dokument, oznámený 31. října 2008, popisuje minci jako „řetězec digitálních podpisů," kde ji každý vlastník předává dál tím, že ji podpisem převede na dalšího, a „příjemce může ověřit podpisy a ověřit tak řetězec vlastnictví." Transakce je tedy jen podepsaná zpráva — tato mince přechází od tohoto vlastníka na tamtoho —, kterou kdokoli může zkontrolovat a nikdo nemůže zfalšovat.

Ten těžký kousek: utratit stejnou minci dvakrát

Tady je problém, který činí digitální peníze opravdu obtížnými. Fyzická mince, jakmile ji předáte, je z vaší kapsy pryč. Digitální zpráva jsou jen data — můžete je dokonale zkopírovat. Co vám tedy brání podepsat stejnou minci na dva různé lidi a nechat oba věřit, že dostali zaplaceno?

Banka to řeší nudným způsobem: vede jednu hlavní účetní knihu, vidí obě platby a tu druhou odmítne. Odeberte banku a celá hra je o tomto problému dvojího utracení — Bitcoinový dokument jej pojmenovává přesně jako to, kvůli čemu jeho síť existuje. Řešením nemůže být „věřte mi, utratil jsem ji jen jednou." Všichni se musí shodnout na tom, která platba proběhla první.

Bloky a proč tvoří řetězec

Odpovědí je jeden sdílený záznam, jehož kopii má každý a každý ho může číst. Nové transakce se shromáždí do bloku — představte si stránku ve sdíleném sešitě. Když se stránka zaplní, přidá se za poslední a pořadí je trvalé: mince utracená na dřívější stránce nemůže být znovu utracena na pozdější, protože kdokoli se může podívat zpět a vidět, že je už pryč. To zabíjí dvojí utracení.

Co brání někomu potichu přepsat starou stránku? Každý blok nese krátký otisk bloku předchozího — hodnotu vypočtenou z přesného obsahu onoho bloku, takže jakákoli změna, byť sebemenší, vytvoří úplně jiný otisk. Protože každý blok takto ukazuje zpět na předchozí, tvoří bloky řetězec (to je ten block-chain). Změňte cokoli ve starém bloku a jeho otisk se změní, čímž už nesedí s ukazatelem v dalším bloku, což rozbije ten následující, a tak dále až do přítomnosti. Minulost nemůžete potichu upravit; museli byste znovu postavit každý blok od té doby. Tato průkaznost manipulace je smyslem celé věci a je přesně tím, co návrhový dokument buduje: jakmile je proof-of-work bloku hotov, „blok nelze změnit bez zopakování práce," a protože jsou bloky zřetězeny jeden za druhým, „práce na změnu bloku by zahrnovala zopakování všech bloků po něm."

Kdo smí přidat další blok? Hádání, ne řešení

Zbývá jedna otázka a je to ten chytrý kousek. Když sešit drží všichni, kdo napíše další stránku? Kdyby mohl kdokoli, dva lidé by najednou přidali protichůdné stránky a byli bychom zpátky na začátku. Bitcoinová odpověď je učinit přidání bloku nákladným, prostřednictvím soutěže zvané Proof-of-Work (důkaz prací).

Funguje to jako hra na hádání a „hádání" je poctivé slovo — není to řešení důmyslné hádanky. Abyste přidali blok, připojíte k němu jednorázové číslo a zkontrolujete otisk bloku. Vyhrajete jen tehdy, pokud tento otisk vyjde a začíná dostatečně dlouhou řadou nul. Neexistuje žádný trik, který takové číslo vyrobí; nemůžete se k němu dopracovat úvahou. Můžete jen zkusit číslo, zkontrolovat, zkusit další, zkontrolovat — miliardykrát —, dokud jedno náhodou nezabere. Návrhový dokument to popisuje jako hledání hodnoty, jejíž „hash začíná určitým počtem nulových bitů" — „hash" je přesný název pro otisk, který si představujeme. Tou „prací" jsou všechny ty zahozené pokusy a kdo první uhádne vítěze, smí blok přidat.

Část, kterou většina výkladů vynechává, je to, co celé to udržuje v ustáleném tempu, a na tom záleží: počet požadovaných nul není pevný. Pokud se bloky nacházejí příliš rychle — protože se k honbě připojilo více strojů — síť zvedne laťku — v obrázku, který používáme, si vyžádá o jednu úvodní nulu více (pod kapotou pošťuchuje jemně odstupňovaný číselný cíl nahoru či dolů, ne celé nuly; dokument to nazývá „klouzavým průměrem cílícím na průměrný počet bloků za hodinu"), což činí vítězný tip mnohem vzácnějším a zpomalí věci zpět na zamýšlené tempo; pokud bloky přicházejí příliš pomalu, laťku zase sníží. Dokument to pravidlo říká jednoduše: „Pokud jsou generovány příliš rychle, obtížnost se zvýší." Toto přizpůsobení obtížnosti je důvodem, proč si blockchain udržuje zhruba stálý tep bez ohledu na to, kolik se objeví hádací síly.

Provozovat uzel není těžba

Tady se pletou dvě úlohy a jejich rozlišení je důležité pro pochopení toho, kdo na blockchainu skutečně drží moc.

Uzel ověřuje; bloky netvoří. Většina uzlů netěží vůbec — jen vynucují pravidla a odmítají dál předat podvod. Takže oblíbená věta, že „provoz uzlu vám dává moc těžaře," to má naopak: váš uzel může odmítnout neplatný blok bez ohledu na to, kolik hádací síly ho vytvořilo, ale nemá žádné slovo v tom, který platný blok přijde jako další — o tom rozhoduje těžební soutěž: návrhový dokument to podává tak, že „většinové rozhodnutí je reprezentováno nejdelším řetězcem, do něhož je vloženo nejvíce úsilí proof-of-work." Spuštění dalších uzlů vám nekoupí moc tvořit bloky; znamená jen více nezávislých kontrolorů, kteří síť drží u jejích pravidel. Bezpečnost pochází z tisíců těchto neústupných kontrolorů, ne z důvěry v těžaře.

Co jsme postavili — a co to stojí

Poskládejte ty kousky dohromady a „blockchain" přestane být tajemný: podepsané platby shromážděné do bloků, každý blok otiskující ten předchozí, takže minulost nelze upravit, další blok vyhraný veřejnou hádací soutěží, která si sama udává tempo, a každý blok zkontrolovaný davem nezávislých uzlů. Důvěryhodná sdílená účetní kniha, kterou nikdo neřídí. To je opravdu nové.

Ale podívejte se, co to stálo. Účetní kniha je veřejná — kopii má každý, takže ji každý může číst. Vlastní rada Bitcoinového projektu k soukromí to říká bez obalu: „kdokoli může vidět zůstatek a všechny transakce kterékoli adresy". Každá platba, každá částka, každá adresa, navždy ležící na očích. Pro systém, jehož celým úkolem je, že nic nelze skrýt, je to přednost. Pro peníze je to problém: vyměnili jste důvěryhodnou banku za trvalý, celosvětově čitelný záznam o všem, co jste kdy zaplatili.

Další otázka se tak píše sama. Dá se zachovat ta dobrá část — sdílená účetní kniha, kterou nikdo neovládá a kde nikdo nemůže podvádět — a přitom vrátit zpět soukromí? To je problém, který si předsevzal vyřešit Zcash, a tam se vydáme dál.

Zdroje