Od „Kde je Waldo“ až po složitou kryptografii. Důkazy s nulovou znalostí přinášejí revoluci

Krypto Space

Krypto Space Zdroj: Midjourney

Pro někoho je matematika neskutečná nuda, jiný se u jejího popisování zeširoka usmívá a nadšeně mává rukama. Právě do této druhé skupiny patří i původně finský developer Daniel Lumi. Ten si vzal nelehký úkol. Pokouší se i ne-matematikům vysvětlit, co jsou to zero-knowledge proofs (ZK), důkazy s nulovou znalostí. A co všechno by mohla tato revoluční technologie přinést do světa kryptoměn, hlavně smart-kontraktových blockchainů jako ethereum.

„Když před nějakými dvěma a více tisíci lety vznikla algebra, používali jí lidé také jen na pár základních věcí. A dnes matematiku používáme úplně všude. A podobně to podle mě bude se ‘ZKs’. Ty také mohou přinést nečekané možnosti, je to úplně nový obor matematiky, který by nám například mohl pomoci pochopit i černé díry,“ říká v rozhovoru, který jsme nahrávali na červnové konferenci ETH Prague v Paralelní Polis.

Ve světě krypta se od zero-knowledge proofs očekávají hlavně dvě věci. Vyřešení škálovatelnosti, tedy že blockchainy budou zvládat mnohem víc transakcí za vteřinu, než nyní, a zvýšení míry soukromí. Protože na veřejných blockchainech prakticky každý vidí, co se svými penězi děláte.

KryptoSpace je nezávislý projekt ekonomického novináře Petra Lukáče. Každý týden přináší rozhovory a analýzy ze světa bitcoinu, etheru a decentralizovaných financí. Nově si můžete jeho volnou část poslechnout i na stránkách e15.

Nejdřív si ale pojďme vysvětlit, co to ty ZKs, tedy důkazy s nulovou znalostí, vůbec jsou. Vypůjčím si tu definice z Binance Akademie. 

„Důkaz s nulovou znalostí je metoda, kterou jedna strana (dokazovatel) může druhé straně (ověřovateli) dokázat, že výrok je pravdivý, aniž by odhalila jakoukoli další informaci. To je užitečné obzvlášť v případech, kdy jsou informace citlivé a dokazovatel nechce, aby k nim měl ověřovatel přístup.“

Prostě. Jak kamarádovi dokázat, že jsem opravdu vyřešil sudoku, aniž mu ho ukážu a on to pak ode mě může opsat? (na různé způsoby mimochodem existují celé články a kurzy) . Jak někomu prokázat, že jste si z balíčku karet vytáhli pikovou sedmu, aniž mu ji ukážete? Anebo, když už jsme u krypta, jak někomu dokážete, že nejste severokorejský hacker, aniž mu pošlete svojí občanku?

Jako jednoduchá ukázka řešení se používá například populární knižní hříčka Kde je Wally? (nebo Waldo, záleží, odkud jste). V ní na  schválně přeplácaných obrázcích hledáte miniaturní postavičku Wallyho/Walda. Jak ale někomu dokázat, že víte, kam ho autor umístil, aniž byste na něj ostatním ukázali prstem?

Poslechněte si minulé díly KryptoSpace

Jedním z řešení může být, že si vezmete dostatečně velkou čtvrtku, vystřihnete do ní tvar postavičky, umístíte ho přesně nad obrázek  a voilà. Dokázali jste, že víte, kde je Waldo aniž jste ostatním prozradili, v jaké části obrázku se nachází. Tady je pak článek, který se rozborem takové „prkotiny“ detailně zabývá.

Tohle je samozřejmě naprosto triviální příklad a vůbec se nedostáváme na pole kryptografie. Jak se dá obtížnost stupňovat, ukázal výborně loni na podzim Ariel Gabizon, šéf výzkumu v Aztec Network, na konferenci HCPP v Paralelní Polis. Přednáška se jmenovala „Od novice k mistrovi“. Tak schválně, kde se začnete ztrácet.

Co tedy vyřeší ZKs v kryptosvětě? Prvně se podívejme na to škálování. Blockchainy jako Bitcoin či Ethereum trpí na tzv. trilemma. Tedy že z kýžené decentralizace, bezpečnosti a rychlosti je možné si vždy vybrat jen dvě. A oba volily bezpečnost a decentralizaci.

A nyní se řeší, jak je škálovat, aby zvládly obsluhovat ne miliony, ale miliardy uživatelů.

Cestou jsou druhé vrstvy, tzv. L2ky. Daniel Lumi ale popisuje problém takto. „Pokud máte na druhé vrstvě řekněme jeden ether a chcete si ho z ní vytáhnout, jak první vrstva ví, že ho opravdu máte?“. Mainnet (tedy L1) nemůže znát celý stav druhých vrstev, jinak by to celé nedávalo smysl a nic by to nezrychlilo.

Dnes existují dva přístupy. Velmi zjednodušeně: zatím převládá, hlavně kvůli své větší jednoduchosti, tzv. optimistický přístup. Optimistic-rollups vlastně dopředu věří, že všechny transakce jsou a priori správně. Technologie pak ale dává určité časové období, aby „dobří hráči“ mohli transakce rozporovat. „Ve finále vám stačí jeden „čestný“ node, který řekne: tato adresa opravdu nemá jeden milion etherů, které se snaží vytáhnout,“ říká Lumi.

Nyní se ale rozjíždí ZK-rollups, které jsou většinou ve svých beta verzích, ale obecně budou významně bezpečnější než jejich optimističtí kolegové. Ti nepotřebují nějaké časové okénko, ve kterém mohou dobří hráči rozporovat nějaké transakce. „Protože můžete matematicky dokázat, že ten node na druhé vrstvě provedl kalkulace správně. Protože kdyby to neudělal, nemohl by vytvořit potřebný důkaz,“ popisuje Lumi.

Pokud vás zajímá, jak mohou zero-knowledge proofs pomoci s identitou na blockchainu a další, poslechněte si celý podcast KryptoSpace