A New Routing Paradigm:Ant Routing +`getroutequick` + Trampoline



Summary:

The Lightning network currently uses a gossip system for routing information, which is limited by the amount of bandwidth allowed on the blockchain. Combining Ant Routing and `getroutequick` would allow a possible payee to release a pheromone once, with subsequent payments referencing that pheromone using the pre-cached Dijkstra.Every node that wants to be a forwarding node keeps a mapping from a non-self node ID to a distance counter. Pheromones are composed of a Node ID, a reference to a channel, a proof that the Node ID is a participant in the indicated channel, and a distance counter. When a node receives a pheromone, it checks if the node already exists in its mapping. If it exists, and the distance counter in the pheromone is larger than or equal to the distance counter in the mapping, it ignores the pheromone and does not propagate it.However, if the distance counter in the pheromone is less than that in the mapping, or the mapping does not contain that pheromone, it updates its mapping and sends the pheromone to its peers it has channels with, but with the distance counter one greater than what it has now.The Lightning Network is proposing a new routing paradigm, trampoline routing, which adds an onion routing to a level above individual channel hops. Each node already has a mapping of nodes to distance counters, so to make a payment to a node, it needs only find some number of nodes in this mapping. The payer can repeat the process however many times it wants, in order to add more layers to the trampoline onion. A trampoline node might not be able to find the next trampoline or find that the payer information is too stale, in which case it can report back a failure. Failures are not encrypted and as such are in plaintext, so the ultimate payer can readjust its sense of how distant it is from that payee and retry with the same peer, or a different peer that is now nearer than the updated distance of the peer that propagated the failure. Periodically, a node may want to update the Dijkstra run for itself by re-emitting a new pheromone. This refreshes the sense of the rest of the network of what their distance is to each node on the network. We already allow the current gossip protocol to publish similar periodic updates to the channel and node announcements.Plugging Privacy With Trampoline Routing proposes adding an onion routing on a layer above the channel-level routing similar to how Tor adds onion routing on top of the TCP router-leving routing. An onion packet is sent to the destination that we admit to the getroutequick channel-level routing layer. This onion packet indicates openly how much of the HTLC timelock is allocated to reach that destination and how much is allocated to the destination itself.The Payment Point Rotation method utilizes payment point+scalar to achieve "path decorrelation" which changes the outgoing PTLC by a constant scalar that is secretly shared between the hop and the original payer. This moves the onion routing one level higher from the level of channel hops to the level of trampoline nodes. Another advantage of trampoline onions is that the payee can provide a pre-encrypted trampoline onion which the payer can prepend its own trampoline nodes to, also known as hidden destinations.The advantages of Payment Point Rotation include far fewer channels needing to be published off-chain, with a node only needing to publish one channel in order to act as proof that it is on Lightning. Additionally, nodes that do not expect to receive payments in the future, except from direct peers, do not need to publish any channels. However, censorship attacks are trivial and we would need to impose a consistent feerate and CLTV-delta at each node. The hope is that someone will come up with a way to mitigate or remove this weakness.


Updated on: 2023-06-02T23:44:21.021890+00:00