Wat is sharding in cryptocurrency?

Sharding is een techniek om grote databanken op te splitsen in kleinere, snellere, gemakkelijker te beheren delen, die datashards worden genoemd. Het woord shard betekent een klein deel van een geheel.

Elke subset van gegevens wordt een shard of node genoemd, en alle shards samen vormen de volledige dataset. Het aantal shards in een toepassing is afhankelijk van de prestatie-eisen, zoals opslagcapaciteit of lees/schrijfsnelheid.

Het doel van sharding is om gegevens over meerdere machines te verdelen en meerdere transacties parallel te laten verlopen. Met andere woorden, het doel is horizontale schaalbaarheid. Sharding kan worden gebruikt in blockchain netwerken ook. Ethereum is bijvoorbeeld van plan om sharding in zijn netwerk te implementeren om de schaalbaarheid ervan te vergroten.

In dit artikel leggen we uit wat sharding is en hoe het werkt in Cryptocurrency.

Sharding is een van de meest veelbelovende schalingstechnologieën in de cryptocurrency-ruimte die de laatste tijd steeds meer aandacht krijgt. Sharding is een proces dat de schaalbaarheid van blockchain wil verbeteren door het op te splitsen in kleinere eenheden (bekend als "shards") die parallel kunnen worden verwerkt en zo bijdragen aan de totale transactie verwerkingscapaciteit van het netwerk. 

Waarom hebben we Sharding nodig?

Wanneer een node wil deelnemen aan een cryptocurrency-netwerk, downloadt de client de hele transactiegeschiedenis. De reden hiervoor is om de transacties te kunnen valideren en te controleren of er geen dubbele uitgaven zijn gedaan. Dit betekent dat je, om deel te nemen aan een blockchain, alle gegevens moet downloaden.

Als u een knooppunt wilt hosten of draaien in Bitcoin en de volledige blokbeloning te ontvangen heb je minstens 200GB aan opslagruimte nodig, vanaf april 2018. In Ethereum is dit aantal nog hoger, vanaf april 2018 is er meer dan 100GB aan gegevens opgeslagen op elke node. Met een typische internetverbinding duurt het downloaden van al deze informatie ongeveer twee weken. Dit is niet praktisch voor de meeste mensen die betrokken willen raken bij een cryptocurrency netwerk.

Sharding werd voor het eerst geïntroduceerd in databasemanagementsystemen om de prestaties, efficiëntie en schaalbaarheid van databasediensten te verbeteren door gegevens over meerdere machines te verdelen. Sharding wordt gebruikt in moderne databasesystemen omdat het de algemene snelheid van een toepassing kan verhogen. Hetzelfde idee wordt nu ook toegepast op blockchain technologie.

Blockchain netwerken zoals Ethereum proberen sharding te implementeren met als doel de schaalbaarheid van hun netwerk te vergroten, waardoor ze meer transacties sneller zouden kunnen verwerken. Ethereum mede-oprichter Vitalik Buterin is al enige tijd bezig met het onderzoeken en ontwikkelen van het concept van sharding, en dat onderzoek resulteerde in de creatie van EIP 1559, één mogelijke implementatie van sharding op Ethereum.

Het idee van sharding bestaat al een tijdje, maar het werd voor het eerst gebruikt in de cryptocurrency wereld door Zilliqa. Het proof-of-work (PoW) blockchain model is niet ideaal als je een netwerk wilt creëren dat een hoog volume aan transacties aankan. Zilliqa was het eerste bedrijf dat dit probleem probeerde op te lossen door een van de snelste blockchain netwerken op de markt te creëren.

Zilliqa maakt gebruik van een sharding-oplossing waarmee de transactiecapaciteit kan worden verhoogd naarmate er meer nodes aan het netwerk worden toegevoegd. Hoe meer computers er aan het netwerk worden toegevoegd, hoe meer transacties er per seconde kunnen worden verwerkt.

Hoe Sharding werkt

Een blockchain is een gedistribueerd grootboek dat bestaat uit gegevens die zijn opgeslagen in blokken; elk blok bevat een bepaalde hoeveelheid gegevens, en deze blokken worden aan elkaar geketend om het grootboek te vormen. De keten wordt onderhouden door knooppunten - deelnemers die een kopie van het volledige grootboek bezitten en het bijwerken wanneer nieuwe informatie wordt ontvangen. Elk knooppunt moet nieuwe gegevens valideren voordat ze aan de keten kunnen worden toegevoegd. Als een bedrijf zijn systeem wil opschalen, heeft het twee opties: duurdere hardware kopen of een alternatieve oplossing vinden die beter gebruik maakt van de bestaande hardware.

Sharding is een van de verschillende benaderingen voor databaseschaling en hoge beschikbaarheid. Andere benaderingen zijn respons caching, master-slave replicatie en cloud hosting.

Sharding verdeelt de gegevens over meerdere servers, zoals te zien is in onderstaand diagram. Elke shard fungeert als een afzonderlijke database, en elke databaseserver handelt lees- en schrijfoperaties af voor zijn eigen shard. Om een database in shards te splitsen, moet elke shard een soort metadata bevatten die helpt bij het identificeren van welke gegevens in welke shard moeten worden opgeslagen.

