Co je sharding a jak funguje?
Domů
Články
Co je sharding a jak funguje?

Co je sharding a jak funguje?

Pokročilí
Zveřejněno Dec 4, 2023Aktualizováno Jan 11, 2024
9m

TL;DR

  • Sharding dělí blockchain na menší „shardy“ (části), a řeší tak problémy se škálovatelností na sítích první vrstvy.

  • Sharding zvyšuje rychlost transakcí, minimalizuje náklady na zpracování a ukládání dat a zvyšuje výkon sítě.

  • Sharding má ale i potenciální nevýhody, jako jsou obavy o bezpečnost sítě a komplikovanost transakcí mezi jednotlivými shardy.

Úvod

Blockchainová technologie má v oblasti decentralizace, transparentnosti a bezpečnosti bezprecedentní potenciál. Čelí ale významné výzvě: škálovatelnosti. Škálovatelnost je součástí „blockchainového trilematu“, kam se řadí ještě bezpečnost a decentralizace. Současné dosažení všech tří cílů je v oblasti blockchainu přetrvávajícím problémem. Zde do hry vstupují strategická řešení, jako je "sharding".

Co je sharding?

Sharding je koncept převzatý z tradičního řízení databází. Jde o proces rozdělení větší databáze na menší, snadněji spravovatelné části – takzvané shardy. Cílem použití tohoto konceptu v rámci blockchainu je zlepšit škálovatelnost a zároveň zachovat princip decentralizace. K shardingu dochází, když se blockchainová síť rozdělí na menší části (shardy), kdy každá z nich dokáže zpracovávat transakce a chytré kontrakty paralelně.

Jak sharding funguje?

Když chcete porozumět tomu, jak sharding funguje na blockchainové síti, musíte vědět, jak se blockchainová data obvykle ukládají a zpracovávají. Existují různé způsoby, jak data zpracovávat. My se teď podíváme se na sekvenční a paralelní zpracování.

Za zpracování veškerého objemu transakcí sítě obvykle zodpovídá každý blockchainový uzel. Tento typ zpracování dat se obvykle označuje jako sekvenční zpracování. To znamená, že každý uzel musí udržovat a ukládat všechny důležité informace, jako jsou zůstatky na účtech a historie transakcí. Každý uzel tak v podstatě musí zpracovávat všechny síťové operace, data a transakce.

I když tento model posiluje bezpečnost blockchainu tím, že zaznamenává každou transakci na všech uzlech, výrazně to zpomaluje zpracování dat. A tady přichází ke slovu paralelní zpracování dat, které umožňuje zpracovávat více operací souběžně.

Sharding dokáže tuto situaci vyřešit tím, že transakční úlohy rozdělí mezi celou blockchainovou síť. To znamená, že ne všechny uzly musí spravovat nebo zpracovávat veškerou blockchainovou zátěž.

Sharding místo toho úlohy rozdělí pomocí horizontálního dělení. Data se rozdělí do horizontálních podmnožin, kdy každý shard funguje jako nezávislá databáze schopná zpracovávat transakce odděleně od ostatních. 

Horizontální vs. vertikální dělení

Horizontální dělení a vertikální dělení jsou dva hlavní způsoby, jak škálovat databázi. Oba jsou sice navržené k efektivnějšímu řízení velkých datových souborů, ale fungují velmi odlišně. Sharding je běžná metoda implementace horizontálního dělení.

Při horizontálním dělení se data dělí do řad a podmnožiny dat se následně rozkládají mezi různé uzly (nebo databáze). Každá řada v tabulce je jedinečný prvek, takže rozdělení nevede ke ztrátě integrity dat. Horizontální dělení se používá například v distribuci blockchainových sítí, jako je Ethereum a Bitcoin.

Při vertikálním dělení se data místo do řad dělí do sloupců. Každý segment ve vertikálním dělení obsahuje podmnožinu dat pro každý prvek nebo celou datovou sadu, ale pouze pro určitou sadu atributů. Představte si například tabulku zákazníků se sloupci Jméno, Status, Popis a Fotka. Při vertikálním dělení mohou být sloupce Název a Status zachovány v jedné tabulce a Popis a Fotografie v jiné.

Proč se upřednostňuje horizontální dělení?

Existují tři hlavní důvody, proč blockchainové sítě obecně upřednostňují horizontální dělení před vertikálním dělením: škálovatelnost, decentralizace a bezpečnost.

