<oembed><type>rich</type><version>1.0</version><author_name>npub17fjkngg0s0mfx4uhhz6n4puhflwvrhn2h5c78vdr5xda4mvqx89swntr0s</author_name><author_url>https://nostr.ae/npub17fjkngg0s0mfx4uhhz6n4puhflwvrhn2h5c78vdr5xda4mvqx89swntr0s</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-10-10&#xA;📝 Original message:&#xA;Hey John,&#xA;&#xA;Thanks for sharing, this is very interesting.&#xA;&#xA;There is a good insight here that we can remove the intermediate&#xA;HTLC-timeout transaction for outgoing payments because we are the&#xA;origin of that payment (and thus don&#39;t need to quickly claim the&#xA;HTLC on-chain to then relay that failure to a matching incoming HTLC).&#xA;&#xA;More generally, you have perfectly identified that most of the&#xA;complexity of today&#39;s transactions come from the need to ensure that&#xA;a failing/malicious downstream channel doesn&#39;t negatively impact&#xA;honest upstream channels when relaying payments, and that some of this&#xA;complexity can be lifted when nodes don&#39;t relay payments.&#xA;&#xA;However, my main criticism of your proposal is that liquidity isn&#39;t free.&#xA;While your improvements are great from the CLU&#39;s point of view, I&#39;m not&#xA;sure they&#39;re acceptable for the DLU. The main (probably only) job of an&#xA;LSP (DLU in your terminology) is to efficiently allocate their liquidity.&#xA;In order to do so, they must be able to quickly move liquidity from where&#xA;it&#39;s unused to where it may be better used. That means closely watching&#xA;the demand for block space and doing on-chain transactions when fees are&#xA;low (to open/close channels, splice funds in/out [1], make peer swaps [2],&#xA;etc). With your proposal, DLUs won&#39;t be able to quickly move liquidity&#xA;around, so the only way to make up for this is to charge the CLU for the&#xA;loss of expected revenue. I&#39;m afraid that the amount DLUs would need to&#xA;charge CLUs will be prohibitively expensive for most CLUs.&#xA;&#xA;I&#39;m curious to get your feedback on that point.&#xA;&#xA;Thanks again for sharing, and for the inherited IDs [3] proposal as well!&#xA;&#xA;Bastien&#xA;&#xA;[1] https://github.com/lightning/bolts/pull/863&#xA;[2] https://www.peerswap.dev/&#xA;[3] https://github.com/JohnLaw2/btc-iids&#xA;&#xA;&#xA;Le lun. 3 oct. 2022 à 18:55, jlspc via Lightning-dev &lt;&#xA;lightning-dev at lists.linuxfoundation.org&gt; a écrit :&#xA;&gt;&#xA;&gt; This is the first in a series of posts on ideas to improve the usability&#xA;&gt; and scalability of the Lightning Network. This post presents a new channel&#xA;&gt; protocol that allows casual users to send and receive Lightning payments&#xA;&gt; without having to meet onerous availability requirements or use a&#xA;&gt; watchtower service. This new Watchtower-Free (WF) protocol can also be&#xA;&gt; used to simplify the reception of Lightning payments for casual users. No&#xA;&gt; change to the underlying Bitcoin protocol is required.&#xA;&gt;&#xA;&gt; A paper with a more complete description of the protocol, including&#xA;&gt; figures, is available [5].&#xA;&gt;&#xA;&gt; Properties&#xA;&gt; ==========&#xA;&gt;&#xA;&gt; The user-visible properties of the WF protocol can be expressed using&#xA;&gt; two parameters:&#xA;&gt; * I_S: a short time interval (e.g., 10 minutes) for communicating with&#xA;&gt;   peers, checking the blockchain, and submitting transactions to the&#xA;&gt;   blockchain, and&#xA;&gt; * I_L: a long time interval (e.g., 1-3 months).&#xA;&gt;&#xA;&gt; The casual user must be online for up to:&#xA;&gt; * I_S every I_L (e.g., 10 minutes every 1-3 months) to safeguard the funds&#xA;&gt;   in their Lightning channel.&#xA;&gt;&#xA;&gt; With the WF protocol, the latency for payments is unchanged from the&#xA;&gt; current protocol, but the latency for getting a payment receipt from an&#xA;&gt; uncooperative channel partner is increased. In addition, the casual user&#xA;&gt; may have to pay their channel partner for the partner&#39;s cost of capital&#xA;&gt; (which depends on I_L). If the casual user and their channel partner&#xA;&gt; follow the protocol, the channel can remain off-chain arbitrarily long.&#xA;&gt;&#xA;&gt; First Attempt: Use The Current Lightning Protocol&#xA;&gt; =================================================&#xA;&gt;&#xA;&gt; In order to motivate the new protocol, first consider what would happen if&#xA;&gt; a casual user attempted to achieve the above properties with the current&#xA;&gt; Lightning channel protocol. The casual user would set their&#xA;&gt; &#34;to_self_delay&#34; (which controls how quickly their channel partner can&#xA;&gt; receive funds from a transaction they put on-chain) and&#xA;&gt; &#34;cltv_expiry_delta&#34; (which controls the staggering of timeouts between&#xA;&gt; successive hops) parameters to values approaching I_L (because the casual&#xA;&gt; user could be unavailable for nearly that long). This would create three&#xA;&gt; problems:&#xA;&gt;&#xA;&gt; * Problem 1: The casual user&#39;s proposed channel partner would likely&#xA;&gt;   reject the creation of the channel due to the excessive &#34;to_self_delay&#34;&#xA;&gt;   value.&#xA;&gt;&#xA;&gt; * Problem 2: If a channel were created with these parameters, Lightning&#xA;&gt;   payments would not be routed through it due to the excessive&#xA;&gt;   &#34;cltv_expiry_delta&#34; value.&#xA;&gt;&#xA;&gt; * Problem 3: If a channel were created with these parameters and if the&#xA;&gt;   casual user sent a payment on that channel, their partner could have to&#xA;&gt;   go on-chain in order to pull the payment from the casual user. In&#xA;&gt;   particular, the casual user could be offline for nearly I_L (e.g., 1-3&#xA;&gt;   months) when their partner receives the receipt, thus forcing their&#xA;&gt;   partner to go on-chain to receive payment before the expiry of the&#xA;&gt;   associated HTLC.&#xA;&gt;&#xA;&gt; The WF Protocol&#xA;&gt; ===============&#xA;&gt;&#xA;&gt; The WF protocol solves these problems by modifying the Lightning protocol&#xA;&gt; as follows:&#xA;&gt;&#xA;&gt; * Problem 1 is solved by having the casual user pre-pay their channel&#xA;&gt;   partner for the cost of the partner&#39;s capital that&#39;s tied up in the&#xA;&gt;   channel due to the very large &#34;to_self_delay&#34; value. This pre-payment is&#xA;&gt;   included in the initial channel state and is updated at least once every&#xA;&gt;   I_L to reflect the additional cost of capital due to the partner not yet&#xA;&gt;   going on-chain.&#xA;&gt;&#xA;&gt; * Problem 2 is solved by allowing casual users to designate themselves as&#xA;&gt;   Casual-Lightning-Users (CLUs), while the remaining users are&#xA;&gt;   Dedicated-Lightning-Users (DLUs). CLUs can only partner with DLUs to&#xA;&gt;   open channels, such channels must be unannounced, and CLUs must not&#xA;&gt;   route (as opposed to send or receive) payments. These constraints fit&#xA;&gt;   naturally with the desires of casual users who want to send and receive&#xA;&gt;   their Lightning payments, but not route payments for others. Support for&#xA;&gt;   CLUs is analogous to support for SPV (Simplified-Payment-Verification)&#xA;&gt;   nodes in Bitcoin.&#xA;&gt;&#xA;&gt; * Problem 3 is solved by modifying both users&#39; Commitment transactions in&#xA;&gt;   the channel that sends the payment so the CLU can be offline for nearly&#xA;&gt;   I_L without forcing their DLU partner to go on-chain. A simple approach&#xA;&gt;   would be to delay the expiry of the HTLC for each payment in the sending&#xA;&gt;   channel by I_L. This approach works, but it has the downside of delaying&#xA;&gt;   (by I_L) the CLU&#39;s ability to force production of a payment receipt. A&#xA;&gt;   better approach is to add a relative delay before the CLU can time out&#xA;&gt;   the HTLC output of a Commitment transaction, thus enabling the DLU to&#xA;&gt;   safely stay off-chain even after the expiry of the HTLC. That&#39;s the&#xA;&gt;   approach taken here.&#xA;&gt;&#xA;&gt; Let Alice be a CLU who shares a channel with DLU Bob. Bob sets his channel&#xA;&gt; parameters as he would in the current Lightning protocol, while Alice sets&#xA;&gt; her &#34;to_self_delay&#34; parameter (controlling Bob&#39;s payments to himself) to&#xA;&gt; I_L greater than it would be in the current Lightning protocol. Consider&#xA;&gt; the case where Alice sends a Lightning payment on the channel she shares&#xA;&gt; with Bob.&#xA;&gt;&#xA;&gt; Let:&#xA;&gt;   - eAB denote the expiry for this payment in the channel shared by Alice&#xA;&gt;     and Bob,&#xA;&gt;   - tsdA denote the &#34;to_self_delay&#34; parameter set by Alice, and&#xA;&gt;   - tsdB denote the &#34;to_self_delay&#34; parameter set by Bob.&#xA;&gt;&#xA;&gt; Three changes are made relative to the current Lightning protocol:&#xA;&gt;   - a relative delay of tsdB is enforced before Alice can spend the HTLC&#xA;&gt;     output for this payment in either Commitment transaction,&#xA;&gt;   - after eAB, only Alice&#39;s (rather than both parties&#39;) signature is&#xA;&gt;     required to spend the HTLC output in Alice&#39;s Commitment transaction,&#xA;&gt;     and that output doesn&#39;t need to be spent using an HTLC-timeout&#xA;&gt;     transaction that can be revoked (because the relative delay added&#xA;&gt;     above guarantees Bob can prevent Alice from spending the HTLC output&#xA;&gt;     in a revoked Commitment transaction that she puts on-chain), and&#xA;&gt;   - both parties update the channel state off-chain at least once every&#xA;&gt;     I_L to reflect Bob&#39;s cost of capital, as described above.&#xA;&gt;&#xA;&gt; The resulting protocol, with a single payment from Alice outstanding, is&#xA;&gt; shown below:&#xA;&gt;&#xA;&gt; +-+ AB      +----+ A&#xA;&gt; |F|----+---&gt;| CC |---&gt;&#xA;&gt; +-+    |    |    |&#xA;&gt;        .    |    | B&#xA;&gt;        .    |    |---&gt;&#xA;&gt;        .    +----+&#xA;&gt;        |&#xA;&gt;        |&#xA;&gt;        |              revkeyBi&#xA;&gt;        |            +----------&gt;&#xA;&gt;        |            |&#xA;&gt;        |    +----+  | tsdB &amp; A&#xA;&gt;        +---&gt;|C_Ai|--+----------&gt;&#xA;&gt;        |    |    |&#xA;&gt;        |    |    |    B&#xA;&gt;        |    |    |-------------&gt;&#xA;&gt;        |    |    |&#xA;&gt;        |    |    |    revkeyBi&#xA;&gt;        |    |    |  +----------&gt;&#xA;&gt;        |    |    |  |&#xA;&gt;        |    |    |  | tsdB &amp; (eAB) &amp; A&#xA;&gt;        |    |    |--+-------------------&gt;&#xA;&gt;        |    +----+  |&#xA;&gt;        |            | Preimage(X) &amp; B&#xA;&gt;        |            +-------------------&gt;&#xA;&gt;        |&#xA;&gt;        |&#xA;&gt;        |&#xA;&gt;        |              revkeyAi&#xA;&gt;        |            +----------&gt;&#xA;&gt;        |            |&#xA;&gt;        |    +----+  | tsdA &amp; B&#xA;&gt;        +---&gt;|C_Bi|--+----------&gt;&#xA;&gt;        |    |    |&#xA;&gt;        |    |    |    A&#xA;&gt;        |    |    |-------------&gt;&#xA;&gt;        |    |    |&#xA;&gt;        |    |    |    revkeyAi&#xA;&gt;        |    |    |  +----------&gt;&#xA;&gt;        .    |    |  |&#xA;&gt;        .    |    |  | tsdB &amp; (eAB) &amp; A              revkeyAi&#xA;&gt;        .    |    |--+-------------------&gt;         +----------&gt;&#xA;&gt;        |    +----+  |                             |&#xA;&gt;        |            | Preimage(X) &amp; AB   +-----+  | tsdA &amp; B&#xA;&gt;        V            +-------------------&gt;|Hs_Bi|--+----------&gt;&#xA;&gt;                                          +-----+&#xA;&gt;&#xA;&gt; where:&#xA;&gt; F is the Funding transaction,&#xA;&gt; CC is the Cooperative Close transaction,&#xA;&gt; C_Ai is Alice&#39;s Commitment transaction for state i,&#xA;&gt; C_Bi is Bob&#39;s Commitment transaction for state i, and&#xA;&gt; Hs_Bi is Bob&#39;s HTLC-success transaction for state i.&#xA;&gt;&#xA;&gt; The F transaction is on-chain, while the remaining transactions are&#xA;&gt; off-chain during normal protocol operation.&#xA;&gt;&#xA;&gt; Requirements for output cases are as follows:&#xA;&gt; A: Alice&#39;s signature,&#xA;&gt; B: Bob&#39;s signature,&#xA;&gt; AB: Alice&#39;s and Bob&#39;s signatures,&#xA;&gt; revkeyAi: a signature using a revocation key that Alice can use to revoke&#xA;&gt;           Bob&#39;s state i transaction,&#xA;&gt; revkeyBi: a signature using a revocation key that Bob can use to revoke&#xA;&gt;           Alice&#39;s state i transaction,&#xA;&gt; tsdA: a relative delay equal to Alice&#39;s to_self_delay parameter,&#xA;&gt; tsdB: a relative delay equal to Bob&#39;s to_self_delay parameter,&#xA;&gt; (eAB): an absolute timelock equal to the expiry of the outstanding HTLC&#xA;&gt;        offered by Alice, and&#xA;&gt; Preimage(X): the hash preimage of X.&#xA;&gt;&#xA;&gt; Once Bob knows Preimage(X), he sends Preimage(X) to Alice and attempts to&#xA;&gt; update both parties&#39; Commitment transactions to show payment of the HTLC.&#xA;&gt; If he has spent I_L time unsuccessfully trying to update those Commitment&#xA;&gt; transactions, he can submit his Commitment and HTLC-success transactions&#xA;&gt; to the blockchain. If at any point he sees Alice&#39;s Commitment transaction&#xA;&gt; on-chain, he stops trying to update the Commitment transactions off-chain&#xA;&gt; and he puts his transaction that reveals Preimage(X) and spends the HTLC&#xA;&gt; output in her Commitment transaction on-chain as soon as possible.&#xA;&gt;&#xA;&gt; Alice implements the WF channel protocol as she would the current&#xA;&gt; Lightning channel protocol, except:&#xA;&gt;  - she can choose to be intentionally unavailable, provided she is&#xA;&gt;    available (or at least not intentionally unavailable) for at least I_S&#xA;&gt;    every I_L (to update her pre-payment for Bob&#39;s cost of capital and to&#xA;&gt;    revoke any old transactions put on-chain by Bob), and&#xA;&gt;  - she does not put her Commitment transaction on-chain until she has&#xA;&gt;    been available (or at least not intentionally unavailable) for at least&#xA;&gt;    a grace period of G following the expiry of her offered HTLC (where G&#xA;&gt;    is the same grace period as is used in the current Lightning protocol&#xA;&gt;    and G &lt;= I_S).&#xA;&gt;&#xA;&gt; Correctness&#xA;&gt; ===========&#xA;&gt;&#xA;&gt; When Alice sends a payment on the channel she shares with Bob, the WF&#xA;&gt; protocol matches the Lightning protocol except the parties stay off-chain&#xA;&gt; longer with the WF protocol (to accommodate Alice&#39;s intentional&#xA;&gt; unavailability). Staying off-chain longer is safe for Alice, as she&#xA;&gt; originated the payment and thus does not have to time out the HTLC at any&#xA;&gt; specific time in order receive payment in an earlier hop. Staying&#xA;&gt; off-chain longer is also safe for Bob, because whenever Alice&#39;s (or Bob&#39;s)&#xA;&gt; Commitment transaction is put on-chain, the tsdB relative delay before&#xA;&gt; Alice can time out the HTLC output is long enough to allow Bob to put his&#xA;&gt; transaction on-chain that takes payment for the HTLC.&#xA;&gt;&#xA;&gt; Finally, the WF protocol requires that Alice and Bob stay off-chain long&#xA;&gt; enough to guarantee that Alice will be available (or at least not&#xA;&gt; intentionally unavailable) for at least G, which is sufficient for both&#xA;&gt; parties to update the channel state off-chain. As a result, if both&#xA;&gt; parties follow the protocol, the channel will remain off-chain despite&#xA;&gt; Alice&#39;s intentional unavailability.&#xA;&gt;&#xA;&gt; A more detailed proof of correctness is given in the paper [5].&#xA;&gt;&#xA;&gt; One-Shot Receives&#xA;&gt; =================&#xA;&gt;&#xA;&gt; While eliminating watchtowers is helpful for casual users, the protocol&#xA;&gt; for receiving Lightning payments could still be awkward for such users.&#xA;&gt; With the current Lightning protocol, 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 in&#xA;&gt; their partner&#39;s Commitment transaction. The requirement to wait and check&#xA;&gt; the blockchain for the winning Commitment transaction (which might not be&#xA;&gt; determined until multiple blocks have been added to the blockchain) is&#xA;&gt; awkward for a casual user. It would be far preferable if the casual user&#xA;&gt; could always receive a payment by performing a sequence of off-chain&#xA;&gt; message exchanges and at most one submission to the blockchain. A protocol&#xA;&gt; that has this property will be said to support &#34;one-shot receives&#34;.&#xA;&gt;&#xA;&gt; The WF protocol can be made to support one-short receives (and to simplify&#xA;&gt; the process of getting a receipt) for CLU Alice by making the following&#xA;&gt; change whenever a new Commitment transaction for DLU Bob is signed by&#xA;&gt; Alice:&#xA;&gt;  - if Bob has one or more outstanding HTLCs offered to Alice, the&#xA;&gt;    nLocktime field of Bob&#39;s Commitment transaction is set to the expiry of&#xA;&gt;    the earliest such HTLC,&#xA;&gt;  - otherwise, the nLocktime field of Bob&#39;s Commitment transaction is set&#xA;&gt;    to I_L in the future (relative to when Bob&#39;s Commitment transaction is&#xA;&gt;    signed by Alice).&#xA;&gt;&#xA;&gt; Before examining how this change supports one-shot receives, it&#39;s&#xA;&gt; important to resolve a technical issue. In the current Lightning protocol,&#xA;&gt; the nLocktime field in the Commitment transaction provides 24 bits of the&#xA;&gt; channel&#39;s state number in order to allow efficient revocation of old&#xA;&gt; on-chain Commitments (with the remaining 24 bits being provided by the&#xA;&gt; nSequence field of the Commitment transaction&#39;s sole input). Because we&#39;re&#xA;&gt; now using the nLocktime field to enforce an absolute timelock, those 24&#xA;&gt; bits of state number can no longer be encoded in the nLocktime field.&#xA;&gt; There are two solutions to this problem:&#xA;&gt;  - add a second input to Bob&#39;s Commitment transaction that spends a UTXO&#xA;&gt;    owned by Bob (the value of which is arbitrary and is refunded to Bob in&#xA;&gt;    the Commitment transaction) and use the nSequence field of that input&#xA;&gt;    to encode 24 bits of state number, or&#xA;&gt;  - support only 24-bit state numbers, as 16 million channel states are&#xA;&gt;    likely sufficient for most casual users.&#xA;&gt;&#xA;&gt; In addition, the following constraints are added in order to guarantee&#xA;&gt; one-shot receives:&#xA;&gt; 1. Whenever a new HTLC is offered to Alice, its expiry is set to exactly&#xA;&gt;    her min_final_cltv_expiry parameter in the future. This constraint&#xA;&gt;    guarantees that new HTLCs have expiries that are monotonically&#xA;&gt;    nondecreasing.&#xA;&gt; 2. Whenever Alice gives Bob a secret for an HTLC, that HTLC has the&#xA;&gt;    earliest expiry of all the HTLCs in Alice&#39;s current Commitment&#xA;&gt;    transaction.&#xA;&gt; 3. Whenever a new channel state i+1 is created, Alice&#39;s partial signature&#xA;&gt;    for Bob&#39;s Commitment transaction for state i+1 is given to Bob, and the&#xA;&gt;    revocation key for Bob&#39;s Commitment transaction for state i is given to&#xA;&gt;    Alice, before Bob&#39;s partial signature for Alice&#39;s Commitment&#xA;&gt;    transaction for state i+1 is given to Alice.&#xA;&gt;&#xA;&gt; Given these constraints and the setting of the nLocktime field in Bob&#39;s&#xA;&gt; Commitment transaction, Alice can always put her Commitment transaction&#xA;&gt; on-chain before Bob can put a conflicting current Commitment transaction&#xA;&gt; on-chain, thus providing one-shot receives. The details are provided in&#xA;&gt; the paper [5].&#xA;&gt;&#xA;&gt; Finally, it&#39;s important to verify that the delay of Bob&#39;s Commitment&#xA;&gt; transaction (caused by the setting of its nLocktime field) does not create&#xA;&gt; any problems for Bob. First, for HTLCs offered to Alice (that is, payments&#xA;&gt; received by Alice), the current Lightning protocol requires that Bob wait&#xA;&gt; until after the expiry of his offered HTLC before he goes on-chain with&#xA;&gt; his Commitment and HTLC-timeout transactions. Therefore, the nLocktime&#xA;&gt; field has no impact on Bob&#39;s actions regarding HTLCs offered to Alice.&#xA;&gt; Second, for HTLCs offered by Alice (that is, payments sent by Alice), the&#xA;&gt; WF protocol does not force Bob to put his Commitment and associated&#xA;&gt; HTLC-success transactions on-chain before any specific time in order&#xA;&gt; guarantee the success of any HTLCs. As a result, Bob&#39;s ability to force&#xA;&gt; payment for HTLCs offered by Alice is unaffected by the nLocktime field in&#xA;&gt; his Commitment transactions. Note that the Lightning protocol does&#xA;&gt; require Bob to put his Commitment and associated HTLC-success transactions&#xA;&gt; on-chain by a specific time, which is why the changes described here&#xA;&gt; cannot be made to the Lightning protocol to support one-shot receives.&#xA;&gt;&#xA;&gt; Getting A Payment Receipt&#xA;&gt; =========================&#xA;&gt;&#xA;&gt; Consider again the case where casual user Alice has offered an HTLC to&#xA;&gt; Bob. At any time after the expiry of the HTLC, if Alice needs to get a&#xA;&gt; payment receipt and Bob is uncooperative, Alice can put her Commitment&#xA;&gt; transaction on-chain and then attempt to spend the HTLC output of her&#xA;&gt; Commitment transaction tsdB later. As was shown above, she is guaranteed&#xA;&gt; to win the race in putting her Commitment transaction on-chain due to the&#xA;&gt; nLocktime field in Bob&#39;s Commitment transaction. Therefore, she will&#xA;&gt; either get her receipt before she is able to spend the HTLC output or she&#xA;&gt; will not have to make her payment (because she succeeded in spending the&#xA;&gt; HTLC output). This procedure for getting a payment receipt isn&#39;t one-shot&#xA;&gt; and may be awkward for casual users. Fortunately, it&#39;s only required when&#xA;&gt; there&#39;s both a payment dispute (or other need to get a receipt quickly)&#xA;&gt; and an uncooperative channel partner.&#xA;&gt;&#xA;&gt; Asynchronous Payments&#xA;&gt; =====================&#xA;&gt;&#xA;&gt; The WF protocol gives significant flexibility to when CLUs have to be&#xA;&gt; online, but it still requires that the sender and receiver are both online&#xA;&gt; simultaneously. This requirement can be eliminated by keeping the relative&#xA;&gt; delay but removing the absolute delay in Alice&#39;s transaction that times&#xA;&gt; out an HTLC for a payment that she initiates. The details are given in the&#xA;&gt; paper [5].&#xA;&gt;&#xA;&gt; Related Work&#xA;&gt; ============&#xA;&gt;&#xA;&gt; The protocol presented here is based extensively on previously-published&#xA;&gt; work, namely the Poon-Dryja Lightning channel protocol [1] and the BOLT&#xA;&gt; specifications [2]. The asynchronous payments protocol is based on&#xA;&gt; Corallo&#39;s proposal for sending tips to an offline receiver [3], but&#xA;&gt; differs by using only a relative delay in the sender&#39;s HTLC.&#xA;&gt;&#xA;&gt; The idea of eliminating watchtowers for a casual user by delaying their&#xA;&gt; partner&#39;s ability to put transactions on-chain was described by Law [4],&#xA;&gt; but the interaction of that delay with HTLCs was not analyzed and that&#xA;&gt; paper assumed modifications to the underlying Bitcoin protocol.&#xA;&gt;&#xA;&gt; Conclusions&#xA;&gt; ===========&#xA;&gt;&#xA;&gt; This post presents the idea of dividing users into Casual-Lightning-Users&#xA;&gt; (CLUs) that only send and receive payments, and Dedicated-Lightning-Users&#xA;&gt; (DLUs) that can also route payments. It gives a new protocol that allows&#xA;&gt; casual users to send and receive Lightning payments in a trust-free manner&#xA;&gt; without requiring a watchtower service. It also allows CLUs to receive&#xA;&gt; payments in a one-shot manner (that is, without having to wait for blocks&#xA;&gt; to be added to the blockchain). No changes to the Bitcoin protocol are&#xA;&gt; required.&#xA;&gt;&#xA;&gt; The new protocol does have some disadvantages, such as increasing the cost&#xA;&gt; of capital for DLUs that partner with CLUs and increasing the latency for&#xA;&gt; CLUs to get payment receipts from uncooperative partners. Hopefully, the&#xA;&gt; elimination of watchtowers for casual users, and their ability to do&#xA;&gt; one-shot receives, will more than make up for these drawbacks.&#xA;&gt;&#xA;&gt; I&#39;m not an expert in the area, so I might have missed something.&#xA;&gt;&#xA;&gt; Corrections and comments are greatly appreciated.&#xA;&gt;&#xA;&gt; Regards,&#xA;&gt; John&#xA;&gt;&#xA;&gt; References&#xA;&gt; ==========&#xA;&gt;&#xA;&gt; [1] Poon and Dryja, The Bitcoin Lightning Network, available at&#xA;&gt;     https://lightning.network/lightning-network-paper.pdf.&#xA;&gt; [2] BOLT specifications, available at&#xA;&gt;     https://github.com/lightningnetwork/lightning-rfc.&#xA;&gt; [3] Corallo, A Mobile Lightning User Goes to Pay a Mobile Lightning&#xA;&gt;     User..., available at&#xA;https://lists.linuxfoundation.org/pipermail/lightning-dev/2021-October/003307.html&#xA;.&#xA;&gt; [4] Law, Section 3.6 of Scaling Bitcoin With Inherited IDs, available at&#xA;&gt;     https://github.com/JohnLaw2/btc-iids.&#xA;&gt; [5] Law, Watchtower-Free Lightning Channels For Casual Users, available at&#xA;&gt;     https://github.com/JohnLaw2/ln-watchtower-free.&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt;&#xA;&gt; Sent with Proton Mail secure email.&#xA;&gt; _______________________________________________&#xA;&gt; Lightning-dev mailing list&#xA;&gt; Lightning-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20221010/f0698834/attachment-0001.html&gt;</html></oembed>