Wat is sharden? Dit Ethereum-schaalconcept uitgelegd

As het schaaldebat in cryptocurrencies doorgaat, zijn sommige potentiële oplossingen al geruime tijd in ontwikkeling.

In het bijzonder in het geval van Ethereum, waar veel aandacht wordt besteed aan decentralisatie en veiligheid ten koste van schaalbaarheid, toepassing van sharding in combinatie met implementatie Bewijs van inzet consensus wordt gezien als het broodnodige mechanisme waarmee het netwerk kan schalen naar praktische niveaus voor toepassingen, terwijl de decentralisatie en veiligheid behouden blijft.

Sharding is een complex onderwerp, vooral wanneer het wordt toegepast op een gedecentraliseerd, peer-to-peer netwerk zoals Ethereum waar de globale status van het netwerk constant 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 optimalisatie van bedrijfsdatabases 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 wordt de database opgedeeld in kleine stukjes die "scherven" 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.
  • Zoals het geval is met 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, met name in Proof of Work-systemen zoals: Bitcoin en Ethereum, leidt dit tot legitieme schaalproblemen.

Ethereum-sharding

Met Ethereum als voorbeeld, een volledig knooppunt in de Ethereum netwerk slaat de volledige status van de blockchain op, inclusief rekeningsaldi, opslag en contractcode.

Helaas, aangezien het netwerk in een exponentieel tempo in omvang toeneemt, neemt de consensus alleen maar lineair toe. Deze beperking is te wijten aan de communicatie die nodig is tussen de knooppunten die nodig zijn om consensus te bereiken.

Nodes in het netwerk hebben geen speciale privileges en elke node in het netwerk slaat elke transactie op en verwerkt deze. Als gevolg hiervan worden in een netwerk ter grootte van Ethereum's problemen zoals hoge gaskosten en langere transactiebevestigingstijden merkbare problemen wanneer het netwerk onder druk staat. De netwerk is slechts zo snel als de afzonderlijke 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. Hierdoor kan het systeem veel transacties parallel verwerken, waardoor de doorvoer aanzienlijk wordt verhoogd.

Een eenvoudigere 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 wel een universele taal en cultuur als onderdeel van hun grotere netwerk dat het land vormt.

Of nog beter, in Vitalik Buterineigen woorden:

 “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 behoort, dwz 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, stelt het concept van het opsplitsen van het netwerk in efficiëntere stukken het netwerk in staat te functioneren als de som van zijn 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, omdat het de meest bekende en zware sharding-pogingen zijn in de blockchain-arena, aangezien de Ethereum-ontwikkelaars implementeren wat bekend staat als "staat sharding'.

De huidige staat van de Ethereum-blockchain staat bekend als de “wereldwijde staat” en is wat iedereen kan zien als ze naar de blockchain kijken bij een specifieke instantie.

Het lastige bij het implementeren van sharding in Ethereum is dat door de knooppunten in kleinere subsets te sharden, 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 het geldig is.

Sharding in Ethereum wordt verondersteld te worden geïmplementeerd in een uitrol in twee fasen, meer dan waarschijnlijk daarna Bewijs van inzet wordt uitgevoerd in de netwerk. Fase één is de gegevenslaag die bestaat uit de consensus over welke gegevens zich in de scherven bevinden. Fase twee is de staatslaag. Dit is allemaal erg vloeiend, dus hieronder staat een algemeen overzicht van hoe het kan werken.

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.

  • De shard-ID van de transactiegroep
  • Toewijzing van validators via willekeurige steekproef (verifieer de transacties in de shard)
  • State Root (status van de merkle-wortel van de scherf voor en na toegevoegde transacties)

Lichaam

  • Alle transacties die tot de transactiegroep behoren en 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 worden geverifieerd, verandert de status van het netwerk en worden rekeningsaldi, opslag, enz. bijgewerkt. Om ervoor te zorgen dat de transactiegroep als geldig wordt geverifieerd, moet de pre-state root van de transactiegroep overeenkomen met de Shard-root in de globale status. Als ze overeenkomen, wordt de transactiegroep gevalideerd en wordt de globale status bijgewerkt via de specifieke shard-ID-statusroot.

In plaats van alleen een statuswortel te bevatten, bevat elk blok van de Ethereum-blockchain nu zowel een statuswortel als de transactiegroepwortel. 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 statusroot in de blockchain opgeslagen.

Het gebruik van merkle tree-concepten in deze structuur is van vitaal belang om de geldigheid van de blockchain te waarborgen. Begrijpen hoe een merkle boom en specifiek een merkle-wortelwerk, kan je helpen deze concepten veel gemakkelijker te begrijpen.

Wat is een Merkle Tree?

Lezen: Wat is een Merkle-boom?

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

Dit geeft niet alleen finaliteit aan de consensus, die nodig is binnen de scherven, maar biedt ook een bepaalde verdediging tegen een aanval die een Bewijs van werk blockchain in dit geval vatbaar zou zijn.

De hashkracht die nodig is om een ​​specifieke shard in een PoW-sharded netwerk te overrompelen, wordt drastisch verminderd en de mogelijkheid voor een kwaadwillende actor om een ​​shard over te nemen door middel van rekenkracht is haalbaar.

Hierdoor kan de slechte actor andere shards aanvallen via het communicatieprotocol, dat een van de meer gecompliceerde en belangrijke kenmerken van sharding-architectuur is. Willekeurige steekproefselectie van de validators binnen een shard slaagt erin om 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 zullen willekeurige steekproeven worden gebruikt om de validators te selecteren die werkelijk valideren uit die willekeurige validatieset.

Het communicatieprotocol is essentieel voor het correct functioneren van de sharding-architectuur in het systeem. Je 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 zeer uitdagend en moet zo worden uitgevoerd dat het alleen wordt gebruikt wanneer dat nodig is. Het wordt noodzakelijk 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 staat bekend als cross-shard-communicatie.

De cross-shard-communicatie wordt bereikt door het concept van transactiebonnen toe te passen. Het ontvangstbewijs voor een transactie wordt opgeslagen in een merkle-wortel die gemakkelijk kan worden geverifieerd, maar die geen deel uitmaakt van de staatswortel.

De scherf die een transactie van een andere scherf 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 door andere shards kan worden geverifieerd, maar niet kan worden gewijzigd. Door een gedistribueerde opslag van bonnen kunnen shards daarom met elkaar communiceren.

Sharding gaat vooruit

Sharding in Ethereum zal naar verwachting worden geïmplementeerd na de Casper PoS-upgrade. Onlangs is er zijn er enkele ontwikkelingen geweest met betrekking tot Ethereum 2.0 waarbij het gaat om het implementeren van beide Casper en scherven.

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 biedt op dit moment een aantal veelbelovende oplossingen voor 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 geboekt, brengt de oplossing van Ethereum enkele unieke uitdagingen met zich mee, aangezien het wordt gezien als een wereldcomputer die Turing compleet is.

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

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

Bron: https://blockonomi.com/sharding/