Škálovatelnost: sharding umožňuje dělit data do menších, snadněji spravovatelných „shardů“. Každý shard může fungovat nezávisle, takže je možné zpracovat víc transakcí najednou, což zvyšuje rychlost a efektivitu sítě. U vertikálního dělení může distribuce sloupců mezi různé databáze znamenat složitější načítání úplných informací o transakci nebo bloku, což následně omezuje škálovatelnost.

Decentralizace: horizontální dělení podporuje decentralizaci v souladu s hlavním principem blockchainu. Když uzly musí zpracovat jen část všech dat (jeden shard), sníží se nároky na výpočetní výkon a úložiště, a na síti se může podílet větší počet uzlů. Vertikální dělení by nároky naopak zvýšilo, protože každý uzel by potřeboval přístup ke všem segmentům (všem sloupcům dat), aby dokázal pochopit a ověřit úplná data bloku.

Zabezpečení a integrita dat: horizontální dělení zachovává integritu dat, protože každý shard (nebo segment) obsahuje veškerá data o transakci, takže každý uzel má úplnou a přesnou kopii své části blockchainu. Při vertikálním dělení byste v podstatě rozdělili data bloku mezi různé uzly, což zajištění integrity a bezpečnosti dat (nejdůležitější aspekt blockchainových sítí) znesnadňuje.

Jaké jsou výhody shardingu?

Pojďme se podívat na potenciální výhody, které sharding blockchainu přináší:

Vyšší rychlost transakcí: sharding umožňuje paralelní zpracování transakcí. Namísto postupného zpracování transakcí jednu po druhé dokáže sharding zpracovávat transakce na různých shardech souběžně. Každý shard pracuje nezávisle, což výrazně zvyšuje rychlost transakcí. Nejenže to zvyšuje rychlost transakcí, ale zároveň to znamená, že celá síť dokáže obsloužit víc uživatelů, což podporuje přijetí širokou veřejností.

Příkladem existující blockchainové sítě, která pomocí shardů řeší škálovatelnost, je Ziliqa. Sharding umožňuje síti Ziliqa dosáhnout tisíců transakcí za sekundu.

Minimalizace nákladů na zpracování a ukládání: konvenční blockchainová architektura zavazuje každý uzel k ukládání všech transakcí, což s růstem blockchainu zvyšuje nároky na hardware. Díky shardingu ale každý uzel zpracovává a ukládá jen zlomek dat celé sítě, což snižuje nároky na to, aby se uzel mohl na síti podílet.

Z více účastníků sítě se tak mohou stát validátoři, což posiluje decentralizaci sítě, aniž by to vyžadovalo neúměrně vysoké náklady. Končí tak situace, kdy se na síti mohly reálně podílet jen subjekty s nákladnými a špičkovými výpočetními zdroji, což blockchainové sítě demokratizuje.

Lepší výkon sítě: sharding může pomoct zlepšovat celkový výkon a kapacitu sítě. U tradičních blockchainů platí, že čím víc uzlů síť má, tím paradoxně výkon kvůli potřebě zvýšené datové komunikace a synchronizace mezi uzly klesá.

Sharding ale tuto situaci zcela mění. Vzhledem k tomu, že každý shard pracuje samostatně a souběžně, systém dokáže zpracovávat víc transakcí a výpočtů. Když se k síti připojí nový uzel, je možné ho namísto k celé síti přidělit k určitému shardu, a zlepšit tím škálování. Vyšší efektivita vede k plynulejším transakcím a lepší uživatelské zkušenosti.

Budoucí pokroky a vylepšení shardingu mohou přinést další výhody nebo stávající výhody posílit, a blockchainový ekosystém tak dál rozšiřovat.

Jaká jsou omezení shardingu?

I když má sharding řadu potenciálních výhod, které dokáží zvýšit efektivitu blockchainových sítí, souvisí s ním i určité nevýhody. Mezi potenciální nevýhody shardingu patří: 

Útoky s cílem převzít jeden shard: při použití shardingu je výpočetní výkon potřebný k převzetí jednoho shardu výrazně nižší než výkon potřebný k převzetí kontroly nad celou sítí. Jednotlivé shardy jsou tak zranitelnější vůči tzv. „jednoprocentnímu útoku“ nebo „převzetí shardu“, kdy útočník dokáže s malým množstvím prostředků (oproti množství, které by potřeboval na celou síť) převzít kontrolu nad jedním shardem.

