-snip-- If Bob breaks the agreement and broadcasts or the transactions accidentally hit the chain then Alice will just withdraw bitcoins from their outputs.
Isn't this the same as number 3's input(s) re-spending to make another TX to extend the
n_locktime target?
If Alice needs to withdraw from the accidentally broadcasted tx, then there's an on-chain transaction and fees involved
thus, basically the same as #3.
I found 3 the most convenient option, but it's possible to create a client that utilizes the concept for ease of use.
3 Disadvantage: Process complexity and transaction fee burden of regular funds re-locking for a new time.
For the fee, a one-input one output transaction isn't that expensive even with an overpay 50+ sat/B fee, average of 200B, that's 0.0001 per update.
Trice a year or Quarterly, it won't be too expensive (
plus the fee rate could be lower than 50).
For the complexity, it will only became complex if Alice accidentally broadcasted the transaction prematurely,
that would require her to clear her node's mempool or wait for it to expire (
and -zapwallettxes) to re-spend the input(s) involved.
Otherwise, She can just create another tx to "
extend" the lock-time since Bob's or others' node
won't accept/relay that particular TX.