Ethereum is van plan om sharding te gebruiken voor zijn schalingsoplossing. Momenteel zijn er twee soorten nodes in Ethereum: full nodes en light nodes. Volledige nodes slaan alle informatie over de blockchain op (tot 1 terabyte) terwijl light nodes slechts een klein deel van die informatie opslaan of slechts een samenvatting van wat er gebeurt op de keten. Met Ethereum's sharding oplossing, zullen volledige nodes worden opgesplitst in "collation" en "attester" nodes. Hierdoor zullen collation nodes veel minder validators hebben dan full nodes op dit moment hebben en zullen ze veel minder informatie kunnen opslaan dan full nodes op dit moment doen. Dit betekent dat meer mensen in staat zullen zijn om deel te nemen aan het netwerk als validators en maintainers.

Deze aanpak biedt verschillende voordelen:

Voordelen en Voordelen van Sharding in de Cryptomarkt 

Zoals hierboven vermeld, heeft sharding tot doel de grote werklast op te splitsen in kleine subwerklasten. Dit helpt op zijn beurt om de schaalbaarheid en efficiëntie van een netwerk te verbeteren. De voordelen van deze methode zijn een hogere doorvoer en snellere transactiesnelheden. Dit laatste is vooral belangrijk voor crypto exchanges die op zoek zijn naar een alternatieve en efficiëntere manier om transacties van gebruikers af te handelen.

  1. Lagere kosten - Sharding stelt je in staat je database horizontaal te laten groeien in plaats van verticaal, omdat elke shard op een aparte server kan worden gehost. Dit betekent dat je kunt beginnen met minder krachtige, minder dure hardware en dan meer shards kunt toevoegen naarmate je systeem groter wordt of meer verwerkingskracht nodig heeft. 
  1. Een toename van de vraag naar transacties op blockchains veroorzaakt congestie en verhoogt de waarde van transactie vergoedingen; dit kan problemen veroorzaken in cryptocurrency ecosystemen waar de "miners" beloond worden met de transactie vergoedingen. Hoe hoger de waarde van de vergoeding, hoe meer stimulans er is om blokken te delven. Als de transactievergoedingen echter te hoog zijn, kunnen ze voor sommige gebruikers onbetaalbaar worden - wat tot een daling van de adoptie kan leiden.
  1. Snellere zoekopdrachten - De shards kunnen over verschillende servers worden verspreid, waardoor elke zoekopdracht minder tijd kost omdat er minder gegevens hoeven te worden doorzocht.
  1. Verhoogde schaalbaarheid: De verwerkingscapaciteit neemt toe met de toename van het aantal nodes, waardoor meer transacties per seconde op een netwerk kunnen worden ondersteund. Het idee achter sharding is vergelijkbaar met het opslaan van verschillende gegevens in verschillende databaseservers of het gebruik van meerdere servers voor verschillende taken. Dit helpt bij het onderhouden van een database die groot is en veel transacties per seconde kan verwerken.
  1. Hoge beschikbaarheid: Aangezien de database is onderverdeeld in kleinere databases, shards genaamd, zijn er, zelfs als er één uitvalt, vele andere shards die kunnen helpen om de beschikbaarheid van het netwerk te handhaven.
  1. Verminderde latentie: Als u meerdere databaseservers hebt, kunnen ze dichter bij gebruikers worden geplaatst en

De nadelen van het gebruik van Sharding 

De nadelen van sharding zitten echt in de implementatie, niet in het concept. Het implementeren van sharding is moeilijk en vereist hard forks aangezien er vele variaties van sharding voorstellen zijn. Verder kan het, zonder de juiste implementatie en testen, leiden tot centralisatierisico's als gevolg van gebroken ketens of onjuiste verdeling van beloningen.

Enkele van de grootste problemen met sharding zitten in de praktische kant. Bijvoorbeeld, als je meerdere shards (blokken gegevens) hebt, hoe weet je dan welke de meest actuele informatie heeft? Als één shard een oude versie heeft van bepaalde gegevens en een andere heeft een nieuwere versie, welke moet dan gebruikt worden? Dit wordt "shardsynchronisatie" genoemd, en het is iets dat ontwikkelaars moeten uitwerken voordat ze een nieuw systeem implementeren

  • Centrales kunnen onbeschikbaar worden als er netwerkfouten optreden
  • Het kost tijd om opnieuw te rangschikken wanneer het aantal knooppunten in het systeem verandert.
  • Het kan moeilijk zijn om informatie terug te vinden in geval van een storing

Sharding is geen toverstokje dat alle blockchain problemen in één keer kan oplossen. Het is een concept dat veel werk vereist om te implementeren, en er zijn altijd afwegingen. Beveiliging zal altijd de eerste zorg zijn voor blockchains - als je het voor iemand gemakkelijker maakt om het netwerk aan te vallen, dan moet je ervoor zorgen dat je beveiliging nog steeds goed genoeg is om die aanvallen af te weren.

Het is duidelijk dat sharding een groot potentieel heeft, aangezien het zou kunnen helpen het aantal transacties per seconde te verhogen door het aantal shards te vergroten. Als gevolg daarvan zouden gebruikers kunnen genieten van snellere transactietijden. En als het gaat om cryptocurrency beurzen en handel platforms - dat is wat het belangrijkste is.

Gerelateerd

nl_NLDutch