Transakce mezi shardy: transakce mezi různými shardy představují jedinečnou výzvu. Tyto crossshardové transakce jsou složité, a pokud nejsou náležitě řízeny, mohou vést k dvojí útratě. Pokud jeden shard během transakce nesleduje přesně stav druhého shardu, uživatelé to mohou zneužít k „dvojité útratě“.

Problémy s dostupností dat: sharding silně znesnadňuje správu stavu celé sítě. Pokud některé shardy nejsou v případě potřeby dostupné (protože uzly, které tyto shardy spravují, jsou offline), může to vést k problémům s dostupností dat a narušení celé sítě.

Zabezpečení sítě: sharding vyžaduje implementaci robustního protokolu, který vyvažuje zátěž mezi jednotlivými shardy. V opačném případě by to mohlo vést k nerovnoměrné distribuci dat nebo nerovnováze zdrojů a následné nestabilitě sítě.

Synchronizace uzlů: synchronizace uzlů může kvůli času potřebnému ke sdílení a aktualizaci informací mezi různými uzly vést ke zpomalení sítě. Navíc pokud nějaký uzel zpracovává transakce pomaleji než ostatní uzly nebo jeho síťové připojení za jinými uzly zaostává, může to zpomalit celý proces synchronizace, což by vedlo k nižšímu celkovému výkonu blockchainové sítě.

Používá Ethereum sharding?

Sharding je součástí upgradu na Ethereum 2.0. Ethereum 2.0 (jinak také Eth2 nebo Serenity), je upgrade blockchainu Ethereum, jehož cílem je zlepšit rychlost, efektivitu a škálovatelnost sítě, aby dokázala zpracovávat víc transakcí a nebyla tak zahlcená.

Tento upgrade probíhá aktuálně ve fázích, přičemž poslední fáze (fáze 2) zahrnuje plnou implementaci shardingu. Vývojáři Etherea doufají, že tato vylepšení vyřeší některé současné problémy spojené se škálovatelností a transakčními náklady, se kterými se síť potýká.

Nesmíme ale zapomínat, že implementace shardingu s sebou nese řadu výzev, zejména pokud jde o zachování bezpečnosti a decentralizace sítě. Vývojáři Etherea proto tento přechod pečlivě promýšlí a rozsáhle testují, aby zajistili, že upgrade bude po plné implementaci úspěšný.

Závěrem

Celkově je sharding pozoruhodný pokrok směrem k vyřešení blockchainového trilematu. I když přináší nové komplikace a možné nevýhody, jeho potenciál zvýšit škálovatelnost bez zhoršení decentralizace je pro budoucnost blockchainových sítí obrovským příslibem.

Není proto divu, že různé blockchainy nahlíží na sharding jako na možné řešení. Síť Ethereum bude kvůli problémům se škálovatelností sharding implementovat při upgradu na Ethereum 2.0. Očekává se, že k této implementaci dojde při upgradu Cancun, což je důležitá část celkového plánu upgradu na Ethereum 2.0. Stejně jako u jakékoli jiné vyvíjející se technologie ale bude úspěch záviset na probíhajícím výzkumu, vývoji a důsledném testování implementací shardingu.

Související články:

Vyloučení odpovědnosti: tento obsah je vám předkládán ve stavu, v jakém je, pouze pro obecné informační a vzdělávací účely, bez jakéhokoli prohlášení nebo záruky. Neměl by být chápán jako finanční, právní nebo jiné odborné poradenství ani není jeho cílem doporučit nákup jakéhokoli konkrétního produktu nebo služby. Měli byste se poradit s příslušnými odbornými poradci. Upozorňujeme, že pokud je článek příspěvkem od třetí strany, vyjádřené názory patří této třetí straně a nemusí se nutně shodovat s názory Akademie Binance. Další podrobnosti se dozvíte v našem úplném prohlášení o vyloučení odpovědnosti zde. Ceny digitálních aktiv mohou být volatilní. Hodnota vaší investice může klesnout nebo stoupnout a investovaná částka se vám nemusí vrátit. Za svá investiční rozhodnutí nesete výhradní odpovědnost vy sami a Akademie Binance nenese odpovědnost za žádné ztráty, které vám mohou vzniknout. Tento materiál by neměl být chápán jako finanční, právní nebo jiné odborné poradenství. Další informace získáte v našich podmínkách použití a upozornění na rizika.