Hacker News new | past | comments | ask | show | jobs | submit login
Ripple is officially open source (ripple.com)
92 points by npongratz on Sept 28, 2013 | hide | past | web | favorite | 43 comments

For anyone who doesn't grok Ripple, I looked into it a bunch a while back. (Feel free to correct me on any of this.)

The Ripple network works a lot like the Bitcoin network: units of value can be stored at a wallet address, and whoever owns the wallet's private key can send funds to other wallets. The big difference is that while Ripple does have its own, internal currency (XRP, which right now is used mainly to pay transaction fees to the network), you can also send ”IOUs“ — units of value issued by some third party.

So, some party might take USD (could be your bank, or a third party like PayPal or Stripe), Bitcoin (could be your favorite Bitcoin exchange), Euros, etc., hold them, and issue IOU to your Ripple wallet. So you give $100 USD to PayPal, they send an IOU worth $100 PayPal USD to your Ripple wallet (signed by them and stored in the Ripple blockchain).

You can send all/part of that PayPal-issued $100 to anyone else via Ripple, just like you'd send XRP. Whoever wants to can redeem them for USD at PayPal — you just deposit it into a special Ripple address that PayPal gives you and, boom, the money shows up in your PayPal account (because PayPal was holding it all along).

Here's where it gets even cooler. The Ripple protocol includes an “order book” where you can trade currencies. So, if I'm buying something online and use Euros and the company I'm paying uses USD, my Ripple client could automatically get an IOU for x Deutsche Bank EUR (from my bank), trade it on the Ripple network at the current exchange rate for y Bank of America USD (the seller's bank), and then pay them via Ripple in USD that they can deposit straight into their bank account!

Eventually most transactions might be done in straight XRP so we save on transaction fees (from trading).

That's the plan anyway, as I understand it. Ripple ain't there yet. But, there are companies out there right now that issue IOUs in a few currencies and are trusted enough that people might accept them for payment. So I’m pretty excited.

>The Ripple network works a lot like the Bitcoin network

It doesn't work like the Bitcoin network at all. Except that its computer software for handling transactions.

Bitcoin is based on a primarily zero trust model, where every node validates all the data completely and cannot be tricked— except for transaction ordering which (due to relativity) can't be evaluated like that, and so Bitcoin uses a computational lottery to establish ordering.

Ripple has a small number of server nodes which can freely set all balances, no validation at all. Its an entirely different model. The servers believe according to a majority of configured trusted peers.

It doesn't even appear if the ripple model can be stable even absent attackers if the peering are not centrally controlled.

See this thread for more discussion: https://bitcointalk.org/index.php?topic=144471.0 (esp the later posts with the network topology diagrams)

Each Ripple server does validate all the data completely and cannot be tricked. Ripple uses consensus to establish transaction ordering.

Ripple does have only a small number of server nodes today, but that should be growing over time. A node cannot freely set balances. Each node signs each ledger and any change to a ledger entry (such as a balance) must be accompanied by a signed transaction justifying that change or other nodes will reject it.

Nodes are in fact called "validators" and they validate each ledger to ensure that any changes are justified by transactions. They sign these ledgers every few seconds.

As for the peering needing to be centrally controlled, I assume you're referring to each node's set of validators. While that does need to be sanely managed, it doesn't need to be centrally controlled. A number of organizations can publish lists of validators they believe to be reliable. The algorithm is very tolerant of things like minimal overlap or bad apples. Every honest node wants to agree with every other honest node, and dishonesty is impossible to hide, so the problem is not that difficult.

(I'm one of the architects of the Ripple network.)

First, let me quote http://ripplescam.org/:

  But wait – you can become your own validator! [...]
  The consensus system ensures there is only one ledger – the most accepted one.
  If you run your own validator, you must connect with OpenCoin Inc servers, or you
  will be building a different ledger. In practice, it is not possible to
  “dethrone” OpenCoin Inc as you have to co-operate with OpenCoin Inc.
Second, I'll point out that while minimizing the number of validators may be attractive, it also makes the currency much more vulnerable to top-down control, via governments, corporations, etc.

Last, if you're reading this, I'd suggest that you read up a bit about Ripple on Bitcoin Forum before you make conclusions about the currency - there are a lot of interesting discussions about its viability (like this one: https://bitcointalk.org/index.php?topic=146964.0).

The quote from ripplescam.org just says what we all know, we all have to agree on a blockchain (in the case of Bitcoin) or a ledger (in the case of Ripple) or the system breaks. Part of it is false though, you can connect to servers not run by us. So long as they're also trying to agree with us (or those who are trying to agree with us), it will work. Ripple uses a distributed agreement protocol to order transactions. You have to try to agree with other people who are trying to agree. The group of people trying to agree that includes us defines the dominant transaction ordering (at the moment). But this is equally true of anyone else in the group we are in. It's the group that matters.

I don't see why minimizing the number of validators is attractive. We want as many as possible precisely because that ensures that administrative control can't be seized. It's just like mining in Bitcoin -- you want it distributed into the hands of as many people as possible as evenly as possible. We are working on making this happen now. Obviously, open sourcing the server was a necessary stop to broadening the validators.

No, it isn't in any way similar to Bitcoin's blockchain consensus - that's is designed to have blockchain disagreements which are resolved eventually by some of the nodes rolling back their blockchain and moving to the consensus one. As I understand it Ripple doesn't do that - once nodes have agreed on a ledger version they won't roll it back, and even if they did the OpenCoin Inc-controlled nodes don't care what non-OpenCoin-approved nodes think when forming their consensus.

So the net result is that, since everyone - including the exchanges - trusts the OpenCoin-run nodes, the only safe thing to do is wait for OpenCoin's servers to come to a consensus amongst themselves and then accept their ledger updates in their entirety. There is no way for anyone outside of OpenCoin Inc to influence what gets included in the ledger except if you allow it.

All the servers are agreeing with each other. You could just as well wait for any other reliable servers to come to a consensus amongst themselves and it would work just as well.

It is true that today we control the majority of validators that other important servers trust. We're working now on increasing the number of validators because that will improve the reliability and robustness of the network. We absolutely do not want people to have to trust us, or even think they have to trust us, so this is a real priority for us. Open sourcing the server was, obviously, a step in this direction.

> (I'm one of the architects of the Ripple network.)

Please see the thread linked to above. There were several trust topologies given than are obviously non-convergent in your model and you appeared to have no answer for them.

Effectively you have ripple servers which must have central selection/control (or the system is not guaranteed to converge), and they can set balances to whatever they want. ... and then clients that simply believe the majority of the servers they are pointed at.

They can't set balances to whatever they want. They have to justify each switch from ledger to ledger with signed transactions. (Just like miners in Bitcoin can choose the transactions to include in their blocks but can't just create Bitcoins out of thin air or teleport them from one account to another.)

The way I see it --correct me if I am wrong-- is that Ripple has zero defenses against an attacker controlling many public IPv4 or IPv6 addresses and broadcasting his transactions to effectively control what the consensus is.

IOW, attacker-controlled Ripple nodes can outnumber legitimate Ripple nodes, therefore legit Ripple nodes are forced to accept transactions broadcasted by attacker-controlled nodes.

Transactions are accepted if they are signed by private keys, it doesn't matter who broadcasts them. But the reason for fees is to prevent DoS attackers overloading the consensus process with spam transactions. Also, just running a node on an IP address doesn't give you any amount of control. That IP address also has to be other validators' UNL (unique node list).

My point is that if an attacker controls consensus (by having many IP addresses), he can double spend by signing transactions to send coins to an address, then by spaming the network to change the consensus and re-send the same coins to another address.

Not so for two reasons. First, the number of IP addresses you have is irrelevant. Trust is weighted by the number of signatures made with keys that a server has chosen to trust. Second, you can't "change the consensus". Once a consensus is reached on a given ledger, it's irrevocable. Every validator that witnesses the consensus signs the resulting ledger providing cryptographic proof that they agreed to that particular consensus. A transaction is not considered confirmed until the server possesses that cryptographic proof.

It is cool, but the irony is, the IOU stuff will soon be mimicked by Bitcoin with 'colored coins', and Ripple will lose the last major feature it had over Bitcoin. And at that point - who wants a pre-mined backdoored e-currency which can't be made anonymous or used places like Silk Road?

Legitimate businesses. We had a great conversation the other day at this Virtual Currency Talk: http://cr.perkinscoie.com/rff/ff00120bf2ac2fdfe524c63378439a... about the reputational risk of Bitcoin. There is a need to legimatize Bitcoin with governments or use a virtual currency that is able to establish legitimacy, so that large businesses which only have a marginal gain from incorporating Bitcoin will actually have an incentive to do so.

Furthermore, there was a very strong consensus among all parties, most especially by Patrick Murck (President, Bitcoin Foundation) that Bitcoin is not an anonymous or "private" currency, and that many people who believe it can be made anonymous are most likely in store for a rude awakening when government scrutiny and regulation catches up with the pace of the technology.

> There is a need to legimatize Bitcoin with governments or use a virtual currency that is able to establish legitimacy, so that large businesses which only have a marginal gain from incorporating Bitcoin will actually have an incentive to do so.

The reputational issue is solved by widespread real-world use, which is not something Ripple can boast either. These 'large businesses' have no reason to use Ripple even if it's clean due to backdooring, if no one else is using it.

> Furthermore, there was a very strong consensus among all parties, most especially by Patrick Murck (President, Bitcoin Foundation) that Bitcoin is not an anonymous or "private" currency

I would be fascinated to hear if this means that Murck and the Foundation plan to sabotage the adoption of any Zerocoin-like extension...?

I have had access to rippled for many months, and it is a pretty big part of my job to evaluate different financial systems and asset types and to consider their impact for potential future of financial networking from a technical standpoint. Here's my summary of the most important distinctions between Bitcoin and Ripple:

(1) Ripple includes a single 'asset', the Ripple, or XRP (X-ISO4217-A3[1]: XXRP) with which to tax shared resource use and avoid network abuse. Unlike Bitcoin's mining model, Ripple has a non-profit foundation to distribute the vast majority of these tokens.

(2) Ripple settlements are effectively much faster than Bitcoin, since rollbacks are designed to be impossible.[2]

(3) Ripple encourages anyone to issue any asset. So you can have contingencies' "IOU for 5 euros", or Sidnicious' "IOU for 5 euros" and then you can choose whether or not to consider them to be of equivalent value. This is hugely powerful, since monetary theorists agree that the most desirable and missing feature of an economic system is the capacity to create a record of value (ie. debt, or money) where value is actually being created.

(4) The Ripple reference implementation is far cleaner and better written.

In summary, Ripple is hugely different to Bitcoin, far more aligned with academic thought on economic systems reform, and a toolkit for creating various forms of exchange rather than a currency itself. The XRP thing is just there to prevent resource abuse.

[1] http://www.ifex-project.org/our-proposals/x-iso4217-a3 [2] Can't validate that myself.. though it makes sense you'd know "something's wrong" really damn quickly, since everything would stop working entirely: IIRC a Ripple ledger consensus occurs rapidly and takes majority agreement.

I think it is worthy noting that one of founders is Jed McCaleb, the original developer of ed2k and MtGox.

Ripple has several huge problems that will prevent it from gaining as much steam as other cryptocurrencies.

First, OpenCoin pre-mined the XRP's so they could hack the cryptocurrency trend and make tons of money if their currency took off.

Second, Ripple is NOT a decentralized currency, but in fact a "distributed" currency, which is actually a much bigger deal than you might think. This means it has a single point of failure, can be easily abused by the creators, and is extremely vulnerable to intervention by governments and other big players.

(You can read all about it here: http://ripplescam.org/)

Bottom line: the strength of a currency depends almost entirely on the trust in that currency, and I have no reason whatsoever to place trust in ripples. It's a wiser move to put your money in a non-scam currency, like Bitcoin or Litecoin.

First it was bitcoin being decried as a "scam currency". Then bitcoiners called litecoin a "pump n dump" alt-chain. Now its BTC and LTC promoters campaigning against Ripple. Quite interesting...

Bitcoin, Litecoin, Feathercoin, etc. are all decentralized currencies, and this fact should give you at least one very good reason to trust them.

Ripple has been pre-mined and is not decentralized, but in fact controlled by one entity (regardless of what the creators may claim).

There is a huge difference here. Not even a comparison.

The main thing which makes bitcoin decentralized is that there's no central authority which can seize your coins. Its the same with Ripple, XRP at a ripple address cannot be seized or moved (without the private key for that address).

Issues of coin distribution and mining versus no mining is a separate concern. From my vantage point, the great majority of LTC belong to Litecoin founders/investors/miners while the great majority of XRP belong to Ripple founders/investors/gateway-partners. There are trade-offs with either distribution scheme, but "coins to miners" is just one scheme (not the defining criteria for decentralization).

That's not information worth noticing, because facts aren't relative. One could easily be a scam, justifying such a campaign.

Don't confuse the Ripple payment network with ripples, its native currency. You can use the payment network to transact in currencies like dollars and Euros.

> Don't confuse the Ripple payment network with ripples, its native currency

Funny, you were arguing that XRP wasn't a currency not so long ago.

It looks like from the code that all the orderbooks are XRP<>other. Seems like you can't opt out of trading XRP for your other stuff... so the fact that you and the other opencoin people own zillions of XRP is pretty material.

You can have an order book between any two assets. The pathfinding engine will prefer whatever path is cheapest, assuming it's not too long for it to find. For example, the USD/Bitstamp <-> BTC/Bitstamp order book is quite popular.

This is important because the price of XRP is not very stable now. If you wanted to keep offers up for USD to EUR, it would be very irritating if you had to pull down and replace a USD->XRP and XRP->EUR offer every time the price of XRP changed (to prevent one order from being too good and the other too bad). Also, if you couldn't place a USD->EUR offer, what would you do if you really wanted to trade USD for EUR? You can't place an XRP->EUR offer because you don't have the XRP yet. And if you place a USD->XRP offer, you wind up with XRP that you didn't want.

In the future, if the price of XRP becomes more stable, order books to and from XRP may become more popular. But still people who just don't want XRP will place offers on order books directly between assets other than XRP.

Whether or not XRP is a currency is really an arbitrary thing. I just want people to understand what XRP is and what its role in Ripple is. If they think that makes it a currency, then fine. If they think it doesn't, also fine.

If you are wondering "what is Ripple?" Wikipedia's definition[1] is the best:

"Ripple is an open-source protocol for a payment network. In its developed form, the Ripple network is intended to be a peer-to-peer distributed social network service with a monetary honour system based on trust that already exists between people in real-world social networks"

[1] https://en.wikipedia.org/wiki/Ripple_monetary_system

Careful what you read about ripple. A yearish ago some business people bought the ripple name from the academic who was working on it, and built something almost but not quite completely different under the same name. Anything written about the old system probably doesn't apply to the new one.

That description kind of fits both classic Ripple and the new Ripple, but it does fit classic Ripple better. The new Ripple does fully support social/community credit. But it's targeted more, at least for the near future, at acting as a payment system.

Code repo here:


Bitcoin Magazine writes about the announcement here:


I love the very basic premise of ripple - route payment in trust networks, P2P. I am more skeptical of the particular implementation, and especially the "pre-mined currency needed for transactions" bit, but after some thought and discussion don't think it's as big a problem as I worried (though I'm still not quite confident in that). In any event, open sourcing the server software is a good thing.

Will you do something about it ? Personally, thinking about the possibilities of the network and the protocol makes me eager to develop software that use it.

I feel like someday everybody will have a ripple account but they won't know it. Ripple is interesting because it is transparent and fast enough to enable developpers to create the future of everything around money.

I'm not sure exactly what you're asking.

When will the creators of Ripple explain why they've premined all the Ripples and kept most of them for themselves?

I have been following the progression of Ripple for some time. But I also get the feeling that Ripple is a huge pyramid scheme. To quote the 2 main criticisms from Wikipedia:

1. Ripple Labs will hold half of all the XRP in existence, in the hope that they will gain value

2. Ripple Labs have repeatedly made claims that they would give away 50 billion Ripples (XRP), but have not done so.

So rather than reward early adopters of the currently (with future deflation), like Bitcoin did, Ripple Labs will hold onto 80 billion XRP in hope that its value will increase.

Source: http://en.wikipedia.org/wiki/Ripple_monetary_system

Either the value of the currency will increase or it won't. If it won't increase, then Ripple Labs will have no reward. If it will increase, then early adopters who buy and hold XRP will be rewarded.

Say Ripple Labs currently holds a chunk of XRP worth $X. Say by January, it goes up to $Y. Then Ripple Labs will turn $X into $Y between now and January. Except an early adopter who bought $X worth of XRP today would also turn $5X into $Y over that same time frame.

The cost to buy Bitcoins is usually pretty close to the cost to mine them, so Bitcoin early adopters didn't get their Bitcoins for free either. Using mining to reward early adopters has proven to be economically infeasible. The cost and reward of mining will adjust, as mining becomes profitable or unprofitable, such that mining will not generally be more rewarding than anything else people might do.

Bitcoin took a lot of criticism for rewarding early adopters. So this is really a "damned if you do, damned if you don't" kind of thing.

The concept of "premined" doesn't really apply to a scheme that has no mining. For currencies that use proof of work to solve the double spend problem, mining is a good way to reward miners for providing the useful service of ensuring sufficient proof of work to secure the currency and make it useful before it's possible to do so with transaction fees.

Because Ripple has no need for mining, implementing mining to distribute the currency would basically just be paying people to waste electricity. It would make no sense, and an actual valuable asset (electricity) would be destroyed in the process.

Bitcoin has demonstrated that mining at a significant profit quickly becomes impossible. So long as mining is particularly profitable, more people will do it. More and more resources compete for ever smaller shares of the pie.

Where it secures the currency and the transactions, as it does in Bitcoin, it's an essential service that is worth paying for. Where it is not needed for that purpose, it's a colossal waste of a significant fraction of the value that Bitcoin creates.

Ah, darnit. I thought you meant the wine.

Sorry, I forgot this isn't really a forum full of hackers. Just news about hackers. I'll remember not to comment without wearing my tie.

Thought this was going to be about the Ripple emulator used for making Chrome act like a device while you are working on PhoneGap apps. I think that was open source anyway, but it is always way behind the current PhoneGap version and buggy, so it would have been nice if it merged with PhoneGap, excuse me, Cordova or whatever, and was going to be better supported...

Never heard of this Ripple and don't care anything about it myself.

> Thought this was going to be about the Ripple emulator used for making Chrome act like a device while you are working on PhoneGap apps.

Nope, it's about a program which satisfies a legitimate technological need. Sorry you were disappointed.

Cared enough to comment that you don't care, right?

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact