un rapporto sulle prestazioni

Il rapporto "Fastest Chains" pubblicato da CoinGecko il 17 maggio mostra che Solana è la più veloce tra le grandi blockchain, con il TPS reale medio giornaliero più alto che raggiunge 1.054 (le transazioni di voto sono state rimosse), e Sui è la seconda Blockchain, la più alta Il TPS reale medio giornaliero raggiunge 854, BSC è al terzo posto, ma il TPS reale raggiunto è inferiore alla metà di Sui.

Come si può vedere da questo rapporto, Solana e Sui con le migliori prestazioni sono entrambe blockchain non compatibili con EVM Inoltre, il TPS reale medio di 8 blockchain non compatibili con EVM è 284, 17 blockchain compatibili con EVM e Il TPS medio. di Ethereum Layer 2 è solo 74 e le prestazioni delle blockchain non compatibili con EVM sono circa 4 volte quelle delle blockchain compatibili con EVM.

Questo articolo esplorerà i colli di bottiglia prestazionali delle blockchain compatibili con EVM e rivelerà i metodi prestazionali di Solana.

Colli di bottiglia prestazionali delle blockchain compatibili con EVM

Innanzitutto, generalizziamo la blockchain EVM alle blockchain generali. In generale, se la blockchain vuole migliorare il TPS, esistono diversi metodi come segue:

  • Migliorare le prestazioni del nodo: migliorare le prestazioni del nodo impilando le risorse hardware. I requisiti hardware del nodo influenzeranno il grado di decentralizzazione. Ad esempio, la configurazione consigliata di Ethereum, CPU 4 core, memoria 16 G, larghezza di banda della rete 25 Mbps, utente ordinario. livello di decentralizzazione può essere raggiunto, Solana consiglia una configurazione relativamente più alta di 32 core CPU, 128 G di memoria e larghezza di banda di rete di 1 Gbps, che può essere ottenuta solo con apparecchiature di livello professionale, e il grado di decentralizzazione è medio ;

  • Migliorare i protocolli sottostanti: inclusi protocolli di rete, crittografia, archiviazione, ecc. Migliorare i protocolli sottostanti della blockchain non modifica le proprietà della blockchain stessa, né influisce sulle regole operative della blockchain. Può migliorarne direttamente le prestazioni la blockchain, ma l’attenzione tecnica sottostante è bassa e non ci sono grandi scoperte nel campo di ricerca attuale;

  • Blocchi espandibili: l'aumento della dimensione dei blocchi può includere più transazioni, aumentando così il volume delle transazioni della blockchain. Ad esempio, Bitcoin Cash (BCH) ha espanso i blocchi da 1 MB a 8 MB e successivamente a 32 MB. Tuttavia, l’espansione del blocco aumenterà anche il ritardo di propagazione e causerà minacce alla sicurezza, come l’aumento della possibilità di fork e attacchi DDoS;

  • Protocollo di consenso: il protocollo di consenso garantisce che tutti i nodi della blockchain raggiungano un accordo sull'aggiornamento dello stato della blockchain. È la porta di sicurezza più importante della blockchain. I meccanismi di consenso utilizzati nella blockchain includono PoW, PoS. PBFT, ecc. Per soddisfare le esigenze di scalabilità, le catene pubbliche ad alte prestazioni generalmente migliorano il protocollo di consenso e lo combinano con i propri meccanismi speciali, come il meccanismo di consenso basato sul PoH di Solana e il meccanismo di consenso basato sulla valanga di Avalanche;

  • Esecuzione delle transazioni: l'esecuzione delle transazioni si preoccupa solo del numero di transazioni o attività di calcolo elaborate per unità di tempo. Blockchain come Ethereum utilizzano un metodo seriale per eseguire transazioni di contratti intelligenti in blocchi Nell'esecuzione seriale, il collo di bottiglia delle prestazioni della CPU è molto evidente. , limitando seriamente il throughput della blockchain. In generale, le catene pubbliche ad alte prestazioni adotteranno l’esecuzione parallela e alcune proporranno modelli linguistici più favorevoli al parallelismo per costruire contratti intelligenti, come Sui Move.

