DDoS from Oversaturated Send Queues

In early May 2023, Bitcoin Core users encountered a disruption in the propagation of blocks and transactions due to a medium severity DoS attack. The issue arose from transaction-related per-peer sets, known as m_tx_inventory_to_send, having the potential to grow excessively large before the release of Bitcoin Core v25.0. This hindered nodes from effectively communicating with their peers and was made worse by "spy nodes," or peers that listen to transaction announcements but don't make any themselves, who maintained large sets of known transactions. As a result, inventory message construction drained 7 transactions per second from these sets, which were then sorted by transaction dependencies and feerate. The sorting times lengthened, causing P2P communication issues and affecting the longevity of peer connections.

A fix was implemented in Bitcoin Core v25.0, released on May 25th, 2023. Anthony Towns and b10c's reported and narrowed-down problem led to two primary solutions. First, transactions no longer in the mempool were removed from the sets, and second, the set drainage rate was adjusted based on set size. Public disclosure of the fix occurred on October 9th, 2024, which alleviated the issue for users and restored effective P2P communication in the Bitcoin network.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *