
Il pool di transazioni, noto anche come "mempool", è un'area di archiviazione temporanea per le transazioni non confermate sulla blockchain in attesa di conferma e inclusione in un blocco. L'emergere di Bitcoin ha portato all'introduzione del concetto di mempool. Ethereum lo ha successivamente incorporato anche nella sua architettura. Quando un utente avvia una transazione, come uno swap tra due monete, fa trading sul mercato DeFi o semplicemente acquista un NFT, la transazione viene trasmessa alla rete e temporaneamente conservata nel mempool.
Rimane lì finché i validatori non lo confermano e lo includono in un nuovo blocco. Le transazioni inviate al mempool sono organizzate in base alle loro commissioni di transazione e le transazioni con commissioni di gas più elevate vengono solitamente finalizzate per prime. Ciò fa sì che i validatori diano priorità alle transazioni con commissioni più elevate perché ricevono commissioni di gas come ricompensa per le transazioni incluse in un blocco che estraggono quando viene aggiunto alla blockchain.
I mempool sono componenti essenziali per le blockchain, che li utilizzano. Il mempool assicura che tutte le transazioni inviate siano elaborate e confermate dai validatori, eccetto nei casi in cui la transazione non è valida a causa di una firma errata o in cui il portafoglio del mittente ha esaurito i fondi. Il mempool crea un mercato che consente agli utenti di scegliere la commissione di transazione appropriata per ottenere le loro transazioni elaborate più velocemente durante i periodi di congestione della rete.
Ethereum e Bitcoin hanno un numero totale di 50k-200k transazioni non confermate nel loro mempool. Questo spesso dipende dalla disponibilità del blockspace e il più delle volte causa diversi colli di bottiglia nella rete, come bassa produttività e congestione nella rete. Un protocollo gossip è utilizzato in Ethereum e Bitcoin per distribuire i memepool tra nodi casuali in modalità peer-to-peer.
Ci sono oltre 1.000 validatori sulla mainnet di Solana e possono gestire una dimensione di mempool di 130.000. Ciò significa che con una capacità di rete di 65.000, viene eseguito un mempool di 130.000 e Solana può eseguirne da 4.000 a 4.500 al secondo. Solana, una blockchain ad alte prestazioni, è vista come una blockchain senza mempool in quanto è stata progettata fin dall'inizio per non fare affidamento su un mempool; piuttosto, utilizza un approccio diverso in quanto spinge tutti i messaggi di transazione a un validatore impostato per ogni slot, che è contrassegnato come leader. Il leader sostituisce ogni 4 slot e la pianificazione del leader è nota in anticipo a tutti i nodi di rete attivi. Questa soluzione, proposta da Solana, spinge la memorizzazione nella cache dei messaggi di transazione ai margini della rete e si chiama Solana Gulf Stream .
Note: le transazioni Solana per impostazione predefinita devono includere un blockhash recente, che gli sviluppatori possono facilmente ottenere con una chiamata API di base. Un blockhash Solana ha fino a 150 slot. Diventa obsoleto dopo questo periodo, quindi le transazioni che lo menzionano verranno eliminate dalla rete. Ciò garantisce che le transazioni non elaborate non possano persistere. Gli hash dei blocchi ultimamente aiutano nella deduplicazione delle transazioni.
Dal suo lancio, Gulf Stream ha visto almeno due aggiornamenti significativi: QUIC e Stake-weighted QoS. È anche il componente del protocollo core che ha probabilmente subito la maggiore pressione negli ultimi anni a causa dell'enorme aumento del traffico di rete su Solana. Per mettere tutto questo in prospettiva, quando un validatore assume il ruolo di leader, può prevedere un aumento drammatico del traffico in entrata, spesso superiore a un gigabyte al secondo, poiché l'intera rete invia pacchetti verso di lui.
Inizialmente, Solana si affidava al protocollo UDP per inviare messaggi di transazione dal nodo RPC al leader attuale. Mentre UDP è veloce ed efficiente grazie alla sua mancanza di dialogo di handshake, presenta notevoli svantaggi, come l'inaffidabilità nella consegna dei dati, nell'ordinamento dei pacchetti e nella prevenzione della duplicazione. Queste limitazioni sono diventate evidenti durante le interruzioni di rete causate da attacchi DDoS e transazioni spam, in particolare durante eventi ad alta richiesta come le mentine NFT.
Solana ha integrato il protocollo QUIC nel suo processo di ingestione del validatore per affrontare queste sfide. A differenza di UDP, QUIC offre una trasmissione dati affidabile con controllo della congestione e sequenziamento dei pacchetti integrati, garantendo una comunicazione più fluida e sicura tra i nodi. Questo aggiornamento ha migliorato significativamente la stabilità e la resilienza della rete, prevenendo future interruzioni e ottimizzando le prestazioni di Solana in caso di carichi di transazione elevati.
Il protocollo QUIC consente comunicazioni asincrone veloci come il protocollo UDP ma con sessioni e controllo di flusso come TCP. Sebbene il protocollo QUIC abbia un basso tasso di adozione nel settore blockchain, non è la soluzione unica per Solana poiché la rete incontra ancora problemi di congestione durante molti handshake QUIC. In mezzo a tutti i difetti esistenti con questo protocollo, ha alcuni aspetti positivi, poiché QUIC è un protocollo di connessione di rete sicuro che evita la necessità di due handshake (TCP e TLS) e richiede meno pacchetti per essere completato. Può essere durevole dopo la chiusura, fornendo un accesso ai dati più rapido.
QUIC può riutilizzare una sessione tramite flussi e ticket di sessione, riducendo al minimo il numero di connessioni client-server e offrendo riconnessioni rapide e sicure. Supporta anche la migrazione delle connessioni, consentendo alle connessioni di sopravvivere ai cambiamenti di IP, rendendo l'esperienza utente mobile più fluida. QUIC mira anche a ridurre o diminuire l'impatto di attacchi come Denial of Service (DoS), replay, reflection, spoofing e altri. Sebbene non possa rimuovere tutti gli attacchi, mira a renderli più difficili da attaccare. Nel complesso, QUIC offre un'esperienza di connessione di rete più efficiente e sicura.
Solana Stake-weighed QoS è un'implementazione sulla rete Solana che consente ai leader di identificare e dare priorità alle transazioni proxy tramite un validatore in stake come meccanismo di resistenza Sybil aggiuntivo. Questo meccanismo è stato implementato nella rete Solana all'inizio del 2024. In questo meccanismo, i validatori con stake più elevati nella rete possono trasmettere pacchetti di messaggi di transazione di grandi dimensioni al leader.
Ad esempio, un validatore con lo 0,5% della posta in gioco potrebbe combattere gli attacchi Sybil dal resto della rete e trasmettere fino allo 0,5% dei pacchetti al leader. Con QoS ponderato per posta in gioco abilitato, un validatore con una posta in gioco dell'1% avrà il diritto di inviare fino all'1% dei pacchetti al leader. Con questo metodo, i validatori con posta in gioco più alta hanno la garanzia di ricevere una qualità di servizio più elevata, il che impedisce ai validatori di qualità inferiore (con meno posta in gioco) di inondare deliberatamente queste transazioni, migliorando la resistenza complessiva a Sybil.
L'introduzione di questo meccanismo ha avuto un effetto significativo sull'ecosistema Solana, con gli operatori di infrastrutture RPC commerciali e gli exchange che emergono come i principali beneficiari. Gli operatori RPC sono ben posizionati per garantire accordi con i validatori in stake, il che li aiuterà a raggiungere una percentuale più elevata di transazioni incluse nei blocchi. Nel frattempo, gli exchange o altre organizzazioni che ospitano sia il validatore che i nodi RPC sulla stessa infrastruttura possono abilitare con sicurezza la funzionalità nei loro sistemi, sapendo che i nodi RPC sulla loro infrastruttura sono affidabili.
Esistono numerose differenze nell'architettura mempool di Solana ed Ethereum.
In questo articolo, abbiamo esplorato l'esclusivo meccanismo di gestione delle transazioni di Solana, concentrandoci sul suo protocollo Gulf Stream e su come si differenzia dalle tradizionali architetture mempool come quelle utilizzate da Ethereum. Abbiamo evidenziato la produzione continua di blocchi di Solana, le commissioni di transazione fisse e l'uso innovativo di QUIC e Stake-weighted QoS per ottimizzare le prestazioni e la sicurezza della rete.