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?
Yeah, the pre-enlightenment view is that the ledger had many accounts and some of these could be connectors.
The post-enlightenment view is also that the ledger (which is now just another connector) has many accounts and some of these can also be connectors.
The only difference in the post-enlightenment view is that you speak ILP to your connector-formerly-known-as-ledger, rather than a ledger protocol with a
to
field.You can see these old ledger protocols with
to
fields as one routing protocol, which describes how to do a single hop payment (from one account to the ledger to the next account). ILP has another routing protocol, which describes how to do an arbitrary number of hops using Interledger routing. ILPv1 essentially used two routing protocols, because everyone would alternate between ledger-routing to pick the next account and interledger-routing to pick the next connector.Now we're just unifying them into one. I agree that the ILPv1 way enables you to separate good ledger operators from good connectors, and there could potentially be scenarios where that would be desirable, but I think in almost all practical cases those are going to be the same people.