

Ripple is officially open-source - calder
https://ripple.com/forum/viewtopic.php?t=3718&p=18013

======
ghshephard
When GoLang was first announced, it began an never-ending amount of confusion
for me (a Go board game player), as I started to see all these articles around
Go on HN, just to be continually disappointed.

As a Mesh Networking Practitioner, I see I'm once again going to have to deal
with namespace collision. (Ripple has been well used name in another domain:
[http://www.ietf.org/proceedings/75/slides/roll-2/roll-2_file...](http://www.ietf.org/proceedings/75/slides/roll-2/roll-2_files/v3_document.htm))

Interesting - Ripple the routing protocol is primarily about Directed Acyclic
Graphs, while Ripple, the payment network, works with merkle trees.

Combine the two concepts together, a directed acyclic graph of tags stored as
a merkle tree, and you basically have git.

~~~
maaku
Ripple-the-payment-method is about routing through directed networks. Merkle
trees are not really related to the payment mechanism at all.

~~~
ghshephard
From the article:

"Our consensus process uses peering ... instead of mining. The ledger is a
data structure that describes the current state of the network as a merkle
tree"

~~~
delinka
And still, merkle trees are not really related to the payment mechanism.

------
tlrobinson
Now it gets interesting. For a long time the lack of an open-source server and
the associated centralization was a big point of criticism against Ripple.

Personally I don't think we'll see much grassroots adoption of any
cryptocurrency technology that can be categorized as "pre-mined" or anything
less than full decentralization, and that includes both Ripple and Mastercoin.

Now if they're able to get the existing banking system on board they could
have some chance. It sounds like they're handing out large chunks of XRP (the
Ripple cryptocurrency) to companies that implement Ripple integration as an
incentive.

~~~
wmf
Ripple is still semi-centralized. If Alice and Bob trust different nodes they
may end up with different ledgers and thus they may be unable to transact. The
only way to keep Ripple unified is for everyone to trust the same nodes, which
is the definition of centralization.

~~~
alwillis
This is incorrect. All Ripple servers go through a consensus process to
validate transactions; after which the Last Closed Ledger (LCL) is generated
and sent to every server.

Every server has a copy of the LCL, so there can't be a case of ledgers being
different anyway.

Anyone on Ripple can send XRP to anyone else regardless of who they trust; in
order for Alice and Bob to transact in a currency other than XRP, the Ripple
network will find a path between them to allow the transaction.

There a video from Ripple Labs that explains how consensus works:
[http://ripplefederation.org/videos/how-ripple-works-
gateways...](http://ripplefederation.org/videos/how-ripple-works-gateways-and-
pathways).

~~~
makomk
Nope, it's entirely correct. During the consensus process, each server only
listens to servers that its operator has marked as trusted - there is no way
for servers outside the trusted clique to affect in the consensus within the
clique. This has a few consequences:

\- Currently, there's a small clique of servers run by OpenCoin Inc and their
partner businesses which only trust each other and which everyone uses. The
ledger closure process and transaction acceptance are effectively centrally
controlled by that group; if your server closes the ledger itself rather than
waiting for the official ledger from on high, it will be permanently stuck on
its own fork of the network.

\- Because of the way the ledger closure process works, if you set up your
server wrong and end up in a part of the trust network that's poorly connected
to the official servers you will end up permanently stuck on your own fork of
the transaction history. (In practice, since you can't disagree with the
official OpenCoin servers and you can't influence their consensus, you should
just set your trust list to the OpenCoin-approved list exactly and forget
about peer-to-peer stuff.)

\- There's a mandatory transaction fee in a virtual currency, XRP, and unlike
in Bitcoin the XRP used in that transaction fee is destroyed. The fee is set
as part of the ledger consensus process, which is controlled by OpenCoin Inc.
They also control the supply of XRP. In effect, there's a central organisation
with the power to charge arbitrarily large fees for the use of Ripple.

~~~
alwillis
Other than having a Ripple wallet, I have no affiliation with Ripple Labs.
That being said, I'd like to respond to this article.

 _Nope, it 's entirely correct. During the consensus process, each server only
listens to servers that its operator has marked as trusted - there is no way
for servers outside the trusted clique to affect in the consensus within the
clique._

No, it's entirely incorrect; you have a misunderstanding of how the consensus
process works[^1]. To reach consensus, all nodes have to agree on the set of
changes to be applied to the ledger.

A server gets proposals for these changes from the servers on its Unique Node
List[^2]. But in order for these transactions to be applied to the next
ledger, enough of them have to match transactions coming from other servers on
the network the aren't on the UNL. If a transaction from a server matches a
transaction proposed by servers on the UNL, it gets a vote.

This process repeats until 80% of the transactions match from the UNL matches
everyone else's, which is the threshold for mathematical certainty. And
remember, every node on your UNL is doing this same process with the nodes on
their UNLs, which makes it decentralized.

When you're running a server, you don't trust the nodes on the UNL; you just
trust that more 50% of them won't collude against you.

 _Currently, there 's a small clique of servers run by OpenCoin Inc and their
partner businesses which only trust each other and which everyone uses._

Also incorrect. As of 2013.09.02, there were 30 public servers and 11
validators on the Ripple network[^3]; most likely, there are more now.

This Ripple wiki[^4] says "As long as there is some minimal degree of inter-
connectivity between UNLs consensus will rapidly be reached. This is primarily
because every honest node's primary goal is to achieve a consensus."

And since anyone can download and run the Ripple server software, anyone who
does so is part of this so-called "small clique of servers everyone uses".

Of course there will be bad actors on the net running questionable servers and
validators. But we're on this thing called the internet; we could share data
on which servers to trust and stuff[^5]

 _The ledger closure process and transaction acceptance are effectively
centrally controlled by that group; if your server closes the ledger itself
rather than waiting for the official ledger from on high, it will be
permanently stuck on its own fork of the network._

Not only is this incorrect, but it shows either you don't actually understand
how this works or you have some agenda for making shit up…

There is no such thing as an "official" ledger and there's no "from on high"
(the network topology is a graph; there's no hierarchy). By definition, a
server can not close a ledger itself; a ledger can only close when there's
agreement among the servers and validators using the consensus process.

And even in the the case of disaster where the network splits in half and
there are conflicting transactions and ledgers, when the network is
reconnected, everything get back into sync.[^6]

 _Because of the way the ledger closure process works, if you set up your
server wrong and end up in a part of the trust network that 's poorly
connected to the official servers you will end up permanently stuck on your
own fork of the transaction history. (In practice, since you can't disagree
with the official OpenCoin servers and you can't influence their consensus,
you should just set your trust list to the OpenCoin-approved list exactly and
forget about peer-to-peer stuff.)_

Even if you use the default UNL (which can be changed at anytime regardless),
you're still participating in a peer-to-peer network and you're still part of
the distributed consensus process. Nice try though. And remember, we don't
trust everyone on the UNL; we just trust that most of them won't collude
against us.

 _There 's a mandatory transaction fee in a virtual currency, XRP, and unlike
in Bitcoin the XRP used in that transaction fee is destroyed._

* the fee exists to protect the network from spam transactions and denial of service attacks, as it would cost a spammer a lot of XRP to pull this off; the more transactions they'd attempt to send, the more expensive each transaction becomes

* the transaction fees are ridiculously small; the base fee is 0.00001 XRP.

* I swapped (using the Ripple network's built-in distributed exchange[^7])$1.16 for 25 XRP last night for 0.000025 XRP. That's $0.00075 for those of you playing at home. ;-). This lovely animation shows the details: [https://ripple.com/graph/#2EF43881B82AE8FBA31A2C3272E61CBC2E...](https://ripple.com/graph/#2EF43881B82AE8FBA31A2C3272E61CBC2EEDFF3F61F248FF16626BE99D6F81CF)

* It's true that the Bitcoin protocol doesn't destroy bitcoin to make transactions. However, from the user's point of view, paying a fee for Ripple transactions is no different than paying fees for Bitcoin transactions.

 _The fee is set as part of the ledger consensus process, which is controlled
by OpenCoin Inc. They also control the supply of XRP. In effect, there 's a
central organisation with the power to charge arbitrarily large fees for the
use of Ripple._

Ripple Labs (née OpenCoin) doesn't control the ledger consensus process; if
they did, it wouldn't be consensus right? The Ripple protocol is open source
(you know, like SMTP or TCP/IP); they don't own or operate the network,
therefore they don't charge fees--large or otherwise.

I know this may come as a shock, but fees are set by consensus, not by Ripple
Labs:

>A node can introduce a transaction to change the base fee. If a trust-
weighted majority of nodes vote "yes" on the transaction, it will be
incorporated into the ledger and the fee will be changed.[^8]

Yes, Ripple Labs created 100 billion XRP and has committed to gift 55 billion
of them over time to "charitable organizations, users, and strategic
partners".[^9]

I got XRP from the GitHub giveaway[^10]; everything appeared to be on the up
and up. I expect there will be all kinds of giveaways for years to come.

[^1]: [https://ripple.com/wiki/UNL](https://ripple.com/wiki/UNL)

[^2]:
[http://www.youtube.com/watch?v=pj1QVb1vlC0&feature=youtu.be](http://www.youtube.com/watch?v=pj1QVb1vlC0&feature=youtu.be)

[^3]: [http://bitcoin.stackexchange.com/questions/13551/how-big-
is-...](http://bitcoin.stackexchange.com/questions/13551/how-big-is-the-
ripple-network/13555#13555)

[^4]:
[https://ripple.com/wiki/Consensus#Technical_Description](https://ripple.com/wiki/Consensus#Technical_Description)

[^5]:
[https://ripple.com/forum/viewtopic.php?f=1&t=3881&p=19414#p1...](https://ripple.com/forum/viewtopic.php?f=1&t=3881&p=19414#p19420)

[^6]: [http://bitcoin.stackexchange.com/questions/13330/what-is-
the...](http://bitcoin.stackexchange.com/questions/13330/what-is-the-exact-
consensus-protocol-ripple-uses/13340#13340)

[^7]: [https://ripple.com/distributed-fx/](https://ripple.com/distributed-fx/)

[^8]: [http://bitcoin.stackexchange.com/questions/7572/what-are-
the...](http://bitcoin.stackexchange.com/questions/7572/what-are-the-
transaction-fees-with-ripple-com)

[^9]:
[https://ripple.com/ripple_primer.pdf](https://ripple.com/ripple_primer.pdf)

[^10]: [https://ripple.com/blog/git-in-the-game-2020-xrp-giveaway-
fo...](https://ripple.com/blog/git-in-the-game-2020-xrp-giveaway-for-github-
users/)

~~~
goldenkey
You got clown dollars from Ripple. It just so happens that XRP has some value.
It's pretty obvious that Ripple is buying back XRP to support the currency,
despite its obvious scamware-nature. It is worthless and centralized, no
different than some island coming up with a cryptocurrency and saying "trust
in thee." No thanks.

~~~
alwillis
_It 's pretty obvious that Ripple is buying back XRP to support the currency,
despite its obvious scamware-nature._

There you go again making shit up. Again, Ripple ledger is open and available
to anyone to look at, just like the bitcoin block chain.

Please show us where Ripple Labs is buying XRP. Oh yeah—you can't.

Like any currency, the price is based on supply and demand. We can see that
buying and selling of XRP has increased dramatically in the last few week.
That ain't Ripple Labs buying XRP but China certainly is:
[http://www.ripplelounge.com/1/post/2013/12/the-new-normal-
in...](http://www.ripplelounge.com/1/post/2013/12/the-new-normal-in-
ripple.html)

~~~
goldenkey
It's pretty obvious that Ripple Labs is buying back their own currency on the
exchanges based on the volume. It's called damage control, and their plan is
to uphold the fake value as long as they can, until people are duped enough to
create volume for that 'fixed' price. Ripple is a scam, stop lying to
yourself.

~~~
alwillis
_Ripple is a scam, stop lying to yourself._

It's pretty obvious that the only lying going on is coming from you.

 _It 's pretty obvious that Ripple Labs is buying back their own currency on
the exchanges based on the volume. It's called damage control…_

Yes because Ripple Labs, fresh from raising [an additional $3.5 million in
funding]([http://www.finsmes.com/2013/11/ripple-labs-
raises-3-5m-fundi...](http://www.finsmes.com/2013/11/ripple-labs-
raises-3-5m-funding.html)) was clearly in really bad shape.

And all of that volume happening on the various exchanges (like the 232,348.28
that traded on
[RippleChina]([https://ripplecharts.com/market/CNY:RippleChina/XRP](https://ripplecharts.com/market/CNY:RippleChina/XRP))
the past 24 hours) is mostly Ripple Labs buying XRP, right?

This is just… dumb. And it makes no sense.

Ripple Labs can slow down or even stop distributing XRP until the price goes
back to where they'd want it. No need to do buybacks when RL (at least for
now) control the vast majority of the currency.

You should stop with these posts; it's just getting more embarrassing.

~~~
goldenkey
> Ripple Labs can slow down or even stop distributing XRP until the price goes
> back to where they'd want it.

You should stop with these posts; it's just getting more embarrassing.

------
sktrdie
I'm very interested in this project as it essentially can be used as a
currency the same way that Bitcoin is, without any mining required. It uses
the concept of trust from a variety of different nodes. If a node acts
dishonestly it loses trust and therefore loses reputation which in this system
accounts for your actual currency:
[http://bitcoin.stackexchange.com/questions/7550/how-does-
rip...](http://bitcoin.stackexchange.com/questions/7550/how-does-ripple-solve-
the-double-spend-problem/#comment19596_16601)

The idea that I'm interested in is that it seems to solve the double-spending
issue that Bitcoin so eloquently solved, but without all the electricity
wasting issue, and the 51% issue, that currencies with proof-of-work (POW aka
mining) have. Currencies that use the POW system are designed to work well
only if half of the computational power of the network is used by honest
nodes. If by any means more than 50% of the network is in control of dishonest
nodes, they could do all kinds of things and perhaps even kill the entire
currency.

Replacing the proof-of-work system with something based on reputation seems
very interesting in my opinion:
[https://bitcointalk.org/index.php?topic=10193.0](https://bitcointalk.org/index.php?topic=10193.0)

~~~
jaekwon
Double spending isn't really about trust. It's about transactional atomicity.

After reading a bit, I've concluded that Ripple doesn't actually solve the
consensus problem. Whether it works or not depends on the shape of the graph
of the core validating nodes. If the graph is too centralized (as it is now,
and probably will always be), it can be controlled by fiat.

~~~
kylebrown
Transactional atomicity is exactly the reason why ripple needs a native
currency - the native currency is what provides byzantine fault tolerance[1],
just as in bitcoin.

Supposedly, ripple reaches consensus under diverse graphs of validator node
networks. But its a research topic still undergoing study (Ripple Labs say
they have whitehats closely examining the protocol).

1\.
[http://en.wikipedia.org/wiki/Byzantine_failure#Practical_Byz...](http://en.wikipedia.org/wiki/Byzantine_failure#Practical_Byzantine_fault_tolerance)

------
rdl
The true test will be when someone forks a version and removes XRP. XRP seems
like a pretty artificial add-on to the whole system.

I'd still prefer something like Open Transactions which supports blinded
instruments, though.

~~~
philrapo
XRP is essential as the native currency of the protocol.

All other currencies exist on Ripple in the form of balances. (Similar to how
I store my money at Citibank in the form of USD balances. This is how our
traditional financial system works).

The protocol needs a native currency (XRP) in order to pay the anti-DDOS fee.
Every payment or trade requires the user to pay a 0.0001XRP fee which the
protocol destroys.

It's purpose is to create a cost to sending "transaction SPAM" and make it
extremely expensive to DDOS Ripple servers for any sustained period of time.
This transaction fee is dynamic and scales higher in terms of heavy server
load.

It's important that this type of fee be paid in a currency that is native to
the protocol. This allows the protocol to remain neutral and global.

~~~
maaku
> The protocol needs a native currency (XRP) in order to pay the anti-DDOS
> fee.

No, it doesn't. Have you seen the various pre-OpenCoin ripple protocols, or
the currently competing colored coin proposals? None of them necessarily
needed or would have benefited from a scarce-money fee currency. Ripple is a
protocol for generating ad-hoc user-issued assets and arranging trade networks
for exchanging these currencies. There's no reason fees can't be collected in
whatever currency is being transacted, and then atomically converted into
whatever currency the collecting node desires. _That 's what ripple is
designed to do_.

~~~
rfugger
I wrote the earlier Ripple designs [1]. To me, the main thing XRP adds to the
concept is a way of bootstrapping the network by providing a way to bridge the
gap between islands of nodes with no trust pathway for monetary value to flow
between them. I tried getting Ripple going for nearly 10 years (including a YC
interview in 2007), and this bootstrapping issue was a big one.

XRP also provides anti-DDOS, which is also something you'd also need to
consider carefully in implementing my original designs, as well as a brilliant
way to finance the creation, development, and maintenance of the network.

[1] [http://archive.ripple-
project.org/Protocol/Protocol](http://archive.ripple-
project.org/Protocol/Protocol)

~~~
maaku
Hi Ryan, it's Mark. I worked with Jorge in creating Freimarkets [1]. I was
also on the Ripple mailing list back in the pre-OpenCoin days.

[1]
[http://freico.in/docs/freimarkets.pdf](http://freico.in/docs/freimarkets.pdf)

> To me, the main thing XRP adds to the concept is a way of bootstrapping the
> network by providing a way to bridge the gap between islands of nodes with
> no trust pathway for monetary value to flow between them

XRP adds nothing new to the bridging problem. Any other common currency could
have been used, such as USD-backed assets or bitcoin. XRP was Jeb McCaleb's
stab at Bitcoin 2.0, and the bridging issue simply a post-facto
rationalization. In a world where there is already existing decentralized
currencies, or multiple legacy options for a common currency, there is no need
for yet another centrally issued scarce-money... except that OpenCoin stands
to materially benefit from forcing XRP down our throats.

> XRP also provides anti-DDOS...

It does so by economically limiting its own usefulness. Accounts and assets
cost real money to create and maintain - more so than the fees involved with
bitcoin. That brings us back to the traditional banking model of institutional
asset issuers and heavyweight accounts, and rules out a number of protocols
involving ephemeral asset issuance or privacy-enhancing one-time-use accounts.

I don't consider the problem solved if the "solution" involves restrictions
that unnecessarily limit the capability of the system.

> as well as a brilliant way to finance the creation, development, and
> maintenance of the network.

On this I could not disagree more. XRP is an unnatural, ill-fit hack on top of
Ripple which provides no tangible benefit that could not be achieved by other
less restrictive, and less obviously self-serving means. It therefore ads risk
to anyone investing time or resources into using Ripple, as it may be
surpassed by a superior fork which removes XRP.

Financing the creation of a new, distributed, peer-to-peer network is not
easy, I know - it's been hard trying to get funds for Freimarkets. But the
OpenCoin / Mastercoin / Bitshares model is _not_ the way to do it, in my
opinion. Rather the bitcoin model is: distributed issuance and make your money
from the economy that develops, not an underhanded wealth transfer written
into the protocol.

~~~
josephagoss
I have talked with many of the devs from Ripple that post on BitcoinTalk
often, they are so adamant that the XRP is required I feel that it's a stealth
currency.

One developer was paid, instead of stock a billion ripples. The first thing
Opencoin/Ripplelabs did was giveaway very small amounts to create artificial
scarcity and then open an exchange (through Bitstamp) to sell off as many as
possible for Bitcoins. At the peak Ripples were worth more than all the
Bitcoins in the world.

I remember Joel (I think) was adamant that Ripple was not a currency at all,
except we ended getting him to admit it was meant to be a competing currency
to Bitcoin.

I do not trust them at all, especially now Google are involved in backing
them.

~~~
DennisP
Hadn't heard about Google backing them, do you have details?

~~~
maaku
[http://www.coindesk.com/google-ventures-invests-in-
bitcoin-c...](http://www.coindesk.com/google-ventures-invests-in-bitcoin-
competitor-opencoin/)

------
dublinben
I'm honestly surprised that they ever considered launching a project like this
without making it free software.

~~~
maaku
Well they rather cheaply added on a currency that made no sense, which they
issued to themselves and force people to use (or at least hold) to participate
in the protocol. If it was open source from day one, the very first thing
anyone would do would be to remove XRP.

So am I surprised? No.

~~~
alwillis
XRP exists to help protect the Ripple network by making it costly to mount an
attack against the network.

The drama that took place earlier this year when there were several denial of
service attacks against Mt. Gox, causing the price of BTC to drop so that it
could be bought cheaper by the attackers and their friends is way less likely
to happen to Ripple.

Unlike transfering BTC, sending XRP from one Ripple user to another is free
and confirmation is instant—no need for miners to confirm the transaction.

~~~
maaku
There are so many other, better ways to solve that problem which don't involve
an unnecessary transfer of wealth to OpenCoin Inc. Also, I wouldn't even call
it a solution: it makes opening accounts costly, which directly hampers
scalability and eliminates entire classes of use cases. That's a weakness, not
an advantage.

~~~
kylebrown
There may very well be better ways. But creating a distributed p2p exchange
protocol is probably a lot harder to do than some of the people raising funds
and making promises would have you believe.

~~~
maaku
I am well aware. I am in this space myself:
[https://bitcointalk.org/index.php?topic=280292.0](https://bitcointalk.org/index.php?topic=280292.0)

~~~
DennisP
Wow that looks interesting.

------
simlevesque
If you want to understand Ripple, the best way is to read the white paper
which was released 2 days ago :
[https://ripple.com/ripple_primer.pdf](https://ripple.com/ripple_primer.pdf)

------
aabalkan
Note that this news is a month old.

------
rainmaking
Okay so ripple achieves consensus through network effects: biggest room wins.
So far so good.

Now Mallory deploys ripple clients, which behave like ordinary ripple clients,
but are under her control. After a while, 51% of the biggest consensus room
are straw men for Mallory. She "flips the switch" introduces a transaction
that places the entire network's balances into her accounts.

How does ripple prevent this?

------
sown
So I'm just curious...but how does the ledger work? It's supposed to be
eventually consistent, so nodes on the network eventually get a copy. How do
they determine that everyone gets one?

~~~
wmf
Distributing information through a gossip protocol is well known.
[http://en.wikipedia.org/wiki/Gossip_protocol](http://en.wikipedia.org/wiki/Gossip_protocol)
The hard part is deciding on the contents of the ledger.

------
glassdoor
How exactly is ripple different than any other payment system?

