25 juni 2021 0:06

Sharding

Wat is sharding?

Sharding is een databasepartitioneringstechniek die door blockchain bedrijven wordt gebruikt met het oog op schaalbaarheid, waardoor ze meer transacties per seconde kunnen verwerken. Sharding splitst het volledige netwerk van een blockchain-bedrijf op in kleinere partities, ook wel “shards” genoemd. Elke shard bestaat uit zijn eigen gegevens, waardoor deze onderscheidend en onafhankelijk is in vergelijking met andere shards.

Sharding kan de latentie of traagheid van een netwerk helpen verminderen, omdat het een blockchain-netwerk in afzonderlijke shards splitst. Er zijn echter enkele beveiligingsproblemen rond sharding waarin shards kunnen worden aangevallen.

Belangrijkste leerpunten

  • Sharding is een databasepartitioneringstechniek die wordt overwogen door blockchain-netwerken en die wordt getest door Ethereum.
  • Hoe meer gebruikers blockchain-netwerken gebruiken, hoe trager het netwerk wordt, wat leidt tot een aanzienlijke latentie.
  • Sharding kan de netwerklatentie verbeteren door een blockchain-netwerk op te splitsen in afzonderlijke shards, elk met zijn eigen gegevens, gescheiden van andere shards.
  • Beveiligingsproblemen met betrekking tot sharding omvatten een hack of een overname van een shard, waarbij de ene shard de andere aanvalt, wat resulteert in verlies van informatie.

Sharding begrijpen

Blockchain-netwerken en hun respectievelijke cryptocurrencies winnen aan populariteit vanwege de wijdverbreide toepassing van de technologie, waaronder supply chain management en financiële transacties. Naarmate de populariteit van blockchain groeit, neemt ook de werklast en het transactievolume dat door het netwerk wordt afgehandeld toe. Als we een blockchain beschouwen als een gedeelde database, moet het netwerk naarmate er steeds meer gegevens worden toegevoegd, nieuwe manieren vinden om al die gegevens efficiënt en snel te verwerken, en dat is waar sharding kan helpen.

Gedistribueerd grootboek

Het gedistribueerde grootboek van blockchain-technologie maakt het aantrekkelijk omdat het toestaat dat de transacties met wederzijds goedvinden over meerdere sites en regio’s kunnen worden gedeeld. Terwijl transacties worden geregistreerd, worden binnen enkele seconden kopieën naar het gedeelde netwerk gestuurd, waardoor openbare ‘getuigen’ ontstaan. Als een deel van het netwerk het slachtoffer wordt van fraude of een kwaadwillende aanval, kunnen de deelnemers van het gedeelde netwerk nagaan wat er door de fraudeurs is veranderd, aangezien ze allemaal een kopie van de transacties van het grootboek bijhouden. Als gevolg hiervan kunnen blockchain-technologie en het gedistribueerde grootboeksysteem fraude helpen verminderen en de schade door cyberaanvallen, zoals een hack, beperken.

Schaalbaarheid

Een van de grootste uitdagingen met blockchaintechnologie is echter dat naarmate er meer computers aan het netwerk worden toegevoegd en er meer transacties worden verwerkt, het netwerk kan vastlopen en het proces kan vertragen – latentie genaamd. Latentie is een hindernis voor het gebruik van blockchain voor wijdverbreid gebruik, vooral in vergelijking met de huidige elektronische betalingssystemen die snel en efficiënt werken. Met andere woorden, schaalbaarheid is een uitdaging voor blockchain, aangezien de netwerken mogelijk niet in staat zijn om de toegenomen hoeveelheden gegevens en transactiestromen aan te kunnen naarmate steeds meer industrieën de technologie toepassen.

Een van de oplossingen die wordt overwogen voor het creëren van latentievrije schaalbaarheid, is het proces van sharding. Sharding is ontworpen om de werklast van een netwerk over partities te verdelen, waardoor de latentie kan worden verminderd en meer transacties door de blockchain kunnen worden verwerkt.



Drie eigenschappen die blockchain-netwerken willen gebruiken, zijn decentralisatie, schaalbaarheid en beveiliging. 

Hoe Sharding wordt bereikt

