Wat is sharding? Dit Ethereum-schaalconcept uitgelegd

Wat is sharding?

Terwijl het schaaldebat in cryptocurrencies voortduurt, zijn sommige mogelijke oplossingen al geruime tijd in ontwikkeling.

Specifiek, in het geval van Ethereum, waar een grote focus wordt gelegd op decentralisatie en beveiliging ten koste van schaalbaarheid, wordt de toepassing van sharding in combinatie met het implementeren van Proof of Stake-consensus gezien als het broodnodige mechanisme waarmee het netwerk kan opschalen naar praktische niveaus voor applicaties met behoud van de decentralisatie en veiligheid.

Sharding is een complex onderwerp, vooral wanneer het wordt toegepast op een gedecentraliseerd peer-to-peer-netwerk zoals Ethereum, waar de wereldwijde status van het netwerk voortdurend wordt bijgewerkt.

Dus wat is sharding precies en hoe kan het blockchain-netwerken helpen opschalen?

Sharding en gedistribueerde computerachtergrond

Sharding is eigenlijk veel ouder dan blockchain-technologie en is geïmplementeerd in verschillende systemen, van bedrijfsdatabase-optimalisaties tot De wereldwijde Spanner-database van Google.

  • In wezen is sharding een bepaalde methode voor het horizontaal partitioneren van gegevens binnen een database.
  • Meer in het algemeen is de database opgedeeld in kleine stukjes die “shards” worden genoemd en die, wanneer ze worden samengevoegd, de oorspronkelijke database vormen.
  • In gedistribueerde blockchain-netwerken bestaat het netwerk uit een reeks knooppunten die zijn verbonden in een peer-to-peer-indeling, zonder centrale autoriteit.
  • Net als bij de huidige blockchain-systemen, slaat elk knooppunt alle statussen van het netwerk op en verwerkt het alle transacties.
  • Hoewel dit de beveiliging op hoog niveau biedt door middel van decentralisatie, vooral in Proof of Work-systemen zoals Bitcoin en Ethereum, leidt het tot legitieme schaalproblemen.

Ethereum Sharding

Door Ethereum als voorbeeld te gebruiken, slaat een volledig knooppunt in het Ethereum-netwerk de volledige status van de blockchain op, inclusief rekeningsaldi, opslag en contractcode.

Helaas neemt de consensus alleen lineair toe naarmate het netwerk exponentieel toeneemt. Deze beperking is te wijten aan de communicatie die tussen de knooppunten nodig is om consensus te bereiken.

Knooppunten in het netwerk hebben geen speciale privileges en elk knooppunt in het netwerk slaat elke transactie op en verwerkt deze. Als gevolg hiervan worden problemen zoals hoge gaskosten en langere transactiebevestigingstijden in een netwerk ter grootte van Ethereum merkbare problemen wanneer het netwerk overbelast is. Het netwerk is zo snel als de individuele knooppunten in plaats van de som der delen.

Sharding helpt deze problemen te verlichten door een interessante, maar complexe oplossing te bieden. Het concept omvat het groeperen van subsets van knooppunten in shards die op hun beurt transacties verwerken die specifiek zijn voor die shard. Het stelt het systeem in staat om veel transacties parallel te verwerken, waardoor de doorvoer aanzienlijk wordt verhoogd.

Een eenvoudiger manier om het uit te drukken, zou zijn om je de verdeling van de Verenigde Staten in staten voor te stellen.

Hoewel elke staat (in dit geval een scherf) deel uitmaakt van de grotere Verenigde Staten (Ethereum-netwerk), hebben ze hun eigen specifieke regels, grenzen en subsets van populaties. Ze delen echter een universele taal en cultuur als onderdeel van hun grotere netwerk dat het land vormt.

