Pre-signed but unbroadcast or unconfirmed transactions seem to be a tough problem.
...
TL;DR: Holding on to pre-signed transactions,without broadcasting them, seem to be a bad idea. There is no way to guarantee that a transaction will be confirmed, until it is confirmed. The older the transaction, the greater the risk of it becoming invalid.
maybe I am being a bit simplistic about this, but "unconfirmed" to me means that it hasnt been confirmed. So to require that all unconfirmed transactions must be confirmed contradicts the fundamental meaning of unconfirmed. What is the meaning of the word 'unconfirmed'?
If all mempool tx that are unconfirmed, must be confirmed, then doesnt the confirmation point move to being accepted in the mempool? We would then need to say that all zeroconf tx in the mempool are actually confirmed?
But if that is the case, then how can there be consensus about what tx are confirmed or not? If being in the mempool means its confirmed, we would need to enforce mempool consensus. Is that currently the case? Why is this a requirement? Is the whole point of blocks to have something to consensus on?
I think things are difficult enough without requiring any solution to also treat unconfirmed tx as confirmed.