Is sharding de grote oplossing voor Ethereum?

In de afgelopen maanden is er veel kritiek geuit aan het adres van de cryptocurrency. De critici wezen vooral op de gebreken van Bitcoin en Ethereum. De ontwikkelaars hebben deze problemen ernstig genomen en komen met nieuwe oplossingen voor de aangekaarte problemen.

Wat is nu juist het probleem?

Bitcoin en Ethereum werken op dit moment volgens een proof-of-work protocol. Dit protocol biedt een zeer hoog niveau van veiligheid, maar dit protocol loopt tegen de grens aan wanneer er zeer intensief gebruik gemaakt wordt van het netwerk. Het incident met cryptokittie heeft aangetoond hoe snel het Ethereum-netwerk kan verstoppen.

Een van de grote problemen van een blockchain is dat een toename van het aantal knooppunten de schaalbaarheid vermindert. Voor sommige mensen kan dit tegenstrijdig lijken. “Meer knooppunten = meer vermogen. Dus meer snelheid, toch? Dit is jammer genoeg niet zo.

Een van de redenen waarom een blockchain zijn niveau van veiligheid heeft, is omdat elk knooppunt elke transactie moet verwerken. Dat is net zoiets als het laten controleren van je huiswerkopdracht door elke professor aan de universiteit. Hoewel dit ervoor kan zorgen dat je opdracht correct is verbeterd, duurt het ook erg lang voordat jij jouw opdracht terugkrijgt.

Een soortgelijk probleem doet zich ook voor bij Ethereum. De knooppunten zijn jouw professoren. Elke transactie is jouw opdracht.

We kunnen het aantal professoren (knooppunten) verminderen totdat we tevreden zijn met de snelheid. Maar naarmate de orderportefeuille voor opdrachten (transacties) toeneemt, zullen we het aantal professoren verder moeten verminderen. Dit zal er uiteindelijk toe leiden dat we een beroep doen op een paar ‘vertrouwde’ professoren. Een gecentraliseerde groep.

Dit staat haaks op de ideologie van de decentralisatie van de blockchain. Het is veel gemakkelijker om een kleinere groep professoren (knooppunten) te compromitteren dan de hele universiteit (het hele netwerk). Als gevolg daarvan offeren we veiligheid op in een poging tot schaalvergroting.

Om het samen te vatten, moeten blockchains kiezen tussen twee van de drie volgende attributen:

  • Veiligheid
  • Schaalbaarheid (onvermogen om op een nog hoger volume te presteren)
  • Decentralisatie

Aangezien sommige transacties momenteel al tussen enkele minuten en enkele dagen in beslag nemen (afhankelijk van de transactiekosten die je betaalt), is het moeilijk voor te stellen hoe dit model met nog meer belasting (verkeer) zou kunnen werken. Bitcoin is momenteel beperkt tot 3-7 transacties per seconde en Ethereum is beperkt tot 7-15 transacties. Geen van beide cijfers is bemoedigend.

De vraag die we kunnen stellen is de volgende: Kunnen we een systeem ontwikkelen dat voldoende “professoren” (knooppunten) heeft om de veiligheid te handhaven en tegelijkertijd ook klein genoeg is om de snelheid waarmee uw opdrachten worden uitgevoerd te verhogen (doorvoer van het netwerk)?

In wezen geven we toe dat we niet “max-out” kunnen gaan op alle drie de attributen: Schaalbaarheid, Veiligheid, decentralisatie. Maar kunnen we net “genoeg” decentralisatie en veiligheid hebben om meer schaalbaarheid bereiken?

Daarom worden nieuwe oplossingen zoals het “proof-of-stake” protocol uitgevonden om transacties sneller te kunnen verwerken. Sharding is ook zo’n veelbelovende oplossing. De oprichter van Ethereum heeft aangegeven dat het in de toekomst waarschijnlijk zal worden geïmplementeerd op het netwerk van Ethereum.

Sharding in het kort

Beschouw Sharding gewoon als een mooie manier om te zeggen, “laten we het netwerk afbreken in kleinere groepen/stukken”. Elke groep is een scherf (shard). Een groep/shard bestaat uit knooppunten en transacties.

Dus in onze analogie van de professor zou een shard bestaan uit een groep professoren en opdrachten. In plaats van dat een professor de opdrachten over het hele netwerk zou moeten corrigeren, zou hij alleen maar verantwoordelijk voor de opdrachten binnen zijn shard (groep).

