When dealing with core supporters, you will often hear something like this:
Filters don't work because spammers bypass the filters and go directly to miners. The very fact that those transactions are confirmed proves that filters don't work at what they are intended to do.
The problem with this argument is that it grossly misrepresents how miners, nodes, and policy all work together.
The implication is that filters are put in place to censor transactions. And if those transactions still get confirmed, your filter didn't do it's job.
But nobody in the Bitcoin network is capable of imposing censorship. Nobody can censor anything. My node, with a pile of filters 10 feet high, can not censor anything or anyone.
In order to understand how filters work, you have to understand the role of nodes.
First, it's important to understand that there is no such thing as "the mempool". There is no centrally imposed standard mempool that anyone can impose on anyone else. Each and every node and miner in the network maintains his own mempool.
When you send a Bitcoin transaction with your wallet, that transaction gets relayed around to nodes and miners. Each and everyone of them checks that it's consensus valid and that it's policy valid.
If it satisfies my node's checks, it gets added to my mempool and relayed to other nodes. If not, I just don't add it to my mempool and I don't relay it to others in the network.
Now the role of my mempool is to send a signal to miners. My mempool says: "These are the transactions I have verified. You should add these transactions to your next block."
The miner is not obligated to listen to me. He can put whatever transaction he wants in his next block. But once he finds a block, and fills it with transactions, that block gets propagated to the network so that each node can add it to their own copy of the blockchain.
Once my node receives this block, I verify that the transactions in it are valid. If these transactions are already in my mempool, the verification process is very fast. Because I already verified most of them.
But if the miner filled his block with filth and spam that I did not include in my mempool, I have to request, download, and verify each of those spam transactions I have not already verified.
Only once this process is complete, will I add the block to my mempool and relay it to other nodes.
In simple terms, miners filling their blocks with filth will see the propagation of their block significantly slowed down. And they risk losing their block reward to an other miner who did not add junk and filth to his block.
Miners who take greater risks will have to charge more to their spammer clients to add their filth to their next block.
As you can see, it's a brilliant system with censorship resistance and incintives built in for each actor in the system to act in a good manner.
The problem is not that filters don't work at censoring transactions. Nobody in the network can do that.
The problem is that there aren't enough filters. Miners are not receiving the signal from nodes that some transactions are not desirable. And this is because core refuses to build any filters, and core is even attempting to disable the filter that is already working.
But you don't have to believe me. You should just listen to Gloria Zhao, head developer at core, explain how block propagation works, at around 1:09:40 in this video:
https://youtu.be/VsUyjFkkp4EJoin the fight, run a Knots node:
https://bitcoinknots.org/Edit: I guess a pretty good analogy would be to say that miners are in a race to find the next block and propagate it to the network.
Finding a block is like a bingo game. If you have more hash power or more computers, you effectively have more bingo cards and you increase your chances of getting a bingo.
But than the propagation game turns your bingo game into car race. And each spam transaction the miner puts in his block adds a little speed bump in the track that pops up only for him. If he has a lot of spam, the track starts to look like a dirt and mud trail to him while everyone else is riding on clean asphalt.
Eventually the miner decides to use the same filters as the nodes are using in order to speed up his propagation time. Or he needs to be heavily compensated by the spammers to compensate for his race handicap.