Per la blockchain EVM, la sfida più grande risiede nell’esecuzione delle transazioni a causa della limitazione della macchina virtuale, che è l’ambiente di esecuzione delle transazioni. EVM presenta due principali problemi di prestazioni:

  • 256 bit: l'EVM è progettato come una macchina virtuale a 256 bit per semplificare l'elaborazione degli algoritmi di hashing di Ethereum, che produrranno esplicitamente un output a 256 bit. Tuttavia, il computer che esegue effettivamente EVM deve mappare byte a 256 bit sull'architettura locale per l'esecuzione. Un codice operativo EVM corrisponderà a più codici operativi locali, rendendo l'intero sistema molto inefficiente e poco pratico;

  • Mancanza di libreria standard: non esiste una libreria standard in Solidity e devi implementarla tu stesso con il codice Solidity. Sebbene OpenZeppelin abbia migliorato questa situazione in una certa misura, forniscono una libreria standard per l'implementazione di Solidity (includendo il codice nel contratto o. sotto forma di delegatecall Chiama il contratto distribuito), ma la velocità di esecuzione del bytecode EVM è molto inferiore a quella della libreria standard precompilata.

Dal punto di vista dell’ottimizzazione dell’esecuzione, l’EVM presenta ancora due grossi limiti:

  • Difficoltà nell'effettuare analisi statiche: l'esecuzione parallela nella blockchain significa elaborare transazioni non correlate allo stesso tempo, trattando le transazioni non correlate come eventi che non si influenzano a vicenda. La sfida principale nel raggiungimento dell'esecuzione parallela è determinare quali transazioni sono irrilevanti e quali sono indipendenti. Attualmente, alcune catene pubbliche ad alte prestazioni eseguono analisi statiche sulle transazioni in anticipo. Il meccanismo di salti dinamici di EVM rende difficile l'analisi statica del codice. ;

  • Il compilatore JIT è immaturo: il compilatore JIT (Just In Time Compiler) è un metodo di ottimizzazione comunemente utilizzato nelle moderne macchine virtuali. L'obiettivo principale di JIT è trasformare l'esecuzione dell'interpretazione in esecuzione compilata. In fase di esecuzione, la macchina virtuale compila l'hot code nel codice macchina relativo alla piattaforma locale ed esegue vari livelli di ottimizzazione. Sebbene attualmente esistano progetti EVM JIT, questi sono ancora in fase sperimentale e non sufficientemente maturi.

Pertanto, in termini di selezione delle macchine virtuali, le catene pubbliche ad alte prestazioni utilizzano macchine virtuali basate su WASM, bytecode eBPF o Move bytecode anziché EVM. Solana, ad esempio, utilizza la propria macchina virtuale unica SVM e il bytecode SBF basato su eBPF.

Catene più veloci: Solana

Solana è famosa per il suo meccanismo PoH (Proof of History), bassa latenza e throughput elevato. È uno dei più famosi "killer di Ethereum".

Fondamentalmente, PoH è un semplice algoritmo hash simile alla Verifying Delay Function (VDF). Solana è implementato utilizzando una funzione hash di sequenza resistente alla preimmagine (SHA-256) che viene eseguita continuamente, utilizzando l'output di un'iterazione come input per quella successiva. Questo calcolo viene eseguito su un singolo core per validatore.

Mentre la generazione della sequenza è sequenziale e a thread singolo, la verifica può avvenire in parallelo, consentendo una verifica efficiente su sistemi multi-core. Sebbene esista un limite superiore alla velocità di hashing, i miglioramenti hardware possono fornire ulteriori miglioramenti delle prestazioni.

Processo di consenso di Solana

Il meccanismo PoH funge da fonte temporale affidabile e senza fiducia, creando una registrazione verificabile e ordinata degli eventi all'interno della rete. La tempistica basata sul PoH consente alla rete Solana di ruotare i leader in modo programmato e trasparente. Questa rotazione avviene ad intervalli fissi di 4 slot, ogni slot è attualmente impostato su 400 millisecondi. Questo meccanismo di rotazione dei leader garantisce che ogni validatore partecipante abbia un’equa possibilità di diventare un leader ed è un meccanismo importante per la rete Solana per mantenere la decentralizzazione e la sicurezza, impedendo a ogni singolo validatore di acquisire troppo potere sulla rete.

Ad ogni periodo di slot, il leader propone un nuovo blocco contenente le transazioni ricevute dagli utenti. Il leader convalida queste transazioni, le impacchetta in un blocco e quindi trasmette il blocco ai restanti validatori della rete. Questo processo di proposta e trasmissione di blocchi è chiamato produzione di blocchi e altri validatori nella rete devono votare sulla validità del blocco. I validatori controllano il contenuto dei blocchi per garantire che le transazioni siano valide e rispettino le regole della rete. Un blocco è considerato confermato se riceve un voto di maggioranza del peso della quota. Questo processo di conferma è fondamentale per mantenere la sicurezza della rete Solana e prevenire doppie spese.

Quando il periodo di tempo del leader attuale termina, la rete non si fermerà né attenderà la conferma del blocco, ma passerà al periodo di tempo successivo, fornendo ai leader successivi l'opportunità di produrre blocchi e l'intero processo ricomincerà. Questo approccio garantisce che la rete Solana mantenga un throughput elevato e rimanga resiliente, anche se alcuni validatori riscontrano problemi tecnici o vanno offline.

Solana Performance Tao

Poiché la rete Solana conferma i leader in anticipo, Solana non richiede un mempool pubblico per conservare le transazioni degli utenti. Quando un utente invia una transazione, il server RPC la converte in un pacchetto QUIC e lo inoltra immediatamente al validatore del leader. Questo approccio è chiamato Gulf Stream e consente rapide transizioni dei leader e pre-esecuzione delle transazioni, riducendo il carico di memoria su altri validatori.

I dati del blocco di Solana vengono portati nello spazio del kernel e quindi passati alla GPU per la verifica della firma parallela. Una volta verificata la firma sulla GPU, i dati verranno passati alla CPU per l'esecuzione della transazione e infine restituiti allo spazio del kernel per. persistenza dei dati. Questo processo di elaborazione multipla che divide i dati in diversi componenti hardware, chiamato tecnologia pipeline, può massimizzare l'utilizzo dell'hardware e accelerare la verifica e la trasmissione dei blocchi.

Poiché le transazioni di Solana specificano esplicitamente a quali account si accede, lo scheduler delle transazioni di Solana può sfruttare i meccanismi di blocco di lettura-scrittura per eseguire transazioni in parallelo. Ogni thread dello scheduler delle transazioni Solana ha la propria coda gestita, elabora le transazioni in sequenza e in modo indipendente, tenta di bloccare (blocco di lettura-scrittura) il conto della transazione ed eseguire la transazione. Le transazioni con conflitti di conto verranno eseguite successivamente. Questa tecnologia di esecuzione parallela multi-thread si chiama Sealevel.

Il processo di propagazione dei blocchi da parte del leader, dividendo i pacchetti QUIC (facoltativamente utilizzando la codifica di cancellazione) in pacchetti più piccoli e distribuendoli ai validatori in una struttura gerarchica. Questa tecnica si chiama Turbine e riduce principalmente l'utilizzo della larghezza di banda del leader.

Durante il processo di votazione, i validatori utilizzano un meccanismo di consenso per il voto fork. I validatori non hanno bisogno di attendere i voti per procedere con la produzione dei blocchi, invece, i produttori di blocchi monitorano continuamente i nuovi voti validi e li includono nel blocco corrente in tempo reale; Questo meccanismo di consenso si chiama TowerBFT e, unendo i voti fork in tempo reale, Solana garantisce un processo di consenso più efficiente e snello, migliorando così le prestazioni complessive.

Per il processo di persistenza dei blocchi, Solana ha sviluppato il database Cloudbreak per massimizzare l'efficienza dell'SSD partizionando la struttura dei dati dell'account in modo specifico per beneficiare della velocità delle operazioni sequenziali e utilizzando file mappati in memoria.

Per ridurre il carico sui validatori, Solana trasferisce l'archiviazione dei dati dai validatori a una rete di nodi chiamata Archiver. La cronologia dello stato della transazione è suddivisa in molti frammenti e viene utilizzata la tecnologia di codifica di cancellazione. L'archiviatore viene utilizzato per archiviare frammenti di stato, ma non partecipa al consenso.

Riassumere

La visione di Solana è quella di essere una blockchain il cui software scala alla velocità dell'hardware, in modo che Solana tragga pieno vantaggio da tutte le capacità di CPU, GPU e larghezza di banda disponibili nei computer di oggi per massimizzare le prestazioni, con una velocità massima teorica di 65.000 TPS.

È proprio grazie alle elevate prestazioni e alla scalabilità di Solana che Solana è diventata la piattaforma blockchain preferita per l'elaborazione di transazioni ad alta frequenza e contratti intelligenti complessi, che si tratti del percorso DePIN/AI di inizio anno o del recente percorso Meme. Solana ha dimostrato un enorme potenziale.

Dopo il lancio dell'ETF su Ethereum, Solana è diventata anche la criptovaluta con il maggior numero di richieste per il prossimo ETF. Sebbene la SEC elenchi ancora Solana come titolo, altri ETF su criptovaluta non saranno approvati a breve termine. Ma nel mercato delle criptovalute, il consenso è valore, e il consenso di Solana potrebbe diventare indistruttibile quanto Bitcoin ed Ethereum.