Čo je Sharding a ako funguje?
Domov
Články
Čo je Sharding a ako funguje?

Čo je Sharding a ako funguje?

Stredne pokročilý
Zverejnené Dec 4, 2023Aktualizované Jan 11, 2024
9m

Zhrnutie

  • Sharding rozdeľuje blockchain na menšie „kúsky“ v snahe vyriešiť problém škálovateľnosti spojený so sieťami vrstvy 1.

  • Sharding zvyšuje rýchlosť transakcií, minimalizuje náklady na spracovanie a ukladanie a zvyšuje výkon siete.

  • Sharding má však aj svoje úskalia, ako sú obmedzenia týkajúce sa bezpečnosti siete a zložitosť transakcií medzi jednotlivými časťami (úlomkami) siete (shardmi).

Úvod

Technológia blockchainu priniesla bezprecedentný potenciál v oblasti decentralizácie, transparentnosti a bezpečnosti. Čelí však významnému problému: škálovateľnosti. Škálovateľnosť je jedným z aspektov „trilemy blockchainu“, ktorá zahŕňa tiež bezpečnosť a decentralizáciu. Zosúladenie všetkých týchto troch aspektov je pretrvávajúcim problémom v oblasti blockchainu. Práve tu prichádzajú do úvahy strategické riešenia ako „sharding“.

Čo je to sharding?

Sharding je koncept vypožičaný zo správy tradičných databáz. Označuje proces rozdelenia väčšej databázy na menšie, lepšie spravovateľné časti, nazývané shardy. Jeho aplikácia v blockchaine má za cieľ zlepšiť škálovateľnosť pri zachovaní princípu decentralizácie. K shardingu dochádza v podstate vtedy, keď sa blockchainová sieť rozdelí na menšie časti známe ako shardy, pričom každá z týchto častí je schopná paralelne spracovávať transakcie a smart kontrakty.

Ako funguje Sharding?

Pochopenie toho, ako prebieha sharding v rámci blockchainovej siete, si vyžaduje pochopenie toho, ako sa blockchainové údaje zvyčajne ukladajú a spracúvajú. Existujú rôzne spôsoby spracovania údajov. Budeme sa zaoberať sekvenčným a paralelným spracovaním.

Zvyčajne je každý uzol blockchainu zodpovedný za spracovanie celého objemu transakcií v rámci siete. Tento typ spracovania údajov sa bežne označuje ako sekvenčné spracovanie. To znamená, že každý uzol musí udržiavať a uchovávať všetky dôležité informácie, ako sú zostatky na účtoch a história transakcií. V podstate musí každý uzol spracovať všetky sieťové operácie, údaje a transakcie.

Hoci takýto model posilňuje bezpečnosť blockchainu tým, že zaznamenáva každú transakciu vo všetkých uzloch, dramaticky spomaľuje spracovanie údajov. Tu vstupuje do hry paralelné spracovanie údajov, pretože umožňuje vykonávanie viacerých operácií súčasne.

Sharding môže byť účinným riešením tejto situácie, pretože rozdeľuje alebo „rozkladá“ prácu spojenú s transakciami v rámci blockchainovej siete. To znamená, že nie všetky uzly musia spravovať alebo spracovávať celú záťaž blockchainu.

Sharding rozdeľuje pracovnú záťaž prostredníctvom horizontálneho delenia. V tomto procese sú dáta rozdelené do horizontálnych podskupín, pričom každý shard pôsobí ako nezávislá databáza schopná spracovávať transakcie oddelene od ostatných. 

Porovnanie: horizontálne a vertikálne delenie

Horizontálne delenie a vertikálne delenie sú dva kľúčové prístupy k škálovaniu databázy. Aj keď sú obe navrhnuté tak, aby efektívnejšie spravovali veľké súbory údajov, fungujú zásadne odlišnými spôsobmi. Sharding je bežná metóda implementácie horizontálneho delenia.

Pri horizontálnom delení sú údaje rozdelené do riadkov a rozložené do jednotlivých uzlov (alebo databáz), z ktorých každý obsahuje podmnožinu údajov. Každý riadok v tabuľke tvorí samostatnú jednotku, takže ich oddelenie nevedie k strate integrity údajov. Významným príkladom horizontálneho rozdelenia, ktoré sa používa, je distribúcia blockchainových sietí, ako sú EthereumBitcoin.

Pri vertikálnom delení sa dáta delia na stĺpce, nie na riadky. Každý oddiel vo vertikálnom rozdelení obsahuje podmnožinu údajov pre každú jednotku alebo celý súbor údajov, ale len pre určitý súbor atribútov. Uvažujem napríklad o tabuľke zákazníka so stĺpcami ako Názov, Stav, Popis a Fotografia. V scenári vertikálneho rozdelenia môžu byť „Názov“ a „Stav“ ponechané v jednej tabuľke a „Popis“ a „Fotografia“ v inej tabuľke.

Prečo sa uprednostňuje horizontálne delenie?

Horizontálne delenie je vo všeobecnosti uprednostňované pred vertikálnym delením v sieťach blockchainu z troch kľúčových dôvodov: škálovateľnosť, decentralizácia a bezpečnosť.

