Bitcoin Core – Sigop Number and How It Affects Transaction Selection
This question is inspired by this Recent mempool phenomenon: Some transactions, even if they had competitive commission rates, were excluded from the block because they reached the positive sig count and the maximum sig count before the block template was fully filled. The remaining empty space was filled using zero sigop txs.
Miners seem to have to solve a backpack-like problem, constrained by two hard restrictions: One is the block size and the other is the maximum siproduct amount. The former is actually optimized for standard mining algorithms, the latter is somewhat taken into account due to the content of this PR and penalizes transaction size if the number of sigps is high.
First quarter: Assume that the mempool does not contain zero sigop transactions, that the selection algorithm contains only transactions with a high sigop count, and that you have constructed a block template with a lot of free space. Is it guaranteed by choice?
nBytesPerSigOp
Do you think this block template is more convenient for miners who want to avoid high-yield transactions when blocks are full?
Judging by this answer, it seems like miners could actually make a bit more profit if they do something clever, but that’s probably unlikely to happen in practice.
2nd quarter: Why don’t standard mempool-based fee estimation algorithms recognize the time product? In a situation where there are many high SQ transactions with competitive commission rates, there are two different next block fees depending on whether the SQ number of the transaction you are trading in is positive or not.