Kdy to má a nemá smysl

Jedna otázka, kterou poznáš, jestli je blockchain správný nástroj.

Co se naučíš: Dostaneš rozhodovací strom, kterým prosejeme každý nápad, a seznam technik použitelných i bez blockchainu.

6 min čtení + cvičeníNavazuje na:🎯 K čemu to vlastně je📡 Oracles

Vrátili jsme se na začátek. V první kapitole jsi dostal jednu otázku a teď už víš dost na to, abys ji uměl položit pořádně, i s vědomím toho, co se za odpovědí skrývá.


Ta otázka, znovu a přesněji

Potřebuje tahle věc zabránit dvojímu utracení mezi stranami, které si nevěří, bez prostředníka? A je hodnota toho, co chrání, vyšší než cena, kterou za to platí?

Druhá půlka je nová a v první kapitole ještě nemohla zaznít. Teď už znáš cenu: pomalost, nízkou kapacitu, poplatky v aukci, nevratnost chyb, energii nebo vázaný kapitál a povinnost řešit oracle problém u všeho, co sahá ven.


Rozhodovací strom

Většina nápadů skončí hned v prvním uzlu, protože skoro vždycky existuje strana, které všichni zúčastnění věří. Firma svým zaměstnancům. Nemocnice pacientům. Stát občanům, aspoň v rámci evidence.

Druhý uzel odfiltruje většinu zbytku. Sledování zboží, pojištění podle počasí, výsledky sportu, všechno tohle stojí a padá s tím, kdo data zapíše, takže se důvěra jen přesune.


Kde to skutečně dává smysl

Zbývá poměrně úzká, ale reálná množina:

  • Převod hodnoty přes hranice bez přístupu k bankovnímu systému. Původní účel, pořád platný.
  • Aktivum, které nemá nikdo právo zmrazit. Vlastnost, kterou jinak nezískáš.
  • Vypořádání mezi stranami, které si nevěří a nemají společného prostředníka.
  • Programovatelná pravidla, kde nikdo nesmí mít poslední slovo, například úschova nebo rozdělení podle předem daného klíče.

Všimni si, co mají společné: v každém případě je nedůvěra podstatou zadání, ne technickým detailem. Jakmile nedůvěra podstatou není, je blockchain drahý způsob, jak udělat databázi.


Co se dá vzít i bez blockchainu

Nakonec užitečná věc: řada dobrých nápadů z téhle oblasti nepotřebuje řetěz vůbec.

NápadKde je použitelný samostatně
Merkle treedůkazy členství, verzování, porovnávání replik
Podpisy a klíčeautentizace bez hesel, ověřování balíčků
Neměnný podepsaný logaudit, kde stačí zjistit, že se záznam změnil
Kontrolní součet v identifikátoruodchycení překlepů v číslech účtů
Pobídka místo autoritynávrh systémů, kde nechceš dohled

To je podle mě nejlepší, co si z celého kurzu odnést: techniky jsou obecné, blockchain je jen jedna jejich kombinace pro jeden konkrétní problém.


Cvičení

  1. Projeď rozhodovacím stromem tři nápady: volby přes internet, evidence katastru, výplata pojistky při zrušeném letu.
  2. Firma chce interní neměnný audit log. Co jí doporučíš a proč?
  3. Kdy je odpověď „ano" i přesto, že existuje důvěryhodná strana?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Volby: první uzel projdou (voliči si nemusí věřit), druhý uzel je problém. Kdo zapíše, že člověk je oprávněný volič? To je oracle a zároveň je potřeba tajnost volby, kterou veřejný řetěz z principu nemá. Odpověď je spíš ne, aspoň bez pokročilé kryptografie. Katastr: existuje důvěryhodná strana, totiž stát, který stejně rozhoduje o platnosti zápisu a o vymáhání. Odpověď je databáze s podepsaným logem. Pojistka za zrušený let: nedůvěra je podstatou (pojišťovna nechce plnit, klient chce), ale všechno stojí na tom, kdo zapíše, že let byl zrušen. Bez důvěryhodného zdroje dat to nefunguje, s ním stačí smlouva. Odpověď je spíš ne, ale je to nejtěsnější z těch tří.
  2. Podepsaný append only log v běžné databázi, případně s pravidelným zveřejněním kořenového hashe. Firma je ta důvěryhodná strana pro své zaměstnance, takže blockchain neřeší žádný skutečný problém a přidá náklady i pomalost. Neměnnost se dá získat řetězením hashů záznamů, tedy tou samou technikou, jen bez konsensu. Pokud je potřeba, aby ani firma nemohla log zpětně upravit, stačí kořenový hash pravidelně zveřejňovat někam ven.
  3. Když je právě ta strana tím, proti komu se chráníš, nebo když může být donucena. Typicky u aktiv, která nikdo nemá mít právo zmrazit, u cenzurovaného přístupu k platbám nebo tam, kde je riziko, že prostředník změní pravidla zpětně. Rozhodující není, jestli důvěryhodná strana existuje, ale jestli je přijatelné být na ní závislý.

Shrnutí

  • Test má dvě půlky: je nedůvěra podstatou zadání, a vyplatí se za to zaplatit?
  • Většina nápadů padne na tom, že důvěryhodná strana existuje.
  • Většina zbytku padne na oracle problému, protože data přicházejí zvenčí.
  • Zbývá úzká, ale skutečná množina: nezmrazitelné aktivum, přeshraniční převod, vypořádání bez prostředníka, pravidla bez posledního slova.
  • Jednotlivé techniky z tohohle kurzu se dají použít i samostatně, bez blockchainu.
Jak zní úplný test, jestli nápad potřebuje blockchain?

Zaprvé, je nedůvěra mezi stranami podstatou zadání, nebo existuje prostředník, kterému všichni věří? Zadruhé, je hodnota toho, co se chrání, vyšší než cena v podobě pomalosti, poplatků, nevratnosti a energie? Teprve když je odpověď na první otázku nedůvěra a na druhou ano, dává blockchain smysl.

Proč většina nápadů na sledování původu zboží neobstojí?

Protože data do systému zadává dodavatel a nikdo nemá jak ověřit, že jsou pravdivá už při vložení. Blockchain zaručí jen to, že se zápis později nezmění, takže se důvěra nepřesune, jen posune o krok. Tam, kde existuje strana, které všichni věří, odvede stejnou práci databáze s podepsaným logem.

Které techniky z tohoto kurzu jsou užitečné i bez blockchainu?

Merkle tree pro důkazy členství a porovnávání replik, digitální podpisy pro autentizaci a ověřování balíčků, řetězení hashů pro neměnný audit log, kontrolní součty v identifikátorech proti překlepům a obecný návrhový vzor nahradit autoritu pobídkou. Blockchain je jen jedna konkrétní kombinace těchto nástrojů.