Glossario / Protocollo e aggiornamenti
Erlay
- Che cos'è Erlay?
- Erlay è un metodo proposto per consentire ai nodi di confrontare quali transazioni hanno visto usando piccoli sketch, invece di annunciare ogni hash di transazione a ogni peer.
Specificato nel BIP-330.
Annunciare le transazioni è il maggiore impiego singolo della larghezza di banda di un nodo, e il costo cresce con ogni peer aggiunto. Gleb Naumenko e Pieter Wuille hanno descritto il progetto nel BIP330, dove resta una bozza: nessuna versione di Bitcoin Core lo attiva. È importante perché decide quanto può diventare economico gestire un proprio nodo.
Come funziona
Erlay affronta una ridondanza che diventa evidente appena la si conta: attualmente un nodo informa ogni suo peer di ogni transazione di cui viene a conoscenza, e la maggior parte di quei peer la conosceva già.
Il metodo attuale è il flooding. Ogni nuova transazione viene annunciata in un messaggio inv che porta un codice di tipo e un identificatore di 32 byte, quindi 36 byte per annuncio e per peer. Bitcoin Core apre per impostazione predefinita 8 connessioni in uscita per la trasmissione delle transazioni e accetta peer in entrata fino a un totale di 125, perciò una macchina ben connessa invia e riceve lo stesso breve messaggio decine di volte per qualcosa di cui sarebbe comunque venuta a conoscenza. Lo spreco è proporzionale al numero di connessioni, il che penalizza proprio il comportamento che rende più difficile dividere la rete.
Erlay conserva un po' di flooding e sostituisce il resto con la riconciliazione degli insiemi. Ogni coppia di peer tiene traccia degli annunci che non ha ancora scambiato con l'altro. Periodicamente un lato richiede uno sketch di quell'insieme. Uno sketch è un riepilogo algebrico di dimensione fissa la cui lunghezza dipende da quante differenze ci si aspetta e non da quante transazioni detiene ciascun lato, e combinare due sketch restituisce esattamente le voci che un peer ha e l'altro non ha. La biblioteca software minisketch, che Bitcoin Core porta da anni nel proprio albero dei sorgenti mentre il protocollo di trasmissione intorno a essa restava non integrato, implementa la costruzione e la decodifica.
Sbagliare la dimensione dello sketch non è fatale. Quando la decodifica fallisce perché la differenza era maggiore del previsto, i peer estendono lo sketch e riprovano invece di ricominciare da zero, così una stima imprecisa costa un po' di larghezza di banda in più invece di una risincronizzazione completa.
Dove lo vedi
Erlay non si vede ancora, ed è questa la risposta onesta per chiunque lo cerchi nel pannello di un nodo.
Quello che si vede è il problema a cui mira. Esegui getnettotals sul tuo nodo e i contatori di byte mostrano che il traffico di trasmissione domina tutto tranne il download iniziale della catena. Chi gestisce nodi su connessioni a consumo già reagisce limitando l'upload con maxuploadtarget o riducendo il numero di peer mantenuti, e entrambe le scelte indeboliscono un po' la rete per ridurre una bolletta.
È il compromesso che Erlay dovrebbe dissolvere. Se la larghezza di banda smettesse di crescere con il numero di connessioni, un nodo potrebbe mantenere in sicurezza molti più peer, e una rete densamente connessa è molto più difficile da partizionare o da isolare con un attacco eclipse. Per chi ha come unico interesse verificare i propri bitcoin invece di fidarsi di un explorer, la promessa è ristretta e reale: la stessa verifica su una connessione più economica.
Erlay vs trasmissione compatta dei blocchi
Erlay riguarda le transazioni prima che siano minate; la trasmissione compatta dei blocchi riguarda i blocchi dopo. Le due rispondono a colli di bottiglia diversi e sono state valutate con metri diversi. La propagazione dei blocchi è un problema di latenza, perché ogni secondo che un blocco passa in transito è un secondo che qualche miner passa a lavorare su una punta della catena che non esiste più, e la soluzione è arrivata nel 2016. L'annuncio delle transazioni è un problema di volume, misurato in gigabyte nell'arco di un mese e non in millisecondi, quindi nessuno ha avuto fretta, ed è per questo che la proposta è rimasta una bozza per anni.