I think I'm taking this a bit off topic but what exactly is then the point of having a "de-centralized" exchange ? Either Ripple scales well for arbitrary trusted gateways in which case it does add a valid service or all you are doing is running additional ripple software on existing exchanges at the benefit of those who hold XRP.
If you rely only on a hand full of gateways ripple adds virtually no advantage, on the contrary you now have to trust both the gateways and the software itself to work as expected
Hundreds if not thousands of gateways, to my understanding, is the goal.
One of the advantages of the distributed exchange, is to allow payments
from any currency,
to any currency. The network will find the best path by utilizing this distributed exchange.
Gateways are also advantageous over exchanges, because their Ripple transactions are all listed in the public ledger. So at anytime, you can see how many IOU's are outstanding and how much cash reserves the gateway should have. Good luck getting that from an exchange or bank.
XRP is advantageous because it can be stored with no counter-party risk and can move through the network, without trust lines. It can also move into or out of any currency on the network and is known as a bridge currency.
Let's say you're going to send me payment, which I require in EUR but you want to spend BTC. It's tough to convert BTC - > EUR and then send it to me, without Ripple. Takes a long time and it's expensive. With Ripple you can for instance:
You -> BTC -> XRP -> EUR ->
Me That would be one possible path through the distributed exchange. And it all happens in seconds, for a fraction of a penny.
If you're a person, who in the future only plans to deal in Bitcoin transactions, Ripple is of no use to you. If you're a person that plans to deal in multiple fiat
and crypto-currencies, Ripple is an amazing payment network.
More info here: http://en.wikipedia.org/wiki/Ripple_(monetary_system)
It would be dishonest if I didn't admit that I have not looked at the actual consensus code in the protocol, but I do know my way around distributed consensus.
Their website gleams with technicalities on IOU's etc but when it comes to how they are reaching consensus the air gets mighty thin.
This is not trivial, in fact it is the essence if Ripple can and will succeed. The way I understand it you have a set of trusted nodes which need to form a majority.
Depending on synchrony assumptions and message creation times I am very much inclined to believe that Ripple will need more than three times (3f+1) as many honest and correct nodes to avoid byzantine attacks.
Now what about network partitioning in the wake of failures? If you have a system with known participants all trying to agree on something you will need a total majority to ensure consensus, else you'll end up with two network partitions both possibly containing different versions of your lovely distributed ledger. With Bitcoin the average block creation time is around 10 minutes which should give enough time even if a major outage occurs to somehow route information to the other partition. When you are doing transactions in seconds time even a short failure of an important connection (undersea cable is cut etc) may cause a network partition. Now what do you do? let the minority partition wait until it is re-joined?
I am very sceptical about ripple because a) It is complex and complex systems are more prone to contain errors and b) the technical problems are very very far from trivial
Solving this on a medium scale system (several exchange nodes) may work (look at Group Communication or atomic broadcast algorithms, they solve consensus in such instances)
But thousands of nodes? I am VERY doubtful
It would be great to see this solved and perfectly running as the software would then be usable for MANY other applications that require fast distributed consensus
[edit] ok I found the Consensus entry on the wiki, Complicated (who would have thought) Does anyone know if there is a whitepaper / formal proof of correctness? [/edit]