There’s a really interesting new paper out from a team of academics and Bitcoin core developers on improving the transaction relay system in Bitcoin. At present, a Bitcoin full node that connects to an increasing number of other nodes has to pay a cost of increasing bandwidth. Network security and robustness increases with connectivity, but the bandwidth costs become prohibitive past a point at present. As a result, most full nodes have relatively limited connectivity.
This paper proposes a clever relay operation that could potentially reduce bandwidth costs by 40% at present connectivity, but even more importantly, have essentially no bandwidth requirement increases as the network connectivity grows! It does so by using some clever data structures for “set reconciliation”. By combining the current flooding based approach with the set reconciliation approach, the paper achieves the claimed impressive results.
I’m a fan of this paper since it strikes a really nice balance between academic rigor and practical real-world understanding of decentralization. As the researchers point out, a much less clever approach would have been to propose a centralized backbone for transaction relay. While this would have undoubtedly increased bandwidth, it would have done so at the cost of decentralization which would not be acceptable for the Bitcoin network. Given the participation of Bitcoin core devs in this work, I’m hopeful that some of these improvements will migrate upstream into Bitcoin Core over the next few years.