Of nog beter, in de eigen woorden van Vitalik Buterin:

 “Stel je voor dat Ethereum is opgesplitst in duizenden eilanden. Elk eiland kan zijn eigen ding doen. Elk van de eilanden heeft zijn eigen unieke kenmerken en iedereen die op dat eiland hoort, d.w.z. de accounts, kan met elkaar communiceren EN ze kunnen vrijelijk genieten van al zijn functies. Als ze contact willen opnemen met andere eilanden, zullen ze een soort protocol moeten gebruiken. “

Zoals u kunt zien, zorgt het concept van het fragmenteren van het netwerk in efficiëntere stukken ervoor dat het netwerk kan functioneren als de som der delen, in plaats van te worden beperkt door de snelheid van elk afzonderlijk knooppunt..

Hoe werkt sharding in blockchains?

We zullen Ethereum hierin als voorbeeld blijven gebruiken, aangezien het de meest bekende en moeilijkste sharding-pogingen zijn in de blockchain-arena, aangezien de Ethereum-ontwikkelaars wat bekend staat als ‘state sharding’ implementeren..

De huidige staat van de Ethereum-blockchain staat bekend als de ‘globale staat’ en is wat iedereen kan zien als ze naar de blockchain kijken bij een specifiek exemplaar.

Het lastige bij het implementeren van sharding in Ethereum is dat door de knooppunten in kleinere subsets te splitsen, deze subsets in staat moeten zijn om specifieke sets transacties te verwerken en tegelijkertijd de status van het netwerk bij te werken, terwijl ze ervoor zorgen dat deze geldig is.

Sharding in Ethereum moet worden geïmplementeerd in een uitrol in twee fasen, meer dan waarschijnlijk nadat Proof of Stake in het netwerk is geïmplementeerd. De eerste fase is de datalaag die bestaat uit de consensus over welke gegevens in de shards zitten. Fase twee is de statuslaag. Dit alles is erg vloeiend, dus een algemeen overzicht van hoe het kan werken, staat hieronder.

Ethereum splitst het netwerk op in specifieke scherven. Elke shard krijgt een specifieke groep transacties toegewezen die wordt bepaald door specifieke accounts (inclusief slimme contracten) in een shard te groeperen. Elke transactiegroep heeft een koptekst en een hoofdtekst die uit het volgende bestaat.

Header

  • De shard-ID van de transactiegroep
  • Toewijzing van validators door middel van willekeurige steekproeven (verifieer de transacties in de shard)
  • State Root (staat van de merkle-root van de shard voor en na toegevoegde transacties)

Lichaam

  • Alle transacties die tot de transactiegroep behoren, die deel uitmaken van de specifieke shard.

Transacties zijn specifiek voor elke shard en vinden plaats tussen accounts die eigen zijn aan die shard.

Wanneer transacties zijn geverifieerd, verandert de toestand van het netwerk en worden rekeningsaldi, opslag, enz. Bijgewerkt. Om ervoor te zorgen dat de transactiegroep als geldig verifieert, moet de pre-state root van de transactiegroep overeenkomen met de shard-root in de globale staat. Als ze overeenkomen, wordt de transactiegroep gevalideerd en wordt de globale status bijgewerkt via de specifieke root-status van de Shard-ID.

In plaats van alleen een state root te bevatten, bevat elk blok van de Ethereum blockchain nu zowel een state root als de transactiegroep root. De transactiegroeproot is de merkle-root van alle transactiegroepen van de specifieke shards voor dat transactieblok.

Kortom, er is een merkle-root van alle verschillende shards die de bijgewerkte en geverifieerde transactiegroepen bevatten. Deze root wordt samen met de bijgewerkte state-root in de blockchain opgeslagen.

Het gebruik van merkle tree-concepten in deze structuur is essentieel om de validiteit van de blockchain te waarborgen. Als u begrijpt hoe een merkle-boom en specifiek een merkle-wortel werkt, kunt u deze concepten veel gemakkelijker begrijpen.

Wat is een Merkle Tree

Lezen: wat is een Merkle Tree ?

Consensus binnen een shard wordt bereikt via een Proof of Stake-consensus van willekeurig geselecteerde knooppunten die worden toegepast op een shard voor een specifieke consensusronde.

