Introducing Ripple

Up until now Bitcoin has been, by far, the most powerful contender in the cryptocurrency market. Other alternative coins, such as Namecoin, Solidcoin and Litecoin, have arisen to offer various modifications on the core Bitcoin concept but, despite over a year’s worth of development and dozens of attempts, none have achieved anything close to Bitcoin’s level of success. Litecoin is perhaps the most prominent out of all the alternatives, its price hovering around $0.07 USD and even slowly increasing over the past six months, but so far the overwhelming majority of merchants – and merchant platforms, for that matter – have seen no reason to pay attention to them. Now, that may finally change with decentralized cryptocurrency’s new kid on the block: Ripple.

The Ripple project is actually older than Bitcoin itself. The original implementation was created by Ryan Fugger in 2004, the intent being to create a monetary system that was decentralized and could effectively empower individuals and communities to create their own money. All money in Ripple is explicitly represented as debt, with transactions simply consisting of balances being shifted on a series of imaginary credit lines from the payer to the receiver. In order to explain how this works in practice, consider a simple example. Suppose there are two friends, B and C, taking a road trip, and they both decided to bring along a friend of their own; B brought his friend A and C brought his friend D. A knows B, but has never met C and D before and they may well never meet again, and similarly D has never met A and B. Now, suppose that A and D are out getting a coffee, but D does not have money to pay. So A pays for both coffees, $3 each, and D agrees to pay A back through Ripple. Because it would make no sense to have D owe $3 to A, as he may well never have an opportunity to pay back, he instead agrees to owe $3 to C, C agrees to owe $3 to B and B agrees to owe $3 to A.

Perhaps B already owed $2 to C beforehand – in that case, the debt would be cancelled and C would only owe $1 to B after the transaction. The key point is that all debts are between people who have an established trust relationship (in conventional financial parlance, “credit line”), and so can trust each other to pay each other back as needed. By using such a chain of trust, money can change hands even between people who do not know each other at all. It has often been stated that any two individuals in the world are at a distance of, at most, six degrees of separation – that is, given any two people in the world, one can always connect them together with a chain of people who know each other, with at most five links in between.

On some level, this is quite similar to the way the banking system already works today. International wire transfers to and from countries around the world are gathered together by banks, transfers between banks are canceled out as much as possible, and at the end of the day, if one bank gives out more money than it takes in, the banks sort things out through various systems specifically designed for the purpose. In Middle Eastern countries, there exists a somewhat more decentralized version of the concept in the form of hawala networks. What the original Ripple project sought to accomplish is effectively the democratization of this idea: everyone can be their own bank, issuing, accepting and acting as a conduit for loans all at the same time.

The project saw some success; the largest current implementations of the idea, maintained by Ryan Fugger himself, can be found at classic.ripplpay.com and villages.cc, and the former has over four thousand users signed up. In September 2010, Sepp Hasslberger wrote that “Ripple is alive and well.” However, the Ripple communities that have formed over the years were without exception small and disparate, never extending beyond the isolated communities that originally formed them. The reason why is simple: in order to participate, you have to already have a friend in the network. Otherwise, there would be no way to form a chain of credit lines between you and any other user, and so you would not be able to make any transactions. There was also another flaw: the software was centralized. Although Fugger envisioned a monetary system that was distributed and where anyone could equally participate, the system keeping track of all the credit lines and balances still had to be centrally controlled.

Now, the Ripple project is finally ready to solve these problems, and has gathered a highly competent team of businessmen and developers to help them do so. The CEO, Chris Larsen, is a new face in the cryptocurrency community, but Bitcoin users are likely to recognize two familiar names: Jed McCaleb, founder of MtGox, by far the largest Bitcoin exchange in the Bitcoin community, and Stefan Thomas, a Bitcoin developer responsible for BitcoinJS. Ripple’s parent company, OpenCoin, is not willing to disclose its exact number of employees, but does claim that it is already one of the largest companies in the cryptocurrency community.

The level of influence that OpenCoin has over the Ripple network is expected to decrease over time. Currently, the Ripple client and a sample gateway implementation are already available, so the tools are there for alternative Ripple implementations to start to be developed. The server is still closed, but that is a matter of practicality more than control; “Changes are still flying around at a rapid pace,” a Ripple developer writes; “We want to [open source the server] as soon as we can so people can have more confidence in the system. Right now all we can publicly say is: Soonish, As soon as practical. We recognize that in order to succeed Ripple must be open source.” Once the server is release, in theory OpenCoin will have as little power over the Ripple network as the Bitcoin Foundation has over Bitcoin.

