As we know, bitcoin uses flooding in order to propagate blocks and transactions across all the nodes in the network. As it was launched in 2009, it's been almost 10 years since it's launch and I was wondering if it was launched today, would it be able to use a more efficient P2P protocol/algorithm then the flooding mechanism employed today? As flooding can cause multiple transactions, albeit inv transactions, to be sent to the same node multiple times which is information that the node does not need and is unnecessary. Are there any better state-of-the-art p2p protocols that could be a better fit for bitcoin today?
1 Answer
The network used today isn't actually the same as the original design, which did not have an inventory system at all, every transaction and every block was sent to every peer indiscriminately. Compact Blocks was also added to remove redundancy in block transmission and reduce latency, as blocks predominantly contain transactions which have already been forwarded around the network previously. Fee based filtering was added to allow nodes to request that peers to not send transactions which will be rejected regardless, which saves bandwidth.
The P2P protocol, while not ideal, is relatively functional in its current state. It is an unusual set of requirements (flooding, censorship resistance, sybil avoidance) which doesn't have much simularity to many other systems.