Out very soon, the new version of Ripple has has undergone a dramatic renovation.
Ripple was created by Ryan Fugger in 2006 as a trust network where people can grant each other credit, and anyone can ‘be their own bank’. The project has since been acquired by a team of developers including Mt. Gox creator Jed McCaleb. Ryan’s trust network is still there, but it is now one feature of a much expanded system.
The new features of the soon to be open source software include the possibility for a decentralized currency exchange, a p2p transaction network, “Gateways” for bringing other currencies into the system, and Ripples (XRP), a new digital currency.
Passing around IOU’s
To understand the system, let’s start with Ryan’s original vision, the trust network. Ripple allows users to extend credit to their friends, or to anyone whom they trust. The new version of Ripple expands upon this idea with a very sophisticated system of passing around and tracking IOU’s. Ripple is a series of trust limits strung together to form a trusted pathway.
Here is an example of how the system can work…
You grant your friend, Bob, $100 of credit. You do this by telling Ripple that you would accept an IOU up to $100 from Bob. Now imagine that Bob is from the other side of the world where his sister, Marie, still lives. Bob trusts his sister and as such has grated her $50 of credit in the Ripple system.
Marie comes to visit and you all go out for lunch. Marie forgets her wallet and you cover her portion of the bill, $20. Instead of Marie finding an ATM and withdrawing $20, she logs into Ripple and sends you an IOU for $20. This is possible because there is a trust pathway between you and Marie via Bob. You are willing to let Bob owe you up to $100 and Bob is willing to let his sister owe him up to $50. Via this trust pathway a $20 IOU can get from her to you, by passing through her brother.
This trust pathway works because everyone along the path has ‘vouched’ for the person directly before him or her on the pathway. Bob accepts an IOU from Marie and then he issues an IOU of his own for the same amount to the next person in the path who accepts his IOU’s, and in this example, that’s you.
This system works to encourage a large trust network. The more people you trust and the more people who trust you, the more pathways there will be. This enables more transactions. On top of this the software also includes a number of other features such as a ranking mechanisms that allow you rate others debt.
When taking a close look at the potential networks, and imagining the flow of funds between people and through the network, things can get very complicated and difficult to follow. Some of the common stumbling blocks will be reviewed at the end of the post.
Tracking credit in your network of friends is great, but how is all this debt actually settled?
One option would be to simply say ‘Hey Bob can I have that $20 back?’, and then Bob hands you a $20 bill. To report this in the Ripple system you would simply issue Bob with an IOU of $20 which cancels out his IOU to you. Or, you can settle with a Ripple Gateway.
What happens if you’re not interested in exchanging IOU’s with your friend’s, yet you want to send money via Ripple? For situations like this, or when no “trust pathways” exist between two users, a Ripple Gateway provides the solution.
Gateways are designed to be Ripple servers running as businesses. Ripple’s creators envision Gateways as competing businesses who will likely be compliant with AML/KYC rules and financial regulatory agencies. Gateways may make their money in a variety of ways including, account or deposit fees, converting currency denominations with a spread, placing funds in an interest bearing account, etc.
As the name implies Gateways are the bridge between national currencies, other digital currencies and the Ripple network. A Gateway would likely have a traditional bank account, a Bitcoin wallet, etc. and accept funds from Ripple users in exchange for credit or IOU’s in the Ripple system. Inside the Ripple system money, USD, EUR, BTC, etc., are represented as the network currency, Ripples (XRP) or as IOU’s denominated in that currency.
You can, for example, deposit USD with a Ripple Gateway in exchange for a USD denominated IOU from that Gateway. You can then send this IOU to a friend, who can then ‘cash out’ at a Gateway themselves.
XRP and Fees
Ripple includes its own ‘Network currency’, Ripples, also called Ripple credits or XRP. The network was created with 100 billion Ripples, with no more to be created. ‘Ripples’ can be sent between accounts or converted to other currencies and some consider them a possible rival to Bitcoin.
There are fee’s for transactions in the Ripple system, however, these are charged not ‘for profit’ but for the protection of the system. The idea is to prevent ‘spam’ transactions swamping the system. The transaction fee is meant to be very minimal, only a fraction of a Ripple. The transaction fee is not collected but redistributed evenly throughout the network in proportion to account holder’s balance.
De-centralized Bitcoin exchange?
One of the much discussed features of Ripple is the ability to exchange Bitcoins for other currencies. The way this works is essentially that every Ripple Gateway can act as an exchange agent. This is how the process would work trading USD for BTC
- Find a Gateway you trust and send them the USD you want to sell
- You will receive an IOU from that Gateway in the amount of your deposit
- Enter an exchange offer in the Ripple system
- Assuming someone holding an IOU for BTC accepts your offer, your exchange will be recorded on the Ripple public ledger and you will now have an IOU for BTC
- Take this BTC denominated IOU to your Gateway
- Your Gateway sends your BTC to your Bitcoin address
De-centralized exchange is often discussed in the context of Bitcoin surviving hostile regulation. Should Bitcoin, or Bitcoin exchanges become illegal this would also outlaw Ripple Gateways acceptance of the currency.
To understand the Ripple network, think Bitcoin. Like Bitcoin, Ripple is open source software that creates a distributed network. “At its heart, ripple is a distributed database, a network of shared information. Instead of a central server, all the servers around the globe running the free ripple software power the ripple network.”
Ripple’s architecture includes a lot of the same concepts as Bitcoin, but with some very important differences.
- Ripple is an open source, distributed peer-to-peer payment network.
- Ripple transactions are irreversible, sent over the Internet, and counterfeit proof.
- Ripple uses the same underlying cryptography as Bitcoin.
- Ripple has multi-signature support.
- Ripple has low to no transaction fees.
- Ripple servers can be run by anyone.
- Ripple can send any currency.
- Ripple can automatically exchange currencies.
- Ripple transactions are fully confirmed in seconds.
- Ripple has no block chain download, clients are ready in seconds.
- Ripple has no mining or direct monetary reward for running a Ripple server.
- Ripple has no currency risk as people can hold whatever fiat they want.
- Ripple solves the double spending problem with consensus instead of proof-of-work.
Transactions in Ripple are recorded via a public ledger using “consensus”. The idea is this: when a transaction occurs your Ripple client software announces to the network the details of the transactions…”I’ve sent Bob 100XRP”. Later if Bob, or anyone else, asks the network “Did Julia send me 100XRP?” the majority answer will be ‘Yes’. Of course this is a very simplified example; the reality is a bit more complicated.
Nodes on the network listening for transactions are ‘Validators’ and every client will have a preferred Unique Node List (UNL). You can also manually select your UNL.
Anyone can run a validation node; however, there is no monetary compensation for doing so. Ripples creators believe that Gateways, merchants, day traders, libertarian groups, universities, etc. will run these servers to support the Ripple network.
Rather than a block chain, Ripple records transactions in a ‘public ledger’. The Ledger contains a list of all the accounts and their balances. Every Ripple node has a synchronized copy of the current Ledger.
Scratching your head
Ripple has added so much additional capability that the original Ripple ‘trust network’ is now simply an option in the system. However, wrapping your head around the complicated IOU network that Ripple is capable of can be a bit difficult. Ripple’s IOU’s are designed to be exchanged in a manner that could allow them to be a medium of exchange themselves. This brings up a few questions: are all IOU’s ‘backed’ by other currencies? How does someone holding IOU’s access ‘backing’ funds? What happens if there is a default in a chain of credit?
Here are some examples that will hopefully clear these issues up.
IOU’s can be ‘backed’. For example, you can back an IOU that you receive after depositing funds with a Gateway. IOU’s can also be un-backed, for example if you send an IOU to a friend. If your friend is willing to accept this IOU they must trust your willingness to repay them and that trust you have or will have backing funds. However, these funds do not have to be currently in the Ripple system. And the Ripple system does not differentiate between backed and non-backed IOU’s. Should this cause concern about defaults and systemic risk, there is another important feature of the Ripple system to consider here.
Granting someone trust, or agreeing to accept their IOU’s gives them access to your ‘trust network’ and also gives you access to theirs. Or put another way, you now have access to each other’s IOU’s from other parties. For example, if I owe you $20 and I have deposited $20 with a Gateway and I am holding the Gateways $20 IOU, you can ‘take’ the Gateway’s IOU from me. In doing this you would owe me $20, and given that I owe you $20 these IOU’s cancel out, debt settled.
Another common concern is with the way the Ripple system will allow IOU’s to ‘Ripple’ through the system via chains of credit. What happens when someone defaults? Who is left holding the bag? The quick answer is that when there is a default, it only affects those people who have specifically agreed to trust that person; those upstream or downstream are unaffected. To sort this out, here is an example.
Jane wants to pay Charlie $50 and Charlie has agreed to hold Bob’s IOUs and Bob has agree to hold Jane’s IOUs, then a chain Jane->Bob->Charlie exists to make the payment. Now, Jane owes Bob $50, Bob owes Charlie $50, and Charlie considers Jane to have paid him $50 because she made Bob owe him $50 and he has agreed to accept Bob’s IOU’s. Bob owes Charlie $50, but Jane owes him $50. Since he agreed to accept Jane’s IOUs, he’s no worse off. If Bob defaults, Jane doesn’t care; she didn’t agree to trust him.
You can also think about this situation differently by picturing the people in this arrangement as banks. After all, allowing people to act as their own bank is one of Ripple’s goals.
When your friend sends you a check and you deposit it in a bank account, your friend has made your bank owe you more money, so you consider your friend to have paid you. You trust your bank to hold your money, you are happy to hold their IOU’s. In this situation your friend’s bank owes her less money (or she owes her bank money). If your bank fails, your friend doesn’t have to pay you again; you agreed to trust your bank, she didn’t.
It’s complicated, and very interesting. The new Ripple is full of promising features and DGC will be keeping a close eye on it.