Cluster Mempool replaces fragile heuristics with consistent reasoning
βI'd say Cluster Mempool is replacing all of that with a framework that can actually reason about things properly, taking arbitrary dependencies into account and do away with all the heuristics and replace it with one rule is, does this make things better or not?β
βI would go as far as saying this is the entire reason why Bitcoin has proof of work. The point of having proof of work is that anyone can join the mining market. Bitcoin's decentralization and censorship resistance ultimately boils down if things go really wrong. The final protection is you can become your own miner, maybe even at a loss, but hopefully not at a big one.β
βIf we were to end up in a situation where just that there is so much economic activity going through these private transaction rails, where the network just doesn't have visibility into it, it ultimately makes it harder to enter the mining market. Because say there's three big companies that have a private mempool that you can submit things to. And as a miner, you really have no choice but to contract with one or most of these, because otherwise you just miss out on a substantial portion of fee income and are unable to compete with those who do.β
Old mempool could evict the most profitable transaction first
βThe immediate motivation was this example of actually you can end up in a state today in a Mempool. Obviously, not likely would need a pathological adversarially constructed situation, but where the very first transactions that would be evicted if the Mempool fills up, the first thing that gets evicted is actually the very first transaction you'd want to mine. And this is obviously undesirable.β
Cluster limits cap groups at 64 related transactions
βWith Cluster Mempool, there are no more ancestor or descendant limits, instead, there are cluster limits. Think of it as a... Continue with the analogy of ancestors and descendant in a family tree. Cluster is just the widest possible extended family thing. It's like your parents and children, your grandparents and grandchildren, also aunts and uncles, nieces and nephews, their parents, their children. And so in Cluster Mempool, we have a limit of 64 transactions in a cluster.β
A single transaction can upend an entire mempool ordering
βYou can construct pathological Mempools, where you have a whole sequence of transactions, where they're all, every parent has two children and every child has two parents, and they're sort of connected as a trellis, where the optimal ordering is going from left to right. The best transactions are in the left, the worst transactions are in the right. And now, a single new transaction comes in that pays a huge fee and attaches on the right, and now suddenly the best order becomes you go from right to left.β
βI think at a high level, things become simpler in the sense that you can adopt a strategy of, I'll just bump the fee. Like I do a replacement, it doesn't make its way through, I just bump the fee a bit more. And if it still doesn't work, I bump the fee more, replace it with another transaction. And this will just work. Where in the past, you could try to follow the 425 rules, but as far as I know, nobody actually does. In practice, people already adopt this, you know, try and see approach.β
Mempools cannot and should not be uniform across nodes
βWe can't, right? There are many reasons for, obviously, no, they cannot, or we cannot guarantee it, because if they would, we wouldn't need a blockchain in the first place. Just accept whatever transactions are in the shared mempool first. The whole consensus problem is solved. We just cannot do that due to, you know, that there's no centralized party that can impose a single ordering on everything.β
Block template sharing helps propagation without consensus changes
βThere's been a relatively recent idea by Anthony Towns to do this block template sharing, which addresses some of this in a limited way, but it's a pretty simple idea. So the idea is like add a protocol extension that nodes can negotiate with each other. It's not a consensus change or anything entirely opt-in, where you can ask your peer if you were to create a block right now, what would it contain?β
βI'm trying very hard to sort of after, to an extent after SegWit, but even more after Taproot, I'm trying to stay out of all consensus change discussions. Yeah. I just feel like I had my fair share there. And, you know, it's, I'd rather stay out of that.β