Gleb Naumenko, sviluppatore Bitcoin, ha recentemente annunciato attraverso un post sul sito della Linux Foundation l’arrivo di Erlay: si tratta di un nuovo protocollo per l’inoltro e la propagazione delle transazioni.
Read this article in the English version here.
Una delle preoccupazioni che attanaglia gli sviluppatori Bitcoin riguarda la quantità di banda usata dai nodi. La blockchain di Bitcoin pesa, ad oggi, oltre 200 gigabyte, il che significa che scaricarla per intero richiede moltissimo tempo.
Di default un nodo si connette ad 8 nodi e riceve da essi le informazioni. Erlay propone di incrementare questo numero a 32 per ridurre considerevolmente la quantità di banda usata da ogni nodo.
L’idea alla base del protocollo è la seguente: invece di annunciare ogni transazione ad ogni peer, gli annunci vengono inviati direttamente solo su un numero limitato di connessioni. Ulteriori comunicazioni avvengono periodicamente grazie a un protocollo di riconciliazione che si basa sulla libreria Minisketch.
Bitcoin, arriva Erlay
Il risultato di questo approccio porta a salvare la metà della banda consumata da un nodo e, come side-effect, una miglior resistenza ai timing attacks. Aumentando a 32 il numero di peer in uscita il protocollo Erlay porta ad un risparmio della banda pari al 75% rispetto all’attuale implementazione.
Erlay, an efficient transaction relay protocol for Bitcoin, is quite exciting for those of us running highly connected nodes. As you can see from my node's stats, the "inv" messages use up ~90% of incoming bandwidth and ~20% of outgoing bandwidth. https://t.co/LKwLq8RIis pic.twitter.com/tzDRBU8lMj
— Jameson Lopp (@lopp) May 28, 2019
Erlay introdice il concetto di “diffusione” che andrebbe a sostituire il flooding, implementato attualmente. Dal whitepaper di Erlay:
L’attuale versione del protocollo Bitcoin usa il flooding per propagare i messaggi. Il flooding è un protocollo per cui ogni nodo annuncia ad ogni peer qualsiasi transazione che riceve. E’ altamente inefficiente. Adottando la diffusione invece si attende un ritardo casuale prima di annunciare una nuova transazione ai peer. Questa soluzione mitiga i timing attacks e riduce la probabilità di una collisione (che si verifica quando due nodi annunciano simultaneamente l’arrivo di una transazione).
L’adozione di Erlay porterebbe quindi a migliorie sia dal punto di vista delle performance che della sicurezza. Non è ancora stata formalizzata la sua implementazione ma probabilmente lo sarà presto.