Bitecoin » Ethereum Sharding: che cos’è e come funziona

Share This Post

Guida

Ethereum Sharding: che cos’è e come funziona

Ethereum ha avuto il suo miglior anno nel 2017. L’utilizzo dei contratti intelligenti con piattaforma è stato enorme, con un numero record di ICO che hanno raccolto miliardi di dollari e il prezzo del token Ether (ETH) che sale del 9800% in valore. Tuttavia, Ethereum è ancora agli inizi e gli ICO sono ancora il principale caso di utilizzo della tecnologia. Poiché ci sono così tanti ICO che sono in esecuzione su Ethereum ora, la rete sta elaborando 750.000 transazioni al giorno. In confronto, Bitcoin sta elaborando solo 230.000 transazioni al giorno. Questo utilizzo sta rallentando la rete che la congestiona e rendendola costosa da utilizzare nelle ore di punta, il che solleva la questione del ridimensionamento.

Ci sono molti modi per ridimensionare una blockchain. Alcune delle tecnologie di scalatura per Ethereum sono Sharding (on-chain), Raiden, Plasma e GoNetwork (off-chain). Qui mi concentrerò su Sharding come parte dello sviluppo in scala della catena di Ethereum.

Un frammento viene utilizzato nell’architettura del database e “è una partizione orizzontale di dati in un database o motore di ricerca”. Un “frammento” è chiamato la singola partizione. Lo scopo di avere frammenti è di distribuire il carico perché ogni frammento può essere tenuto su un hardware separato. Sharding viene utilizzato per la scalabilità orizzontale , aumentando la capacità collegando più entità per “lavorare come una singola unità logica”.

Questa tecnologia migliora notevolmente le prestazioni dei database poiché la distribuzione dei dati e dei calcoli avviene su un numero elevato di macchine. I dati rimangono presenti in tutti i frammenti ma alcuni dati possono apparire solo in un singolo frammento.

Tuttavia, alcuni dei problemi legati allo sharding includono una maggiore dipendenza dall’interconnettività tra i server e un’elevata latenza durante l’esecuzione di query. Inoltre, il sharding è una cosa complessa da fare ed è spesso inflessibile .

Problema del nodo completo in Ethereum

I nodi completi memorizzano tutti gli stati della blockchain ed elaborano tutte le transazioni. Uno stato è l’insieme di informazioni che descrive un sistema in un dato momento. In Ethereum, lo stato è l’attuale bilanciamento degli indirizzi, contratti intelligenti, codici di output, archiviazione e nonces. Con ogni nuova transazione, questo stato si trasforma in uno stato completamente nuovo.

Nel caso di Ethereum, ogni nodo completo deve eseguire tutti i calcoli ed eseguire ogni contratto intelligente che sia mai stato creato e aggiornare lo stato sul disco. Ciò crea una situazione problematica in cui per eseguire un nodo completo Ethereum richiede molta potenza di risorse (spazio su disco, larghezza di banda, I / O su disco). La sincronizzazione di un intero nodo con l’utilizzo di un HDD è impossibile perché la velocità del disco è troppo lenta per raggiungere lo stato attuale del blockchain. Per eseguire un nodo completo, è necessario utilizzare un SSD che non sia economico.

Sharding in Ethereum

L’idea di sharding è che alcuni dei nodi possono fare qualche calcolo. I calcoli sono suddivisi in più parti. Pertanto, lo stato della blockchain è diviso in diversi domini, chiamati shard. Ogni frammento contiene il proprio stato indipendente e la cronologia delle transazioni. Questo sistema è come una rete di mini-blockchain che hanno una propria rete di nodi che elabora le transazioni solo per il frammento specifico. L’obiettivo è di rilassare parte del carico sul sistema consentendo una maggiore velocità di elaborazione delle transazioni su tutti i frammenti.

Questi blocchi separati (shard) ereditano tutte le stesse caratteristiche di sicurezza e il consenso della blockchain principale. Non esiste un consenso indipendente separato per ogni frammento.

Le premesse fondamentali del sharding sono che mini blockchain separati possono scalare meglio perché esistono per uno scopo specifico. In questo modo il carico di lavoro non è concentrato su una sola catena.

Contratto Manager Validator

