W3C home > Mailing lists > Public > public-interledger@w3.org > March 2017

Re: SPSP protocol for multi currencies ledgers

From: Evan Schwartz <evan@ripple.com>
Date: Tue, 07 Mar 2017 09:15:34 +0000
Message-ID: <CAONA2jUN2o0Lj-Qno+DPz-X5kN7iUdyiNAN_Y5RfUtxEKS_Qxg@mail.gmail.com>
To: Didier Martin <didierphmartin@hotmail.com>, "public-interledger@w3.org" <public-interledger@w3.org>
Great question. We are definitely interested in supporting cases where the
receiver has multiple accounts on different ledgers. The main question is
what layer to address this at.

TL;DR: I think the best way to handle this is with a "personal ledger", and
possibly supporting returning multiple addresses corresponding to the *same
ledger* on the Application Layer.

We've discussed these different approaches to handling multi-currency

   1. *Interledger layer* - support "multihoming" at the lowest layer, so
   you always give multiple addresses whenever you're dealing with ILP
   addresses. If the different addresses correspond to different currencies
   you also need to give different amounts and the sender will need to quote
   all of them. This seemed overly complex and our conclusion was that at the
   Interledger layer we should only be dealing with one address and one amount.
   2. *Multiple currencies on the Application layer* - SPSP or another
   protocol on the same layer could return an array of addresses and
   currencies, as you suggest. This brings up a similar issue as on the
   Interledger layer. If you give me an array of addresses that all correspond
   to a different currency (that I don't know) and I get a quote for each of
   them, I have no way of knowing what a "better" price is. The sender doesn't
   have an easy way of choosing which address to send to.
   3. *Dynamic response on the Application layer* - instead of the sender
   choosing between different addresses, the receiver could. The receiver
   could return a different ILP address depending on some parameters you
   supply when querying for the receiver's details.
   4. *Personal ledger *- if you want to receive a payment through one of a
   set of currencies, you need a way to determine and express the exchange
   rate between them, or between them and some common unit. You could run a
   "personal ledger", denominated in whatever asset you choose (or your own
   units). Then you'd have a connector between your personal ledger and the
   other ledgers you have accounts on. The best rate to your ledger would be
   determined through normal ILP quoting. The one addition that might be
   useful on the application layer is returning an array of addresses that
   correspond roughly to different ways to reach your personal ledger. In
   contrast to the second option, the multiple addresses would all correspond
   to the same ledger/"currency", so the sender would be able to quote
   multiple and choose whichever one results in a higher destination amount
   (or lower source amount for them).

I also think there's an open question as to whether having multiple
addresses qualifies for being included in the "Simple Payment Setup
Protocol", or whether that feature would be best left for another
Application Layer protocol.

What do you think?

On Mon, Mar 6, 2017 at 6:09 PM Didier Martin <didierphmartin@hotmail.com>

> Hello,
> As it becomes more and more current that ledgers (from some banks) support
> multicurrencies accounts, the SPSP spec shows singleton JSON examples. What
> about mutilcurrencies? Noting is mentionned about returned JSON arrays. Is
> it simply Something not part of the spec or simply Something forgotten to
> be written about?
> Cheers
> Didier PH Martin
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10

Evan Schwartz
Software Engineer
Managing Director of Ripple Luxembourg
<http:> <http:>
Received on Tuesday, 7 March 2017 09:16:18 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 7 March 2017 09:16:18 UTC