Erlay is a proposed upgrade to Bitcoin Core’s peer-to-peer networking functionality, which would decrease the bandwidth used to relay transactions between nodes. Erlay has not yet been implemented, nor has it been assigned a BIP number, so it is still in the design stage.
Currently, when a new transaction is broadcast to the Bitcoin network, it is sent from the broadcasting node to its peer nodes. These peers each send the transaction out to all of their peers. This process, called flooding, continues until all nodes in the network have received the transaction. Flooding has low latency, meaning it disseminates new information through a peer-to-peer network rapidly. However, it has high bandwidth usage and redundancy; it requires lots of data to be sent back and forth between nodes who might already know about a transaction.
According to the Erlay whitepaper, transaction relay currently consumes up to 18GB of data per month for a node with 8 outbound connections. A node with up to 24 outbound connections could consume up to 50GB of bandwidth per month. Erlay aims to reduce bandwidth usage by 84% while making the peer-to-peer network even more robust and secure.
Erlay attempts to streamline this process. With Erlay, public nodes with many peers will use flooding to disseminate transactions quickly. However, private nodes, which receive information from nodes but do not broadcast information, will not participate in flooding. Instead, they will send batches of transactions to peers.
This method attempts to find an optimal compromise between latency and bandwidth and preserve privacy for nodes. One major privacy goal in Bitcoin’s peer-to-peer design is that it should be difficult to determine which node originated a transaction. By mixing flooding and batching, and having private nodes only use batching, Erlay aims to fortify peer-to-peer privacy.