2

Today, Ripple is the third-largest cryptocurrency by market cap. It uses a consensus algorithm and its only clients seem to be large banks. They open sourced the code on github, but nodes have to be approved to join the network.

However, the original Ripple project was conceived by Ryan Fugger in 2004. It has to deal with IOUs between people, and that's why it was called ripple, as each transaction is implemented by shifting around IOUs in chains, like ripples in a pond.

I want to understand whether the original protocol had any serious flaws. unlike Bitcoin and other cryptocurrencies, it seems to NOT require a global ledger and global consensus to pay people. Instead it uses a "Network of Trust", similar to PGP vs DNS. Each person only deals with a few nodes. That makes it an extremely awesome fit for our own open source platform, which we built to allow any community to host their own social network the same way Wordpress hosts blogs. Basically, an African village, or a Cruise ship, or a Classroom in a university could have a social network for their community, possibly running on the local network without having to contact a remote server. Everyone has their own identities that persist as they join various communities.

Here are some videos on the original Ripple protocol, note they are all from 2010 and 2011:

We wanted to implement money inside these communities, and the idea of IOUs between people seems great. My questions are:

  • Was this abandoned, or is the current Ripple source code able to implement this on a local level?

  • Are there any serious downsides, like sybil attacks and ability to issue unlimited amounts of credit, that necessitated a shift to a global consensus protocol?

  • Why does the current Ripple protocol require a global consensus?

  • Can someone use the old Ripple design to make money between people actually work in a local community without a global singleton ledger?

  • Nodes don't need to be approved to join the network! Start up a node and it will connect to the network, no approval needed. – Nik Bougalis Jul 2 '17 at 17:35
  • But if the network splits (let's say you are on a cruise ship) can you still make payments to one another during the sailing of the cruise ship? Or if you're in an African village etc. – Gregory Magarshak Jul 2 '17 at 18:55
  • Yes and no. No in the sense that you need to be able to send your transaction to the network and observe the results of the consensus to know if it went through or not. But you can work around that if you are using payment channels (XRP only) which don't require connectivity after their initial setup; you'd transact, as needed, and then simply settle all transactions, at once, when you got connectivity again. – Nik Bougalis Jul 2 '17 at 18:57
  • Wait a sec! WHY DOES RIPPLE EVEN NEED A GLOBAL LEDGER AND CONSENSUS? Each person extends a credit line to their friends, whom they trust. All you need is two sides to sign every transaction, and a routing algorithm. You don't need a global ledger to hold every transaction! – Gregory Magarshak Jul 3 '17 at 3:48
  • Ripple has a native cryptocurrency, XRP. Additionally, it supports advanced features like order books, payment pathfinding and a high-performance matching engine. – Nik Bougalis Jul 3 '17 at 3:55
2
  • Why does the current Ripple protocol require a global consensus?

  • Can someone use the old Ripple design to make money between people actually work in a local community without a global singleton ledger?

  • Wait a sec! WHY DOES RIPPLE EVEN NEED A GLOBAL LEDGER AND CONSENSUS? Each person extends a credit line to their friends, whom they trust. All you need is two sides to sign every transaction, and a routing algorithm. You don't need a global ledger to hold every transaction!

Short answer: That wouldn't be Ripple; it would be Open Transactions.

Longer answer: Imagine Alice wants to make a payment to Eve. She opens Ripple, and it finds a path from Alice -> Bob -> Charlie -> David -> Eve. She starts exchanging IOU's until her payment reaches Eve. However, David's node goes down partway through this, leaving Alice with an IOU from Charlie, which is worthless to her.

(There are ways of dealing with this without a consensus sytem by making transactions that are contingent upon knowing a preimage that only Alice knows, but there's not enough space in this answer to elaborate on that. Alternately, you can send the payment through in tiny chunks, so that only a small amount of money is trapped if the payment fails.)

In contrast, if you have a global consensus system, you can make this entire process atomic and uninterruptable.

Was this abandoned, or is the current Ripple source code able to implement this on a local level?

Don't know; haven't been following Ripple lately.

which we built to allow any community to host their own social network the same way Wordpress hosts blogs

It doesn't sound like you need global consensus. That's a good thing, because implementing something like that is almost always a huge pain in the ass.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.