Good morning Ruben,

> >The broadcasting of the kickoff simply means that the first stage cannot be 
> >easily changed
>
> I see what you're saying. Yeah, it does ruin the stages. If the kickoff tx 
> hits the chain, you'd probably just want to "refresh" the UTXO by agreeing 
> with the statechain entity to spend it to a new statechain 2-of-2 UTXO 
> on-chain, thus removing all prior owners. Ideally you'd want it to be more 
> costly to CPFP the kickoff tx than it is to refresh the UTXO, so the defender 
> is at an advantage. The statechain entity should probably pay for every 
> refresh ("insurance"), since the actual owner isn't at fault.

Actually, thinking a little more, it seems that you can try to ensure that the 
first stage never drops to 0 relative locktime.
Then if somebody broadcasts the kick-off, the current owner can ask the 
statechain entity to sign an alternative to the first stage, with 0 relative 
locktime, that can now be a new funding transaction to anchor a (actually new, 
but logically a continuation) statechain.

Regards,
ZmnSCPxj

>
> Cheers,
> Ruben
>
> On Fri, Mar 27, 2020 at 2:46 AM ZmnSCPxj <zmnsc...@protonmail.com> wrote:
>
> > Good morning Ruben,
> >
> > > Hey Christian,
> > >
> > > Thanks for chiming in :)
> > >
> > > >It might be worth adopting the late fee binding we have in eltoo
> > >
> > > That is where my thinking originally went as well, but then I remembered 
> > > that this alters the txid, causing the settlement tx to become invalid. 
> > > What I am suggesting should be functionally the same (albeit less 
> > > space-efficient): a secondary output that can be spent by anyone, which 
> > > can be used to fee bump the kickoff tx with CPFP. I believe this same 
> > > idea was considered for Lightning as well at some point. Do you happen to 
> > > recall if there was some kind of non-standardness issue with it?
> >
> > Any standardness issue can be fixed by embedding it in a P2WSH / P2SH, you 
> > can use an `OP_TRUE` `redeemScript`, for instance.
> >
> > Using an `OP_TRUE` `redeemScript` would allow any third party to make you 
> > cry by opportunistically spending such an output.
> > For example your Bitcoin-network peer could notice you broadcasting such a 
> > transaction with an `OP_TRUE` output, see you spend that output with a 
> > CPFP-RBF-ed child transaction, then instead of further broadcasting the 
> > child transaction, instead broadcast a non-RBF child transaction with tiny 
> > fee, so that it and its parent transaction will be accepted into mempools 
> > but would not be replaceable with a higher-feerate child transaction 
> > (because not RBF-flagged).
> > Thus, some portion of mempools will contain this poisoned low-fee child 
> > transaction and prevent the parent from being confirmed (because the 
> > parent+child fees are not enough to justify being put in a block).
> > Which I suppose is an argument for Full RBF aka 
> > ignore-the-RBF-flag-and-always-RBF.
> >
> > The solution that I remember being proposed for this in Lightning was to 
> > give each participant its own attach-your-fees output that only that 
> > participant can spend, which works for Lightning because the set of 
> > participants in a channel is permanently fixed, but probably not for 
> > statechains.
> >
> > --
> >
> > The broadcasting of the kickoff simply means that the first stage cannot be 
> > easily changed, and you might still be able to make further updates by 
> > updating only the later stages, until the last stage is confirmable, so the 
> > kickoff being broadcast simply creates a "dead man walking" statechain.
> > However, the implementation complexity would probably increase tremendously.
> >
> > Regards,
> > ZmnSCPxj


_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev

Reply via email to