Perché la Scalabilità Lineare è il Santo Graal di Web3 Oggi e Come Shardeum la Realizza?
Table of contents
- Cos'è la Scalabilità Lineare?
- Come Funziona la Scalabilità Lineare?
- Esempi di Scalabilità Lineare
- 1.Calcolo Distribuito
- 2. Cloud Computing
- 3. Virtualizzazione
- Factors Affecting Linear Scalability
- 1.Limitazioni Tecniche
- 2.Latenza di Rete
- 3.Progettazione dell'Applicazione
- Raggiungere una Vera Scalabilità Lineare
Nel mondo di oggi, la scalabilità lineare è un concetto critico che le organizzazioni devono comprendere per soddisfare le esigenze di un universo di dati e utenti in continua crescita e cambiamento. La scalabilità lineare rappresenta la capacità di un sistema o di un'applicazione di aggiungere risorse in modo tale che la sua capacità cresca linearmente. Conoscendo il funzionamento della scalabilità lineare e i fattori che la influenzano, le organizzazioni possono utilizzare sistemi in grado di gestire più lavoro in modo affidabile e prevedibile.
Cos'è la Scalabilità Lineare?
La scalabilità lineare è una proprietà di un sistema o di un'applicazione che consente di gestire un maggior carico di lavoro aggiungendo più macchine/server/nodi in modo proporzionale all'aumento del lavoro. Tipicamente, un sistema linearmente scalabile è in grado di gestire il doppio del carico di lavoro quando le sue risorse vengono raddoppiate, e il triplo del carico di lavoro quando le risorse vengono triplicate, e così via.
Questo si differenzia dalla scalabilità verticale, dove una rete può espandersi aggiungendo più potenza (CPU, RAM) alle macchine esistenti. In questo caso, le risorse aggiunte non sempre comportano un aumento delle prestazioni nella stessa proporzione. Ad esempio, un sistema che non è linearmente scalabile potrebbe vedere solo un lieve miglioramento delle prestazioni dopo un certo punto, oppure potrebbe manifestare rendimenti decrescenti, dove l'aggiunta di ulteriori risorse comporta miglioramenti iniziali ma rallenta nel tempo e con l'aumento del carico.
La scalabilità lineare nella blockchain è fondamentale per i sistemi che gestiscono carichi di lavoro ampi e in crescita. Consente alle reti di aggiungere risorse per soddisfare la crescente domanda mantenendo al contempo prestazioni stabili ed efficienti.
Come Funziona la Scalabilità Lineare?
La scalabilità lineare consente a un sistema di gestire un carico di lavoro maggiore in base alle risorse aggiunte. Ciò significa che se il sistema è progettato per essere linearmente scalabile, le sue prestazioni saranno ottimali e costanti, indipendentemente dal numero di risorse utilizzate. Aggiungendo risorse migliori e più numerose al sistema, è in grado di gestire più utenti ed elaborare più dati senza rallentamenti.
Per raggiungere la scalabilità lineare nella blockchain, è necessario configurare il sistema in modo che le risorse possano essere aggiunte o rimosse rapidamente senza causare tempi di inattività o altri problemi. Questo può essere realizzato mediante l'utilizzo di sistemi distribuiti, bilanciamento del carico, frammentazione e altri metodi che rendono possibile l'aggiunta di risorse al volo.
Esempi di Scalabilità Lineare
1.Calcolo Distribuito
Quando un insieme di compiti viene distribuito su più macchine e ognuna di esse collabora per raggiungere l'obiettivo comune, questo metodo di calcolo è noto come 'calcolo distribuito'. La scalabilità viene raggiunta in un sistema di calcolo distribuito aggiungendo risorse su richiesta. Fondamentalmente, anche se raddoppi il numero di computer o server che lavorano su un compito, il tempo necessario per completare il compito rimarrà costante.
2. Cloud Computing
Si tratta di uno stile di calcolo che utilizza la riserva di risorse di calcolo condivise di un fornitore di servizi terzi, come archiviazione dati, potenza di elaborazione e memoria. Consente alle aziende di adattarsi rapidamente e facilmente ai carichi di lavoro variabili aggiungendo o rimuovendo risorse secondo necessità.
3. Virtualizzazione
Che si tratti di un sistema operativo, un server o un'intera rete, la virtualizzazione crea una copia digitale dell'originale. L'ambiente virtualizzato può espandersi per gestire carichi di lavoro più pesanti aggiungendo risorse aggiuntive su richiesta.
Factors Affecting Linear Scalability
Nonostante la sua adattabilità e scalabilità, diversi fattori possono limitare la scalabilità lineare. I principali includono:
1.Limitazioni Tecniche
Anche i sistemi linearmente scalabili hanno dei limiti hardware. Le risorse non aumentano la produttività in modo lineare all'infinito in ogni momento.
2.Latenza di Rete
La latenza di rete può ostacolare la scalabilità dei sistemi distribuiti. A causa dell'aumento delle comunicazioni e del coordinamento tra nodi multipli, il rischio di blocchi e rallentamenti spesso aumenta.
3.Progettazione dell'Applicazione
L'aggiunta di hardware potrebbe non migliorare le prestazioni se l'applicazione non è stata scritta per sfruttarlo.
Considerando questi fattori, le aziende possono progettare ed implementare sistemi linearmente scalabili che rendono più semplice gestire carichi di lavoro in aumento.
Raggiungere una Vera Scalabilità Lineare
Per ottenere una vera scalabilità lineare, è necessario pianificare, progettare ed implementare il piano con attenzione. Affinché i sistemi possano crescere in modo lineare, devono essere preparati per essere distribuiti, in grado di gestire problemi e altamente disponibili. Inoltre, il carico di lavoro deve essere distribuito uniformemente su tutto il sistema utilizzando bilanciamento del carico, frammentazione, memorizzazione nella cache e altri metodi. Inoltre, l'aggiunta di risorse deve essere eseguita in modo che il sistema possa utilizzare le risorse extra senza creare ulteriori punti critici o punti di errore.
Ottenere una vera scalabilità lineare nella blockchain è una sfida complessa che richiede conoscenze di sistemi distribuiti, ottimizzazione delle prestazioni e ingegneria del software. Tuttavia, le organizzazioni possono raggiungere una scalabilità lineare ed elaborare efficientemente qualsiasi quantità di lavoro se considerano attentamente i fattori sopra menzionati e utilizzano le strategie appropriate.
Perché la Scalabilità Lineare è il Santo Graal per le Blockchain?
Blockchain Industry Works 24x7x365
A differenza delle banche o del mercato azionario, le reti blockchain e l'industria lavorano 24x7x365 per agevolare gli utenti:
i) pagare commissioni di transazione sotto forma di criptovaluta o moneta di rete durante la creazione di contratti intelligenti e applicazioni decentralizzate su una rete
ii) contribuire a una rete in termini di sicurezza, hardware e software
iii) utilizzare la criptovaluta come mezzo di scambio in cambio di beni e servizi senza intermediari
iv) effettuare pagamenti transfrontalieri con una frazione di tempo e commissioni rispetto alle reti Web2
v) investire e fare trading in una criptovaluta/moneta di rete per futuri guadagni
Questi sono solo alcuni dei crescenti casi d'uso della tecnologia blockchain oggi. Potresti chiederti perché l'ecosistema decentralizzato Web3 non ha ancora sostituito completamente il Web2? Caratteristiche come commissioni ridotte, assenza di parzialità, elevata velocità, immutabilità, applicazioni decentralizzate (o dApp) e alta sicurezza dovrebbero essere più che sufficienti per convincerci ad adottare il Web3, giusto? Questo tweet affronta il principale ostacolo che impedisce al Web3 di diventare predominante finora.
Limiti di Scalabilità Autoimposti e Algoritmi di Consenso
La blockchain è stata inventata in seguito alla crisi finanziaria del 2008. Pertanto, le prime reti di livello 1 come Bitcoin ed Ethereum hanno utilizzato il registro digitale distribuito principalmente per rendere sicure e decentralizzate le transazioni commerciali. Ora, se osservi una rete Web2 come Citigroup o Meta, non affrontano problemi di scalabilità. Tuttavia, per eseguire transazioni in modo affidabile al fine di aumentare la decentralizzazione e la sicurezza, le reti blockchain distribuiscono le transazioni su nodi non correlati in tutto il mondo. Dopo che i nodi convalidano le transazioni loro assegnate, le reti procedono ad eseguire un'altra attività intensiva in termini di risorse, ovvero il consenso, su più transazioni raggruppate insieme in un blocco in base alla loro validità.
Inoltre, la maggior parte dei protocolli correnti per registri distribuiti ha limiti di scalabilità autoimposti, poiché stabiliscono la dimensione massima dei loro blocchi e la velocità con cui vengono prodotti, ponendo così un limite alla velocità con cui la loro rete può elaborare transazioni. Se dovessero aumentare il limite di dimensione del blocco, dovrebbero aumentare ulteriormente le già elevate capacità di elaborazione, il che porterebbe a un maggiore centralizzazione delle entità che gestiscono i nodi sulla rete. Ricorda che il consenso e i tassi di blocco autoimposti sono cruciali per la sicurezza delle reti pubbliche decentralizzate. Al contrario, le banche o le aziende corporate processano le transazioni tramite risorse fidate come personale autenticato e dispositivi hardware avanzati, senza doversi preoccupare del trilemma della scalabilità. E con l'aumento della centralizzazione tramite istituzioni Web3, si otterrà soltanto un aumento della privacy, della sicurezza e dell'abuso finanziario.
Anche se le blockchain pubbliche hanno il potenziale per unire il meglio del mondo Web2 e Web3, è evidente che non sono state progettate per gestire un settore che ha gradualmente iniziato a lavorare 24x7x365, anche durante le fasi di calo del mercato. Quando il volume delle transazioni aumenta su una blockchain pubblica, la carenza di risorse adeguate porta all'adozione di misure temporanee come l'anticipazione degli ordini e la scalabilità verticale, il che provoca un aumento delle commissioni di gas per transazione. Inoltre, la congestione di rete rallenta significativamente la velocità di elaborazione delle transazioni, togliendo quindi due dei fattori più importanti per una diffusione di massa. Le reti blockchain di livello 2 e le soluzioni rollup sono altre misure temporanee adottate dalle reti di livello 1 per mitigare in parte i problemi di scalabilità e le elevate commissioni di transazione. Ma ciò avviene a discapito di livelli inferiori di decentralizzazione e sicurezza. Quindi, risolvere il trilemma della scalabilità a livello di protocollo/livello 1 è l'unica soluzione qui.
Trilemma della Scalabilità
Non esiste un modo migliore per risolvere il trilemma della scalabilità se non scalare la rete linearmente, il che le consentirà di mantenere sempre un'elevata decentralizzazione, sicurezza e scalabilità, indipendentemente dalla domanda nella rete. Ma finora nessuna rete Web3 ha dimostrato la propria capacità di scalare linearmente. Vitalik Buterin, co-fondatore di Ethereum, ha suggerito la frammentazione come potenziale soluzione per i problemi di scalabilità della blockchain. Attraverso la frammentazione, la rete frammenterà il suo stato distribuendo in modo uniforme (e dinamico nel caso di Shardeum) il carico di lavoro di calcolo, la memorizzazione e la larghezza di banda tra tutti i nodi. Sebbene la frammentazione sia alla fine il miglior modo per affrontare il problema della scalabilità, applicarla alle reti basate su blockchain non è affatto semplice come farlo con i database centralizzati.
Ci sono reti blockchain più recenti che hanno adottato la frammentazione con successo limitato. Una delle principali sfide che gli sviluppatori stanno sempre più affrontando è l'incapacità della rete frammentata su cui stanno costruendo le loro dapp di mantenere la componibilità atomica e cross-shard. In secondo luogo, il consenso a livello di blocco e l'elaborazione sequenziale delle transazioni rallentano la rete a causa dell'alta latenza derivante dal tempo necessario ai nuovi nodi per sincronizzarsi con lo stato più recente degli shard a cui parteciperanno. Inoltre, non consentono di affrontare dinamicamente carichi variabili sulla rete in un dato momento.
Shardeum risolve il trilemma della scalabilità scalando linearmente
Shardeum introduce il tipo di frammentazione più avanzato e complesso sin dalle fondamenta, chiamato 'frammentazione dinamica dello stato', in cui ogni nodo avrà spazi di indirizzi dinamici assegnati su più shard con significative sovrapposizioni. La rete non avrà un gruppo statico di nodi come shard fissi. I nodi su Shardeum sono liberi di spostarsi e adattarsi a più dati come shard dinamici. La frammentazione dinamica dello stato lavorerà a stretto contatto con la funzione di auto-scaling di Shardeum, consentendo alla rete di regolare automaticamente il numero e le dimensioni degli shard in base al carico di lavoro attuale. Questo rende la rete molto efficiente nel conservare le risorse e usarle quando necessario.
I nodi validatori (o validatori) sulla rete, responsabili dell'elaborazione delle transazioni, dovranno mantenere solo lo stato corrente degli shard che gestiscono. I dati storici saranno trasferiti a nodi di archiviazione, consentendo agli utenti medi con hardware limitato di operare un validatore sulla rete. Poiché il consenso su Shardeum verrà effettuato a livello di transazione, una transazione che coinvolge più shard verrà elaborata contemporaneamente da questi shard anziché in sequenza come avviene con il consenso a livello di blocco, mantenendo sia la componibilità atomica che cross-shard. La rete garantirà l'esecuzione efficace di transazioni complesse e contratti intelligenti in un ambiente frammentato, mantenendo l'integrità e la coerenza della blockchain per un'esperienza di sviluppo fluida.
Con questo sistema in atto, ogni nodo aggiunto alla rete aumenterà istantaneamente il throughput delle transazioni. In sostanza, semplicemente aggiungendo più nodi dal 'pool di validatori in standby' della rete durante il picco della domanda, le transazioni per secondo (TPS) aumenteranno proporzionalmente, rendendo Shardeum la prima rete Web3 a scalare linearmente. Questo è il principale fattore X che influisce positivamente su ogni altro risultato in una rete blockchain, compresi il throughput, la decentralizzazione, la sicurezza e le commissioni di transazione costanti, indipendentemente dalla domanda nella rete.
Conclusioni
La scalabilità lineare, o orizzontale, è fondamentale per i moderni sistemi tecnologici, poiché consente loro di gestire carichi di lavoro crescenti in modo proporzionale e costante. Ottenere una vera scalabilità lineare richiede una pianificazione, progettazione e implementazione attente, comprese la computazione distribuita, il bilanciamento del carico, la frammentazione, l'auto-scaling e la tolleranza ai guasti. Con la scalabilità lineare, le organizzazioni possono affrontare con fiducia qualsiasi sfida e far crescere i propri sistemi per soddisfare le esigenze di un universo di dati e utenti in costante crescita ed evoluzione. Detto ciò, ora sappiamo quanto sia difficile per le piattaforme blockchain distribuite pubbliche scalare linearmente.
La tecnologia alla base di Shardeum è un vero game changer, ma l'innovazione è solo parte del gioco. Shardeum ha iniziato a rilasciare gradualmente il suo codice sorgente in modalità open source, che verrà completato entro il lancio della mainnet nel secondo trimestre del 2023. Più che la competizione, il progetto mira a ispirare gli altri a innovare e ad adottare il mondo di Web3.
Domande frequenti (FAQ)
1.Cos'è la Scalabilità Lineare, in parole semplici?
La scalabilità lineare si riferisce alla capacità di un sistema o di un'applicazione di aumentare la propria capacità proporzionalmente al numero di risorse aggiunte. Se il carico di lavoro raddoppia, aggiungere il doppio delle risorse consentirà al sistema di gestire contemporaneamente il carico di lavoro aumentato.
2.Come si Effettua la Scalabilità Lineare?
Per scalare linearmente, i sistemi devono essere progettati per sfruttare le risorse aggiuntive man mano che vengono aggiunte. Ciò comporta la creazione di sistemi distribuiti, l'auto-scaling, il bilanciamento del carico, la frammentazione, la tolleranza ai guasti e altre tecniche che consentono ai sistemi di gestire carichi di lavoro crescenti in modo coerente e proporzionale.
3.Come si Effettua la Scalabilità Lineare?
La scalabilità lineare è una proprietà di un sistema o di un'applicazione che consente di gestire un carico di lavoro maggiore aggiungendo più macchine/server/nodi in modo proporzionale all'aumento del lavoro. La scalabilità verticale avviene quando una rete si espande aggiungendo maggiore potenza (CPU, RAM) alle macchine esistenti. In questo caso, le risorse aggiunte non sempre comportano un aumento delle prestazioni nella stessa proporzione. Ad esempio, un sistema che non è scalabile in modo lineare potrebbe vedere solo un lieve miglioramento delle prestazioni dopo un certo punto, oppure potrebbe manifestare rendimenti decrescenti, dove l'aggiunta di ulteriori risorse comporta miglioramenti iniziali ma rallenta nel tempo e con l'aumento del carico.
4.Come Raggiunge Shardeum la Scalabilità Lineare?
Shardeum introduce il tipo di frammentazione più avanzato e complesso sin dalle fondamenta, chiamato "frammentazione dinamica dello stato", in cui ogni nodo avrà spazi di indirizzi dinamici assegnati su più shard. La rete non avrà un gruppo statico di nodi come shard fissi. I nodi su Shardeum sono liberi di spostarsi e adattarsi a più dati come shard dinamici. La frammentazione dinamica dello stato lavorerà a stretto contatto con la funzione di auto-scaling di Shardeum, consentendo alla rete di regolare automaticamente il numero e le dimensioni degli shard in base al carico di lavoro attuale. Poiché i nodi di archiviazione nella rete memorizzano le transazioni storiche, i nodi validatori sono leggeri e procedono al consenso sulle transazioni singolarmente, e una transazione che coinvolge più shard verrà elaborata contemporaneamente da questi shard anziché in sequenza come avviene con il consenso a livello di blocco.
Con questo sistema in atto, ogni nodo aggiunto alla rete aumenterà istantaneamente il throughput delle transazioni. Quindi, in pratica, semplicemente aggiungendo più nodi dal 'pool di validatori in standby' della rete durante il picco della domanda, le transazioni per secondo (TPS) aumenteranno proporzionalmente. E questo è il principale fattore X che influisce positivamente su ogni altro risultato in una rete blockchain, compresi il throughput, la decentralizzazione, la sicurezza e le commissioni di transazione costanti, indipendentemente dalla domanda nella rete.