So That’s What Greg Maxwell Has Been up To
Erlay was announced over the last 24 hours in a post to the Bitcoin Core development mailing list by University of British Columbia’s Gleb Naumenko. Naumenko described it in the following terms:
“The main idea is that instead of announcing every transaction to every peer, announcements are only sent directly over a small number of connections (only 8 outgoing ones). Further relay is achieved by periodically running a set reconciliation protocol over every connection between the sets of withheld announcements in both directions. […] Results: we save half of the bandwidth a node consumes, allow increasing connectivity almost for free, and, as a side effect, better withstand timing attacks. If outbound peer count were increased to 32, Erlay saves around 75% overall bandwidth compared to the current protocol.”
One of the key concerns around Bitcoin is the amount of bandwidth that nodes consume to remain in consensus. The amount of bandwidth required is one of the costs imposed on a full node operator. The Bitcoin blockchain currently stands at over 200 gigabytes, meaning that the initial blockchain download can sometimes take days or even weeks.
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
By default, nodes connect to about eight other nodes and receive their information from them. Erlay’s proponents say that if this number were increased to 32, the amount of bandwidth each node uses could be reduced as much as 75%.
Improved Security, Greatly Improved Efficiency for Bitcoin: Erlay
Erlay introduces “diffusion” to Bitcoin, as opposed to the current method which its authors deem a “version of flooding.” Transactions and thus, blocks can propagate across the network if a more efficient model is employed. From the Erlay 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).”
Certain attack vectors will also be significantly reduced if nodes have greater inter-connectivity. A “timing attack” is a cryptography concept where an attacker can compromise a cryptographic protocol by measuring the time required for calculations. The Erlay protocol introduces randomized timing and therefore would enable Bitcoin to “better withstand timing attacks.”
The latency of the Bitcoin network, and its security, will both see improvement if the Erlay protocol proposal is eventually adopted. So far the protocol has not been formalized into a Bitcoin Improvement Proposal, but we should expect that soon. At this stage, it’s just open for discussion.