Obsah článku
Problém škálovatelnosti v prostředí blockchainu lze přirovnat k náboženské válce. Jeden tábor ho obchází (řešení druhé vrstvy off-chain transakcí na principu šeků, Lightning Network), další ho ignoruje (zvyšování velikosti bloku, Bitcoin SV) a poslední tábor, sharding (Ethereum 2.0), se snaží rozložit obsah blockchainu na celou síť.
Sharding je způsob, jak škálovat blockchainy a další DLT struktury, které jsou v současné době dlouhodobě neudržitelné. Problém škálovatelnosti je totiž jedním z hlavních důvodů, proč se DLT zatím nedočkaly masové adopce veřejnosti. Sharding byl dosud použit pouze u centralizovaných datových platforem.
Protože každý uzel musí zpracovávat každou transakci, je nevyhnutelné, že uživatelé budou čelit problémům s výkonem a spolehlivostí (sníží se propustnost), což zase povede k vyšším poplatkům.
Proč už neběží Ethereum na PoS protokolu připraveném na sharding?
Podstata shardingu
Filozofie „všeho u všech“ byla dlouho jádrem distribuovaných systémů. Více transakcí ale ucpává síť. Více uživatelů v síti znamená více validátorů správně provedených transakcí, ale i vyšší počet transakcí. Tak se permanentně zvyšuje zabezpečení, protože máme více validátorů, ale zároveň je pro uživatele těžší stíhat vyšší počet transakcí za sekundu a stahovat blockchain, čímž se síť začne centralizovat.
A to není třeba. V případě shardingu je myšlenkou přejít od lineárního modelu, ve kterém každý uzel musí vypočítat každou operaci, k paralelnímu modelu, ve kterém jsou uzly přiřazeny ke zpracování pouze určitých výpočtů. To radikálně mění tradiční představu blockchainu.
Se shardingem není třeba mít jednu obrovskou veřejnou databázi v tisících kopiích. Neustále zvyšovat zabezpečení za takovou cenu není třeba, protože se síť může stávat „zabezpečenější“ postupně s technologicky přirozeným růstem šířky pásma, což ve zkratce popisuje problém stíhat všechny transakce.
Mohlo by Vás zajímat: Komunita Ethereum se skládá na vyřešení tíživého problému
Současný sharding
Nejjednodušší implementací je Beanstalk design – sharding jednořetězcového blockchainu na více řetězců pomocí hard forku a bez mezishardové komunikace. To je bohužel méně bezpečné kvůli logicky nižšímu počtu validátorů pro každý řetězec (redukce 51% útoku na mnohem nižší čísla).
To nás přivádí k otázce, kdo volí validátory pro každý jednotlivý shard? Pokud hacker zkompromituje např. jen 5,1 % validátorů, může dominovat celému shardu (single-shard takeover), ale pouze v případě, že jsou všichni tito validátoři ze stejného shardu.
Proto se validátoři ke shardům náhodně přiřazují a tuto náhodu (včetně dalších řídících funkcí) obstarává tzv. Beacon chain („maják“). Pak je totiž silně nepravděpodobné, že by hacker měl všechny své oběti ve stejném shardu, což výrazně snižuje jeho schopnost ohrozit systém.
Existence Beacon chainu nás přivádí ke kvadratickému shardování. V teorii má sharding neomezenou škálovatelnost, ale s Beacon chainem, jedním extra blockchainem, roste jeho náročnost proporcionálně s počtem shardů v systému neboli zdánlivě si uchovává nevýhody standardního blockchainu.
Struktura shardované sítě však uděluje multiplikační účinek na všechna vylepšení svých uzlů, i když si Beacon chain stále uchovává problém škálovatelnosti. Pokud se uzly provozující síť včetně uzlů v Beacon chainu stanou rychlejší, propustnost systému se zvýší kvadraticky („na druhou“).
Kvadratický sharding sice není škálovatelný ad-infinitum, ale byl by výkonnější než všechny současné blockchainy dohromady. Je ale známo, že Vlad Zamfir pracuje na návrhu shardingu, který nezahrnuje Beacon chain.
Cross-shardové transakce
Beanstalk design není příliš užitečným směrem shardingu, protože pokud spolu nemohou jednotlivé shardy komunikovat, nejsou lepší než mnoho nezávislých blockchainů.
Představme si jednoduché platby probíhající mezi účty v rámci pouze jediného shardu. Celý proces mohou udělat validátoři v tomto jednom shardu. Pokud ale adresy transakce leží ve dvou různých shardech, nemohou celý proces dokončit validátoři pouze z jednoho shardu. A tehdy hrozí částečně dokončená transakce.
Problémy shardingu
Sada škodlivých ověřovatelů se také může pokusit vytvořit fork, což vede k vývoji nových pravidel konsensu a výběru forků, nebo vytvoří blok s absurdní transakcí. Třeba tak, že vytvoří tokeny z ničeho.
V klasickém neshardovaném blockchainu takový útok není možný, protože všichni účastníci v síti validují všechny bloky a blok s takovou absurdní transakcí bude odmítnut jak ostatními výrobci bloků, tak účastníky sítě nevytvářející bloky bez ohledu na délku řetězce.
Ve shardovaném blockchainu ale žádný účastník nemůže ověřit všechny transakce na všech shardech.
Podívejte se: Satoshi Nakamoto unesen, mučen NSA, aby zničil krypto v novém filmu Decrypted
Závěr
Sharding je obrovskou výzvou současné kryptografie srovnatelnou s výstupem člověka na Měsíc.