<oembed><type>rich</type><version>1.0</version><title>Bastien TEINTURIER [ARCHIVE] wrote</title><author_name>Bastien TEINTURIER [ARCHIVE] (npub17f…ntr0s)</author_name><author_url>https://yabu.me/npub17fjkngg0s0mfx4uhhz6n4puhflwvrhn2h5c78vdr5xda4mvqx89swntr0s</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2021-12-08&#xA;📝 Original message:&#xA;Hi Z,&#xA;&#xA;`SIGHASH_NONE | SIGHASH_NOINPUT` (which will take another what, four&#xA;&gt; years?) or a similar &#34;covenant&#34; opcode,&#xA;&#xA;such as `OP_CHECKTEMPLATEVERIFY` without any commitments or an&#xA;&gt; `OP_CHECKSIGFROMSTACK` on an empty message.&#xA;&gt; All you really need is a signature for an empty message, really...&#xA;&gt;&#xA;&#xA;That fails my requirement of &#34;deployable in 2022&#34; :)&#xA;&#xA;Same thing applies to fast-forwards: I do see their value, but I&#39;d like to&#xA;focus on a first version with minimal changes to the transaction structure&#xA;and the update protocol, to ensure we can actually get agreement on it&#xA;somewhat quickly and ship it in 2022. Then we can start working on a&#xA;more ambitious rework of the protocol that adds a lot of cool features,&#xA;such as what AJ proposed recently.&#xA;&#xA;Cheers,&#xA;Bastien&#xA;&#xA;Le mer. 8 déc. 2021 à 00:52, ZmnSCPxj &lt;ZmnSCPxj at protonmail.com&gt; a écrit :&#xA;&#xA;&gt; Good morning t-bast,&#xA;&gt;&#xA;&gt;&#xA;&gt; &gt; I believe these new transactions may require an additional round-trip.&#xA;&gt; &gt; Let&#39;s take a very simple example, where we have one pending PTLC in each&#xA;&gt; &gt; direction: PTLC_AB was offered by A to B and PTLC_BA was offered by B to&#xA;&gt; A.&#xA;&gt; &gt;&#xA;&gt; &gt; Now A makes some unrelated updates and wants to sign a new commitment.&#xA;&gt; &gt; A cannot immediately send her `commitment_signed` to B.&#xA;&gt; &gt; If she did, B would be able to broadcast this new commitment, and A would&#xA;&gt; &gt; not be able to claim PTLC_BA from B&#39;s new commitment (even if she knew&#xA;&gt; &gt; the payment secret) because she wouldn&#39;t have B&#39;s signature for the new&#xA;&gt; &gt; PTLC-remote-success transaction.&#xA;&gt; &gt;&#xA;&gt; &gt; So we first need B to send a new message `remote_ptlcs_signed` to A that&#xA;&gt; &gt; contains B&#39;s adaptor signatures for the PTLC-remote-success transactions&#xA;&gt; &gt; that would spend B&#39;s future commitment. After that A can safely send her&#xA;&gt; &gt; `commitment_signed`. Similarly, A must send `remote_ptlcs_signed` to B&#xA;&gt; &gt; before B can send its `commitment_signed`.&#xA;&gt; &gt;&#xA;&gt; &gt; It&#39;s actually not that bad, we&#39;re only adding one message in each&#xA;&gt; direction,&#xA;&gt; &gt; and we&#39;re not adding more data (apart from nonces) to existing messages.&#xA;&gt; &gt;&#xA;&gt; &gt; If you have ideas on how to avoid this new message, I&#39;d be glad to hear&#xA;&gt; &gt; them, hopefully I missed something again and we can make it better!&#xA;&gt;&#xA;&gt; `SIGHASH_NONE | SIGHASH_NOINPUT` (which will take another what, four&#xA;&gt; years?) or a similar &#34;covenant&#34; opcode, such as `OP_CHECKTEMPLATEVERIFY`&#xA;&gt; without any commitments or an `OP_CHECKSIGFROMSTACK` on an empty message.&#xA;&gt; All you really need is a signature for an empty message, really...&#xA;&gt;&#xA;&gt; Alternately, fast-forwards, which avoid this because it does not change&#xA;&gt; commitment transactions on the payment-forwarding path.&#xA;&gt; You only change commitment transactions once you have enough changes to&#xA;&gt; justify collapsing them.&#xA;&gt; Even in the aj formulation, when A adds a PTLC it only changes the&#xA;&gt; transaction that hosts **only** A-&gt;B PTLCs as well as the A main output,&#xA;&gt; all of which can be sent outright by A without changing any B-&gt;A PTLCs.&#xA;&gt;&#xA;&gt; Basically... instead of a commitment tx like this:&#xA;&gt;&#xA;&gt;                         +-------+&#xA;&gt;     funding outpoint --&gt;|       |--&gt; A main&#xA;&gt;                         |       |--&gt; B main&#xA;&gt;                         |       |--&gt; A-&gt;B PTLC&#xA;&gt;                         |       |--&gt; B-&gt;A PTLC&#xA;&gt;                         +-------+&#xA;&gt;&#xA;&gt; We could do this instead:&#xA;&gt;&#xA;&gt;                         +-------+2of2  +-----+&#xA;&gt;     funding outpoint --&gt;|       |-----&gt;|     |--&gt; A main&#xA;&gt;                         |       |      |     |--&gt; A-&gt;B PTLC&#xA;&gt;                         |       |      +-----+&#xA;&gt;                         |       |2or2  +-----+&#xA;&gt;                         |       |-----&gt;|     |--&gt; B main&#xA;&gt;                         |       |      |     |--&gt; B-&gt;A PTLC&#xA;&gt;                         +-------+      +-----+&#xA;&gt;&#xA;&gt; Then whenever A wants to add a new A-&gt;B PTLC it only changes the tx inputs&#xA;&gt; of the *other* A-&gt;B PTLCs without affecting the B-&gt;A PTLCs.&#xA;&gt; Payment forwarding is fast, and you only change the &#34;big&#34; commitment tx&#xA;&gt; rarely to clean up claimed and failed PTLCs, moving the extra messages out&#xA;&gt; of the forwarding hot path.&#xA;&gt;&#xA;&gt; But this is basically highly similar to what aj designed anyway, so...&#xA;&gt;&#xA;&gt; Regards,&#xA;&gt; ZmnSCPxj&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20211208/531e3f1e/attachment-0001.html&gt;</html></oembed>