Hierdoor wordt het aantal transacties (opdrachten) dat elk knooppunt (professor) moet valideren sterk gereduceerd.

Een mogelijke manier om het netwerk op te splitsen is gebaseerd op de eerste cijfers van de publieke adressen. Maar er zijn nog veel andere methoden die worden aangehaald als mogelijke oplossing voor de opsplitsing van het netwerk.

Via recente opmerkingen van Vitalik Buterin’s schaalvergroting van Ethereum kwamen we het volgende te weten: Door een eigen set validaties te eisen, wordt proof-of-stake een noodzakelijke vereiste voor het functioneren van een “shard”. Door een proof-of-stake protocol te eisen om goed te kunnen functioneren, wordt sharden op korte termijn praktischer voor Ethereum.

De structuur van sharding

Nu je de kern begrijpt, zal je onderstaande structuur ook sneller begrijpen.

In elk bestand/groep hebben we knooppunten die zijn toegewezen als “Collators”. Collators zijn belast met verzamelen van minibeschrijvingen van transacties en de huidige staat van de shard.

In onze analogie kun je Collators beschouwen als assistenten van de professor. Alle assistenten in een groep/shard doorlopen eerst alle opdrachten binnen de shard.

Tot slot hebben we super-nodes. Elke super-node ontvangt de informatie gemaakt door de Collators van elke shard. Vervolgens verwerken zij de transacties aan de hand van deze informatie. Bovendien bewaren zij de volledige beschrijvings- en toestandsgegevens van alle shards die ze ook van de Colllators krijgen.
Je ziet waarschijnlijk de voordelen van deze structuur. Het aantal nodes dat elke transactie afzonderlijk verwerkt zou sterk worden verminderd, en dus de totale doorvoer zou verhogen.

Voordelen van Sharding

Sharding is noodzakelijk omdat deze netwerken een manier moeten vinden om te groeien, anders zal hun waarde aanzienlijk afnemen. Het implementeren van een oplossing als sharding verhoogt enerzijds de flexibiliteit van het netwerk en beperkt anderzijds de hoeveelheid opslag die nodig is om het te laten functioneren.

De moeilijkheid bij het veranderen van de netwerken van hun huidige proof-of-work protocollen is dat ze hun veiligheid moeten behouden, anders verliezen ze alle waarde. Sharding lijkt één van de weinige oplossingen die de schaalbaarheidsproblemen oplost en toch veilig is.

Potentiële Risico's

Elke oplossing heeft nadelen, en het is belangrijk dat we de nadelen van het sharden aankaarten. De shards zijn ontworpen om het gemakkelijk te maken om met andere gebruikers op dezelfde shard om te gaan. Transacties tussen shards worden echter gecompliceerd en voegen een extra laag complexiteit aan de oplossing toe. Als het tot stand brengen van de communicatie tussen de shards te moeilijk blijkt, dan heeft de oplossing geen waarde. Er zijn verschillende workarounds die theoretisch mogelijk zijn, maar er is nog veel werk voor de boeg voordat dit tot stand kan komen.

Een ander potentieel probleem is wat er gaat gebeuren als je al deze kleine shards creëert. Zullen ze vanwege hun omvang kwetsbaar zijn voor 51% aanvallen? Of is het nog te prijzig om hiervoor de proof-of-stake methode in te zetten? De waarde van het Bitcoin- en Ethereum-netwerk zit nog steeds in hun beveiliging, dus ze moeten de effectiviteit van het sharden kunnen garanderen voor de implementatie.

Sharding is op moment van schrijven slechts een mogelijke oplossing die is nog niet getest is. We hebben dus geen idee hoe goed het zou werken of wat de resultaten van de uitvoering zullen zijn. We zullen moeten afwachten wat de toekomst brengt.

Meer informatie nodig over sharding?

Trade.be heeft sharding al eens besproken op een meer gedetailleerde/technische manier. Via DEZE link kan je dat artikel raadplegen. Natuurlijk zullen we jullie in de toekomst zeker op de hoogte houden van nieuwe ontwikkelingen rond deze (in onze ogen) baanbrekende oplossing om het schalingsprobleem aan te pakken.

 

What's your reaction?

Leave a comment