Dit biedt niet alleen finaliteit aan de consensus, die nodig is binnen de shards, maar biedt ook een specifieke verdediging tegen een aanval waarvoor een Proof of Work-blockchain in dit geval vatbaar zou zijn..

De hash-kracht die nodig is om een ​​specifieke shard in een PoW-shard-netwerk te overschrijden, wordt drastisch verminderd en de mogelijkheid voor een kwaadwillende actor om een ​​shard over te nemen door middel van rekenkracht is mogelijk.

Hierdoor zou de slechte actor andere shards kunnen aanvallen via het communicatieprotocol, wat een van de meer gecompliceerde en belangrijke kenmerken van sharding-architectuur is. Willekeurige bemonsteringsselectie van de validators in een shard slaagt erin dit type aanval te onderdrukken, omdat een slechte actor niet weet in welke shard ze worden geplaatst voordat ze er daadwerkelijk in worden geplaatst.

Verder zal willekeurige steekproeven worden gebruikt om de validators te selecteren die daadwerkelijk valideren uit die willekeurige validatieset.

Het communicatieprotocol is essentieel voor het correct functioneren van de sharding-architectuur in het systeem. U kunt het communicatieprotocol zien als de universele taal die consistent is tussen de staten als onderdeel van de grotere Verenigde Staten.

Het ontwerpen van dit protocol is echter een grote uitdaging en moet zo worden uitgevoerd dat het alleen wordt gebruikt wanneer dat nodig is. Het wordt nodig wanneer een specifiek knooppunt informatie nodig heeft die niet in zijn eigen shard is opgeslagen en de shard met de vereiste informatie moet vinden. Deze communicatie wordt cross-shard-communicatie genoemd.

De cross-shard communicatie wordt bereikt door het concept van transactieontvangsten toe te passen. De bon voor een transactie wordt opgeslagen in een merkle-root die gemakkelijk kan worden geverifieerd, maar die geen deel uitmaakt van de state-root.

De shard die een transactie van een andere shard ontvangt, controleert de merkle-root om er zeker van te zijn dat de bon niet is uitgegeven. In wezen worden de bonnen opgeslagen in een gedeeld geheugen dat kan worden geverifieerd door andere shards, maar niet kan worden gewijzigd. Daarom kunnen shards via een gedistribueerde opslag van bonnen met elkaar communiceren.

Sharding Vooruit

Sharding in Ethereum zal naar verwachting worden geïmplementeerd na de Casper PoS-upgrade. Onlangs daar zijn enkele ontwikkelingen geweest met betrekking tot Ethereum 2.0 waarbij zowel Casper als sharding wordt geïmplementeerd.

Sharding is ook geïmplementeerd in een paar andere platforms, met name Zilliqa. Zilliqa implementeert op dit moment echter geen state-sharding en richt zich in plaats daarvan op het bieden van een blockchain met hoge doorvoer door gebruik te maken van transactie- en computationele sharding..

ZilliqaLees onze Gids voor Zilliqa

Conclusie

Sharding dient om op dit moment een aantal veelbelovende oplossingen te bieden aan de olifant in de kamer van blockchain-platforms, schaalbaarheid.

Hoewel het bliksemnetwerk van Bitcoin zich in de testfase bevindt en tot nu toe veelbelovende vooruitgang heeft laten zien, brengt de oplossing van Ethereum enkele unieke uitdagingen met zich mee, aangezien het is gekoppeld aan een wereldcomputer die compleet is met Turing..

Sharding werkt alleen rechtstreeks op protocolniveau, dus voor de eindgebruiker of dapp-ontwikkelaar is het niet noodzakelijk relevant om meer te weten te komen over.

Hoe dan ook, de poging van Ethereum om de staat te sharden voor een enorm, gedecentraliseerd netwerk is een indrukwekkende onderneming en zal een enorme prestatie zijn als het met succes wordt geïmplementeerd.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me