EDIT: This proposal has been postponed until more people are interested on working on it again.
Here's a proposal to amend ILP v4, so that it can still do everything we want it to do, but doesn't send the original Interledger vision to the proverbial graveyard. ILP v4.1 is identical to ILP v4.0, with an extra to
field added to the Prepare. This extra field can be used for two things:
I discussed this with Evan, and he replied that hosted ledger operators will not allow third-party connectors on their ledger. But who are we to restrict that? I think it would be great to be able to trust one party for the ledger role and multiple unrelated parties for the connector role, with rollback to the ledger's safety - that's what the original Interledger dream was, and that's the more generic setup. And note that enlightened hosted ledgers, where there is just one connector (operated, or at least elected, by the ledger operator), will still be supported just as easily in ILP v4.1! :)
For ledgers like XRP, it doesn't make sense to have just one connector. The to
field would specify the connector of your choice.
ILP v4.0 proposes to avoid on-ledger escrow, and use a payment-channel-backed account at a connector instead, for fast small payments, and this will still be supported by ILP v4.1.
We're only adding one nullable field, so everything that can be done with ILP v4.0 can also be done with ILP v4.1. But the opposite is not true. ILP v4.0 gives up on the original Interledger dream of payments (tiny or otherwise) to any receiver on any ledger through a trustless connector.
Of course, ILP v4 introduces an awesome new dream, namely fast payments for tiny amounts. But having a new dream isn't a good reason for giving up on the existing dream of any-size payments to anywhere, and I, for one, prefer 4.1 over 4.0. Is there is at least one other person in the research team who feels the same way?
As I understand this proposal, it sounds like you're proposing a move closer to source routing. While the current version of the protocol allows each participant to pick the next hop (by choosing which link to send the packet over), this would allow each participant to pick the next two hops (by choosing who the next link should send to).
If we assume the sender has better information than their ILSP does, this would make sense. The ILSP would hold balances with many customers, but would know nothing about routing. When you ask it to send to someone who isn't their customer you need to tell them which of their clients to forward to. I think this is a pretty rare case, though, because the ILSP offers connectivity as their main business.
I don't think that's the right way to put it. Regardless of whether we're talking about ILPv1 or ILPv4, the ledger is a connector. The ledger can always charge a fee to send from one account to another. The only difference brought up here is whether the ledger operator keeps routing information, or whether the customer keeps routing information.
The purported advantage that ILPv4.1 offers is the ability to have routing information that overrides the ledger operator's. But there's no way to prove that the ledger operator forwarded to the connector you asked for, so you can't actually override their routing decision. It's more of a routing hint. So it doesn't work for the case where the users want to overthrow an unfair connector; they still have to switch ILSPs.
If we imagine the ILSP wants to allow their users to specify routing information, I think that's possible within the current setup. You could go to your account with your ILSP and tell them "forward my traffic to this client of yours instead of your ordinary routes". This could be something like an advanced feature. You just wouldn't be doing it in the flow of every payment, because then every client application you run would need to have special routing information.
In short, I think there's definitely use cases for some user-specified routing hints, but I don't think they belong in our core protocol, nor would they meaningfully affect the incentives or security guarantees of the network.