<oembed><type>rich</type><version>1.0</version><author_name>npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_name><author_url>https://nostr.ae/npub17rld56k4365lfphyd8u8kwuejey5xcazdxptserx03wc4jc9g24stx9l2h</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2021-12-19&#xA;📝 Original message:&#xA;On Wed, Dec 08, 2021 at 04:02:02PM +0100, Bastien TEINTURIER wrote:&#xA;&gt; I updated my article [0], people jumping on the thread now may find it&#xA;&gt; helpful to better understand this discussion.&#xA;&gt; [0] https://github.com/t-bast/lightning-docs/pull/16&#xA;&#xA;Since merged, so https://github.com/t-bast/lightning-docs/blob/master/taproot-updates.md&#xA;&#xA;So imagine that this proposal is finished and widely adopted/deployed&#xA;and someone adds an additional feature bit that allows a channel to&#xA;forward PTLCs only, no HTLCs.&#xA;&#xA;Then suppose that you forget every old PTLC, because you don&#39;t like&#xA;having your channel state grow without bound. What happens if your&#xA;counterparty broadcasts an old state?&#xA;&#xA; * the musig2 channel funding is irrelevant -- the funding tx has been&#xA;   spend at this point&#xA; &#xA; * the unspent commitment outputs pay to:&#xA;     to_local: ipk = musig(revkey, mykey) -- known ; scripts also known&#xA;     to_remote: claimable in 1 block, would be better if ipk was also musig&#xA;     *_anchor: dust, who cares -- might be better if local_anchor used&#xA;        key = revkey&#xA;     *_htlc: irrelevant by definition&#xA;     local_ptlc: ipk = musig(revkey, mykey) -- known; scripts also known&#xA;&#xA; * commitment outputs may be immediately spent via layered txs. if so,&#xA;   their outputs are: ipk = musig(revkey, mykey); with fixed scripts,&#xA;   that include a relative timelock&#xA;&#xA;So provided you know the revocation key (which you do, because it&#39;s an&#xA;old transaction and that only requires log(states) data to reconstruct)&#xA;and your own private key, you can reconstruct all the scripts and use&#xA;key path spends for every output immediately (excepting the local_anchor,&#xA;and to_remote is delayed by a block).&#xA;&#xA;So while this doesn&#39;t achieve eltoo&#39;s goal of &#34;no toxic waste&#34;, I believe&#xA;it does achieve the goal of &#34;state information is bounded no matter&#xA;how long you leave the channel open / how many transactions travel over&#xA;the channel&#34;.&#xA;&#xA;(Provided you&#39;re willing to wait for the other party to attempt to claim&#xA;a htlc via their layered transaction, you can use this strategy for&#xA;htlcs as well as ptlcs -- however this leaves you the risk that they&#xA;never attempt to claim the funds, which may leave you out of pocket,&#xA;and may give them the opportunity to do an attack along the lines of&#xA;&#34;you don&#39;t get access to the $10,000 locked in old HTLCs unless you pay&#xA;me $1,000&#34;.  So I don&#39;t think that&#39;s really a smart thing to do)&#xA;&#xA;Cheers,&#xA;aj</html></oembed>