LN routing isn't just unsolved, it is unsolvable.

In LN each channel is a multisignature address with some funds on them. A payment on LN is executed by one of the parties to this address signing a transaction sending the funds of the address to the refund addresses of each channel participant. By setting the amount of the funds, it expresses a balance (how much of the channel belongs to whom). Channel balances are intentionally private, the messages for updating these balances (the signed but not broadcast transactions) are only seen by each partner of a channel. If the message is countersigned and broadcast, it closes the LN channel.

All channels are therefore registered on the blockchain, the topology of the network is known. However, the channel balances are not known.

Routing a payment along a path (and not just between two parties) is accomplished with a bit of clever cryptography that ensures nobody can steal from anybody. However, if the chosen path has not enough capacity to satisfy the payment, the payment has failed. is stuck, for several hours until it times out. (apparently LN solves stuck payments on capacity, somehow).

The sender of a payment has to select a path. This has to be done based on insufficient information (just the topology of the network). But a crucial part, the channel balances, are unknown. So no path along which a payment is attempted, can be guaranteed to work.

As the LN network grows (let's assume in some fashion of a decentralized network), paths grow longer. The longer the paths get, the higher the chances that one of any of the channels along the path has insufficient balance to satisfy the payment.

It is impossible to create any sort of routing and keep channel balances private at the same time. In order to arrive at a feasible route, channel balances have to be discoverable. But in order for privacy (as promised by LN) to be possible, channel balances have to remain private.

submitted by /u/pyalot
[link] [comments]

source https://www.reddit.com/r/btc/comments/atlysd/ln_routing_isnt_just_unsolved_it_is_unsolvable/

Comments