Wat is sharding in crypto?

Wat is sharding in crypto?
Sharding is een concept dat de schaalbaarheid van blockchains verbetert, door het proces van grote blockchains op te delen in kleinere delen (shards). In feite wordt door middel van shards data naast elkaar verdeeld, zodat data tegelijkertijd verwerkt kan worden. Dit gebeurt via meerdere parallelle ketens die elk een eigen set van data (subnet) verwerken. Deze aanpak zorgt voor meer schaalbaarheid, hogere verwerkingscapaciteit en meer transacties per seconde (TPS).
Shards lossen een fundamenteel probleem op, namelijk dat elke node iedere transactie moet bijhouden en verwerken, waardoor de belasting groot is en het netwerk niet schaalbaar is. In plaats daarvan doen shards het grootste deel van het werk, voordat het naar de nodes gestuurd wordt om de data toe te voegen aan de blockchain.
Shards werken zonder het gebruik van gecentraliseerde systemen (zoals gecentraliseerde dataverwerkers) of off-chain oplossingen, waardoor het netwerk volledig decentraal kan blijven functioneren.
Sharding is een Layer-1-oplossing, ook wel laag 1 genoemd. Blockchains bestaan vaak uit het mainnet (hoofdketen), Layer 1 en Layer 2. Het mainnet en Layer 1 kunnen niet zonder elkaar. Layer 1 is het technische fundament van een blockchain, en het mainnet is de live uitvoering daarvan. Alle echte transacties gebeuren op het mainnet, en elke wijziging aan Layer 1 heeft directe impact op hoe dat mainnet functioneert.
Voorbeeld: Zie het als een huis. De Layer 1 is de fundering en het skelet: de muren, leidingen en stroomvoorziening. Het mainnet is het moment waarop je erin woont en alles écht werkt. Pas je dingen aan aan de fundering, zoals een uitbouw of een nieuwe extra badkamer, dan heeft dit impact op de manier waarop je in het huis leeft. Kijk maar naar sharding: als het huishouden te groot wordt en alles vastloopt, kun je het huis opdelen in meerdere goed georganiseerde kamers, elk met eigen voorzieningen. Dat is wat sharding doet in een blockchain: het verdeelt het netwerk in kleinere delen (shards), zodat transacties parallel kunnen worden verwerkt, zonder dat het hele systeem vastloopt.
Korte samenvatting
-
Sharding splitst een blockchain op in parallel werkende ‘shards’, zodat transacties gelijktijdig verwerkt kunnen worden. Dit verhoogt de transactiesnelheid (TPS) aanzienlijk.
-
Nodes hoeven slechts een deel van de blockchain te verwerken in plaats van het geheel. Dit verhoogt de efficiëntie en verlaagt de hardware-eisen.
-
Het afstemmen van transacties tussen shards vereist complexe protocollen. Daarnaast zijn kleinere shards kwetsbaarder voor aanvallen zoals een 51%-attack.
-
Als Layer-1-oplossing werkt sharding binnen de blockchain zelf, zonder dat decentralisatie of veiligheid in gevaar komt.
Hoe werkt sharding?
Sharding in crypto werkt door de blockchain op te delen in verschillende dataverwerkers (shards) die parallel naast elkaar functioneren. Dankzij de parallelle verwerking van data kan er meer data tegelijkertijd worden verwerkt, wat zorgt voor een hogere transactieverwerkingssnelheid, uitgedrukt in transacties per seconde (TPS).
Elke shard bestaat uit zijn eigen subset van data en smart contracts. De validators of nodes binnen een shard zijn verantwoordelijk voor het verwerken van transacties en het onderhouden van de staat van de blockchain, ook wel de ‘state’ genoemd.
Op de werking van de shards wordt toezicht gehouden door coördinatiemechanismen. Deze houden in de gaten hoe shards met elkaar samenwerken en faciliteren de uitwisseling van informatie tussen shards. Dit voorkomt dubbele uitgaven of conflicten en maakt het mogelijk om transacties parallel te verwerken in plaats van lineair, zoals in traditionele blockchains.
Niet elke blockchain gebruikt hetzelfde systeem voor sharding. Zo gebruikt Ethereum 2.0 (waar shards nog niet zijn geïmplementeerd) een Beacon Chain die shards coördineert en consensus onderhoudt. Polkadot gebruikt een vergelijkbaar systeem, de Relay Chain, die de parachains aanstuurt en coördineert.
Daarnaast zijn er blockchains die experimenteren met andere shardingmodellen, zoals meer autonome structuren waarbij shards zelfstandig opereren met minimale centrale coördinatie.
Er bestaan dus verschillende modellen, elk met hun eigen uitvoeringswijze. Ondanks deze verschillen streven ze allemaal dezelfde doelen na, namelijk:
-
Het voorkomen van dubbele uitgaven
-
Het onderhouden van de staat van het digitale grootboek
-
Het goed afstemmen van transacties tussen shards
Opbouw van shards
Iedere shard werkt op zichzelf, wat betekent dat hij verantwoordelijk is voor een aantal specifieke taken, zoals het zorgen voor een goede overdracht van data aan andere shards en aan de rest van de blockchain. Elke shard:
-
Onderhoudt zijn eigen status, zoals walletsaldo’s en smart contractdata
-
Krijgt en verwerkt zijn eigen subset van transactiedata
-
Wordt onderhouden door een groep validators of nodes die aan de shard zijn toegewezen
Cross-shard communicatie
Het kan gebeuren dat bepaalde transacties worden uitgevoerd, waarbij verschillende shards betrokken zijn. Dit kan gebeuren wanneer gebruik A tokens wilt versturen naar gebruiker B, terwijl hun wallets allebei in een verschillende shards zitten. Een ander voorbeeld is wanneer een smart contract informatie wilt oproepen van een andere smart contract, terwijl beide worden verwerkt in een andere shard.
Dit soort cross-shard interacties brengt technische uitdagingen met zich mee, zoals de noodzaak om transacties in meerdere stappen af te handelen. Hiervoor bestaan verschillende oplossingen, zoals:
-
Asynchrone verwerking waarbij een transactie in meerdere stappen tussen shards verloopt.
-
Message passing protocols die shards berichten aan elkaar kunnen laten sturen via bijvoorbeeld een coördinatiemechanisme.
Verificatie- en beveiligingstechnieken binnen Sharding
Shards moeten ook data van andere shards verifiëren op correctheid en integriteit. Vandaar dat er mechanismen zijn ontwikkeld die ervoor zorgen dat het systeem betrouwbaar is. De volgende technieken worden toegepast:
-
Fraud proof
Een fraud proof is een bewijs dat aantoont dat een transactie of blok ongeldig is. Als een shard iets fout doet, kan een andere partij dit aantonen met een fraud proof. Dit komt vaak voor in systemen als distributed ledger technology (waar ook blockchains gebruik van maken), waar ervan uitgegaan wordt dat alle transacties correct zijn, tenzij het tegendeel bewezen is. -
Validity proof
Een validity proof (zoals een zk-SNARK of zk-STARK) is een cryptografisch bewijs dat aantoont dat een berekening of transactie correct is uitgevoerd. Het is efficiënter dan fraud proofs, omdat er geen fout hoeft te worden opgespoord. De validity proof wordt veelal toegepast in ZK-rollups (layer-2-oplossingen). -
Data availability sampling
Dit is een techniek waarbij nodes willekeurig stukjes van een blok opvragen en controleren of de volledige data daadwerkelijk beschikbaar is voor het netwerk. Dit is belangrijk om te voorkomen dat een shard of rollup onvolledige data doorstuurt die niet te verifiëren is.
Maakt Ethereum gebruik van sharding?
Ja, Ethereum is van plan sharding in de toekomst te implementeren als onderdeel van zijn schaalbaarheidsstrategie. Op het moment van schrijven is sharding nog niet geïmplementeerd. Wel zijn er al zaken geïmplementeerd om sharding mogelijk te maken op Ethereum, zoals de Beacon Chain en de introductie van blobs via EIP-4844, waardoor data veel efficiënter verwerkt kan worden en onnodige data niet permanent op de blockchain hoeft te worden opgeslagen.
Met de implementatie van danksharding moet Ethereum in de toekomst sharding gaan toepassen, wat een grote impact gaat hebben op het gebruik van Ethereum, aangezien dit Ethereum veel schaalbaarder en gebruiksvriendelijker moet maken. Sharding maakt dan ook deel uit van de Ethereum 2.0-roadmap, een tijdlijn die bestaat uit verschillende updates, zoals de overstap van Proof of Work naar Proof of Stake en de introductie van rollups.
Het doel van Ethereum 2.0 is: duizenden transacties per seconde kunnen uitvoeren zonder de decentralisatie of veiligheid in gevaar te brengen. Dit moet zorgen voor massa-adoptie van miljoenen gebruikers wereldwijd en moet Ethereum sneller, goedkoper en gebruiksvriendelijker maken.
Welke crypto gebruikt sharding?
Er zijn diverse blockchains die gebruikmaken van sharding. Allemaal hebben ze hun eigen infrastructuur gebouwd, wat betekent dat sharding overal iets anders in de praktijk werkt. De bedoeling is overal hetzelfde: het netwerk efficiënter maken. Voorbeelden hiervan zijn:
-
Zilliqa: Een van de eerste blockchains die daadwerkelijk sharding in productie heeft gebruikt. Het netwerk verdeelt alle transacties over meerdere shards.
-
Elrond (MultiversX): Maakt gebruik van Adaptive State Sharding en claimt zeer hoge transactiesnelheden te behalen.
-
NEAR Protocol: Past dynamische sharding toe, waarbij het aantal shards zich aanpast aan de netwerklast.
Wat is het verschil tussen sharding en blockchaintechnologie?
Blockchaintechnologie is het onderliggende systeem, terwijl sharding een techniek is die het gebruik van de blockchain efficiënter maakt, door het bieden van een schaalbaarheidsoplossing. Sharding wordt bovenop de blockchain gebouwd, namelijk in laag 1 (layer 1). Deze laag bevat de werking van de blockchain en regelt dat er consensus wordt bereikt, transacties kunnen worden gevalideerd en het netwerk wordt beveiligd.
Sharding ondersteunt de blockchain hierin door data op een efficiëntere manier te verwerken. Het ontlast in feite de blockchain door data parallel naast andere shards te verwerken. Haal je de sharding weg, dan moet een node de hele blockchain controleren en alle transacties valideren. Met sharding hoeft een node slechts een fractie van het netwerk te verwerken, wat leidt tot een grotere schaalbaarheid.
Met andere woorden: blockchain is de fundering, sharding is een bouwtechniek die de structuur efficiënter maakt.
Voordelen van sharding
Sharding biedt verschillende voordelen voor blockchainnetwerken:
-
Schaalbaarheid: Door parallelle verwerking wordt de schaalbaarheid verhoogd, wat het aantal transacties per seconde aanzienlijk kan laten stijgen.
-
Efficiëntie: Sharding zorgt ervoor dat nodes minder data hoeven te verwerken en niet de hele blockchain hoeven te controleren, wat het een stuk efficiënter maakt en de totale belasting op het netwerk drastisch vermindert.
-
Kostenreductie: Lagere netwerkbelasting kan leiden tot lagere transactiekosten.
-
Toegankelijkheid: Doordat nodes minder data hoeven te verwerken, zijn er ook minder zware hardware-eisen nodig, wat het netwerk toegankelijker maakt voor deelnemers.
Uitdagingen van sharding
Ondanks de voordelen brengt sharding ook een aantal complexe uitdagingen met zich mee:
-
Beveiliging: Kleinere shards kunnen vatbaarder zijn voor aanvallen, omdat er minder validators of nodes zijn die de shard beveiligen. Dit betekent dat er minder capaciteit nodig is om eventueel een 51%-attack binnen een shard uit te voeren.
-
Complexiteit: Het ontwerpen van een betrouwbaar shardingmechanisme vereist geavanceerde protocollen voor communicatie en coördinatie tussen shards.
-
Cross-shard communicatie: Transacties tussen shards zijn technisch moeilijker te realiseren dan binnen een enkele chain.
-
Data availability: Het waarborgen dat data uit andere shards beschikbaar en verifieerbaar blijft, is cruciaal voor de integriteit van het netwerk, vooral omdat nodes vaak slechts een deel van het netwerk verwerken en niet de volledige blockchain kunnen overzien.
-
Decentralisatie: Door de verdeling van het netwerk in kleinere shards kunnen sommige shards aantrekkelijker of belangrijker worden dan anderen. Dit kan leiden tot ongelijke verdeling van macht of deelname, wat de algehele decentralisatie van het netwerk onder druk kan zetten.
Conclusie
Sharding biedt een veelbelovende oplossing voor een van de grootste uitdagingen binnen blockchaintechnologie: schaalbaarheid zonder concessies te doen aan decentralisatie of veiligheid. Door het netwerk op te delen in parallel werkende shards, kunnen blockchains zoals Ethereum in de toekomst aanzienlijk meer transacties verwerken met minder belasting per node. Hoewel de techniek nog in ontwikkeling is en uitdagingen kent op het gebied van coördinatie en veiligheid, vormt sharding een fundamentele bouwsteen voor de volgende generatie gedecentraliseerde netwerken. Het is geen tijdelijke oplossing, maar een structurele aanpassing die de schaalbaarheid van blockchains aanzienlijk kan verbeteren.