Ripple is Officially Open Source

Ripple Labs (formerly OpenCoin) CTO Stefan Thomas has announced that, as of today, the source code for the peer-to-peer node behind the Ripple payment network is officially open source. Parts of Ripple, particularly a Javascript-based web client, have been open source for months, but the release of the peer-to-peer “full node”, rippled (comparable to Bitcoin’s bitcoind) means that the community now, at least in theory, has the entire suite of tools needed to maintain the Ripple network on its own.

Ripple is a peer-to-peer digital payment network, similar to Bitcoin in many ways, but with a number of distinguishing features. First of all, and most importantly, Ripple allows users to use Bitcoin-like cryptographically signed transactions to store and transfer almost anything – US dollars, euros, Swiss francs, gold and silver and even potentially company shares can all be handled on the network. The way that Ripple manages this is by storing all assets as debts between parties that trust each other. If someone wants to send some quantity of an asset to someone that they do not trust, then the Ripple network finds a path between the two such that every link is between two people that do trust each other. In practice, the social network is still not nearly dense enough to make this fully decentralized vision work, so Ripple has given rise to a secondary industry of “gateways” that everyone can trust because they are publicly visible entities. Second, Ripple includes a built-in “decentralized exchange” functionality, allowing people to exchange on Ripple asset for another without trusting either the person they’re trading with or any third parties. Finally, Ripple uses a mechanism known as “consensus” instead of Bitcoin’s mining, theoretically allowing the network to maintain stability without being vulnerable to 51% attacks or consuming any electricity beyond the minimum required to verify transactions and maintain network connections.

However, Ripple has also had its fair share of criticism. The fact that all assets inside of Ripple (except Ripple’s own currency, the XRP) exist only as debts is on the one hand an advantage, as it allows such assets to be represented in a cryptographic way in the first place, but it is also a disadvantage, as Ripple loses Bitcoin’s trust-free nature. Some critics argue that Ripple only copies those aspects of the current fiat currency and fractional reserve-based financial system that cryptocurrency is meant to solve.

A much greater point of criticism, however, is the XRP itself. The currency exists inside the Ripple network for two main purposes. First, it is the only currency in the Ripple network that does not require trust to send. Without XRP, if there was no “trust path” between A and B, there would be no way for A to send B any money. With XRP, the path can consist of exchanges between the desired currency and XRP at the ends and a trust-free XRP transfer in the middle. Second, like Bitcoin, Ripple uses transaction fees to limit malicious users’ ability to pollute the blockchain, and XRP is a neutral currency that these fees can be paid in. However, the XRP has one major problem: Ripple Labs, the parent company behind Ripple, owns all 100 billion XRP units that will ever exist, and it only plans to distribute a part of them to the community – the rest will go to early investors and the company’s founders. When questioned about this at the Bitcoin conference in San Jose, CEO Chris Larsen simply replied that the company chose this distribution model to better attract top-quality Silicon Valley talent and investment – hardly a satisfying argument to those who believe that the main problems with the current financial system are inequality and greed.

The last major criticism, of course, is the argument that Ripple is centralized. Ripple has claimed to be open source from the moment it was publicly released, but in practice for the past year only the web client has been open. Thus, the Ripple network was entirely controlled by Ripple Labs, allowing the company to modify parts of the Ripple protocol at will – at one point, for example, Ripple reduced the minimum balance for a Ripple account from 200 XRP to 50 XRP, and was able to do this without consulting anyone at all. Ripple Labs developers continued to promise that they would open-source the code eventually, but nothing happened. As time wore on, many Ripple users began to lose faith in Ripple Labs’s intentions, and the value of the XRP tanked; by the beginning of September, the XRP was down 75% from its peak.

This Changes… Many Things

Ripple Labs’s announcement does nothing about the first problem with XRP; most of the 100 billion units remain squarely under Ripple Labs’s control. However, the second problem with Ripple, the fact that the network is centralized, is now partially solved. The source code is now open source, meaning that everyone is free to start their own node or gateway, and even if Ripple Labs disappears the network can now continue functioning. Later on, this can lead to the network becoming decentralized even with Ripple Labs’s continued support. For now, however, Stefan Thomas writes: “we will continue to recommend our own validators for the time being”. The “validators” that Stefan Thomas was referring to are the nodes used to secure Ripple’s consensus system; in theory, Ripple can be decentralized if everyone trusts a diverse group of nodes as validators. Some validation nodes might be run by universities, others by banks and corporations, others by nonprofits and perhaps some even by governments. The equivalent of a Bitcoin-style 51% attack would require the attacker to take over the vast majority of trusted nods at the same time. Right now, however, all Ripple clients are set to trust Ripple’s validation nodes by default, making the network still centralized for the moment.

However, those who are unhappy about Ripple’s weaknesses now have another potential solution up their sleeve: they can also fork the source code. “Does that worry me [regarding] job security?,” Stefan Thomas writes, “Of course. But that’s the whole point of open-sourcing: It’s one thing we can do to help keep us honest. I believe as long as we continue to live up to our promises, work hard and provide value to users, they will continue to use our network. And in doing so they’re supporting our effort to build out the software and extend the network through any and all means available until all XRP are sold or given away.” Bitcoin has already given rise to about 70 alternative cryptocurrencies, and although some do significantly change certain features (particularly the mining algorithm), by and large these alternatives are all very similar; by design, they are all forks of the bitcoind source code and change at most a few files. Will we see another 70 alternative Ripple-like currencies appear? Perhaps. There are few obvious possibilities: different consensus algorithms, or even a version of Ripple with more traditional proof-of-work or proof-of-stake mining, a version of Ripple that somehow replaces the current version’s pre-mined XRP, and a version of Ripple that allows users to store public information on their accounts (potentially allowing for a Ripple-based version of Namecoin, or even a web-of-trust system) are all very viable options.

What will be the most interesting about the open-sourced code may well be the consensus algorithm. If it works, consensus is arguably a major improvement over any of the “mining”-like algorithms that Bitcoin and other cryptocurrencies can offer; it both completely removes Bitcoin’s “wasted electricity” problem and makes it much more difficult to successfully execute an attack against the network. However, the main objection is, will it actually work? Up until now, the process has been well-documented on the Ripple wiki in text, diagrams and a video. However, the description has been high-level, and the documentation has not been in a formal form suitable for mathematical or cryptographic analysis. Now, we have access to the source code, which is literally as formal a description of the consensus process that one can get. For the first time, actual cryptographers outside of Ripple Labs will be able to create mathematical models out of the code, run simulations or prove theorems on it and see if it actually lives up to the hype.

For non-cryptographers, the code appears well-commented, making it a friendly form of documentation into Ripple’s inner workings all by itself. It will probably take some time before the outside cryptocurrency community gains enough of an understanding into the software’s inner workings to be able to understand it or work on alternatives; however, anyone with questions to ask will have the opportunity to have them answered at the Ripple developer conference from October 5 to 10. Ripple is very much a long-term-focused project; the company has been in a semi-released state for roughly seven months, and the company will have many more months to build up a development community that extends beyond just the company. Will the cryptocurrency community hop on? Only time will tell.