<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated></updated>
  <generator>https://nostr.ae</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.ae/npub13gh6gyar6e767uyntdradum63zhv2faha996en2hw4q5xx82kfsqe5fght.rss" />
  <link href="https://nostr.ae/npub13gh6gyar6e767uyntdradum63zhv2faha996en2hw4q5xx82kfsqe5fght" />
  <id>https://nostr.ae/npub13gh6gyar6e767uyntdradum63zhv2faha996en2hw4q5xx82kfsqe5fght</id>
  <icon></icon>
  <logo></logo>




  <entry>
    <id>https://nostr.ae/nevent1qqsww2h63nr9njy0647then9x7rd6mns0ltqssnaet0rh5fkwcwr37qzyz9zlfqn50t8mtmsjdd504hn02y2a3f8kl55htxd2a65zscca2exq4skyxh</id>
    
      <title type="html">📅 Original date posted:2020-02-09 📝 Original message: Good ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqsww2h63nr9njy0647then9x7rd6mns0ltqssnaet0rh5fkwcwr37qzyz9zlfqn50t8mtmsjdd504hn02y2a3f8kl55htxd2a65zscca2exq4skyxh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxllm307wx8yw4k58qqt3u9ttegsdnrnmxaflvv86q0f7xe4c67vsfplfap&#39;&gt;nevent1q…lfap&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2020-02-09&lt;br/&gt;📝 Original message:&lt;br/&gt;Good morning, there are few things I&amp;#39;m not completely sure about, so would&lt;br/&gt;like to ask in order to prevent misunderstanding in Polish LN community.&lt;br/&gt;&lt;br/&gt;1. Is this possible that by sending funds without invoice, the last hub&lt;br/&gt;prepares the last HTLC with small amount to the payee? In other words - Can&lt;br/&gt;payee detect, that the last HTLC amount is smaller that it should be?&lt;br/&gt;&lt;br/&gt;2. Are there additional data added to the end of onion encrypted list of&lt;br/&gt;HTLCs in order to prevent last hub to guess, that it is the last hub in the&lt;br/&gt;route?&lt;br/&gt;&lt;br/&gt;3. When payment is during confirmation, are channels locked entirely, or&lt;br/&gt;only for the in flight payment amount? In other words - can single channel&lt;br/&gt;process more that single transaction at once?&lt;br/&gt;&lt;br/&gt;I would like to kindly pleas to reply in simple words, as my English is&lt;br/&gt;still far from being perfect.&lt;br/&gt;&lt;br/&gt;Best Regards,&lt;br/&gt;Cezary Dziemian&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200209/db6a7726/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200209/db6a7726/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T12:58:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqst37le9jx74jyffpf8tpprq8xv93tamhe56n4yutwe2awu9fh4tpgzyz9zlfqn50t8mtmsjdd504hn02y2a3f8kl55htxd2a65zscca2exqpyzhts</id>
    
      <title type="html">📅 Original date posted:2018-02-11 📝 Original message: That ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqst37le9jx74jyffpf8tpprq8xv93tamhe56n4yutwe2awu9fh4tpgzyz9zlfqn50t8mtmsjdd504hn02y2a3f8kl55htxd2a65zscca2exqpyzhts" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2ltnvyqhqf4t8y5aspa5msx9wlha6x9cx3njc705w3jht6x47ggcvfsc20&#39;&gt;nevent1q…sc20&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-02-11&lt;br/&gt;📝 Original message:&lt;br/&gt;That would be great improvement, if AMP could work this way:&lt;br/&gt;&lt;br/&gt;1. I would like to send 0.1 BTC, so I split this to 5 payment 0.02 BTC each&lt;br/&gt;&#43; one extra 0.02 BTC payment.&lt;br/&gt;2. When recipient received 6 htlcs, he is able to spend only 5 of them.&lt;br/&gt;If recipient receives, only 5 of them, it is still fine, and payment is&lt;br/&gt;success.&lt;br/&gt;&lt;br/&gt;In such scenario, single route/payment would fail, and payment as whole&lt;br/&gt;would still be success. Do you think that would be possible? It could&lt;br/&gt;greatly increase reliability of LN payments.&lt;br/&gt;&lt;br/&gt;2018-02-09 11:15 GMT&#43;01:00 CJP &amp;lt;cjp at ultimatestunts.nl&amp;gt;:&lt;br/&gt;&lt;br/&gt;&amp;gt; Can you give a use case for this?&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Usually, especially in the common case that a payment is done in&lt;br/&gt;&amp;gt; exchange for some non-cryptographic asset (e.g. physical goods), there&lt;br/&gt;&amp;gt; already is some kind of trust between payer and payee. So, if a payment&lt;br/&gt;&amp;gt; is split non-atomically into smaller transactions, and only a part&lt;br/&gt;&amp;gt; succeeds, presumably they can cooperatively figure out some way to&lt;br/&gt;&amp;gt; settle the situation.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; I spoke to people of the &amp;#34;interledger&amp;#34; project, and what they are&lt;br/&gt;&amp;gt; planning to do is to non-atomically split *every* transaction into lots&lt;br/&gt;&amp;gt; of micro-payments. In fact, they consider it unnecessary to enforce&lt;br/&gt;&amp;gt; HTLCs with scripts, because their amounts are so small(*). If one&lt;br/&gt;&amp;gt; micro-payment fails, that just makes them learn that a certain channel&lt;br/&gt;&amp;gt; is unreliable, and they&amp;#39;ll send further payments (and even the remaining&lt;br/&gt;&amp;gt; part of the same payment) through a different route.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; CJP&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; (*) not worth the extra on-blockchain fee due to the increased tx size.&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; Olaoluwa Osuntokun schreef op di 06-02-2018 om 05:26 [&#43;0000]:&lt;br/&gt;&amp;gt; &amp;gt; Hi Y&amp;#39;all,&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; A common question I&amp;#39;ve seen concerning Lightning is: &amp;#34;I have five $2&lt;br/&gt;&amp;gt; &amp;gt; channels, is it possible for me to *atomically* send $6 to fulfill a&lt;br/&gt;&amp;gt; &amp;gt; payment?&amp;#34;. The answer to this question is &amp;#34;yes&amp;#34;, provided that the&lt;br/&gt;&amp;gt; &amp;gt; receiver&lt;br/&gt;&amp;gt; &amp;gt; waits to pull all HTLC&amp;#39;s until the sum matches their invoice.&lt;br/&gt;&amp;gt; &amp;gt; Typically, one&lt;br/&gt;&amp;gt; &amp;gt; assumes that the receiver will supply a payment hash, and the sender&lt;br/&gt;&amp;gt; &amp;gt; will&lt;br/&gt;&amp;gt; &amp;gt; re-use the payment hash for all streams. This has the downside of&lt;br/&gt;&amp;gt; &amp;gt; payment&lt;br/&gt;&amp;gt; &amp;gt; hash re-use across *multiple* payments (which can already easily be&lt;br/&gt;&amp;gt; &amp;gt; correlated), and also has a failure mode where if the sender fails to&lt;br/&gt;&amp;gt; &amp;gt; actually satisfy all the payment flows, then the receiver can still&lt;br/&gt;&amp;gt; &amp;gt; just&lt;br/&gt;&amp;gt; &amp;gt; pull the monies (and possibly not disperse a service, or w/e).&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Conner Fromknecht and I have come up with a way to achieve this over&lt;br/&gt;&amp;gt; &amp;gt; Lightning while (1) not re-using any payment hashes across all payment&lt;br/&gt;&amp;gt; &amp;gt; flows, and (2) adding a *strong* guarantee that the receiver won&amp;#39;t be&lt;br/&gt;&amp;gt; &amp;gt; paid&lt;br/&gt;&amp;gt; &amp;gt; until *all* partial payment flows are extended. We call this scheme&lt;br/&gt;&amp;gt; &amp;gt; AMP&lt;br/&gt;&amp;gt; &amp;gt; (Atomic Multi-path Payments). It can be experimented with on Lightning&lt;br/&gt;&amp;gt; &amp;gt; *today* with the addition of a new feature bit to gate this new&lt;br/&gt;&amp;gt; &amp;gt; feature. The beauty of the scheme is that it requires no fundamental&lt;br/&gt;&amp;gt; &amp;gt; changes&lt;br/&gt;&amp;gt; &amp;gt; to the protocol as is now, as the negotiation is strictly *end-to-end*&lt;br/&gt;&amp;gt; &amp;gt; between sender and receiver.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; TL;DR: we repurpose some unused space in the onion per-hop payload of&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; onion blob to signal our protocol (and deliver some protocol-specific&lt;br/&gt;&amp;gt; &amp;gt; data),&lt;br/&gt;&amp;gt; &amp;gt; then use additive secret sharing to ensure that the receiver can&amp;#39;t&lt;br/&gt;&amp;gt; &amp;gt; pull the&lt;br/&gt;&amp;gt; &amp;gt; payment until they have enough shares to reconstruct the original&lt;br/&gt;&amp;gt; &amp;gt; pre-image.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Protocol Goals&lt;br/&gt;&amp;gt; &amp;gt; ==============&lt;br/&gt;&amp;gt; &amp;gt; 1. Atomicity: The logical transaction should either succeed or fail in&lt;br/&gt;&amp;gt; &amp;gt; entirety. Naturally, this implies that the receiver should not be&lt;br/&gt;&amp;gt; &amp;gt; unable to&lt;br/&gt;&amp;gt; &amp;gt; settle *any* of the partial payments, until all of them have arrived.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 2. Avoid Payment Hash Reuse: The payment preimages validated by the&lt;br/&gt;&amp;gt; &amp;gt; consensus layer should be distinct for each partial payment.&lt;br/&gt;&amp;gt; &amp;gt; Primarily,&lt;br/&gt;&amp;gt; &amp;gt; this helps avoid correlation of the partial payments, and ensures that&lt;br/&gt;&amp;gt; &amp;gt; malicious intermediaries straddling partial payments cannot steal&lt;br/&gt;&amp;gt; &amp;gt; funds.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 3. Order Invariance: The protocol should be forgiving to the order in&lt;br/&gt;&amp;gt; &amp;gt; which&lt;br/&gt;&amp;gt; &amp;gt; partial payments arrive at the destination, adding robustness in the&lt;br/&gt;&amp;gt; &amp;gt; face of&lt;br/&gt;&amp;gt; &amp;gt; delays or routing failures.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 4. Non-interactive Setup: It should be possible for the sender to&lt;br/&gt;&amp;gt; &amp;gt; perform an&lt;br/&gt;&amp;gt; &amp;gt; AMP without directly coordinating with the receiving node.&lt;br/&gt;&amp;gt; &amp;gt; Predominantly,&lt;br/&gt;&amp;gt; &amp;gt; this means that the *sender* is able to determine the number of&lt;br/&gt;&amp;gt; &amp;gt; partial&lt;br/&gt;&amp;gt; &amp;gt; payments to use for a particular AMP, which makes sense since they&lt;br/&gt;&amp;gt; &amp;gt; will be&lt;br/&gt;&amp;gt; &amp;gt; the one fronting the fees for the cost of this parameter. Plus, we can&lt;br/&gt;&amp;gt; &amp;gt; always turn a non-interactive protocol into an interactive one for the&lt;br/&gt;&amp;gt; &amp;gt; purposes of invoicing.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Protocol Benefits&lt;br/&gt;&amp;gt; &amp;gt; =================&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Sending pay payments predominantly over an AMP-like protocol has&lt;br/&gt;&amp;gt; &amp;gt; several&lt;br/&gt;&amp;gt; &amp;gt; clear benefits:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Eliminates the constraint that a single path from sender to&lt;br/&gt;&amp;gt; &amp;gt; receiver&lt;br/&gt;&amp;gt; &amp;gt;     with sufficient directional capacity. This reduces the pressure to&lt;br/&gt;&amp;gt; &amp;gt; have&lt;br/&gt;&amp;gt; &amp;gt;     larger channels in order to support larger payment flows. As a&lt;br/&gt;&amp;gt; &amp;gt; result,&lt;br/&gt;&amp;gt; &amp;gt;     the payment graph be very diffused, without sacrificing payment&lt;br/&gt;&amp;gt; &amp;gt;     utility&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Reduces strain from larger payments on individual paths, and&lt;br/&gt;&amp;gt; &amp;gt; allows the&lt;br/&gt;&amp;gt; &amp;gt;     liquidity imbalances to be more diffuse. We expect this to have a&lt;br/&gt;&amp;gt; &amp;gt;     non-negligible impact on channel longevity. This is due to the&lt;br/&gt;&amp;gt; &amp;gt; fact that&lt;br/&gt;&amp;gt; &amp;gt;     with usage of AMP, payment flows are typically *smaller* meaning&lt;br/&gt;&amp;gt; &amp;gt; that&lt;br/&gt;&amp;gt; &amp;gt;     each payment will unbalance a channel to a lesser degree that&lt;br/&gt;&amp;gt; &amp;gt;     with one giant flow.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Potential fee savings for larger payments, contingent on there&lt;br/&gt;&amp;gt; &amp;gt; being a&lt;br/&gt;&amp;gt; &amp;gt;     super-linear component to routed fees. It&amp;#39;s possible that with&lt;br/&gt;&amp;gt; &amp;gt;     modifications to the fee schedule, it&amp;#39;s actually *cheaper* to send&lt;br/&gt;&amp;gt; &amp;gt;     payments over multiple flows rather than one giant flow.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Allows for logical payments larger than the current maximum value&lt;br/&gt;&amp;gt; &amp;gt; of an&lt;br/&gt;&amp;gt; &amp;gt;     individual payment. Atm we have a (temporarily) limit on the max&lt;br/&gt;&amp;gt; &amp;gt; payment&lt;br/&gt;&amp;gt; &amp;gt;     size. With AMP, this can be side stepped as each flow can be up&lt;br/&gt;&amp;gt; &amp;gt; the max&lt;br/&gt;&amp;gt; &amp;gt;     size, with the sum of all flows exceeding the max.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Given sufficient path diversity, AMPs may improve the privacy of&lt;br/&gt;&amp;gt; &amp;gt; LN&lt;br/&gt;&amp;gt; &amp;gt;     Intermediaries are now unaware to how much of the total payment&lt;br/&gt;&amp;gt; &amp;gt; they are&lt;br/&gt;&amp;gt; &amp;gt;     forwarding, or even if they are forwarding a partial payment at&lt;br/&gt;&amp;gt; &amp;gt; all.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Using smaller payments increases the set of possible paths a&lt;br/&gt;&amp;gt; &amp;gt; partial&lt;br/&gt;&amp;gt; &amp;gt;     payment could have taken, which reduces the effectiveness of&lt;br/&gt;&amp;gt; &amp;gt; static&lt;br/&gt;&amp;gt; &amp;gt;     analysis techniques involving channel capacities and the plaintext&lt;br/&gt;&amp;gt; &amp;gt;     values being forwarded.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Protocol Overview&lt;br/&gt;&amp;gt; &amp;gt; ==================&lt;br/&gt;&amp;gt; &amp;gt; This design can be seen as a generalization of the single,&lt;br/&gt;&amp;gt; &amp;gt; non-interactive&lt;br/&gt;&amp;gt; &amp;gt; payment scheme, that uses decoding of extra onion blobs (EOBs?) to&lt;br/&gt;&amp;gt; &amp;gt; encode&lt;br/&gt;&amp;gt; &amp;gt; extra data for the receiver. In that design, the extra data includes a&lt;br/&gt;&amp;gt; &amp;gt; payment preimage that the receiver can use to settle back the payment.&lt;br/&gt;&amp;gt; &amp;gt; EOBs&lt;br/&gt;&amp;gt; &amp;gt; and some method of parsing them are really the only requirement for&lt;br/&gt;&amp;gt; &amp;gt; this&lt;br/&gt;&amp;gt; &amp;gt; protocol to work. Thus, only the sender and receiver need to implement&lt;br/&gt;&amp;gt; &amp;gt; this&lt;br/&gt;&amp;gt; &amp;gt; feature in order for it to function, which can be announced using a&lt;br/&gt;&amp;gt; &amp;gt; feature&lt;br/&gt;&amp;gt; &amp;gt; bit.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; First, let&amp;#39;s review the current format of the per-hop payload for each&lt;br/&gt;&amp;gt; &amp;gt; node&lt;br/&gt;&amp;gt; &amp;gt; described in BOLT-0004.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; ┌───────────────┬───────────────────┬────────────────┬──────&lt;br/&gt;&amp;gt; ─────────────────┬─────────────────┬─────────────────┐&lt;br/&gt;&amp;gt; &amp;gt; │Realm (1 byte) │Next Addr (8 bytes)│Amount (8 bytes)│Outgoing CLTV (4&lt;br/&gt;&amp;gt; &amp;gt; bytes)│Unused (12 bytes)│ HMAC (32 bytes) │&lt;br/&gt;&amp;gt; &amp;gt; └───────────────┴───────────────────┴────────────────┴──────&lt;br/&gt;&amp;gt; ─────────────────┴─────────────────┴─────────────────┘&lt;br/&gt;&amp;gt; &amp;gt; ■───────────────────────────────────────────────────────────&lt;br/&gt;&amp;gt; ─────────────────────────────────────────────────────■&lt;br/&gt;&amp;gt; &amp;gt;                                               ┌─────────────────┐&lt;br/&gt;&amp;gt; &amp;gt;                                               │65 Bytes Per Hop │&lt;br/&gt;&amp;gt; &amp;gt;                                               └─────────────────┘&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Currently, *each* node gets a 65-byte payload. We use this payload to&lt;br/&gt;&amp;gt; &amp;gt; give&lt;br/&gt;&amp;gt; &amp;gt; each node instructions on *how* to forward a payment. We tell each&lt;br/&gt;&amp;gt; &amp;gt; node: the&lt;br/&gt;&amp;gt; &amp;gt; realm (or chain to forward on), then next node to forward to, the&lt;br/&gt;&amp;gt; &amp;gt; amount to&lt;br/&gt;&amp;gt; &amp;gt; forward (this is where fees are extracted by forwarding out less than&lt;br/&gt;&amp;gt; &amp;gt; in),&lt;br/&gt;&amp;gt; &amp;gt; the outgoing CLTV (allows verification that the prior node didn&amp;#39;t&lt;br/&gt;&amp;gt; &amp;gt; modify any&lt;br/&gt;&amp;gt; &amp;gt; values), and finally an HMAC over the entire thing.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Two important points:&lt;br/&gt;&amp;gt; &amp;gt;   1. We have 12 bytes for each hop that are currently unpurposed and&lt;br/&gt;&amp;gt; &amp;gt; can be&lt;br/&gt;&amp;gt; &amp;gt;   used by application protocols to signal new interpretation of bytes&lt;br/&gt;&amp;gt; &amp;gt; and&lt;br/&gt;&amp;gt; &amp;gt;   also deliver additional encrypted&#43;authenticated data to *each* hop.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   2. The protocol currently has a hard limit of 20-hops. With this&lt;br/&gt;&amp;gt; &amp;gt; feature&lt;br/&gt;&amp;gt; &amp;gt;   we ensure that the packet stays fixed sized during processing in&lt;br/&gt;&amp;gt; &amp;gt; order to&lt;br/&gt;&amp;gt; &amp;gt;   avoid leaking positional information. Typically most payments won&amp;#39;t&lt;br/&gt;&amp;gt; &amp;gt; use&lt;br/&gt;&amp;gt; &amp;gt;   all 20 hops, as a result, we can use the remaining hops to stuff in&lt;br/&gt;&amp;gt; &amp;gt; *even&lt;br/&gt;&amp;gt; &amp;gt;   more* data.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Protocol Description&lt;br/&gt;&amp;gt; &amp;gt; ====================&lt;br/&gt;&amp;gt; &amp;gt; The solution we propose is Atomic Multi-path Payments (AMPs). At a&lt;br/&gt;&amp;gt; &amp;gt; high&lt;br/&gt;&amp;gt; &amp;gt; level, this leverages EOBs to deliver additive shares of a base&lt;br/&gt;&amp;gt; &amp;gt; preimage,&lt;br/&gt;&amp;gt; &amp;gt; from which the payment preimages of partial payments can be derived.&lt;br/&gt;&amp;gt; &amp;gt; The&lt;br/&gt;&amp;gt; &amp;gt; receiver can only construct this value after having received all of&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; partial payments, satisfying the atomicity constraint.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The basic protocol:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Primitives&lt;br/&gt;&amp;gt; &amp;gt; ==========&lt;br/&gt;&amp;gt; &amp;gt; Let H be a CRH function.&lt;br/&gt;&amp;gt; &amp;gt; Let || denote concatenation.&lt;br/&gt;&amp;gt; &amp;gt; Let ^ denote xor.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Sender Requirements&lt;br/&gt;&amp;gt; &amp;gt; ===================&lt;br/&gt;&amp;gt; &amp;gt; The parameters to the sending procedure are a random identifier ID,&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; number of partial payments n, and the total payment value V. Assume&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; sender has some way of dividing V such that V = v_1 &#43; … &#43; v_n.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; To begin, the sender builds the base preimage BP, from which n partial&lt;br/&gt;&amp;gt; &amp;gt; preimages will be derived. Next, the sender samples n additive shares&lt;br/&gt;&amp;gt; &amp;gt; s_1,&lt;br/&gt;&amp;gt; &amp;gt; …, s_n, and takes the sum to compute BP = s_1 ^ … ^ s_n.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; With the base preimage created, the sender now moves on to&lt;br/&gt;&amp;gt; &amp;gt; constructing the&lt;br/&gt;&amp;gt; &amp;gt; n partial payments. For each i in [1,n], the sender deterministically&lt;br/&gt;&amp;gt; &amp;gt; computes the partial preimage r_i = H(BP ||  i), by concatenating the&lt;br/&gt;&amp;gt; &amp;gt; sequence number i to the base preimage and hashing the result.&lt;br/&gt;&amp;gt; &amp;gt; Afterwards,&lt;br/&gt;&amp;gt; &amp;gt; it applies H to determine the payment hash to use in the i’th partial&lt;br/&gt;&amp;gt; &amp;gt; payment as h_i = H(r_i). Note that that with this preimage derivation&lt;br/&gt;&amp;gt; &amp;gt; scheme, once the payments are pulled each pre-image is distinct and&lt;br/&gt;&amp;gt; &amp;gt; indistinguishable from any other.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; With all of the pieces in place, the sender initiates the i’th payment&lt;br/&gt;&amp;gt; &amp;gt; by&lt;br/&gt;&amp;gt; &amp;gt; constructing a route to the destination with value v_i and payment&lt;br/&gt;&amp;gt; &amp;gt; hash h_i.&lt;br/&gt;&amp;gt; &amp;gt; The tuple (ID, n, s_i) is included in the EOB to be opened by the&lt;br/&gt;&amp;gt; &amp;gt; receiver.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In order to include the three tuple within the per-hop payload for the&lt;br/&gt;&amp;gt; &amp;gt; final&lt;br/&gt;&amp;gt; &amp;gt; destination, we repurpose the _first_ byte of the un-used padding&lt;br/&gt;&amp;gt; &amp;gt; bytes in&lt;br/&gt;&amp;gt; &amp;gt; the payload to signal version 0x01 of the AMP protocol (note this is a&lt;br/&gt;&amp;gt; &amp;gt; PoC&lt;br/&gt;&amp;gt; &amp;gt; outline, we would need to standardize signalling of these 12 bytes to&lt;br/&gt;&amp;gt; &amp;gt; support other protocols). Typically this byte isn&amp;#39;t set, so the&lt;br/&gt;&amp;gt; &amp;gt; existence of&lt;br/&gt;&amp;gt; &amp;gt; this means that we&amp;#39;re (1) using AMP, and (2) the receiver should&lt;br/&gt;&amp;gt; &amp;gt; consume the&lt;br/&gt;&amp;gt; &amp;gt; _next_ hop as well. So if the payment length is actually 5, the sender&lt;br/&gt;&amp;gt; &amp;gt; tacks&lt;br/&gt;&amp;gt; &amp;gt; on an additional dummy 6th hop, encrypted with the _same_ shared&lt;br/&gt;&amp;gt; &amp;gt; secret for&lt;br/&gt;&amp;gt; &amp;gt; that hop to deliver the e2e encrypted data.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Note, the sender can retry partial payments just as they would normal&lt;br/&gt;&amp;gt; &amp;gt; payments, since they are order invariant, and would be&lt;br/&gt;&amp;gt; &amp;gt; indistinguishable&lt;br/&gt;&amp;gt; &amp;gt; from regular payments to intermediaries in the network.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Receiver Requirements&lt;br/&gt;&amp;gt; &amp;gt; =====================&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Upon the arrival of each partial payment, the receiver will&lt;br/&gt;&amp;gt; &amp;gt; iteratively&lt;br/&gt;&amp;gt; &amp;gt; reconstruct BP, and do some bookkeeping to figure out when to settle&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; partial payments. During this reconstruction process, the receiver&lt;br/&gt;&amp;gt; &amp;gt; does not&lt;br/&gt;&amp;gt; &amp;gt; need to be aware of the order in which the payments were sent, and in&lt;br/&gt;&amp;gt; &amp;gt; fact&lt;br/&gt;&amp;gt; &amp;gt; nothing about the incoming partial payments reveals this information&lt;br/&gt;&amp;gt; &amp;gt; to the&lt;br/&gt;&amp;gt; &amp;gt; receiver, though this can be learned after reconstructing BP.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Each EOB is decoded to retrieve (ID, n, s_i), where i is the unique&lt;br/&gt;&amp;gt; &amp;gt; but&lt;br/&gt;&amp;gt; &amp;gt; unknown index of the incoming partial payment. The receiver has access&lt;br/&gt;&amp;gt; &amp;gt; to&lt;br/&gt;&amp;gt; &amp;gt; persistent key-value store DB that maps ID to (n, c*, BP*), where c*&lt;br/&gt;&amp;gt; &amp;gt; represents the number of partial payments received, BP* is the sum of&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; received additive shares, and the superscript * denotes that the value&lt;br/&gt;&amp;gt; &amp;gt; is&lt;br/&gt;&amp;gt; &amp;gt; being updated iteratively. c* and BP* both have initial values of 0.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; In the basic protocol, the receiver cache’s the first n it sees, and&lt;br/&gt;&amp;gt; &amp;gt; verifies that all incoming partial payments have the same n. The&lt;br/&gt;&amp;gt; &amp;gt; receiver&lt;br/&gt;&amp;gt; &amp;gt; should reject all partial payments if any EOB deviates.  Next, the we&lt;br/&gt;&amp;gt; &amp;gt; update&lt;br/&gt;&amp;gt; &amp;gt; our persistent store with DB[ID] = (n, c* &#43; 1, BP* ^ s_i), advancing&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; reconstruction by one step.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; If c* &#43; 1 &amp;lt; n, there are still more packets in flight, so we sit&lt;br/&gt;&amp;gt; &amp;gt; tight.&lt;br/&gt;&amp;gt; &amp;gt; Otherwise, the receiver assumes all partial payments have arrived, and&lt;br/&gt;&amp;gt; &amp;gt; can&lt;br/&gt;&amp;gt; &amp;gt; being settling them back. Using the base preimage BP = BP* ^ s_i from&lt;br/&gt;&amp;gt; &amp;gt; our&lt;br/&gt;&amp;gt; &amp;gt; final iteration, the receiver can re-derive all n partial preimages&lt;br/&gt;&amp;gt; &amp;gt; and&lt;br/&gt;&amp;gt; &amp;gt; payment hashes, using r_i = H(BP || i) and h_i = H(r_i) simply through&lt;br/&gt;&amp;gt; &amp;gt; knowledge of n and BP.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Finally, the receiver settles back any outstanding payments that&lt;br/&gt;&amp;gt; &amp;gt; include&lt;br/&gt;&amp;gt; &amp;gt; payment hash h_i using the partial preimage r_i. Each r_i will appear&lt;br/&gt;&amp;gt; &amp;gt; random&lt;br/&gt;&amp;gt; &amp;gt; due to the nature of H, as will it’s corresponding h_i. Thus, each&lt;br/&gt;&amp;gt; &amp;gt; partial&lt;br/&gt;&amp;gt; &amp;gt; payment should appear uncorrelated, and does not reveal that it is&lt;br/&gt;&amp;gt; &amp;gt; part of&lt;br/&gt;&amp;gt; &amp;gt; an AMP nor the number of partial payments used.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Non-interactive to Interactive AMPs&lt;br/&gt;&amp;gt; &amp;gt; ===================================&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Sender simply receives an ID and amount from the receiver in an&lt;br/&gt;&amp;gt; &amp;gt; invoice&lt;br/&gt;&amp;gt; &amp;gt; before initiating the protocol. The receiver should only consider the&lt;br/&gt;&amp;gt; &amp;gt; invoice settled if the total amount received in partial payments&lt;br/&gt;&amp;gt; &amp;gt; containing&lt;br/&gt;&amp;gt; &amp;gt; ID matches or exceeds the amount specified in the invoice. With this&lt;br/&gt;&amp;gt; &amp;gt; variant, the receiver is able to map all partial payments to a&lt;br/&gt;&amp;gt; &amp;gt; pre-generated&lt;br/&gt;&amp;gt; &amp;gt; invoice statement.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Additive Shares vs Threshold-Shares&lt;br/&gt;&amp;gt; &amp;gt; ===================================&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The biggest reason to use additive shares seems to be atomicity.&lt;br/&gt;&amp;gt; &amp;gt; Threshold&lt;br/&gt;&amp;gt; &amp;gt; shares open the door to some partial payments being settled, even if&lt;br/&gt;&amp;gt; &amp;gt; others&lt;br/&gt;&amp;gt; &amp;gt; are left in flight. Haven’t yet come up with a good reason for using&lt;br/&gt;&amp;gt; &amp;gt; threshold schemes, but there seem to be plenty against it.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Reconstruction of additive shares can be done iteratively, and is win&lt;br/&gt;&amp;gt; &amp;gt; for&lt;br/&gt;&amp;gt; &amp;gt; the storage and computation requirements on the receiving end. If the&lt;br/&gt;&amp;gt; &amp;gt; sender&lt;br/&gt;&amp;gt; &amp;gt; decides to use fewer than n partial payments, the remaining shares&lt;br/&gt;&amp;gt; &amp;gt; could be&lt;br/&gt;&amp;gt; &amp;gt; included in the EOB of the final partial payment to allow the sender&lt;br/&gt;&amp;gt; &amp;gt; to&lt;br/&gt;&amp;gt; &amp;gt; reconstruct sooner. Sender could also optimistically do partial&lt;br/&gt;&amp;gt; &amp;gt; reconstruction on this last aggregate value.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Adaptive AMPs&lt;br/&gt;&amp;gt; &amp;gt; =============&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The sender may not always be aware of how many partial payments they&lt;br/&gt;&amp;gt; &amp;gt; wish to&lt;br/&gt;&amp;gt; &amp;gt; send at the time of the first partial payment, at which point the&lt;br/&gt;&amp;gt; &amp;gt; simplified&lt;br/&gt;&amp;gt; &amp;gt; protocol would require n to be chosen. To accommodate, the above&lt;br/&gt;&amp;gt; &amp;gt; scheme can&lt;br/&gt;&amp;gt; &amp;gt; be adapted to handle a dynamically chosen n by iteratively&lt;br/&gt;&amp;gt; &amp;gt; constructing the&lt;br/&gt;&amp;gt; &amp;gt; shared secrets as follows.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Starting with a base preimage BP, the key trick is that the sender&lt;br/&gt;&amp;gt; &amp;gt; remember&lt;br/&gt;&amp;gt; &amp;gt; the difference between the base preimage and the sum of all partial&lt;br/&gt;&amp;gt; &amp;gt; preimages used so far. The relation is described using the following&lt;br/&gt;&amp;gt; &amp;gt; equations:&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;     X_0 = 0&lt;br/&gt;&amp;gt; &amp;gt;     X_i = X_{i-1} ^ s_i&lt;br/&gt;&amp;gt; &amp;gt;     X_n = BP ^ X_{n-1}&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; where if n=1, X_1 = BP, implying that this is in fact a generalization&lt;br/&gt;&amp;gt; &amp;gt; of&lt;br/&gt;&amp;gt; &amp;gt; the single, non-interactive payment scheme mentioned above. For&lt;br/&gt;&amp;gt; &amp;gt; i=1, ...,&lt;br/&gt;&amp;gt; &amp;gt; n-1, the sender sends s_i in the EOB, and  X_n for the n-th share.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Iteratively reconstructing s_1 ^ …. ^ s_{n-1} ^ X_n = BP, allows the&lt;br/&gt;&amp;gt; &amp;gt; receiver to compute all relevant r_i = H(BP || i) and h_i = H(r_i).&lt;br/&gt;&amp;gt; &amp;gt; Lastly,&lt;br/&gt;&amp;gt; &amp;gt; the final number of partial payments n could be signaled in the final&lt;br/&gt;&amp;gt; &amp;gt; EOB,&lt;br/&gt;&amp;gt; &amp;gt; which would also serve as a sentinel value for signaling completion.&lt;br/&gt;&amp;gt; &amp;gt; In&lt;br/&gt;&amp;gt; &amp;gt; response to DOS vectors stemming from unknown values of n,&lt;br/&gt;&amp;gt; &amp;gt; implementations&lt;br/&gt;&amp;gt; &amp;gt; could consider advertising a maximum value for n, or adopting some&lt;br/&gt;&amp;gt; &amp;gt; sort of&lt;br/&gt;&amp;gt; &amp;gt; framing pattern for conveying that more partial payments are on the&lt;br/&gt;&amp;gt; &amp;gt; way.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; We can further modify our usage of the per-hop payloads to send&lt;br/&gt;&amp;gt; &amp;gt; (H(BP), s_i) to&lt;br/&gt;&amp;gt; &amp;gt; consume most of the EOB sent from sender to receiver. In this&lt;br/&gt;&amp;gt; &amp;gt; scenario, we&amp;#39;d&lt;br/&gt;&amp;gt; &amp;gt; repurpose the 11-bytes *after* our signalling byte in the unused byte&lt;br/&gt;&amp;gt; &amp;gt; section&lt;br/&gt;&amp;gt; &amp;gt; to store the payment ID (which should be unique for each payment). In&lt;br/&gt;&amp;gt; &amp;gt; the case&lt;br/&gt;&amp;gt; &amp;gt; of a non-interactive payment, this will be unused. While for&lt;br/&gt;&amp;gt; &amp;gt; interactive&lt;br/&gt;&amp;gt; &amp;gt; payments, this will be the ID within the invoice. To deliver this&lt;br/&gt;&amp;gt; &amp;gt; slimmer&lt;br/&gt;&amp;gt; &amp;gt; 2-tuple, we&amp;#39;ll use 32-bytes for the hash of the BP, and 32-bytes for&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; partial pre-image share, leaving an un-used byte in the payload.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Cross-Chain AMPs&lt;br/&gt;&amp;gt; &amp;gt; ================&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; AMPs can be used to pay a receiver in multiple currencies&lt;br/&gt;&amp;gt; &amp;gt; atomically...which&lt;br/&gt;&amp;gt; &amp;gt; is pretty cool :D&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Open Research Questions&lt;br/&gt;&amp;gt; &amp;gt; =======================&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; The above is a protocol sketch to achieve atomic multi-path payments&lt;br/&gt;&amp;gt; &amp;gt; over&lt;br/&gt;&amp;gt; &amp;gt; Lightning. The details concerning onion blob usage serves as a&lt;br/&gt;&amp;gt; &amp;gt; template that&lt;br/&gt;&amp;gt; &amp;gt; future protocols can draw upon in order to deliver additional data to&lt;br/&gt;&amp;gt; &amp;gt; *any*&lt;br/&gt;&amp;gt; &amp;gt; hop in the route. However, there are still a few open questions before&lt;br/&gt;&amp;gt; &amp;gt; something like this can be feasibly deployed.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 1. How does the sender decide how many chunked payments to send, and&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt; size of each payment?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - Upon a closer examination, this seems to overlap with the task of&lt;br/&gt;&amp;gt; &amp;gt;     congestion control within TCP. The sender may be able to utilize&lt;br/&gt;&amp;gt; &amp;gt;     inspired heuristics to gauge: (1) how large the initial payment&lt;br/&gt;&amp;gt; &amp;gt; should be&lt;br/&gt;&amp;gt; &amp;gt;     and (2) how many subsequent payments may be required. Note that if&lt;br/&gt;&amp;gt; &amp;gt; the&lt;br/&gt;&amp;gt; &amp;gt;     first payment succeeds, then the exchange is over in a signal&lt;br/&gt;&amp;gt; &amp;gt; round.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 2. How can AMP and HORNET be composed?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;   - If we eventually integrate HORNET, then a distinct communications&lt;br/&gt;&amp;gt; &amp;gt;     sessions can be established to allow the sender&#43;receiver to&lt;br/&gt;&amp;gt; &amp;gt; exchange&lt;br/&gt;&amp;gt; &amp;gt;     up-to-date partial payment information. This may allow the sender&lt;br/&gt;&amp;gt; &amp;gt; to more&lt;br/&gt;&amp;gt; &amp;gt;     accurately size each partial payment.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 3. Can the sender&amp;#39;s initial strategy be governed by an instance of the&lt;br/&gt;&amp;gt; &amp;gt; Push-relabel max flow algo?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; 4. How does this mesh with the current max HTLC limit on a commitment?&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;    - ATM, we have a max limit on the number of active HTLC&amp;#39;s on a&lt;br/&gt;&amp;gt; &amp;gt; particular&lt;br/&gt;&amp;gt; &amp;gt;      commitment transaction. We do this, as otherwise it&amp;#39;s possible&lt;br/&gt;&amp;gt; &amp;gt; that the&lt;br/&gt;&amp;gt; &amp;gt;      transaction is too large, and exceeds standardness w.r.t&lt;br/&gt;&amp;gt; &amp;gt; transaction&lt;br/&gt;&amp;gt; &amp;gt;      size. In a world where most payments use an AMP-like protocol,&lt;br/&gt;&amp;gt; &amp;gt; then&lt;br/&gt;&amp;gt; &amp;gt;      overall ant any given instance there will be several pending&lt;br/&gt;&amp;gt; &amp;gt; HTLC&amp;#39;s on&lt;br/&gt;&amp;gt; &amp;gt;      commitments network wise.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;      This may incentivize nodes to open more channels in order to&lt;br/&gt;&amp;gt; &amp;gt; support&lt;br/&gt;&amp;gt; &amp;gt;      the increased commitment space utilization.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; Conclusion&lt;br/&gt;&amp;gt; &amp;gt; ==========&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; We&amp;#39;ve presented a design outline of how to integrate atomic multi-path&lt;br/&gt;&amp;gt; &amp;gt; payments (AMP) into Lightning. The existence of such a construct&lt;br/&gt;&amp;gt; &amp;gt; allows a&lt;br/&gt;&amp;gt; &amp;gt; sender to atomically split a payment flow amongst several individual&lt;br/&gt;&amp;gt; &amp;gt; payment&lt;br/&gt;&amp;gt; &amp;gt; flows. As a result, larger channels aren&amp;#39;t as important as it&amp;#39;s&lt;br/&gt;&amp;gt; &amp;gt; possible to&lt;br/&gt;&amp;gt; &amp;gt; utilize one total outbound payment bandwidth to send several channels.&lt;br/&gt;&amp;gt; &amp;gt; Additionally, in order to support the increased load, internal routing&lt;br/&gt;&amp;gt; &amp;gt; nodes&lt;br/&gt;&amp;gt; &amp;gt; are incensed have more active channels. The existence of AMP-like&lt;br/&gt;&amp;gt; &amp;gt; payments&lt;br/&gt;&amp;gt; &amp;gt; may also increase the longevity of channels as there&amp;#39;ll be smaller,&lt;br/&gt;&amp;gt; &amp;gt; more&lt;br/&gt;&amp;gt; &amp;gt; numerous payment flows, making it unlikely that a single payment comes&lt;br/&gt;&amp;gt; &amp;gt; across unbalances a channel entirely. We&amp;#39;ve also showed how one can&lt;br/&gt;&amp;gt; &amp;gt; utilize&lt;br/&gt;&amp;gt; &amp;gt; the current onion packet format to deliver additional data from a&lt;br/&gt;&amp;gt; &amp;gt; sender to&lt;br/&gt;&amp;gt; &amp;gt; receiver, that&amp;#39;s still e2e authenticated.&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; -- Conner &amp;amp;&amp;amp; Laolu&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt;&lt;br/&gt;&amp;gt; &amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; &amp;gt; Lightning-dev mailing list&lt;br/&gt;&amp;gt; &amp;gt; Lightning-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;&amp;gt; _______________________________________________&lt;br/&gt;&amp;gt; Lightning-dev mailing list&lt;br/&gt;&amp;gt; Lightning-dev at lists.linuxfoundation.org&lt;br/&gt;&amp;gt; &lt;a href=&#34;https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&#34;&gt;https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&lt;/a&gt;&lt;br/&gt;&amp;gt;&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180211/27d3755e/attachment-0001.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180211/27d3755e/attachment-0001.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T12:49:02Z</updated>
  </entry>

  <entry>
    <id>https://nostr.ae/nevent1qqs94g3hdegwhw25yhpgq3y7lj25w0jms8dm5j6dcdd03vy2swyvkcszyz9zlfqn50t8mtmsjdd504hn02y2a3f8kl55htxd2a65zscca2exqs3fcgh</id>
    
      <title type="html">📅 Original date posted:2018-01-29 📝 Original message: ...</title>
    
    <link rel="alternate" href="https://nostr.ae/nevent1qqs94g3hdegwhw25yhpgq3y7lj25w0jms8dm5j6dcdd03vy2swyvkcszyz9zlfqn50t8mtmsjdd504hn02y2a3f8kl55htxd2a65zscca2exqs3fcgh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfaureptm9zfxsk8ueyv9s6zz7acslquknhxueqy6dm8876rgxknqdyxkmj&#39;&gt;nevent1q…xkmj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;📅 Original date posted:2018-01-29&lt;br/&gt;📝 Original message:&lt;br/&gt;Hello,&lt;br/&gt;&lt;br/&gt;Because mainnet is growing, I would also like to make some mainnet tests. I&lt;br/&gt;would like to be able to receive funds by LN. I ques in order to do that I&lt;br/&gt;need to talk with some of existing nodes to convince him to &amp;#34;lock&amp;#34; funds on&lt;br/&gt;his side. Do you know any place, when people who setup mainnet nodes can&lt;br/&gt;discuss?&lt;br/&gt;&lt;br/&gt;Regards,&lt;br/&gt;Cezary&lt;br/&gt;-------------- next part --------------&lt;br/&gt;An HTML attachment was scrubbed...&lt;br/&gt;URL: &amp;lt;&lt;a href=&#34;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180129/0b0d47e6/attachment.html&amp;gt&#34;&gt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20180129/0b0d47e6/attachment.html&amp;gt&lt;/a&gt;;
    </content>
    <updated>2023-06-09T12:48:43Z</updated>
  </entry>

</feed>