Škálovateľnosť: Sharding poskytuje riešenie rozdelením údajov na menšie, lepšie spravovateľné „kúsky (shardy)“. Každý shard môže fungovať nezávisle, čo umožňuje súčasne spracovať viac transakcií, čím sa zvyšuje rýchlosť a efektívnosť siete. Pri vertikálnom delení si distribúcia stĺpcov v jednotlivých databázach môže vyžadovať vyššiu zložitosť pri získavaní úplných informácií o transakciách alebo blokoch a mohla by obmedziť škálovateľnosť.

Decentralizácia: V súlade so základným étosom blockchainu horizontálne delenie podporuje decentralizáciu. Keďže uzly musia spracovať iba časť celkových údajov (shard), umožňuje to účasť viacerých uzlov v sieti, pretože sa znižujú nároky na výpočtový výkon a úložné kapacity. Vertikálne rozdelenie by toto porovnateľne obmedzilo, pretože každý uzol by potreboval prístup ku všetkým oddielom (všetkým stĺpcom údajov) kvôli pochopeniu a overeniu úplných údajov bloku.

Bezpečnosť a integrita údajov: Horizontálne delenie zachováva integritu údajov, pretože každý shard (alebo oddiel) obsahuje úplné údaje o danej transakcii, čím sa zabezpečuje, že každý uzol má úplnú a presnú kópiu svojej časti blockchainu. Pri vertikálnom delení by ste v podstate rozdelili údaje bloku na rôzne uzly, čo by kládlo nároky na zabezpečenie, integritu a bezpečnosť údajov, čo je prvoradým aspektom blockchainových sietí.

Aké sú výhody shardingu?

Poďme si ukázať potenciálne výhody, ktoré sharding prináša technológii blockchain:

Zvýšená rýchlosť transakcií: Sharding uľahčuje paralelné spracovanie transakcií. Namiesto postupného spracovania transakcií umožňuje sharding spracovanie transakcií súčasne, avšak v rôznych shardoch. Každý shard funguje nezávisle, čím sa výrazne zvyšuje rýchlosť transakcií. Nielenže to urýchľuje rýchlosť transakcií, ale tiež to znamená, že celá sieť dokáže zvládnuť viac používateľov, čo podporuje masové prijatie.

Príkladom existujúcej blockchainovej siete, ktorá používa shardy na riešenie škálovateľnosti, je Ziliqa. Mechanizmus shardingu siete Ziliqa umožňuje dosiahnuť tisíce transakcií za sekundu.

Minimalizované náklady na spracovanie a uloženie: Konvenčný dizajn blockchainu zaväzuje každý uzol ukladať všetky transakcie, čím sa zintenzívňujú požiadavky na hardvér, keďže sa blockchain rozrastá. Ale pri shardingu je každý uzol zodpovedný za spracovanie a uloženie len zlomku údajov celej siete – to znižuje zdroje potrebné na to, aby sa uzol mohol zapojiť do siete.

V dôsledku toho sa ako validátori môžu pripojiť viacerí účastníci, čo zvyšuje decentralizáciu siete bez toho, aby vznikli neprimerané náklady. Zmierňuje problémy, pri ktorých sa na tomto procese mohli reálne zúčastniť iba subjekty s obrovskými a drahými výpočtovými zdrojmi, čím sa zachovala demokratizovaná povaha blockchainových sietí.

Zlepšený výkon siete: Sharding môže pomôcť zlepšiť celkový výkon a kapacitu siete. V tradičných blockchainoch, keď sa na sieti zúčastňuje viac uzlov, výkon paradoxne klesá kvôli potrebe zvýšenej dátovej komunikácie a synchronizácie medzi uzlami.

Sharding však tento scenár transformuje. Keďže každý shard pracuje samostatne a súbežne, systém môže spracovať viac transakcií a výpočtov. Keď sa pripojí nový uzol, môže byť pridaný do shardu namiesto do celej siete, čím sa zvýši kapacita siete na škálovanie. Zlepšuje sa efektivita, čo vedie k plynulejším transakciám a lepšej používateľskej skúsenosti.

Nezabúdajme, že ďalší pokrok a zlepšenia v technológii shardingu môžu vytvoriť ďalšie výhody alebo posilniť tie existujúce, a neustále tak zlepšovať ekosystém blockchainu.

Aké sú obmedzenia Shardingu?

Zatiaľ čo sharding ponúka niekoľko potenciálnych výhod, ktoré by mohli pomôcť tomu, aby sa blockchainové siete stali efektívnejšími, tento proces prináša aj osobitný súbor problémov. Medzi potenciálne slabé miesta, ktoré sharding so sebou prináša, patria: 

Útoky s cieľom prevziať samostatný shard: V prostredí shardingu je výpočtový výkon na prevzatie jedného shardu podstatne nižší ako výkon potrebný na prevzatie celej siete. Tým sa tieto jednotlivé shardy stávajú zraniteľnejšími voči „jednopercentnému útoku“ alebo „prevzatiu shardu“ – pričom útočník s menším množstvom zdrojov v porovnaní s celou sieťou môže potenciálne prevziať jednotlivý shard.

Transakcie medzi shardmi: Transakcie prebiehajúce naprieč rôznymi shardmi (cross-shard) predstavujú samostatný problém. Transakcie typu cross-shard sú zložité a ak nie sú starostlivo riadené, mohli by viesť k duplicitným výdavkom. Ak jeden shard počas transakcie presne nesleduje stav druhého shardu, používatelia ho môžu zneužiť na „duplicitné výdavky“.

Problémy s dostupnosťou údajov: Sharding robí udržiavanie celého stavu siete zložitým úsilím. Ak niektoré shardy nie sú v prípade potreby k dispozícii (pretože uzly udržiavajúce tieto shardy sú offline), môže to viesť k problémom s dostupnosťou údajov a narušiť celú sieť.

Bezpečnosť siete: Sharding vyžaduje implementáciu rozsiahleho protokolu, ktorý vyrovnáva zaťaženie medzi jednotlivými shardmi. Ak sa to neurobí správne, môže to viesť k nerovnomernému rozdeleniu údajov alebo nerovnováhe zdrojov, čo môže viesť k potenciálnej nestabilite siete.

Synchronizácia uzlov: Synchronizácia uzlov môže spôsobiť oneskorenie siete v dôsledku času potrebného na zdieľanie a aktualizáciu informácií v jednotlivých uzloch. Okrem toho, ak uzol s pomalšími možnosťami spracovania alebo sieťovým pripojením zaostáva, mohlo by to spomaliť celý proces synchronizácie, čím by sa znížil celkový výkon blockchainovej siete.

Je sharding implementovaný na sieti Ethereum?

Ethereum plánuje implementovať sharding ako súčasť upgradu Etherea 2.0. Ethereum 2.0, tiež známe ako Eth2 alebo Serenity, je upgrade blockchainu Ethereum, ktorého cieľom je zvýšiť rýchlosť, efektívnosť a škálovateľnosť siete, čo jej umožní spracovať viac transakcií a zmierni preťaženie.

Zatiaľ sa tento upgrade realizuje vo fázach, pričom konečná fáza (fáza 2) zahŕňa úplnú implementáciu shardingu. Vývojári Etherea dúfajú, že tieto vylepšenia vyriešia niektoré zo súčasných problémov spojených so škálovateľnosťou a transakčnými nákladmi, ktorým sieť čelí.

Je však dôležité poznamenať, že implementácia shardingu prichádza s vlastným súborom problémov, najmä pri udržiavaní bezpečnosti a decentralizácie siete. Vývojári siete Ethereum preto dôkladne premýšľajú a vykonávajú rozsiahle testy v súvislosti s týmto prechodom, aby zabezpečili úspech upgradu po úplnej implementácii.

Záverečné myšlienky

Celkovo predstavuje sharding pozoruhodný pokrok smerom k riešeniu blockchainovej trilemy. Aj keď prináša nové komplikácie a možné nevýhody, jeho potenciál na zvýšenie škálovateľnosti bez ohrozenia decentralizácie má obrovský prísľub pre budúcnosť blockchainových sietí.

Niet divu, že jednotlivé blockchainy skúmajú sharding ako potenciálne riešenie. Ethereum integruje sharding ako súčasť upgradu Etherea 2.0 s cieľom riešiť problémy so škálovateľnosťou. Očakáva sa, že táto implementácia sa uskutoční prostredníctvom upgradu Cancun, ktorý je kritickou súčasťou celkového plánu vylepšenia. Napriek tomu, ako pri každej inej vyvíjajúcej sa technológii, bude úspech závisieť od prebiehajúceho výskumu, vývoja a prísneho testovania implementácií shardingu.

Prečítajte si tiež

Zrieknutie sa zodpovednosti: Tento obsah tu vidíte „taký aký je“ a slúži len ako všeobecná informácia a na účely vzdelávania, bez akejkoľvek reprezentácie alebo záruky. Tieto informácie by ste nemali považovať za finančné, právne ani iné odborné poradenstvo a ani nie sú určené ako odporúčanie na nákup akéhokoľvek konkrétneho produktu alebo služby. Mali by ste požiadať o radu odborného poradcu. V prípade, že autorom článku je tretia osoba, upozorňujeme vás, že názory uvedené v článku sú názormi tohto prispievateľa/autora a nemusia nevyhnutne odrážať názory Akadémie Binance. Ďalšie podrobnosti nájdete v našom úplnom zrieknutí sa zodpovednosti, ktoré sa nachádza tu. Ceny digitálnych aktív môžu byť volatilné. Hodnota vašej investície môže klesať alebo stúpať a investovaná suma sa vám nemusí vrátiť. Za svoje investičné rozhodnutia nesiete výhradnú zodpovednosť a Akadémia Binance nezodpovedá za žiadne straty, ktoré vám môžu vzniknúť. Tento materiál by sa nemal považovať za finančné, právne ani iné odborné poradenstvo. Viac informácií nájdete v našich Podmienkach používaniaVarovaniach pred rizikom.