Many people believe that Bitcoin users typically send their transactions directly to miners or mining pool operators. However, this is actually very uncommon.
Instead, users generally broadcast transactions essentially at random — in other words, to whichever nodes happen to be connected to them and online at the time.
Usually, a Bitcoin user has no guarantee that a miner will ever see their transaction. They simply hope that random rebroadcasts among volunteer nodes will ping-pong their transaction across the network and eventually, somehow into a miner’s node.
This might seem odd and counterintuitive. Why not simply broadcast a transaction directly to a miner as a regular matter of course? Well, the explanation for this curious custom showcases the unique decentralization of the Bitcoin network.
A counterintuitive yet effective path to decentralization
Miners (or mining pool operators, specifically) select and order transactions within a block. Obviously, these mining operators must receive a transaction in the first place in order to include it within a block. Incentivized to include as much transaction data as will fit within a (max 4MB) block, miners store a queue of eligible transactions in their computer’s memory pool or ‘mempool.’
With Bitcoin, such computer nodes temporarily hold pending transactions. Nodes hold these transactions in their mempool until each transaction is mined in a block.
Note that there is no singular “mempool” of the Bitcoin network. Instead, each node maintains its own mempool of pending, valid, unmined transactions. There are many mempools.
Nodes that do not store the mempool typically experience a bandwidth spike when a block is found and transmitted across Bitcoin’s network of nodes (bandwidth is the amount of usage or data transmission over an internet connection at any given time).
Well-connected nodes with a large mempool already know those transactions, reducing their bandwidth load.
Nodes with a mempool may also use ‘compact node relay’ to download block header and shortIDs in order to infer transactions. They can process signatures and scripts as users add them to the mempool, which further helps to verify transactions. They help speed up the propagation of blocks throughout the network by forwarding blocks to their peers more quickly than nodes without mempools in active storage.
Some nodes with a mempool may receive transactions before other similar nodes because Bitcoin clients can automatically choose which nodes to connect to and switch to another node if any particular one malfunctions. Nodes might not automatically forward transactions they receive to miners.
Completely different to Ethereum
The Bitcoin network has always resisted switching to a system in which transactions are sent directly to miners. This is in direct contrast to Ethereum, which has a strict, step-by-step system for routing each transaction to miners (called ‘validators’) in an orderly fashion.
Ethereum users broadcast transactions to mempool operators who allow searchers to assemble transaction bundles for builders. They assemble a block for proposers to finalize for relayers who transmit it to validators (the proof-of-stake equivalent to miners) whose activities are surveilled by attestors.
The above system is acceptable for Ethereum which is less decentralized, uses a small handful of data centers, block explorers, and API endpoints, and invariably follows the formal directives of Vitalik Buterin. In contrast, Bitcoin aims to maximize its decentralization and censorship resistance.
Unlike Ethereum, if Bitcoin miners were to receive transactions through such an orderly conveyor belt, they could log the IP address of transaction originators and prohibit transactions from specified IP addresses or ranges.
Again, broadcasting a Bitcoin transaction directly to a miner reduces censorship resistance. Miners could log and block transactions from an entire region or just from a disagreeable person. This level of censorship would defeat the point of Bitcoin as a censorship-resistant financial system.
Instead of an orderly conveyor belt, the Bitcoin network allows anyone to ping-pong transactions across random peers, cloaking their identity and increasing the network’s censorship resistance.
The benefits of a decentralized node network
Moreover, nodes can strip transactions of most identifying data, such as IP addresses, while adding transaction data to their mempools. There are over 16,000 fully archival and validating Bitcoin nodes reachable at any moment.
As an added bonus, a distributed network of mempools makes it easy for ordinary users to accurately estimate the fees they should pay to have their transactions mined in a reasonable amount of time.
The mempool occasionally becomes backlogged with a large number of pending transactions, driving up transaction fees for fast inclusion in a block. Real-time mempool estimates allow users to either pay up for speed, or opt to wait if they’re not doing anything particularly time-sensitive.
For years, Bitcoin has supported the unique approach of sending unconfirmed transactions to random nodes and their mempools instead of transmitting transaction data directly to miners. This approach reduces bandwidth loads on nodes, reduces censorship risks, and makes estimating transaction fees easier for everyday users.