The new version of Ripple fixes both of the major issues that the old one faced. The problem of disparate communities is solved in two ways: a specialized Ripple-specific currency, and a system of “gateways”. Unlike everything else stored in the network, the special currency, “ripples” (or “ripple credits” or XRP), is not debt-based – it can be sent from one Ripple address to another over the Ripple network just like bitcoins are sent over the Bitcoin network. Thus, if you wanted to send money to someone who was not part of your local trust network, all you would need to do is convert it into XRP, send over the XRP, and have them convert it back. Currency conversion can even be done “atomically” through the built-in decentralized exchange process – that is, there is no way for A or B to renege on their side of the deal, as the exchange is encoded into the ledger all at the same time.

Gateways are the other major development in the new Ripple’s solution to the sparse user problem. A gateway is essentially a commercial service that plays the role of being a credit intermediary for those who do not already know anyone already using Ripple to connect through – or perhaps those who do not want to connect through someone that they already know, preferring the professionalism of a commercial service. The gateway would serve as the first link in the trust chain between the user and the recipient whenever the user wants to make a payment, and the last link whenever the user wants to receive one. A user can trust many gateways at the same time, so the system still preserves a measure of decentralization comparable to mining pools.

There is nothing special about the status of a gateway; anyone can become one, and so a continuum of network topologies ranging from a replica of modern centralized banking to a full peer-to-peer system can function under the Ripple protocol. For the first few years, the Ripple developers believe, gateways are likely to be the norm, but if Ripple succeeds and grows, it may well happen that as the system gains enough market share to support it, a friend-to-friend architecture, as envisioned by the original Ripple project, will gradually emerge.

The gateway system is not perfect. There is no inherent mechanism to ensure that gateways will not default on their loans, and long-time Bitcoin users familiar with the debacles of MyBitcoin, Bitcoinica, Pirate and Bitfloor are, rightfully, wary of a system that requires trust in third-party organizations in order to function. So far, Ripple developers have not come up with a clean and satisfying response to the problem, and it may well be that no such response exists. Ultimately, Ripple does not provide a cryptographic solution to the trust problem, and keeping fraudulent gateways under control will have to be done by more traditional mechanisms instead – clear, industry standard, expectations on gateways’ security, in a similar spirit to all major Bitcoin exchanges’ policy of keeping over 80% of customer funds stored in an offline location where there is no way to access them without manual assistance, and outright fraud will have to be met with the help of the good old-fashioned legal system.

The other main aspect of Ripple is its decentralization. At the core, Ripple’s mechanism for keeping track of balances is similar to Bitcoin; there is a concept of addresses, public and private keys, and modifications to the database are done through a system of digitally signed transactions. In fact, Ripple uses precisely the same elliptic curve specifications as Bitcoin, with the exception of a different leading byte in the address format (hence addresses starting with “r” and not “1”), so one can use the same private and public keys to sign transactions and messages in the Bitcoin, BitMessage and Ripple networks. However, that is where the similarities end. Ripple has no proof of work and no concept of mining; instead, transactions are simply propagated through the network, and given a set of contradictory transactions – for example, a dishonest customer writing transactions to send the same $100 to ten different merchants with the hope of getting $1000 worth of goods, clients determine which one came first, and which ones should therefore be thrown out as illegitimate, through a process that the Ripple developers call consensus.

Consensus is essentially an improved version of the process that already takes place in the Bitcoin network for zero-confirmation transactions. Individual nodes decide which version of a new ledger to accept by polling the nodes around them to see what the majority opinion is, allowing the network to quickly settle on a single choice. The process is much faster than Bitcoin block confirmation; a new ledger state is created roughly every 5-10 seconds, allowing for nearly instant confirmations.

The Bitcoin developers had the option of implementing such a strategy themselves, but they did not do so for two reasons. First, if applied to Bitcoin, the approach would have a significant risk of causing chain fragmentation, where two parts of the network settle on irreconcilable transaction histories, and so Bitcoin essentially splits in half. Second, the approach, at least as described above, is vulnerable to something called a Sybil attack – an attacker can employ various forms of proxying and IP address spoofing techniques to pretend to be a million separate nodes, and so overwhelm the opinion of the rest of the network through sheer numbers.

Ripple fixes both of these problems by introducing a concept of trust. Every user in Ripple has a “unique node list” (UNL), a list of nodes that they know are not likely to collude against them – the operative word being “collude”. Each individual node may well be owned by a shady character who is trying to pull off double spending frauds themselves, and the system would still likely work just fine. What matters is that the nodes are not likely to work together to push a single fraudulent transaction history that could compete against, and potentially overcome, the majority consensus of the network. Competing major businesses, a diverse set of trusted community members, gateways and nonprofit organizations are all likely to be part of individual node lists.

