What would stop a pool from getting 51% and double-spending?


#1

What precludes a bunch of relatively small stakeholders organize a pool with 51% total stake and double spend anything they want? Could such a collusion be avoided?

What kind of tools do people have to detect anomalies like that?


#2

Hello! For everyone: please don’t make post title a riddle or a teaser to the post. A title should make clear what the post is about.

They would spend 51% of market cap on doing so, dump the price, and then happily double-spend a worthless coin in their now private network, while the rest of honest nodes hard-fork them away and happily continue with their lives.

Stake pool size stats will show you the size of each pool in the stake proportion. In Cardano all pools will be capped to around a 1% of total stake, so if they get bigger than 1% - they still receive only 1% of reward. So aaaaaaal they way from 1% up to 51% - not only everyone else would clearly see that a pool goes out of proportion - the stakers in that pool would also almost directly loose money in missed rewards, which would actually mean that they almost give away free coins to all the other pools, since they lock all their stake (that would otherwise be competitive ) in this pool that still receives only 1% of rewards. So for all this time - they would not only loose a lot of profits - they would actually directly help to reduce their own share in the total stake :sob:

That would be an epic way to go down in history, tho. As performers of a stupidest ineffective attack that additionally made everyone else richer in the process :slight_smile:

P.S.

Also, what’s “a bunch of relatively small stakeholders”? How many people is that? Top 100 of Cardano addresses are in possession of ~33% of total stake. But top two of them are IOHK and Binance - and neither of them have interest in bringing the network down. The rest of addresses are exponentionally decrease in their relative stake so the 100th address only has 0.05865% of total stake. After the top 100 - decrease continues to be exponentional, so 200th address prolly possesses something around 0.005865%. Now try to imagine how many separate people you would need to get into your “evil party” to scrape for 51%. Even without excluding the top two addresses with ~15% of total supply between them. This is not a trivial task.


#3

Also - you basically could warn an unproportionally growing pool\node at 20%, then really WARN it at 30% and then just fork-it away at 40%-45% so it does not even gets to the majority. This forking of course would require the approval from the rest of the network.

But I can bet anything on the fact this will never happen - too weird of an event and an indicator that there’s something much more serious and bad happening in the background. But as an extreme measure for extreme unlikely scenarios - there’s this solution.


#4

I apologize. I was not clear enough in my question.

My scenario assumed that stake pools keep their stakes at 1% but agree to collude offline to take advantage of their majority power at the expense of the other 49%. So you would not see any anomalies like a pool getting to 10%… Alternatively, you could have 51% of small stakeholders organize themselves offline or outside the Cardano network into a “mafia pool” that effectively controls the network.

I agree that if something like that happens we can always fork or the delegates can pull their stake and reassign to honest pools. While we are waiting for the honest pools to appear to replace the ones that are compromised, the network could function at lower capacity…

I wonder if there is a way to tell if the 51% of pools are doing something funny… in other words do we have the tools to detect covert adversary pools?


#5

OMG, welcome back to the “Colluding parties” :slight_smile:

This was recently discussed in the developers chat and went something like this:

Q: but how to protect staking pool from sybil attack? half of the pools is controlled by one organizition?

A: nohow. Better incentives for more independed pools from the system, and better demand for transparency from the public. More honest organisation can create pools. People can “fire” pools that do not provide transparency.

And howether secure you make any system - every security argument may be actually contradicted with “But what 'bout colluding parties?” question. So in order to make anything remotely practical you have to assume honest majority.

It’s like :slight_smile:
– We have developed a system that allows a buch of honest parties to develop better sustainable long-term consensus and detect malicious activity.
– Yeah… but what if all those parties collude… and they are actually evil? (O.O)

image

This is exactly why it is important for the public to understand what a staking pool is and what delegates should demand in return for their fees, since the public basically adopts the responsibility for keeping the system live, in return for the system providing value to them


Yes, you can detect a weird stuff happening on the chain if you see the average number of empty slots raising. This is one of the metrics in PoS systems and all users are advised to wait for longer confirmations if this metric goes up, since it might indicate a poor overall average networking or a malicious activity. Once you get enough confirmations on you block - there’s nothing much even a colluding party can do.

Basically - there’s not that much stuff a malicious node or a party can do in Ouroboros at all :slight_smile: I advise you to read thru this whole thread first to understand the subject further:


#6

Thanks for your patience in explaining these nuances. I am genuinely trying to understand the way PoS works in Cardano. I hope you understand I have no mal-intent in my questioning. I think Cardano is an awesome platform!

PS: Grammar police in me says: the word you meant to use is “lose”… the meaning of “loose” is свободный или болтающийся.


#7

No problem at all! :slight_smile: That’s exactly what the forum is for =)

I see Grammar police now speaks Russian, eh? Suspicious…

But thanks a lot for correcting me, tho! I’m also trying my best here :joy:


#8

You give me more credit than I deserve… I googled it :sunglasses: