Mi az a sharding és hogyan működik?
Kezdőlap
Cikkek
Mi az a sharding és hogyan működik?

Mi az a sharding és hogyan működik?

Középszintű
Közzétéve Dec 4, 2023Frissítve Jan 11, 2024
9m

TL;DR

  • A sharding kisebb „shardokra” (szilánkokra) hasítja a blokkláncot, hogy az 1. rétegű hálózatokhoz köthető skálázhatósági problémákat kezelje.

  • A sharding növeli a tranzakciók sebességét, minimalizálja a feldolgozási és tárolási költségeket, továbbá javítja a hálózati teljesítményt.

  • A shardingnak is megvannak a potenciális hátrányai, például a hálózatbiztonsági aggályok, valamint a shardok között tranzakciók bonyolultsága.

Bevezetés

A blokklánc-technológia megmutatta a világnak a decentralizációban, átláthatóságban és biztonságban rejlő, soha nem látott potenciált. De jelentős kihívással találta magát szemben: a skálázhatósággal. A skálázhatóság a biztonság és a decentralizáció mellett a „blokklánc trilemma” egyik pontja. A három kritérium együttes teljesülése régóta fennálló probléma a blokkláncvilágban. Ez az a pont, ahol az olyan stratégiai megoldások, mint a „sharding” szerephez jutnak.

Mi az a sharding?

A sharding koncepcióját a hagyományos adatbázis-kezelésből vették át. Arra a folyamatra utal, amely során egy nagy adatbázist kisebb, kezelhetőbb részekre, az úgynevezett shardokra (szilánkokra) bontják. A blokkláncon történő alkalmazásának célja a skálázhatóság javítása a decentralizáció elvének megőrzése mellett. Lényegében shardingról beszélhetünk, amikor egy blokklánchálózatot kisebb részekre, úgynevezett shardokra bontanak, és mindegyik shard képes párhuzamosan tranzakciókat és okosszerződéseket feldolgozni.

Hogyan működik a sharding?

A sharding blokklánchálózaton belüli végrehajtásának megértéséhez először azt kell megtudnunk, hogy általában hogyan történik a blokkláncadatok tárolása és feldolgozása. Az adatok feldolgozására különböző módszerek léteznek. Most a szekvenciális és a párhuzamos feldolgozást ismertetjük.

Általában minden blokklánc csomópontnak a feladata a hálózaton jelentkező teljes tranzakcióvolumen kezelése. Az ilyen típusú adatkezelés közismert neve a szekvenciális feldolgozás. Ennek keretében minden csomópont köteles az összes kritikus adatot - például a számlaegyenlegeket és a tranzakcióelőzményeket – vezetni és tárolni. Lényegében minden csomópontnak fel kell dolgoznia az összes hálózati műveletet, adatot és tranzakciót.

Bár az ilyen modell fokozza a blokklánc biztonságosságát, ezzel együtt drámaian lelassítja az adatok feldolgozását, mivel minden csomópont rögzíti az összes tranzakciót. Itt jön a képbe az adatok párhuzamos feldolgozása, mivel lehetővé teszi több művelet egyidejű végrehajtását.

A sharding potens megoldást jelenthet erre a helyzetre, mivel a blokklánchálózaton elosztja, másképp fogalmazva: „particionálja” a tranzakcióterhelést. Ez azt jelenti, hogy nem kell minden csomópontnak kezelnie, illetve feldolgoznia a teljes blokkláncadat-mennyiséget.

Ehelyett a sharding horizontális particionálás útján szegregálja a terhelést. A folyamat során a rendszer horizontális alegységekre bontja az adatokat, és minden shard független adatbázisként viselkedik, amely a többiektől elkülönülten képes tranzakciókat feldolgozni. 

Horizontális vs vertikális particionálás

Az adatbázis-skálázás két fő megközelítési módja a horizontális particionálás és a vertikális particionálás. Bár mindkettőt nagy adatkészletek hatékonyabb kezelésére tervezték, alapvetően eltérő módon működnek. A sharding a horizontális particionálás egyik elterjedt megvalósítási módszere.

A horizontális particionálás során a rendszer sorokra osztja az adatokat, és elosztja azokat a különböző csomópontok (vagy adatbázisok) között, és mindegyik az adatok egy részhalmazát tartalmazza. Egy táblázat minden sora egyedi entitás, így a szétválasztásukkal nem veszik el az adatok integritása. Prominens példa a horizontális particionálás felhasználására az olyan blokklánchálózatok elosztásában való alkalmazás, mint az Ethereum és a Bitcoin.

Vertikális particionálás esetén az adatokat sorok helyett oszlopokra osztják. A vertikális particionálásban minden egyes partíció minden egyes adatsor vagy a teljes adatkészlet egy részhalmazát tartalmazza, de csak egy bizonyos attribútumkészlethez. Vegyünk például egy ügyféltáblázatot, ahol az oszlopok a Név, Státusz, Leírás és a Fénykép. Vertikális particionálás használata esetén a Név és a Státusz kerülhet egy táblázatba, a Leírás és a Fénykép pedig egy másikba.

Miért részesítik előnyben a horizontális particionálást?

A blokklánchálózatok általában előnyben részesítik a horizontális particionálást a vertikális particionálással szemben, méghozzá három fő okból: skálázhatóság, decentralizáció és biztonság.

Skálázhatóság: a sharding mint megoldás lényege, hogy az adatokat kisebb, kezelhetőbb shardokra (szilánkokra) bontja. Minden shard képes az önálló működésre, így egyidejűleg több tranzakció dolgozható fel, ami javítja a hálózat sebességét és hatékonyságát. Ezzel szemben a vertikális particionálásnál az oszlopok elosztása a különböző adatbázisok között esetleg fokozhatja egy teljes tranzakció- vagy blokkinformáció kinyerésének bonyolultságát, és korlátozhatja a skálázhatóságot.

Decentralizáció: a blokklánc szellemiségéhez illeszkedve a horizontális particionálás támogatja a decentralizációt. Amikor a csomópontoknak csak a teljes adathalmaz egy részét (egy shardot) kell feldolgozniuk, az több csomópont hálózati részvételét teszi lehetővé, mivel csökken a számítási és tárolási teher. Ezzel szemben a vertikális particionálás korlátozná ezt, mivel minden csomópontnak hozzá kell férnie az összes partícióhoz (az összes adatoszlophoz), hogy megérthesse és hitelesíthesse a teljes blokkadathalmazt.

Biztonság és adatintegritás: a horizontális particionálás megőrzi az adatintegritást, mert minden shard (vagyis partíció) teljes tranzakcióadatokat tartalmaz, így minden csomópont hiánytalan és pontos másolattal rendelkezik a blokkláncnak ezen részéről. A vertikális particionálásnál lényegében a különböző csomópontokra osztjuk szét egy blokk adatait, így kihívást jelent az adatintegritás és -biztonság megteremtése, ami kiemelten fontos szempont a blokklánchálózatoknál.

Milyen előnyökkel jár a sharding?

Most nézzük meg azokat a potenciális előnyöket, amelyeket a sharding biztosít a blokklánc-technológiában:

Nagyobb tranzakciósebesség: a sharding elősegíti a tranzakciók párhuzamos feldolgozását. A tranzakciók egyenként, sorrendben történő feldolgozása helyett a sharding segítségével a tranzakciókat egyszerre lehet feldolgozni a különböző shardokon. Minden shard önállóan működik, ami jelentősen növeli a tranzakciósebességet. Ez nemcsak a tranzakciósebességet növeli, de azt is jelenti, hogy a teljes hálózat több felhasználót képes kezelni, ami elősegíti a tömeges felhasználást.

A Ziliqa a skálázás problémájának megoldásához shardokat használó blokklánchálózat működő példája. A Ziliqa a sharding mechanizmusa segítségével több ezer tranzakció feldolgozására képes másodpercenként.

Minimumra szorított feldolgozási és tárolási költség: a hagyományos blokklánc-kialakítás minden csomópontot arra kötelez, hogy az összes tranzakciót tárolja, ami a blokklánc növekedésével növeli a hardverigényt. Ám a shardinggal minden csomópont csak a teljes hálózati adattömeg egy részének feldolgozásáért és tárolásáért felel, ami csökkenti a csomópont hálózati részvételének erőforrásigényét.

Így több résztvevő csatlakozhat validátorként, ami a részvételt kizáró költségek felmerülése nélkül fokozza a hálózat decentralizációját. Ez kezeli azt a problémát, amikor valójában csak a fejlett és drága számítástechnikai erőforrásokkal rendelkező személyek képesek részt venni a folyamatban, és fenntartja a blokklánchálózatok demokratizált jellegét.

Jobb hálózati teljesítmény: a sharding elősegítheti az általános hálózati teljesítmény és kapacitás növelését. A hagyományos blokkláncok esetén ahogy egyre több csomópont vesz részt a hálózatban, a teljesítmény paradox módon csökken, mivel növekszik a csomópontok közötti adatforgalom és -szinkronizáció iránti igény.

Ugyanakkor a sharding megváltoztatja ezt a helyzetet. Mivel minden shard elkülönülten és egymással párhuzamosan működik, a rendszer több tranzakciót és számítást képes feldolgozni. Amikor egy új csomópont csatlakozik, a teljes hálózat helyett hozzáadható csak egy shardhoz, így növekszik a hálózat skálázási képessége. Javul a hatékonyság, ami zökkenőmentesebb tranzakciókat és jobb felhasználói élményt eredményez.

Ne feledje: a sharding technológia jövőbeni fejlődése és fejlesztése egyéb előnyöket is teremthet, illetve erősítheti az említetteket, folyamatosan javítva a blokklánc-ökoszisztémát.

Milyen korlátai vannak a sharding technológiának?

Bár a sharding több potenciális előnyt is kínál, amelyekkel a blokklánchálózatok hatékonyabbá válhatnak, a folyamatnak megvannak a saját problémái. A sharding potenciális sebezhető pontjai például a következők: 

Támadás egyetlen shard átvételére (Single Shard Takeover Attack): sharding környezetben az egyetlen shard átvételéhez szükséges számítási teljesítmény drasztikusan kisebb, mint a teljes hálózat átvételéhez szükséges teljesítmény. Ez az egyes shardokat sebezhetőbbé teszi egy „egyszázalékos támadással” vagy „shardátvétellel” szemben, ahol egy támadó a teljes hálózathoz képest csekély erőforrással potenciálisan képes átvenni egy önálló shardot.

Shardok között tranzakciók: a különböző shardokat érintő (shardok közötti) tranzakció egyedülálló kihívást jelent. A shardok közötti tranzakciók bonyolultak, és óvatlan kezelés esetén potenciálisan dupla költést eredményezhetnek. Ha a tranzakció során az egyik shard nem követi pontosan a másik shard állapotát, ezt kihasználva a felhasználók „dupla költést” végezhetnek.

Adatelérhetőségi problémák: a sharding miatt a teljes hálózat állapotának követése kivételes erőfeszítést igényel. Ha bizonyos shardok nem érhetők el, amikor az szükséges volna (például mert az említett shardokat kezelő csomópontok offline állapotban vannak), az adatelérhetőségi problémákat eredményezhet, és megzavarhatja a teljes hálózat működését.

Hálózatbiztonság: a sharding erőteljes protokoll bevezetését követeli meg, amely egyensúlyban tartja a shardok terhelését. Ha ezt nem megfelelően végzik, az egyenetlen adatelosztást, illetve az erőforrás-egyensúly felborulását eredményezheti, ami a hálózat potenciális instabilitásához vezethet.

Csomópont-szinkronizáció: a csomópont-szinkronizáció hálózati késedelmeket okozhat az információ különböző csomópontok közötti megosztásának és frissítésének időigénye miatt. Emellett, ha egy gyengébb adatfeldolgozási kapacitással rendelkező csomópont vagy hálózati kapcsolat lemarad, az lelassíthatja az egész szinkronizálási folyamatot, csökkentve a blokklánchálózat átfogó teljesítményét.

Alkalmaznak shardingot az Ethereumon?

Az Ethereum az Ethereum 2.0 frissítés részeként tervezi a sharding bevezetését. Az Eth2 vagy Serenity néven is ismert Ethereum 2.0 az Ethereum blokklánc frissítése, amelynek célja a hálózat sebebességének, hatékonyságának és skálázhatóságának fokozása, hogy több tranzakciót tudjon feldolgozni, és csökkenjen a hálózati leterheltség.

A jelenlegi állás szerint a frissítést több fázisban vezetik be, és a végső fázis (2. fázis) tartalmazza a sharding teljes körű megvalósítását. Az Ethereum-fejlesztők reményei szerint ezek a fejlesztések megoldanak néhányat a skálázhatósággal és a tranzakcióköltségekkel kapcsolatos aktuális hálózati kihívások közül.

Ugyanakkor fontos megjegyezni, hogy a sharding bevezetésének megvannak a maga problémái, különösképpen a hálózatbiztonság és a decentralizáció fenntartásának területén. Éppen ezért az Ethereum-fejlesztők alaposan átgondolják és tesztelik az átmenetet, biztosítva a frissítés sikerét a teljes körű bevezetéskor.

Záró gondolatok

Összességében a sharding figyelemre méltó előrelépést jelent a blokklánctrilemma megoldása felé. Bár új kihívásokat és lehetséges hátrányokat is eredményez, a benne rejlő lehetőséggel a skálázhatóság növelésére a decentralizáció veszélyeztetése nélkül igencsak ígéretes megoldásnak tűnik a blokklánchálózatok jövőjére nézve.

Nem csoda, hogy a különböző blokkláncok potenciális megoldásként vizsgálják a shardingot. Az Ethereum a skálázhatósági problémák kezelésére az Ethereum 2.0 frissítés részeként integrálja a shardingot. Ez a bevezetés várhatóan az úgynevezett The Cancun frissítés keretében valósul meg, amely az átfogó fejlesztési terv kritikus eleme. Mindennek ellenére – más fejlődő technológiákhoz hasonlóan – a siker itt is a folyamatos kutatáson, fejlesztésen és szigorú tesztelésen múlik majd.

További olvasnivaló

Felelősségkizáró nyilatkozat: A jelen bejegyzés tartalmát változatlanul, annak eredeti formájában bocsátjuk rendelkezésre kizárólag általános tájékoztatási és oktatási céllal, bárminemű nyilatkozat vagy szavatosságvállalás nélkül. Az itt leírtak nem tekintendők pénzügyi, jogi vagy egyéb szakmai tanácsadásnak, sem egy konkrét termék vagy szolgáltatás megvásárlására tett javaslatnak. Javasoljuk, hogy megfelelő szaktanácsadóktól kérjen tanácsot. Amennyiben a cikk harmadik fél közreműködőtől származik, felhívjuk figyelmét, hogy abban a harmadik fél közreműködő véleménye fejeződik ki, és nem feltétlenül tükrözi a Binance Academy véleményét. Kérjük, további részletekért olvassa el a teljes felelősségkizáró nyilatkozatunkat itt. A digitális eszközök ára ingadozhat. A befektetés értéke csökkenhet vagy nőhet, és az is előfordulhat, hogy Ön nem kapja vissza a befektetett összeget. A befektetési döntéseiért egyedül Ön felel, és a Binance Academy nem vállal felelősséget az Ön esetlegesen felmerülő veszteségeiért. Az itt leírtak nem minősülnek pénzügyi, jogi vagy egyéb szakmai tanácsnak. További információért tekintse meg Használati feltételeinket és a Kockázati figyelmeztetést.