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.
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
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.
NFT gamefi metaverse project brengt eerste gamefi metaverse uit op unreal engine 5 Metaverses lijken de rage te zijn...
Sinds de crypto boom is er veel buzz geweest over initial coin offering en hoe het de game-changer is voor...
De DeFi-kredietverstrekker Inverse Finance beweerde dat het was uitgebuit voor een bedrag van $15,6 miljoen aan DAI en USDC in...