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?
I am strongly against this proposal.
Right now there are no ledgers that are fast and cheap enough to make on-ledger transfers as part of an ILP flow practical, so this is purely for ledgers that could theoretically be built in the future. If someone were going to build a system to integrate with ILP, I think it is much more likely that they would build a connector instead of a ledger anyway (because then they're also part of Interledger routing). If someone wanted to build a fast, cheap ledger that was unaware of Interledger routing, they could trivially add a
to
field to the protocol you use to speak to it so this field definitely does not need to be in the core ILP protocol packet.