Recent Changes - Search:

Ripple

Less Technical

Protocol

Implementation


Old Stuff

Older Stuff

Oldest Stuff

PmWiki

pmwiki.org

edit SideBar

Definitions

Definitions

Ripple Client

  • Software that manages accounts that involve lines of credit between parties, and uses the ripple server to route payments
  • Software that authenticates itself to a ripple server via username/password, digital certificate, ssh public key, or similar
  • Simple example: A bank could "ripple enable" its online banking web interface to permit accountholders to send ripple payments as an alternative payment mechanism, alongside the standard online checking functionality.
    • Broadly speaking, the bank is a ripple client, and has some means of authenticating itself to its ripple server(s).
    • In a more precise technical sense, when a bank customer logged into online banking initiates a ripple payment, and the online banking software interacts with the ripple server, this is bank software acting as a ripple client.
    • The web browser bank customers use to access their online checking, and through this make ripple payments, is *not* a ripple client -- it is a client of the bank's web server software. Bank customers don't have a user/password to authenticate themselves to the ripple server; the bank does. The password that bank customers do have, which allows them to access their online banking, is a different password from the one the bank uses to interact with its ripple server.
  • Note: the bank with "ripple parallel to online checking" scenario described above is not very likely to arise anytime soon, though it could conceivably happen if ripple becomes very popular. Inter-LETS payments, online accounting software direct payments, online currency conversions, and other scenarios are more plausible -- see Ripple Usage Examples?. The bank example was used only because this is a scenario we think the greatest number of people are familiar with, whereas not that many people know what a LETS system is.
  • Potential Ripple Clients

Party

  • Something or someone that uses ripple to send, receive, and route payments
  • Parties can be individuals, or collectives such as a group of friends, an agricultural coop, businesses, governments, banks, etc.

User

  • Users authenticate themselves to a ripple client via username/password, or some other authentication scheme
  • Obvious example is people, but could also be a bot or some automated process that knows how to authenticate itself.

A party might have many users, or a user might have many parties. The ripple server doesn't know anything about users or parties, only nodes.

Users,Parties, and Nodes


A Node

  • has credit relationships (lines of credit) with other nodes
  • can be a payment endpoint, either payer or recipient
  • can be a payment intermediary, receiving value from one node and passing it along to another in a Credit Exchange as part of a payment chain
  • A ripple party might well send and receive all ripple payments via a single node, but a party might also have reasons to register multiple nodes
  • Users, Parties, and Nodes)

A Credit Relationship

  • exists between two nodes, say node A and node B
  • describes a line of credit that node A has with node B, and the reciprocal line of credit node B has with node A
  • has a specific unit of value, such as USD, Euro, or oz. of gold
  • has an account for each node, each containing the following data:
    • balance, the amount of debt owed by the other node
    • max balance, a limit on debt that can be owed by the other node
    • min balance, a limit on debt that can be owed to the other node
      • Consider the balance for Node A, for a credit relationship connecting A<->B. Assuming the debt balance starts at 0$, an upper limit of $50 and a lower limit of (-$25) means that Node B has a credit limit of $50 with Node A, while Node A's self-imposed issuance limit is $25. (Node A doesn't want to allow itself to go deeper into debt than $25 with Node B.)
      • Balances can start at any number, they need not start at 0.
      • All three quantities can be reset arbitrarily by either node, for its side of the accounting
      • It doesn't matter if two nodes at opposite ends of a credit relationship disagree about the exact amount of debt they've recorded is owed by the other. In fact, Node A could have recorded that Node B owes it money in its account, while Node B has recorded that Node A owes it money on its own account. As long as A's credit limit exceeds the amount of money it believes B owes, and B's credit limit exceeds the amount of money it believes A owes, the ripple server can use this credit relationship in a payment exchange for payment routing in either direction. Ripple does payment routing, not account reconciliation.
  • Two nodes connected by a credit relationship are called neighbours.
  • Two nodes may have more than one credit relationships connecting them, for instance to allow for credit relationships in more than one currency
  • Credit Relationship Example
  • To do: Credit Relationship Example With Disputed Balance?

A Credit Exchange

  • is a payment flow from one credit relationship to another, that passes through a node
  • is a link in a payment chain, say Node A -> Node B -> Node C, where B and C are the previous and successor nodes, and the ultimate payer / payment recipient are at the start and end of the chain: Payer -> ..... -> A -> B -> C -> ..... Recipient
  • when routing in the same currency, Node B can charge a transaction fee, or can be friendly and choose not charge a fee
  • when routing between two different currencies, Node B has some conversion rate between the currencies
  • In either case, node-specific exchange rates are used for the above conversion functions. So Node B has an exchange rate table stored for routing payments between all of its neighbors
  • Credit Exchange Example

Edit - History - Print - Recent Changes - Search
Page last modified on March 13, 2008, at 11:46 AM