interledgerjs / ilp-connector

Reference implementation of an Interledger connector.
Other
136 stars 53 forks source link

Reduce blast radius #346

Closed michielbdejong closed 6 years ago

michielbdejong commented 7 years ago

Discussion continued from #344 -

If the liquidity curve is used as the only routing metric, that means that any connector can take the whole network offline by publishing unrealistically good offers. Since it is not trivial to compare asset value across ledgers, it is very difficult to detect which connector is causing the problem. For instance, supposed you normally route payments from the US to Luxembourg using the following path:

(USD) 100 -> 110 (EUR)

But now a new path is advertised:

(USD) 100 -> 99 -> 5399 -> 22 -> 124 (EUR)

Which of the arrows represents the connector that is giving an unreasonably good rate? It could be the 5399 -> 22 because 22 bitcoins for 5399 XRP is an amazing deal. Or that could be a terrible offer if it is actually 22 JPY for 5399 Swiss francs and the buggy offer is really 5399 Swiss francs for 99 US dollars. Doesn't matter, all payments regardless of source and destination will be routed to the buggy connector and will fail.

When we visited the IETF in Berlin, we sat in on a routing working group meeting. As they were discussing different proposals, one of the evaluation criteria was the "blast radius" of the routing protocol. I.e. How much of the network can a single screwup take down?

If we route purely based on liquidity curves, our blast radius is infinite. One poorly configured connector will take down the entire network until it is depeered by all of its peers.

emschwartz commented 6 years ago

I think this issue can be closed, because CCP now includes the number of hops, right?

michielbdejong commented 6 years ago

yes