Author: Ugam Kamat 2019-06-29 06:50:07
Published on: 2019-06-29T06:50:07+00:00
Ugam Kamat proposed a new idea of simultaneous payments to multiple parties using the same partial route. He suggested repurposing the onion blob in the similar way as needed for Spontaneous Payments, which could create a scenario where there is no path duplication. Christian Decker pointed out a loophole in his proposal that could potentially lead to DoS and failure attacks in the channels. Christian referred to current proposal implemented by ElementsProject/lightning and lightningnetwork/lightning-rfc/pull/619, which gave up on fixed 65 byte frames altogether and allowed variable payloads. Ugam's proposal works in a similar fashion to Spontaneous Payment proposal, by packing in additional data in the unused hops.For B and C, the onion blob will be identical to other lightning payments. When D parses the onion, the 4 MSB of the realm will tell D how much data can be extracted. This data will encode the hashes of the pre-images that would be used for commitment transaction towards Eric and other towards Frank. For simplicity and privacy, he proposed using 2 onion blobs for the data, and the payload can be 64 + 33 bytes = 97 bytes. The onion data is encoded in the same order in which the payment hashes are packed in the bifurcation data for D.Eric and Grace will parse the onion and use the pre-images for settlement. Ugam suggests calculating PM = f(P1, P2) using SHA256(P1 || P2 || ss_d), where || represents concatenation and ss_d is the shared secret created using the ephemeral public key of sender (the one generated by Alice) and private key of Dave. The proposal has several advantages, including lower fees in case of on-chain settlement, lower routing fees, more number of htlcs in flight, and usability of the route if each payment of Eric and Grace is below the htlc min B or C accepts, but together if it is higher. However, the probability of transaction failures increases as now the transaction is dependent on 2/3 branches. Ugam suggests that not all nodes need to support this feature and the nodes that can handle branching of payments can signal that using global features.
Updated on: 2023-06-02T19:01:39.259226+00:00