This question already has an answer here:

It seems good for preventing an UTXO bloat by restricting max number of outputs of TX(or block) can have. Is there such a restriction? if there is, which part of source code should I read? If not, why not?

Note: What I am asking is not about block size limit or TX size limit, I know those and how those are (implicitly) limiting the number of total outputs in TX (or block), but I think this is kinda roundabout way which limits the number outputs only loosely. Why not more direct restriction?

marked as duplicate by JBaczuk, RedGrittyBrick, Pieter Wuille, Community Nov 22 '18 at 2:37

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.


There is no direct limit on the number of outputs, but transactions can't have more than an allowed amount of weight and this indirectly limits the number of outputs.

  • Thanks. I do understand the indirect limit by TX weight, what makes me wonder is that today's miners can intentionally bloat UTXO by creating lots of TXs smaller than the limit. Or even non-miner can do that by splitting their TX into more than two. So my question is, "why not limit the number of TXO in a block directly?" This seems to be able to be introduced by a soft-fork, and may prevent some unknown vulnerability (like the one Christopher Jeffrey has proposed year ago.) – joemphilips Nov 16 '18 at 10:51
  • Because adding more constraints to blocks makes the mining problem vastly more complicated for no gain. – G. Maxwell Nov 16 '18 at 20:07

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