Blockchain Sharding

La tecnologia Blockchain ha cambiato profondamente il nostro modo di valutare e pensare al denaro sin dall’invenzione di Bitcoin. La Blockchain è emersa come uno dei fascinosi sviluppi tecnologici del XXI secolo e un’infrastruttura altamente apprezzata, catturando l’attenzione di molti e generando un significativo interesse in svariate industrie.

Questo sentimento è principalmente motivato dal desiderio innato di creare e partecipare a una rivoluzione alla scala dell’inizio di Internet negli anni ’80 e ’90. Mentre Internet ha dato il via al mondo delle comunicazioni online, la Blockchain è una pioniera in nuove forme di creazione di ricchezza attraverso reti di dati e asset digitali.

Per fornire servizi di registro e contratti intelligenti alle applicazioni, anche note come applicazioni decentralizzate, queste reti costituiscono il loro rigoroso e decentralizzato ecosistema tecnico. E, inoltre, per facilitare lo sviluppo di queste app e dare agli utenti un maggiore controllo sulle proprie finanze e dati online, è stata creata Ethereum, la seconda criptovaluta più preziosa.

L’incubo peggiore per qualsiasi registro distribuito è la mancanza di scalabilità. Molte reti decentralizzate mirano a presentare una singola risposta a un problema delicato. Lo sharding è un’idea innovativa che potrebbe finalmente risolvere il problema della scalabilità preservando al contempo la natura decentralizzata delle Blockchain.

Questo articolo spiegherà cos’è il Blockchain sharding, come funziona, la sua importanza, gli utilizzi e fornirà esempi per consentire ai lettori di avere una conoscenza approfondita dell’argomento.

Cos’è il Blockchain Sharding?

Lo sharding è il metodo di partizionamento dei database utilizzato dalle organizzazioni Blockchain per aumentare la scalabilità e consentire a tali organizzazioni di effettuare un grande numero di transazioni in pochi secondi. È semplicemente il processo di separare o suddividere l’intera rete di un’organizzazione Blockchain in componenti più piccole chiamate “shards“. Ciascuno di questi shard è unico e indipendente dagli altri perché contiene dati unici.

Come funziona il Blockchain Sharding

Utilizzando la rete Ethereum come esempio, un nodo completo memorizza lo stato della Blockchain, compresi i saldi degli account, lo spazio di archiviazione e il codice dei contratti. Purtroppo, il consenso cresce solo in modo lineare mentre la rete cresce in modo esponenziale. Questa limitazione deriva dall’interazione tra i nodi necessari per raggiungere un consenso.

Ogni nodo di rete memorizza ed elabora ogni transazione senza privilegi aggiuntivi. Di conseguenza, quando la rete è sovraccarica, le dimensioni di Ethereum, problemi come i costi elevati del gas e i tempi di conferma delle transazioni prolungati si manifestano come problemi evidenti. Non è veloce come la somma delle sue parti, ma solo quanto i singoli nodi.

Lo sharding offre una soluzione intrigante ma impegnativa che aiuta a risolvere questi problemi. L’idea è quella di dividere diversi nodi in shard, ciascuno dei quali elabora transazioni uniche per quel shard. Ciò consente al sistema di elaborare numerose transazioni contemporaneamente, migliorandone significativamente le prestazioni.

Immagina come gli Stati Uniti sarebbero divisi in stati per rendere la dichiarazione più comprensibile. Nonostante facciano parte del più ampio Stati Uniti (la rete Ethereum), ogni stato (o shard in questo caso) ha le sue leggi, restrizioni e subset di popolazione distinti. Ma, facendo parte della rete più estesa che comprende la nazione, sono uniti da una lingua e una cultura comuni.

Considera una divisione di Ethereum in migliaia di isole. Ogni isola può perseguire i propri obiettivi. Ogni isola ha caratteristiche uniche, e tutti gli account associati a quella isola sono liberi di utilizzare tutte le sue funzionalità e interagire tra loro. Devono seguire il protocollo se vogliono comunicare con altre isole.

Come si può vedere, la segmentazione della rete in parti più efficaci consente alla rete di funzionare come un tutto anziché essere vincolata dalla velocità di ogni nodo.

Blockchain Sharding

Perché è importante il Blockchain Sharding

Poiché gli sviluppatori di Ethereum stanno implementando quello che è noto come “state sharding“, ne faremo uso come esempio in questa discussione perché è il tentativo di sharding più conosciuto e impegnativo nello spazio delle Blockchain.

Lo “stato globale” della Blockchain Ethereum, che è ciò che tutti possono vedere quando guardano la Blockchain in un’istanza particolare, è lo stato attuale della Blockchain. L’aspetto impegnativo dell’implementazione dello sharding su Ethereum è che suddividendo i nodi in gruppi più piccoli, questi gruppi devono essere in grado di elaborare insiemi specifici di transazioni, aggiornare lo stato della rete e garantire che queste transazioni siano valide.

Lo sharding su Ethereum è pianificato per essere lanciato in due fasi, probabilmente a seguito del lancio di Proof-of-Stake.