The UNL system also ensures that the network is tightly linked. Every node is connected to every other node in millions of ways, and so all nodes are only at most a few hops away from each other. Thus, any fragmentation would rapidly resolve itself. “As long as there is some degree of inter-connectivity between UNLs,” the Ripple wiki article states, “consensus will rapidly be reached. UNLs will at least be what is called a small world network (similar to the networks of friends on Facebook) though we suspect in practice there will be much more overlap than that.” For those who are unsatisfied with this explanation, “A more rigorous mathematical proof is coming soon.”

Ripple does have a “ledger chain”, similar to Bitcoin’s blockchain, but with one major difference. Unlike the Bitcoin blockchain, every Ripple ledger state consists of a “transaction tree”, showing the transactions that have taken place since the last ledger, and the “state tree”, containing all of the information needed to know all of the account balances and credit limits in the Ripple system, reducing the information that a node needs to store to serve as a fully functioning member of the Ripple network to just the last ledger state. Additionally, there is a minimum balance of 200 XRP for creating an address and an additional 50 XRP for creating a credit line, creating a strong disincentive against bloating the ledger state with many addresses. As a result, it is expected that the majority of Ripple clients will, in fact, be fully participating nodes, as the cost of full participation is small enough to be negligible for most computers.

The lack of mining introduces an aspect to Ripple which can be thought of as both a strength and a weakness. Because there is no mining, there can be no fair mechanism to automatically distribute XRP to users, and so the Ripple developers went with the simplest solution: starting off with all 100 billion XRP that will ever exist in their own wallets. OpenCoin intends to give XRP away to people around the world as widely as they can, targeting Bitcoin users first as an initial userbase, and then moving on to offering XRP to anyone who wants it, limiting abuse by requiring authentication mechanisms like Facebook accounts and cell phone numbers to hand out the credits. The handout process seems awkward, but given the circumstances it is the best that the Ripple developers can do; “if we could immediately distribute all the Ripple credits that we want to distribute equally to everyone in the world, we would,” Ripple CEO Chris Larsen says in a phone interview. OpenCoin intends to give away over 55 billion XRP through their various giveaways, and the rest of the Ripple credits the company will use to fund development and promotion of the Ripple system.

However, because of the monetary distribution, OpenCoin may well face an uphill battle convincing the community that they can be trusted. The developer of another alternative cryptocurrency, Tenebrix, tried the strategy of creating an initial number of coins for himself in 2011, ostensibly (and, quite likely, genuinely) for the purpose of funding development, but the community widely decried the move as unfair and moved on to Litecoin as an alternative. Perhaps Ripple will be different; unlike Tenebrix, Ripple introduces a substantial number of features beyond those that Bitcoin itself already offers, to the point of being an innovation in digital currency almost as significant as Bitcoin itself. “Ripple will be a great thing for the world,” an OpenCoin employee who wishes to remain anonymous reminds us, “but unfortunately, in order to make it work, we have to have funding. If the community has any ideas on how we can handle this fairly, we’re open.”

Another consequence of the lack of mining is the rapidly deflationary nature of XRP. Unlike BTC, where the total number of currency units in existence increases more and more slowly with every passing year until eventually stabilizing at a permanent 21 million in 2140, the number of XRP starts off at an all-time maximum of 100 billion and then immediately starts permanently decreasing as transaction fees are paid.

For those who want to try Ripple now, there are already two gateways working with Ripple: BitStamp and WeExchange, both of which offer the ability to deposit a number of different currencies into your Ripple account. There is already one merchant accepting Ripple, the VPN provider Private Internet Access. For more details on how to use Ripple, see our howto article here.

Altogether, what Ripple has accomplished is impressive. With Ripple, we have a way of sending, receiving, and holding any currency – not just one specific cryptocurrency – in a decentralized way. The currency can be anything; one can imagine storing USD, CAD, gold or even airplane miles in the Ripple network, as long as there are enough people, or at least one gateway, willing to deal with them. For those who want the advantages that cryptocurrency offers, such as the increased financial freedom and privacy, cryptographically guaranteed security, minimal fees, irrelevance of national borders, and advanced features such as cryptographically enforced contracts and brainwallets, but do not want to deal with Bitcoin’s volatile value, Ripple is the solution. Ripple also has the potential for much greater integration with the existing banking system, as its currency exchange is a service that even existing financial businesses will quickly be able to benefit from. For those who are afraid of the prospect of gateways defaulting or disappearing, or who wish the greater privacy that Bitcoin’s trust-free anonymity offers, Bitcoin continues to be the best bet. Regardless, the fact that Bitcoin now has a strong and compelling alternative makes it clearer than ever that the idea of cryptocurrency as a whole is here to stay.

An expanded version of this article will appear in Bitcoin Magazine print edition, issue 8. The issue will soon be available for purchase at http://bitcoinmagazine.com/shop

Leave a Reply

Your email address will not be published. Required fields are marked *