8

Let's imagine that you have 51% of all mining power. Is it possible to put a single transaction in the next block without putting it into the mempool and/or propagating the tx to the other peers through the bitcoin network?

2 Answers 2

8

Yes, since miners (pools) construct the blocks they mine, they can insert any valid transactions they want, including transactions that were never broadcasted to the wider network. They don't even need 51% of the global hashrate, they just need to create blocks often enough that they don't have to wait too long for their transactions to confirm.

Some mining pools commonly do this. For example, here is a transaction mined by F2Pool that most likely distributes mining rewards to the pool's miners. It pays no fee which means it was never broadcasted, since zero-fee transactions aren't propagated by nodes through the network.

2

To add to Vojtěch's answer, take the point of view of nodes validating blocks on the network. How would they enforce that a transaction must have been propagated before it's included in a block?

Not only is this rule unenforceable on historical blocks, it also requires a synchronization mechanism across the network on what transactions are valid in the next block. But this synchronization mechanism is the block chain itself, you can see how it is circular.

No consensus rule can be based on the content of a node's mempool. Different nodes have different mempools (they usually only differ slightly). Maintaining a mempool has plenty of advantages, but it is not a requirement for using Bitcoin.

Not the answer you're looking for? Browse other questions tagged or ask your own question.