La prima fase sarà il livello dei dati, che includerà un consenso su quali dati sono nei shard. Il secondo livello è il livello dello stato. Di seguito è riportata una spiegazione generale di come può funzionare perché è molto semplice.

La rete viene suddivisa in shard diversi da Ethereum. Unendo account specifici (inclusi contratti intelligenti) in shard, a ciascun shard viene assegnato un gruppo specifico di transazioni. Di seguito sono riportati i contenuti dell’intestazione e del corpo di ciascun gruppo di transazioni;

  • L’ID frammento del gruppo di transazioni;
  • Assegnazione di validatori tramite campionamento casuale (verifica delle transazioni nel frammento)
  • Tutte le transazioni fanno parte del gruppo di transazioni specifico dello shard;

Le transazioni specifiche di ciascuno shard avvengono tra account nativi di quel shard.

Lo stato della rete cambia, e i saldi degli account, lo spazio di archiviazione e altre informazioni vengono aggiornati quando le transazioni vengono verificate. La radice predefinita del gruppo di transazioni deve coincidere con la radice dello shard nello stato globale affinché sia verificata come valida. Il gruppo di transazioni è verificato se lo fa, e l’ID frammento specifico aggiorna lo stato globale.

Sulla Blockchain Ethereum, ogni blocco include la radice del gruppo di transazioni e la radice dello stato anziché dello stato. La radice del gruppo di transazioni è la radice Merkle di tutti i gruppi di transazioni dei singoli shard per quel blocco di transazioni.

Albero di Merkle usato nella Blockchain Sharding
Albero di Merkle: crediti Wikipedia

In sostanza, i gruppi di transazioni aggiornati e verificati sono contenuti in una radice Merkle di tutti i vari shard. Questa radice e la radice dello stato aggiornato sono entrambi conservati sulla Blockchain.

Questo framework deve incorporare concetti di albero di Merkle per garantire la validità della Blockchain. Puoi comprendere questi concetti in modo molto più rapido e facile se capisci come funziona un albero di Merkle e, più specificamente, una radice di Merkle.

Un consenso di proof-of-stake viene raggiunto all’interno di uno shard mediante nodi scelti casualmente che applicano allo shard per una particolare round di consenso.

Ciò non solo offre finalità al consenso, che è richiesta all’interno degli shard, ma fornisce anche una difesa specifica contro un attacco che, in questo scenario, una Blockchain di proof-of-work sarebbe vulnerabile.

In una rete sharded di proof-of-work, la quantità di potenza hash necessaria per attaccare uno shard specifico è drasticamente ridotta, rendendo possibile per un attore malintenzionato prendere il controllo di uno shard utilizzando la potenza computazionale.

Uno degli aspetti più complicati e cruciali dell’architettura di sharding, il protocollo di comunicazione, potrebbe quindi essere utilizzato dalla parte malintenzionata per attaccare altri shard.

Questo attacco è impedito dalla scelta casuale di campioni da parte dei validatori all’interno di uno shard perché un attore malintenzionato non saprà su quale shard sta atterrando prima di farlo.

Inoltre, da quel set di convalida casuale, i validatori che stanno convalidando saranno scelti tramite campionamento casuale.

L’architettura di frammentazione deve funzionare correttamente nel sistema affinché il protocollo di comunicazione sia efficace. Il protocollo di comunicazione può essere paragonato alla lingua comune utilizzata da tutti gli stati che compongono i più ampi Stati Uniti.

Non è facile progettare questo protocollo, però, e deve essere fatto in modo che venga utilizzato solo quando necessario. Diventa necessario quando un nodo specifico ha bisogno di informazioni che non sono conservate nel suo shard e deve individuare lo shard che contiene i dati necessari. La comunicazione tra frammenti è il termine utilizzato per descrivere questo scambio.

Le ricevute di transazione vengono utilizzate per implementare la comunicazione tra shard. Una radice Merkle, che è facilmente verificabile ma non fa parte della radice dello stato, è dove viene conservata la ricevuta di una transazione.

Controllando la radice Merkle, lo shard che riceve una transazione da un altro shard si assicura che la ricevuta non sia già stata spesa. Le ricevute sono essenzialmente conservate in una memoria condivisa che può essere controllata, ma non modificata, dagli altri shard. Pertanto, gli shard possono comunicare tra loro attraverso una memorizzazione distribuita delle ricevute.

A cosa serve il Blockchain Sharding

Il principale scopo dello sharding per una Blockchain è aumentare la scalabilità. Poiché le transazioni possono essere elaborate e convalidate più rapidamente, è necessario meno tempo. Grazie a ciò, la rete sarà in grado di gestire più transazioni al secondo.

L’implementazione dello sharding riduce anche la possibilità di centralizzazione della rete. Attualmente, per supportare tutte le informazioni elaborate in queste reti, le Blockchain di Bitcoin ed Ethereum richiedono l’uso di apparecchiature con elevate capacità di calcolo. Apparecchiature con elevati costi di acquisizione potrebbero essere accessibili solo a pochi utenti.

