Ripple (payment protocol)
Ripple is a payment system, currency exchange and remittance network by Ripple Labs. It is built upon a distributed, open source internet protocol, consensus ledger and native currency called ripples (XRP). The Ripple network purports to enable "secure, instant and nearly free global financial transactions of any size with no chargebacks". It supports any fiat currency (dollars, yen, etc.), cryptocurrency (bitcoin, litecoin, etc.), commodity or other unit of value (frequent flier miles, mobile minutes, etc.).
At its core, Ripple is based around a shared, public database or ledger. In addition to balances, the ledger holds information about offers to buy or sell currencies and assets, creating the first distributed exchange. Participants in the network agree to changes in the ledger via a process called consensus which is reached every 2–5 seconds. The consensus process allows for payments, exchanges and remittance without the need for a centralized clearing house. The consensus ledger makes the Ripple network energy efficient and robust against attacks compared to cryptocurrencies like Bitcoin that are secured by mining.
As of September 26, 2013, the Ripple reference server and client are free software, released under the terms of the ISC License. The current release of the client is version 0.2.47 and the server (known as rippled) is version 0.20.1.
Ripple was first implemented in 2004 by Ryan Fugger, a Web developer in Vancouver, B.C., Canada. In 2005, Fugger began to build Ripplepay as a financial service to provide secure payment options to members of an online community via a global network.
This led to the development of a new Ripple system in 2011 by Jed McCaleb. It was designed to eliminate Bitcoin's reliance on centralized exchanges, use less electricity than Bitcoin, and perform transactions much more quickly than Bitcoin. OpenCoin Inc. was founded in 2012 when McCaleb added Chris Larsen to the project. Larsen previously founded lending services companies E-Loan and Prosper, and McCaleb previously created the eDonkey network and founded Bitcoin exchange Mt. Gox. On September 26, 2013, OpenCoin Inc. changed its name to Ripple Labs Inc., and released the source code for Ripple's peer-to-peer node software, called rippled, as open source.
In Ripple, users make payments between themselves by using cryptographically signed transactions denominated in arbitrary real-world assets (dollars, gold, airmiles etc). To this end, Ripple keeps a ledger which records debts between users that trust each other. In this way, all assets are represented as debt. When a payment is made between two users that trust each other, the balance of the mutual credit line is adjusted, subject to limits set by each user. In order to send assets between users that have not directly established a trust relationship, the system tries to find a path between the two users such that each link of the path is between two users that do have a trust relationship. All balances along the path are then adjusted simultaneously and atomically.
A gateway is any person or organization that enables users to put money into and take money out of the Ripple network. They accept currency deposits from users and issue balances into Ripple’s distributed ledger. Furthermore, gateways redeem ledger balances against the deposits they hold when currency is withdrawn. In practice, gateways are similar to banks, yet they share one global ledger known as the Ripple network. Depending on the type and degree of interaction a user has with a gateway, the gateway may have Anti-money laundering (AML) or Know your customer (KYC) policies requiring verification of identification, address, nationality, etc. Such policies are designed to prevent criminal activity.
Users must ‘extend trust’ to the Ripple gateway that holds their deposit. This manual creation of a trustline indicates to the Ripple network that the user is comfortable with the gateway’s counterparty risk. Furthermore, the user must put a quantitative limit on this trust and create a similar limit for each currency on deposit at that gateway. For example, if a user deposits $50 and BTC 2.00 at The Rock Trading, the user will have to grant trust of at least that much in both currencies to the gateway for the monies to be available in the Ripple network. It is not recommended for a user to grant trust to other parties unless the user fully understands the ramifications.
When establishing a trustline, an option will present itself in the client to allow ‘rippling’. If this option is checked and a new trust is established in the same currency as an existing trustline, the Ripple client will present a warning to the user. Trusting multiple gateways in the same currency and allowing the rippling feature will subject the user’s balance of that currency to automatically switch (or ripple) between one gateway and another. This will not change the user’s total balance, but will alter the issuer of the balance. This advanced tab feature may be a source of confusion for some. Users who wish to allow rippling will earn a small transit fee for providing inter-gateway liquidity. It is not recommended for a user to allow rippling unless they fully understand the ramifications.
Any user on Ripple can act as a market maker by offering an arbitrage service such as providing market liquidity, intra-gateway currency conversion, rippling, etc. Many such services are offered through a traditional platform of offers to buy or sell one currency for another currency. Bids and asks are aggregated into order books, to create a decentralized exchange. Users can transact with market makers to trade or convert currencies.
Ripple's path finding algorithm leverages this functionality to allow users to send money in one currency and the recipient to receive it in another currency. For example, a user who holds only USD balances can send a payment in EUR to a merchant who wants to get paid in euros. This payment would get routed through one or more market makers who were advertising a willingness to buy USD (from the sender of the payment) and sell EUR (which gets routed to the beneficiary of the payment).
With a sufficient number of market makers, the path finding algorithm creates a near frictionless market and enables users to seamlessly pay each other via the network in different currencies, without assuming any undesired foreign exchange risk. For example, one user might choose to hold his wealth in bitcoins. Using Ripple, he could seamlessly pay merchants in USD or EUR, without exposing them to any bitcoin foreign exchange risk and without exposing himself to USD or EUR foreign exchange risk.
XRP is the native currency of the Ripple network. It only exists within the Ripple system. XRP are currently divisible to 6 decimal places. The smallest unit is called a drop with 1 million drops equaling 1 XRP. The founders of Ripple Labs created 100 billion XRP at Ripple's inception. No more can be created according to the rules of the Ripple protocol. Of the 100 billion created, 20 billion XRP were retained by the creators, seeders, venture capital companies and other founders. The remaining 80 billion were given to Ripple Labs. Ripple Labs intends to distribute 55 of that 80 billion XRP to charitable organizations, users and strategic partners. Ripple Labs will retain the remaining 25 billion.
XRP is the only currency in the Ripple network that does not entail counterparty risk. It is the only native digital asset. The other currencies in the Ripple network are debt instruments (i.e. liabilities), and exist in the form of balances. XRP is not dependent on any third party for redemption. The system was designed such that XRP is a scarce asset with decreasing supply.
Users of the Ripple network are not required to use XRP as a store of value or a medium of exchange. Each Ripple account is required, however, to have a small reserve of 20 XRP  (= $0.38 USD on 28 January 2014). The purpose for this requirement is discussed in the anti-spam section.
XRP as a bridge currency
One of the specific functions of XRP is as a bridge currency. This might be needed if no direct exchange is available between two currencies at a specific time. Such a situation would arise when transacting between two rarely traded currency pairs (e.g. from Qatari Riyals to Guatemalan Quetzals). Within the network’s currency exchange, XRP are traded freely against other currencies. Its market price fluctuates against dollars, euros, yen, bitcoin, etc. When making payments, many users may prefer to use XRP in lieu of these currencies. Ripple’s design focus is as a currency exchange and a distributed payment system, as opposed to emphasizing XRP as an alternative currency.
XRP as an anti-spam measure
When a user conducts a financial transaction in a non-native currency, the Ripple network charges a transaction fee. The purpose of transaction fees is to protect against network flooding. If the Ripple network were completely free to access, adversaries could broadcast large amounts of "ledger spam" (i.e. fake accounts) and transaction spam (i.e. fake transactions) in an attempt to overload the network. This could cause the size of the ledger to become unmanageable and interfere with the network’s ability to quickly settle legitimate transactions. Thus, to engage in trade, each Ripple account is required to have a small reserve of 20 XRP, (= $0.38 USD on 28 January 2014), and a transaction fee starting at .00001 XRP ($.0000002 USD on 28 January 2014) must be spent for each trade. This transaction fee is not collected by anyone; the XRP is destroyed and ceases to exist. The transaction fee rises if the user posts trades at an enormous rate (many thousands per minute), and resettles after a period of inactivity. The transaction fee makes deploying a large-scale denial-of-service attack on the network financially expensive, while it is hoped that the effect on ordinary users is negligible. The required reserve of 20 XRP alone will allow a user to perform approximately 54 transactions a day for the next 100 years.
Ripple runs on a network of servers. At the heart of the network is the ledger. It is a distributed database that is shared with all the servers in the network. It stores information about all Ripple accounts.
A new ledger is created every few seconds. The most recent ledger is referred to as the ‘last closed ledger’. At any time, the last closed ledger is a perfect record of all Ripple accounts. A transaction is any proposed change to the ledger. Any server can introduce a transaction to the network. These transactions go out to all active Ripple servers. The servers automatically come to consensus about a set of transactions to apply to the ledger, creating a new ‘last closed ledger’.
The goal of consensus is for each server to apply the same set of transactions to the current ledger. Servers continually receive transactions from other servers on the network. These transactions form a pool of transactions waiting to be added to the ledger. This pool is called a candidate set. At the same time, the server receives proposals from other servers on the network. A proposal is a set of transactions to consider applying to the ledger. The server routes incoming proposals based on something called the ‘unique node list’ or UNL. A UNL is simply a list of external servers. Proposals from servers not on the UNL are ignored. The server only pays attention to proposals from servers that are on its UNL. The transactions in the incoming proposals are compared against the server’s candidate set. When a transaction in an incoming proposal matches a transaction in the candidate set, that transaction receives one vote. The server continues to check the incoming proposals against the candidate set until a timer expires.
At this point, the server takes the transactions that have received at least a 50% approval rating and packages them into a new proposal. This proposal goes out to other servers throughout the network. The process now repeats but with an important change. The approval rating requirement increases to 60%. Once again the server receives incoming proposals, looks only at ones from servers on its UNL and compares these proposals against the candidate set. Now transactions with a 60% approval rating are packaged and sent out across the network. When the time expires, the approval rating requirement rises to 70%. With each iteration, the proposals will have a greater similarity to each other, and the votes will increasingly agree.
The inevitable outcome of this process is that disputed transactions are discarded from proposals while widely accepted transactions are included. The dissimilarity between the proposals quickly moves toward zero. At this point, the network has reached consensus. A server knows that the network has consensus when 80% of the votes for every transaction in a proposal are either ‘yes’ or ‘no’. This is the threshold for mathematical certainty.
When a proposal hits the 80% threshold, the server validates the proposal, alerts the network and closes its consensus process. This validated proposal is now applied to the last closed ledger. At this point, any invalid transaction is discarded and a new ‘last closed ledger’ is created. Transactions that were not included in the ledger remain in the candidate set. All transactions that were received during the consensus process are added to the new candidate set. Then the entire process is started again, taking only a few seconds to complete.
Use as a payment/forex system
The Ripple network allows users or businesses to conduct cross-currency transactions in seconds. All accounts and transactions are cryptographically secure and algorithmically verified. Payments can only be authorized by the account holder and all payments are processed automatically without any third-parties or intermediaries. Ripple validates accounts and balances instantly for payment transmission and delivers payment notification with very little latency (within a few seconds). Payments are irreversible. There are no chargebacks. Accounts cannot be frozen, nor can funds be seized. A ripple account does not require pre-approval. Anyone can open an account. There are mobile apps for making payments over Ripple using a smartphone. Ripple's Path Finding Algorithm searches for the cheapest path between two currencies. In the case of a user who wants to send a payment from USD to EUR, this could be a "one-hop" path directly from USD to EUR, or it could be a multi-hop path, perhaps from USD to CAD to XRP to EUR. Path finding is designed to seek out the cheapest conversion cost for the user. As of 2 February 2014, Ripple’s gateways allow deposits in a limited number of fiat currencies (USD, EUR, GBP, NOK, JPY, CAD, CHF, CNY, AUD), a handful of crypto currencies (BTC, XRP, LTC, NMC, NXT, PPC, XVN, SLL) and a few commodities (gold, silver, platinum).
The Bitcoin Bridge
The bitcoin bridge is a link between the Ripple and Bitcoin ecosystems. The bridge makes it possible to pay any Bitcoin user straight from the Ripple client without ever needing to hold any of the digital currency. Additionally, any merchant accepting Bitcoins now has the potential to accept any currency in the world. For example, a Ripple user may prefer to keep money in USD and not own Bitcoin. A merchant, however, may desire payment in Bitcoin. The bitcoin bridge allows any Ripple user to send Bitcoins without having to use a central exchange such as BTC-e to acquire them.  
Responses to Ripple have been mixed.
For its creation and development of the ripple protocol (RTXP) and the Ripple payment/exchange network, the Massachusetts Institute of Technology (MIT) recognized Ripple Labs as one of 2014’s 50 Smartest Companies in the February 2014 edition of MIT Technology Review. The criteria for the recognition revolved around “whether a company had made strides in the past year that will define its field.” 
Writing for Esquire about it as a payment network, Ken Kurson said that “the big financial-service brands ought to feel about Ripple the way the record labels felt about Napster.”  On the other hand, The New York Times website Dealbook points out that “(Ripple) is winning something that has proved elusive for virtual currencies: involvement from more mainstream players in the financial system.”
Bloomberg sees that Ripple’s agreement with ZipZap puts the network in competition with Western Union as a remittance network, noting that while Western Union charges $40 to send $500, ZipZap will charge only $3.95 to deposit the same amount into the Ripple network.
The reaction to XRP is polarized in the crypto-currency community. Though the network facilitates the use of any electronic value holder, crypto-currency purists are quick to point out that XRP are “pre-mined” and that Ripple Labs retained 25% of them. Esquire counters however that “If that is devious, then so is every company that's ever gone public while retaining the great bulk of its shares.”  Ripple supporters feel this is especially true as Ripple Labs charges no fees and has no revenue streams to finance its support and promotion of the network.
- "Ripple Labs Banks $3.5M for Open-Source Payments System and Virtual Currency". Dow Jones & Company. Retrieved 28 January 2014.
- Bradbury, Danny (27 May 2013). "Chris Larsen: Ripple is HTTP for money". CoinDesk (Coindesk Ltd.). Retrieved 26 January 2014.
- Liu, Alec. "Beyond Bitcoin: a Guide to the Most Promising Cryptocurrencies". Motherboard (beta) blogs. Vice Media Inc.
- Buterin, Vitalik (26 September 2013). "Ripple is officially open source". Bitcoin Magazine (Coin Publishing Ltd.). Retrieved 25 January 2014.
- "Official source code". Github. Retrieved 26 January 2014.
- Buterin, Vitalik (26 February 2013). "Introducing Ripple". Bitcoin Magazine. Retrieved 6 February 2014.
- Deng, Xiaotie; Graham, Fan Chung, ed. (29 November 2007). Internet and Network Economics: Third International Workshop, WINE 2007, Proceedings. Germany: Springer. p. 268. ISBN 978-3-540-77104-3.
- Peck, Morgan (14 January 2013). "Ripple Could Help or Harm Bitcoin". IEEE Spectrum. Institute of Electrical and Electronics Engineers. Retrieved 27 January 2014.
- Liu, Alec. "Ripple Could Make Bitcoin Great (or Destroy It)". Motherboard. Retrieved 27 January 2014.
- "Company Overview of Ripple Labs Inc.". Bloomberg. Retrieved 27 January 2014.
- Grant, Rebecca (11 April 2013). "OpenCoin raises seed round so ‘anyone in the world can trade any amount of money in any currency’". VentureBeat. Retrieved 6 February 2014.
- John, Light. "Decentralized Exchange for Fun and Profit". Let's Talk Bitcoin. Retrieved 26 January 2014.
- Tong, Anna. "Understanding trust lines". Ripple Labs. Retrieved 2 February 2014.
- Spaven, Emily. "Online payment network Ripple Labs receives $3.5m in new funding". CoinDesk. Retrieved 27 January 2014.
- "Ripple". Github. Retrieved 28 January 2014.
- "XRP Distribution". Ripple Labs website. Ripple Labs Inc.
- Jackson, Brian (21 January 2014). "Beyond Bitcoin: Top 5 cryptocurrencies by market cap". IT Business Canada. IT World Canada Inc.
- Bradbury, Dan. "Ripple Labs now taking cash payments following deal with ZipZap and SnapSwap". CoinDesk. Retrieved 2 February 2014.
- Teague, Solomon. "First Bitcoin, now Google-backed Open Coin". EuroMoney. Retrieved 2 February 2014.
- "Network Feed". Ripple Labs. Retrieved 28 January 2014.
- "Proposed change to Ripple reserve requirement". Ripple Blog. Ripple Labs Inc.
- "Your resource for live Ripple (XRP) exchange rates". Digigold Pty. Ltd. Retrieved 28 January 2014.
- King, Steve. "Missed Bitcoin? No Worries.". Netswitch Technology Management. Retrieved 27 January 2014.
- "Payment Network". Ripple Labs. Retrieved 2 February 2014.
- Simonite, Tom (11 April 2013). "Big-name investors back effort to build a better Bitcoin". MIT Technology Review. Retrieved 26 January 2014.
- Schwartz, Ariel. "Bitcoin 2.0: Can Ripple Make Digital Currency Mainstream?". Fast Company. Retrieved 2 February 2014.
- Kopstein, Joshua. "Gold 2.0: can code and competition build a better Bitcoin?". The Verge. Retrieved 27 January 2014.
- McGarvey, Robert. "'Ripple' is the New Bitcoin: Adventures in Virtual Currency". The Street. Retrieved 2 February 2014.
- "Introducing Ripple Client: the iOS App". Ripple Blog. Ripple Labs Inc.
- Bradbury, Danny. "Chris Larsen: Ripple is HTTP for money". CoinDesk. Retrieved 2 February 2014.
- "Grid". RippleCharts. Retrieved 27 January 2014.
- "Company Summary". Peercover. Retrieved 27 January 2014.
- Southurst, Jon. "Bullion Exchange Brings Ripple into the Physical World". CoinDesk. Retrieved 2 February 2014.
- David, Gilson. "OpenCoin: Ripple users can send payments to bitcoin addresses". CoinDesk. Retrieved 17 March 2014.
- Bailey, Reutzel. "Ripple Network Adds Currency Conversion for Bitcoin Payments". PaymentsSource. Retrieved 17 March 2014.
- Bergstein, Brian. "50 Smartest Companies". MIT Technology Review. Retrieved 12 March 2014.
- Kurson, Ken (27 November 2013). "The true value of Bitcoin and Ripple". Esquire Blogs (Hearst Communications, Inc.). Retrieved 26 January 2014.
- Popper, Nathaniel. "The rush to coin virtual money with real value". The New York Times (The New York Times Company). Retrieved 26 January 2014.
- Kharif, Olga. "Ripple Takes on Western Union With Deal to Grow Payments". Bloomberg. Retrieved 28 January 2014.
- Ripple official website (product/service)
- Ripple Labs Inc. official website (company)
- Ripple Labs support (includes How to activating an account)
- Ripple source code official repository on GitHub