<oembed><type>rich</type><version>1.0</version><author_name>npub16dt55fpq3a8r6zpphd9xngxr46zzqs75gna9cj5vf8pknyv2d7equx4wrd</author_name><author_url>https://nostr.ae/npub16dt55fpq3a8r6zpphd9xngxr46zzqs75gna9cj5vf8pknyv2d7equx4wrd</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-10-07&#xA;📝 Original message:&#xA;On 2022-10-03 06:55, jlspc via Lightning-dev wrote:&#xA;&gt; The WF Protocol&#xA;&gt; ===============&#xA;&#xA;Hi John,&#xA;&#xA;I had difficulty understanding your proposal description here and in &#xA;your paper[1].  I wonder if others are having the same the same &#xA;difficulty, so I&#39;ve tried to reduce it down to just the essential idea &#xA;so you can tell me if I&#39;m understanding correctly and others can &#xA;evaluate it more quickly.  Here I go:&#xA;&#xA;In a traditional HTLC, the agreement is essentially:&#xA;&#xA;- Setup: Alice has x BTC, an unpublished value y, and the hash digest z &#xA;which is hash(y)&#xA;- HTLC success: Alice offers Bob the x BTC, which he can claim at any &#xA;time if he publishes y satisfying the equation hash(y) == z&#xA;- HTLC failure: Alice can spend the x BTC back to her wallet after some &#xA;time t has elapsed&#xA;&#xA;If I understand your modified protocol correctly, the essential modified &#xA;agreement is:&#xA;&#xA;- [Setup the same]&#xA;- [HTLC success the same]&#xA;- HTLC failure: Alice can spend the x BTC back to her wallet by first &#xA;getting a trigger[2] transaction confirmed onchain, waiting b blocks, &#xA;then getting the actual spend-back-to-wallet transaction confirmed&#xA;&#xA;Because the trigger transaction needs to be confirmed for b blocks &#xA;before Alice can can spend the money back to her wallet, Bob doesn&#39;t &#xA;need to take any action to lock-in an HTLC Success unless he sees the &#xA;trigger transaction appear onchain or he expects to be offline for more &#xA;than b blocks.  This allows Alice to stay offline for as long as Bob can &#xA;tolerate (which goes towards your point of Alice prepaying Bob for that &#xA;tolerance).&#xA;&#xA;[1] &#xA;https://raw.githubusercontent.com/JohnLaw2/ln-watchtower-free/main/watchtowerfree10.pdf&#xA;[2] &#34;Trigger&#34; transaction is the name given to that type of transaction &#xA;in section 4.2 of the Eltoo paper: https://blockstream.com/eltoo.pdf&#xA;&#xA;&gt; One-Shot Receives&#xA;&gt; =================&#xA;&#xA;I understand the essence of this idea to be simply encumbering dedicated &#xA;user Bob&#39;s commitment transaction with a timelock so that he can&#39;t &#xA;publish it until near the time when any HTLCs in it would expire.  &#xA;Alice&#39;s version of commitment would be unencumbered, so she could &#xA;publish it any time.&#xA;&#xA;&gt; when a user receives a payment and&#xA;&gt; their channel partner is unresponsive, the user must submit their&#xA;&gt; Commitment and HTLC-success transactions to the blockchain. However, if&#xA;&gt; their partner&#39;s conflicting Commitment transaction wins the race and is&#xA;&gt; included in the blockchain, the user then has to submit a different&#xA;&gt; transaction that reveals the HTLC&#39;s secret and spends the HTLC output &#xA;&gt; in&#xA;&gt; their partner&#39;s Commitment transaction. The requirement to wait and &#xA;&gt; check&#xA;&gt; the blockchain for the winning Commitment transaction (which might not &#xA;&gt; be&#xA;&gt; determined until multiple blocks have been added to the blockchain) is&#xA;&gt; awkward for a casual user.&#xA;&#xA;Although your proposal may address this in the normal case, I think it &#xA;doesn&#39;t address the pathological case where honest casual user Alice &#xA;broadcasts the latest commitment transaction but her channel partner, &#xA;malicious dedicated user Mallory, broadcasts an older revoked commitment &#xA;transaction.  Because Mallory&#39;s revoked commitment transaction is older, &#xA;its timelock has expired, so it can win the race against Alice&#39;s latest &#xA;commitment transaction.&#xA;&#xA;To become aware of this situation and to broadcast a penalty transaction &#xA;within the necessary time limit, Alice still needs to monitor the block &#xA;chain.  If Alice still needs to monitor the block chain in any case, &#xA;this proposed change doesn&#39;t eliminate the underlying problem of onerous &#xA;monitoring as far as I can tell.&#xA;&#xA;Thanks as always for the innovative thinking!,&#xA;&#xA;-Dave</html></oembed>