Sharding - KamilTaylan.blog
4 Maggio 2021 0:27

Sharding

Cos’è lo sharding?

Lo sharding è una tecnica di partizionamento del database utilizzata dalle società blockchain con lo scopo di scalabilità, consentendo loro di elaborare più transazioni al secondo. Lo sharding divide l’intera rete di una società blockchain in partizioni più piccole, note come “frammenti”. Ogni frammento è composto dai propri dati, rendendolo distintivo e indipendente rispetto ad altri frammenti.

Lo sharding può aiutare a ridurre la latenza o la lentezza di una rete poiché divide una rete blockchain in frammenti separati. Tuttavia, ci sono alcuni problemi di sicurezza relativi al partizionamento orizzontale in cui i frammenti possono essere attaccati.

Punti chiave

  • Lo sharding è una tecnica di partizionamento del database considerata dalle reti blockchain e testata da Ethereum.
  • Più utenti assumono le reti blockchain, più lenta diventa la rete, portando a una latenza significativa.
  • Lo sharding può migliorare la latenza di rete suddividendo una rete blockchain in frammenti separati, ciascuno con i propri dati, separati dagli altri frammenti.
  • I problemi di sicurezza che circondano lo shard includono un hack o un furto di shard, in cui uno shard ne attacca un altro, con conseguente perdita di informazioni.

Capire lo sharding

Le reti blockchain e le loro rispettive criptovalute stanno guadagnando popolarità grazie all’ampia applicazione della tecnologia, che include la gestione della catena di approvvigionamento e le transazioni finanziarie. Con la crescita della popolarità della blockchain, cresce anche il carico di lavoro e il volume delle transazioni gestiti dalla rete. Se pensiamo a una blockchain come a un database condiviso, man mano che vengono aggiunti sempre più dati, la rete deve trovare nuovi modi per essere in grado di elaborare tutti quei dati in modo efficiente e rapido, ed è qui che lo sharding può essere d’aiuto.

Libro mastro distribuito

Il registro distribuito della tecnologia blockchain lo rende attraente poiché consente di condividere consensualmente le transazioni su più siti e aree geografiche. Man mano che le transazioni vengono registrate, le copie vengono inviate alla rete condivisa in pochi secondi creando “testimoni” pubblici. Se una parte della rete è vittima di una frode o di un attacco dannoso, i partecipanti alla rete condivisa possono identificare ciò che è stato modificato dai truffatori poiché mantengono tutti una copia delle transazioni del libro mastro. Di conseguenza, la tecnologia blockchain e il suo sistema di registro distribuito possono aiutare a ridurre le frodi e limitare i danni da attacchi informatici, come un hack.

Scalabilità

Tuttavia, una delle maggiori sfide con la tecnologia blockchain è che quando vengono aggiunti ulteriori computer alla rete e vengono elaborate più transazioni, la rete può impantanarsi, rallentando il processo, chiamato latenza. La latenza è un ostacolo all’adozione della blockchain per un uso diffuso, in particolare se paragonata agli attuali sistemi di pagamento elettronico che funzionano in modo rapido ed efficiente. In altre parole, la scalabilità è una sfida per la blockchain poiché le reti potrebbero non essere in grado di gestire la maggiore quantità di dati e il flusso di transazioni poiché sempre più industrie adottano la tecnologia.

Una delle soluzioni prese in considerazione per creare scalabilità senza latenza è il processo di partizionamento orizzontale. Lo sharding è progettato per distribuire il carico di lavoro di una rete in partizioni, il che può aiutare a ridurre la latenza e consentire l’elaborazione di più transazioni dalla blockchain.



Tre caratteristiche che le reti blockchain cercano di impiegare sono decentralizzazione, scalabilità e sicurezza.

Come si ottiene lo sharding

Prima di esplorare come viene realizzato lo sharding all’interno di una rete blockchain, è importante rivedere il modo in cui i dati vengono attualmente archiviati ed elaborati.

Nodi Blockchain

Attualmente, nella blockchain, ogni nodo di una rete deve elaborare o gestire tutti i volumi di transazioni all’interno della rete. I nodi in una blockchain sono indipendenti e sono responsabili del mantenimento e dell’archiviazione di tutti i dati all’interno di una rete decentralizzata. In altre parole, ogni nodo deve memorizzare informazioni critiche, come i saldi dei conti e la cronologia delle transazioni. Le reti blockchain sono state stabilite in modo che ogni nodo debba elaborare tutte le operazioni, i dati e le transazioni sulla rete.

Sebbene garantisca la sicurezza di una blockchain archiviando ogni transazione in tutti i nodi, questo modello rallenta notevolmente l’elaborazione delle transazioni. Le basse velocità per l’elaborazione delle transazioni non promettono nulla di buono per un futuro in cui la blockchain diventa responsabile di milioni di transazioni.

Lo sharding può aiutare poiché partiziona o distribuisce il carico di lavoro transazionale da una rete blockchain in modo che ogni nodo non debba gestire o elaborare tutto il carico di lavoro della blockchain. In un certo senso, il partizionamento orizzontale suddivide il carico di lavoro in partizioni o frammenti.

Partizionamento orizzontale

Il partizionamento può essere ottenuto tramite il partizionamento orizzontale dei database tramite la divisione in righe. I frammenti, come vengono chiamate le righe, sono concettualizzati in base alle caratteristiche. Ad esempio, un frammento potrebbe essere responsabile della memorizzazione dello stato e della cronologia delle transazioni per un tipo specifico di indirizzo. Inoltre, potrebbe essere possibile dividere i frammenti in base al tipo di risorsa digitale in essi archiviata. Le transazioni che coinvolgono tale risorsa digitale potrebbero essere rese possibili attraverso una combinazione di frammenti.

Ad esempio, si consideri una transazione immobiliare in affitto in cui sono coinvolti più frammenti. Questi frammenti corrispondono a diverse entità coinvolte nella transazione, dal nome del cliente alle chiavi digitali configurate in una serratura intelligente che viene messa a disposizione del noleggiatore al momento del pagamento dell’affitto.

Shard Sharing

Ogni frammento può ancora essere condiviso tra gli altri frammenti, il che mantiene un aspetto chiave della tecnologia blockchain: il registro decentralizzato. In altre parole, il libro mastro è ancora accessibile a tutti gli utenti consentendo loro di visualizzare tutte le transazioni contabili.

Sharding e sicurezza

Uno dei problemi principali nella pratica che è emersa è la sicurezza. Sebbene ogni frammento sia separato e elabori solo i propri dati, esiste un problema di sicurezza relativo al danneggiamento dei frammenti, in cui un frammento prende il sopravvento su un altro, con conseguente perdita di informazioni o dati.

Se pensiamo a ogni frammento come alla propria rete blockchain con i suoi utenti e dati autenticati, un hacker o tramite un attacco informatico potrebbe prendere il controllo di un frammento. L’autore dell’attacco potrebbe quindi introdurre transazioni false o un programma dannoso.

Ethereum, una delle più importanti società di blockchain, è in prima linea nel testare lo sharding come possibile soluzione ai problemi di latenza e scalabilità. Ethereum ha combattuto il potenziale di un attacco di frammenti assegnando casualmente nodi a determinati frammenti e riassegnandoli costantemente a intervalli casuali. Questo campionamento casuale renderebbe difficile per gli hacker sapere quando e dove corrompere un frammento.

Inoltre, è importante notare che lo sharding è ancora nella prima fase di test per essere utilizzato per le reti blockchain. Di conseguenza, tutti i potenziali problemi e sfide devono ancora essere risolti.