All’interno del mainchain ci sarà un Validator Manager Contract (VMC) che verrà eseguito su un consenso Proof of Stake che sarà responsabile della creazione del blocco sharding. Gestirà i diritti dei creatori di blocchi in ogni frammento (chiamato anche regole di confronto) e terrà traccia dei validatori. Il VMC fungerà da client leggero per la comunicazione tra i frammenti e il mainchain e tra i frammenti stessi.

In un secondo momento, il mainchain passerà completamente a una prova completa di palo. Nel frattempo, ogni frammento deve funzionare sotto Prova di palo tramite il VMC. Il quadro generale è quello di avere un frammento principale che si concentrerà sulla sicurezza, mentre i nuovi frammenti si concentreranno sulla distribuzione di nuove funzionalità.

Critica di Sharding

Una delle principali preoccupazioni di Sharding è il timore che creerebbe un’ulteriore centralizzazione della rete di nodi in Ethereum e non risolverà il problema di sincronizzazione.

La situazione attuale in Ethereum è che le persone normali sono in grado di eseguire solo nodi leggeri (convalidando solo le intestazioni dei blocchi) e non i nodi completi (convalidare nuovi blocchi e verificare le transazioni) a causa dei problemi già citati con la sincronizzazione. La convalida delle intestazioni non è la convalida del blocco. Solo i data center saranno in grado di eseguire interi nodi che contengono il record completo della blockchain (avere una copia completa del blocco originale genesis). I nodi luminosi dovranno fidarsi di quei data center.

Con Sharding in Ethereum, le prospettive della rete dei nodi cambieranno. Non ci saranno nodi completi che fanno tutto. Invece, in ogni catena di shard, ci saranno nodi di validazione completi (nodi shard) che convalideranno i nuovi blocchi e verificheranno le transazioni all’interno di un frammento specifico e convalidano solo le intestazioni di altri shard. E ci saranno i nodi luminosi che convalideranno solo le intestazioni di diversi frammenti e le intestazioni all’interno di un frammento specifico.

Più specificamente, il diverso tipo di nodi nel nuovo Ethereum sarà simile a questo.

  • I nodi Collator eseguono le regole di confronto (blocco) e quindi lo presentano ai nodi Executor per “eseguire”.
  • I nodi Executor convalidano le transazioni e calcolano i contratti all’interno di ogni confronto.
  • I nodi luminosi controllano le transazioni e non hanno alcun potere sulla validità delle transazioni.

La maggior parte delle persone sarà ancora in grado di eseguire nodi leggeri nel nuovo Ethereum. Il problema con l’esecuzione di nodi completi continuerà comunque. I nodi completi nel nuovo Ethereum saranno chiamati nodi Executor che saranno ancora difficili da mantenere da parte delle persone normali. L’aspetto dell’accentramento non è affrontato con il sharding. Se le persone stanno bene affidandosi a validatori centralizzati, possono forse fare meglio scegliendo altri blockchain centralizzati come NEO o EOS. Non cercano di affermare di essere decentralizzati come fa Ethereum.

Sharding è una tecnologia all’avanguardia che risolverebbe alcuni dei problemi di scala in Ethereum, ma è ancora nascente.

L’implementazione di Sharding richiederà diversi anni. La possibilità di vedere una sorta di alfa nel 2018 è molto sottile. Nel 2018 potrebbero esserci altre specifiche e ricerche scritte, ma una vera e propria implementazione che altri sviluppatori potranno utilizzare sarà probabilmente vista nel 2019. L’implementazione potrebbe avvenire in qualche futuro di Ethereum dopo la forcella Serenity.

Sostieni Bitecoin.it  Fai una donazione a Bitecoin a questo ID
Bitcoin: 17MPuHAmXNfssHGrWmZ7x2tbds9ftPa5Ed
Ethereum: 0x004bd1E5F5d37E84Be12CE17E01cCaf2b142152f
Bitcoin Cash: qrm2m9pm3zqd42y0edwyfmeewkl45kfc5gdcm2ap65  Litecoin: MVxxBdU8yPkQFfAzgHHPQ22M9AWyQok5Pv

oppure via Paypal qui:


Faccelo sapere in Live Post in homepage con @sostienibitecoin
0

Share This Post

Leave a Reply