Grazie all’implementazione dello sharding, non sarà necessario memorizzare l’intera Blockchain in un singolo nodo, eliminando la necessità di acquistare hardware costoso. Ciò garantirebbe che quest’ultimo sia decentralizzato consentendo a molte più persone di utilizzare il proprio hardware convenzionale per partecipare alla rete.

Esempi di Blockchain Sharding

  1. Polkadot Parachain

Polkadot Parachain è una interessante proposta tra i progetti Blockchain Sharding. È un approccio pratico allo sharding del database trasmesso e fornisce un punto di vista più specifico sulla Blockchain. Il parachain si riferisce a una versione semplificata della Blockchain, che si affilia alla sicurezza fornita da una relay chain. Una delle caratteristiche significative del parachain riguarda la natura indipendente dei calcoli. Sistemi generalizzati di contratti intelligenti Turing-complete potrebbero avere difficoltà a individuare conflitti tra transazioni. Al contrario, la formulazione di limiti definiti tra parachain potrebbe aiutare a implementarli con successo senza difficoltà. Inoltre, lo sharding della Blockchain di Polkadot con parachain altamente specializzati potrebbe aiutare a raggiungere un obiettivo importante. Ad esempio, i parachain possono contribuire a risolvere efficacemente le attività di transazione e l’archiviazione dei dati per un problema specifico.

  1. Near Blockchain

Near Blockchain è un perfetto esempio di comprensione di cosa sia lo sharding nelle Blockchain. Oltre a mantenere basso il carico sui client, si è concentrato sulla costruzione del framework per transazioni cross-shard in tempo reale. Qualsiasi dispositivo di bassa gamma può eseguire un nodo e partecipare alla rete grazie alla Blockchain.

Di conseguenza, una parte delle transazioni può essere elaborata anche dal dispositivo di bassa gamma. La Blockchain con Proof of Stake sharded offre una maggiore scalabilità e consente ai nodi di operare su dispositivi di bassa gamma. Di conseguenza, lo sharding della rete può renderla accessibile a numerosi dispositivi aggiuntivi, migliorando la velocità della Blockchain.

Oltre ai vantaggi dello sharding, la Blockchain NEAR deve affrontare problemi di validità e accessibilità dei dati. I blocchi devono includere una prova valida che chiunque può verificare per confermare l’integrità del blocco.

I validatori della rete si assumono la responsabilità di garantire l’accessibilità della prova. D’altra parte, è difficile dimostrare un fallimento nella consegna di un messaggio senza un trasferimento on-chain del messaggio. Per risolvere tali problemi, è possibile esplorare alternative come infrastrutture e governance centralizzate.

Homepage di Near
Homepage di Near
  1. Ethereum Beacon Chain

Le incertezze riguardo a “lo sharding è utile per le Blockchain?” possono trovare una risposta appropriata nella Beacon Chain di Ethereum. È interessante notare che la Beacon Chain è un punto saliente della roadmap di Ethereum 2.0. Il sistema Casper Proof of Stake della Beacon Chain di Ethereum, di recente sviluppo, utilizza la Beacon Chain come “catena principale”.

La Beacon Chain è stata progettata specificamente per compiti impegnativi come l’elaborazione di crosslinks e il monitoraggio dei validatori attivi, in coda e inattivi. Insieme al dispositivo di finalità, contribuisce all’elaborazione del consenso block-by-block di Ethereum.

La Beacon Chain gestisce le altre catene shard e il protocollo Proof of Stake. Di seguito sono riportati alcuni degli usi notevoli della Beacon Chain:

  • Gestione dei validatori e delle scommesse che interessano loro
  • Applicazione di linee guida basate sul consenso
  • Raggruppamento dei validatori in varie commissioni per votare sui blocchi proposti
  • Assegnazione di ricompense e sanzioni ai validatori
  • Selezione del proponente del blocco appropriato per ogni shard
  • Facilita le transazioni tra gli shard e agisce come punto di ancoraggio dove gli shard registrano i loro stati.

Conclusioni

Lo sharding offre alcune soluzioni promettenti al problema di scalabilità attualmente affrontato dalle piattaforme Blockchain.

Mentre la fase di test della rete Lightning di Bitcoin ha prodotto risultati molto incoraggianti, la soluzione di Ethereum presenta alcune difficoltà uniche poiché è considerata un computer mondiale Turing completo.

Lo sharding funzionerà solo direttamente a livello di protocollo, quindi potrebbe non essere necessario che l’utente finale o lo sviluppatore di dapp ne sia consapevole.

In ogni caso, il tentativo di Ethereum di suddividere lo stato di una rete decentralizzata di dimensioni considerevoli è impressionante e, se riuscito, sarà un grande successo.

A presto,

Scaling Parrots

Blockchain Sharding

Condividi questo articolo

Consulenza gratuita blockchain, attivi dal 2018, 40+ progetti, 20+ membri del team, 5 stelle su google reviews, bottone per richiedere una consulenza