ICYMI: Jimmy Song debated Peter Todd over the topic of spam filters at Plan ₿ Lugano 2025. You can see the video here, starting at around 7:25:00 (yes--the video is 10 hours long)
Jimmy took the pro-filter position, and Peter took the anti. The format was 6 minute introductions followed by 3 minute rebuttals, followed by a more open discussion.
Opening statements
The moderator led off by asking the audience their pre-existing positions. About 40% of the room was pro-filter, 20% anti-filter, and 40% undecided. Jimmy's position clearly has the popular support.
Jimmy then entered into a polished 6 minute intro. His main points were:
- Filters do work. Many nodes already perform filtering whether you know it or not, like not forwarding txs with data in the taproot annex, or tx with P2PKH outputs <546 sats. Yet, they are consensus valid and you can find them in blocks. But they're rare precisely because filters work.
- No filters at the relay level doesn't mean the network is censorship resistant. It just means that censorship is in the hands of the miners, potentially leading to even more centralization.
To summarize: Jimmy's position is that filters do work, and that node preferences with regard to what counts as spam or not should be respected.
It was then Peter Todd's turn. Unfortunately, he did not seem to have prepared a proper opening statement, which was disappointing. I would have liked to see a more formal argument.
Instead, Peter opened by asking Jimmy to define spam. Jimmy said "non-monetary transactions". Peter then highlighted that some of the txs that nodes currently filter are monetary transactions; moreover, there is no single definition of what counts as a monetary transaction. Peter brought up Luke trying to censor SatoshiDICE, which were clearly monetary transactions. Core's position, therefore, is to not take a stance on what is and isn't spam. Peter also argued that relay filters make it harder for small mining pools to find the most profitable txs, putting them at a disadvantage relative to larger mining pools, leading to centralization. He ended with the statement that he "just wants to build systems that are resilient to how other people choose to use bitcoin," which did earn him some applause.
Rebuttals
During rebuttals, Jimmy restated his assertions that filters work, but Peter brought up a good point in that they might work in a "narrow" sense, but that it won't stop people from finding creative ways around them. This gets to the heart of the whole OP_RETURN debate, where Core's position is that while OP_RETURN filters may work to filter out large OP_RETURNs, they haven't actually worked to prevent people from publishing arbitrary data. Peter did say that it would be more productive if this debate actually moved to the protocol level, rather than the node implementation level, which was interesting.
Cross X
Jimmy asked Peter if he would support LibreRelay or Core v31 relaying 1 sat outputs. Peter said yes, but that this should really be solved at the protocol level, like pruning dust outputs. Jimmy then accused Peter of supporting spam because 1 sat outputs are clearly not monetary transactions. Peter said there are technical things you can accomplish on the blockchain with 1 sat outputs that help support monetary transactions; I didn't follow his explanation that well, but it's related to L2 protocols. Jimmy then said that Peter is assuming good use cases for 1 sat outputs, and ignoring that they'll also be used for spam. Jimmy said the developers are not thinking adversarially, that they're assuming the possibility space will only be used for good, but that expanding OP_RETURN actually opens up a huge attack surface. This earned him some applause. Peter rejected the notion that Core isn't thinking adversarially, and accused Jimmy of fear mongering. Jimmy brought up how removing the data limit in Taproot v1 is what gave rise to the millions of monkey jpegs, and used that as an example of Core not thinking adversarially. Peter said that Jimmy is simply wrong, that it was possible to put unlimited data in standard tx even before Taproot. (I don't know who's right). Jimmy said that the issue is, you don't know that would have been put in filters weren't in place. Peter went back to the assertion that even if you put in the filters, people will find ways to get around them. At this point the discussion felt like it was going in circles.
Closing statements
Nothing really new. Jimmy re-asserted that nodes should be allowed to do what they want with their nodes, and that filters are effective. Jimmy also said that it's bitcoin's monetary, not technological properties, that give it value; therefore its functioning as a purely monetary network should be preserved.
Peter said that Jimmy's vision wouldn't work because even if a bunch of nodes filter, other nodes won't, and the disfavored txs will find a way. Peter also asked what the difference is between a world in which nodes are choosing their own filters and a world in which nodes are obeying the OFAC sanctions list. (This earned applause, but I personally thought it was a bit of a straw man). Peter then said, if relay filters ultimately don't work, people will start going after the miners, and what then? Will we now demand censorship from the miners? Peter reiterated that he'd rather fix these issues at the consensus protocol level.
My thoughts
Overall, I thought Jimmy was more prepared, and my sense is that the audience was on his side (he garnered more applause). But I think I agree with Peter's position more---in the sense that I don't think this debate should be being had at the node implementation/relay level.
In the end, I don't think it's super productive to have this debate, because Core can do what Core wants---and if you don't like it you're free to use another implementation. I don't think Core's position has ever been you're not allowed to run your own filters, it's we don't want our implementation to have these filters.
Ultimately, I find myself agreeing with certain points on both sides. With Peter, i'd agree that a segmented mempool is undesirable, and that it's too hard to define what spam is. With Jimmy, i'd agree that Core could be more careful, and remember that Bitcoin is primarily a monetary network, not a technology platform. I do think filters work, but only in the narrow sense of filtering out transactions that don't conform to rules, but not in the broader sense of filtering out undesirable spam. I agree with Peter that it's better to have a debate about consensus protocol than relay filters.
[paste]CSW was right that devs have a meaningful role in the network and the courts will fuck up devs.