Gleb Naumenko, a Bitcoin developer, recently announced through a post on the Linux Foundation website the arrival of Erlay: it is a new protocol for the forwarding and propagation of transactions.
One of the concerns faced by Bitcoin developers is the amount of bandwidth used by nodes. Bitcoin’s blockchain now weighs over 200 gigabytes, which means that downloading it in its entirety takes a long time.
By default, a node connects to 8 nodes and receives information from them. Erlay proposes to increase this number to 32 to considerably reduce the amount of bandwidth used by each node.
The idea behind the protocol is the following: instead of announcing each transaction to each peer, announcements are sent directly only over a limited number of connections. Further communication takes place periodically thanks to a reconciliation protocol based on the Minisketch library.
Bitcoin, here comes Erlay protocol
The result of this approach leads to saving half of the band consumed by a node and, as a side-effect, better resistance to timing attacks. By increasing the number of outgoing peers to 32, the Erlay protocol saves 75% of the bandwidth compared to the current implementation.
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 introduces the concept of “diffusion” that would replace flooding, which is currently implemented. From Erlay’s whitepaper:
“The current version of the Bitcoin transaction relay protocol propagates messages among nodes using diffusion, which is a variation on random flooding. Flooding is a protocol where each node announces every transaction it receives to each of its peers. Announcements can be sent on either inbound and outbound links. With diffusion, a peer injects a random delay before announcing a received transaction to its peers. This mitigates timing attacks and significantly reduces the probability of in-flight collisions (when two nodes simultaneously announce the same transaction over the link between them)”.
The adoption of Erlay would therefore lead to improvements in terms of both performance and safety. Its implementation has not yet been formalised, but will probably happen soon.