Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

In Bitcoin, if a participant gains control of more than 50% of the hash power, they can execute a double-spending attack. The "attack" could come from within, say if the existing powerful miners decide to change the rules.

Does Ripple have a similar problem, where a few people can effectively take control of the system? If yes, how does it work?

share|improve this question

1 Answer 1

up vote 9 down vote accepted

Ripple solves the double spend problem by consensus. Everyone who wants to run a server on the Ripple network picks a set of validators and tries to reach a consensus with them on which transactions are valid.

The Ripple equivalent of Bitcoin's 51% attack would be if some group obtained control over enough validators that the consensus process failed. Because people specifically select validators that they believe are unlikely to collude, this would be an exceptionally difficult thing to do.

If validators refuse to come to a consensus with each other, this is detectable to other validators. They then pronounce the network broken (because they don't know which side is right).

In this case, servers would declare the Ripple network unusable automatically. Until the problem was resolved, no transaction results could be relied upon.

The solution would consist of analyzing the signed validations and proposals to see which validators were being unreasonable and for all honest people to remove those validators from the UNLs (lists of validators they try to come to a consensus with).

So you would have to gain people's trust and then in the process of making the attack you would lose that trust and have to start over again.

By contrast, if someone acquired ASICs to attack Bitcoin, they could attack Bitcoin repeatedly. It's not clear how Bitcoin could respond to such an attack, but changing the mining algorithm (to make the attacker's ASICs worthless) is probably a non-starter as it would also make all the Bitcoin miners' investments in ASICs worthless as well.

share|improve this answer
    
How does the network makes sure that no clusters of validators arise? If I'm right, nodes ignore proposals from other nodes than the ones they trust. What happens when a cluster of nodes arises only trusting the others in the cluster but having no link with any other node outside the cluster? –  Steven Roose Apr 25 '13 at 10:32
    
A blockchain fork :) –  eMansipater Apr 25 '13 at 10:40
    
"Until the problem was resolved, no transaction results could be relied upon." Does this mean transactions wouldn't go through? Would a user know that the system is in this state? –  Manish Apr 25 '13 at 14:47
    
In Bitcoin you can do a double-spend if you have enough hash power, and this is by design. Are you saying that you simply can't double-spend in Ripple, only just bring the system to a halt owing to lack of consensus (even if you controlled most of the validating nodes)? –  Manish Apr 25 '13 at 14:50
2  
@Manish: The Ripple server has an internal "gate". It continues running based on what it sees on the network, forming a consensus with anything it can. But it only reports transactions as validated to clients when they pass this "gate". If the validators are not agreeing, then nothing will pass the gate. The server will report stale data to the clients and tell them it does not have current data. You could not rely on the results of any transactions. If Bitcoin has a similar failed state, it still happily processes transactions and reports confirmations. (Though that's very rare.) –  David Schwartz Apr 25 '13 at 16:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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