Voordat u gaat onderzoeken hoe sharding wordt bereikt binnen een blockchain-netwerk, is het belangrijk om te bekijken hoe gegevens momenteel worden opgeslagen en verwerkt.

Blockchain-knooppunten

Momenteel moet in blockchain elk knooppunt in een netwerk alle transactievolumes binnen het netwerk verwerken of afhandelen. Knooppunten in een blockchain zijn onafhankelijk en zijn verantwoordelijk voor het onderhouden en opslaan van alle gegevens binnen een gedecentraliseerd netwerk. Met andere woorden, elk knooppunt moet kritieke informatie opslaan, zoals rekeningsaldi en transactiegeschiedenis. Blockchain-netwerken zijn opgezet zodat elk knooppunt alle bewerkingen, gegevens en transacties op het netwerk moet verwerken.

Hoewel het de beveiliging van een blockchain garandeert door elke transactie op alle knooppunten op te slaan, vertraagt ​​dit model de transactieverwerking aanzienlijk. Lage snelheden voor het verwerken van transacties voorspellen niet veel goeds voor een toekomst waarin blockchain verantwoordelijk wordt voor miljoenen transacties. 

Sharding kan helpen omdat het de transactionele workload van een blockchain-netwerk verdeelt of verspreidt, zodat niet elk knooppunt de volledige workload van de blockchain hoeft af te handelen of te verwerken. In zekere zin verdeelt sharding de werklast in partities of shards.

Horizontale partitionering

Sharding kan worden bereikt door databases horizontaal te partitioneren door ze in rijen te verdelen. Shards, zoals de rijen worden genoemd, worden geconceptualiseerd op basis van kenmerken. Een shard kan bijvoorbeeld verantwoordelijk zijn voor het opslaan van de status- en transactiegeschiedenis voor een specifiek type adres. Het is ook mogelijk om shards te verdelen op basis van het type digitale asset dat erin is opgeslagen. Transacties met dat digitale activum kunnen mogelijk worden gemaakt door een combinatie van scherven.

Beschouw als voorbeeld een verhuurtransactie van onroerend goed waarbij meerdere scherven betrokken zijn. Deze shards komen overeen met verschillende entiteiten die bij de transactie betrokken zijn, van de naam van de klant tot digitale sleutels die zijn geconfigureerd in een slim slot dat na betaling van de huur beschikbaar wordt gesteld aan de huurder.

Shard delen

Elke shard kan nog steeds worden gedeeld met de andere shards, wat een belangrijk aspect van blockchain-technologie handhaaft: het gedecentraliseerde grootboek. Met andere woorden, het grootboek is nog steeds toegankelijk voor elke gebruiker, waardoor ze alle grootboektransacties kunnen bekijken.

Sharding en beveiliging

Een van de belangrijkste problemen in de praktijk die is ontstaan, is beveiliging. Hoewel elke shard afzonderlijk is en alleen zijn eigen gegevens verwerkt, is er een beveiligingsprobleem met betrekking tot de corruptie van de shards, waarbij de ene shard een andere shard overneemt, wat resulteert in verlies van informatie of gegevens.

Als we elke scherf beschouwen als zijn eigen blockchain-netwerk met zijn geverifieerde gebruikers en gegevens, kan een hacker of door middel van een cyberaanval een scherf overnemen. De aanvaller kan dan valse transacties of een kwaadaardig programma introduceren.

Ethereum, een van de meest prominente blockchain-bedrijven, bevindt zich in de frontlinie van het testen van sharding als een mogelijke oplossing voor latentie- en schaalbaarheidsproblemen. Ethereum heeft het potentieel van een shard-aanval bestreden door willekeurig knooppunten toe te wijzen aan bepaalde shards en deze constant met willekeurige tussenpozen opnieuw toe te wijzen. Deze willekeurige steekproef zou het voor hackers moeilijk maken om te weten wanneer en waar ze een scherf kunnen beschadigen.

Het is ook belangrijk op te merken dat sharding zich nog in de vroege testfase bevindt van gebruik voor blockchain-netwerken. Als gevolg hiervan moeten alle mogelijke problemen en uitdagingen nog worden uitgewerkt.