Škálování a L2

Proč se do bloku vejde tak málo a co s tím dělají rollupy.

Co se naučíš: Pochopíš, proč se do bloku vejde tak málo a co s tím dělají druhé vrstvy.

6 min čtení + cvičeníNavazuje na:🌐 Síť a uzly

Bitcoin zvládne jednotky transakcí za sekundu, karetní sítě desítky tisíc. Ten rozdíl není nedodělek, ale přímý důsledek toho, že každou transakci musí ověřit a navždy uchovat každý uzel na světě.

Tahle kapitola vysvětluje, proč se to nedá vyřešit jen zvětšením bloku, a co s tím dělají druhé vrstvy.


Trilema, které není zákon, ale je užitečné

Traduje se, že blockchain může mít jen dvě ze tří vlastností: decentralizaci, bezpečnost a propustnost. Není to dokázaná věta, ale jako rámec myšlení funguje dobře.

Logika je jednoduchá: čím víc transakcí síť zpracuje, tím větší nároky klade na uzel, který to má všechno ověřit a uložit. Když nároky vzrostou, provozovat uzel si dovolí míň lidí a síť se centralizuje. A když je uzlů málo, klesá i bezpečnost, protože pravidla vynucuje míň nezávislých stran.


Proč větší bloky problém nevyřeší

Zdvojnásobení bloku zdvojnásobí propustnost, ale taky:

  • datové nároky na každý uzel, a to trvale, protože historie se neztrácí,
  • dobu šíření, takže vznikne víc forků a zvýhodní se mineři s lepším připojením,
  • rychlost růstu, takže se za pár let stane provoz uzlu doménou datových center.

Je to lineární zlepšení za cenu, která roste s časem. Právě kolem tohohle se odehrál nejostřejší spor v historii Bitcoinu a skončil rozdělením sítě.


Druhá vrstva: počítej mimo, vypořádej uvnitř

Myšlenka je vždycky stejná: hlavní řetěz nemusí vidět každou transakci, stačí když vidí výsledek a umí spor rozsoudit.

Dvě hlavní rodiny:

Platební kanály. Dvě strany si otevřou kanál zamčením prostředků a pak si mezi sebou posílají podepsané stavy, kolik komu patří. Na řetěz se zapíše jen otevření a uzavření. Mezitím může proběhnout libovolné množství plateb, okamžitě a skoro zdarma. Cenou je, že prostředky musí být zamčené předem a že musíš být čas od času online, abys se bránil pokusu o uzavření se starým stavem.

Rollupy. Transakce se provádějí mimo hlavní řetěz a na něj se zapíše jen komprimovaný souhrn plus důkaz, že je správný. Ten důkaz je buď matematický, nebo se spoléhá na to, že kdokoli může během lhůty předložit důkaz o podvodu. Uživatel nemusí být online ani mít předem zamčené prostředky.


Co se tím nezískává zdarma

Každá druhá vrstva přidává předpoklady:

Přidané rizikoU čeho
Nutnost být čas od času onlineplatební kanály
Čekací lhůta při výběrurollupy s důkazem podvodu
Důvěra v provozovatele pořadívětšina dnešních rollupů má jednoho
Složitější kód, tedy víc chybvšechny

Poslední bod není maličkost: druhá vrstva je další software, který drží prostředky, a platí pro něj všechno z kapitoly o reentrancy.


Cvičení

  1. Proč nejde propustnost zvýšit prostě tím, že se zkrátí čas mezi bloky?
  2. Co konkrétně zajišťuje, že mi protistrana v platebním kanálu nezavře kanál se starým stavem?
  3. Proč mají rollupy s důkazem podvodu čekací lhůtu na výběr a co ji určuje?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Protože blok se sítí šíří několik sekund a při krátkých odstupech vzniká mnoho forků. Práce se zahazuje, zvýhodní se mineři s nejlepším připojením a bezpečnost klesá, protože se výkon efektivně tříští. Zkrácení odstupu tedy nezvýší propustnost úměrně a zaplatí se centralizací. Novější sítě to částečně řeší jinými pravidly pro forky, ale hranice zůstává.
  2. To, že můžeš předložit novější podepsaný stav a protistrana za pokus přijde o prostředky. Každý stav je podepsaný oběma a nese pořadové číslo, takže novější přebíjí starší. Kdo se pokusí uzavřít starým stavem, dá tomu druhému lhůtu na námitku, a když ji podá, propadne podvodníkovi jeho podíl. Právě proto musíš být čas od času online, případně to za tebe dělá služba, která kanály sleduje.
  3. Protože ta lhůta je právě ten čas, ve kterém může kdokoli předložit důkaz, že souhrn byl nesprávný. Bez ní by nešlo podvod zachytit, protože hlavní řetěz sám o sobě neověřuje, co se v rollupu stalo. Délka je kompromis mezi bezpečností a použitelností: musí být dost dlouhá, aby poctivý účastník stihl reagovat i při zahlcení sítě nebo krátkodobé cenzuře. Rollupy s matematickým důkazem tuhle lhůtu nepotřebují, protože správnost se ověří rovnou.

Shrnutí

  • Nízká propustnost plyne z toho, že každou transakci ověřuje a uchovává každý uzel.
  • Zvětšování bloků je lineární zlepšení za trvale rostoucí cenu v centralizaci.
  • Druhé vrstvy počítají mimo hlavní řetěz a používají ho jen k vypořádání a rozsouzení sporu.
  • Platební kanály jsou okamžité, ale vyžadují zamčené prostředky a občasnou přítomnost.
  • Rollupy nevyžadují ani jedno, ale přidávají čekací lhůtu nebo důvěru v provozovatele pořadí.
Proč nestačí zvětšit bloky, aby síť zvládla víc transakcí?

Protože každý uzel musí každou transakci ověřit a navždy uložit, takže větší bloky trvale zvyšují nároky na provoz uzlu. Zároveň se prodlouží šíření bloku, vzniká víc forků a zvýhodní se lépe připojení mineři. Propustnost se tedy zvýší lineárně, ale zaplatí se to postupující centralizací.

Jak funguje druhá vrstva v principu?

Transakce se provádějí mimo hlavní řetěz a na něj se zapisuje jen výsledek, případně důkaz jeho správnosti. Hlavní řetěz slouží k vypořádání a k rozsouzení sporu, takže nemusí vidět každou jednotlivou platbu. Tím se získá propustnost, aniž by se zvýšily nároky na uzly.

Proč mají některé rollupy čekací lhůtu při výběru?

Protože jejich bezpečnost stojí na tom, že kdokoli může během lhůty předložit důkaz, že zapsaný souhrn byl nesprávný. Bez té doby by nešlo podvod zachytit. Rollupy, které místo toho přikládají matematický důkaz správnosti, lhůtu nepotřebují, protože se ověří okamžitě.