Post
Topic
Board Investor-based games
Re: How can we create a provably fair Ponzi Game ?
by
dyask
on 16/01/2015, 12:14:32 UTC
Answer to a question asked in meta[1] as this is about provably fair not about the rating towards ponzis:

-snip-
Just a couple points, from a programming point of view.

1) The seeds are not meaningful unless you can actually exercise the code and produce the same throws.   Unless you know for certain the exact bytes running on the server, you can't be sure what you are seeing.   There are many possible cheats here, but they are complex in nature for an unskilled programmer.    I won't say more, but there are many possibilities.

2) You can still cheat without mucking with the random numbers by favorable rounding of the thresholds, etc.   A ton of little nicks can add up and if caught ... "Thank you for finding a bug!"

The problem is proof in the crypto world is only hash deep.   You can wrap a cheat in proof and it would still cheat.   

So you are saying it possible that I test 100000 rolls with their code and the seed (which is partly provided by me) in question which all turn out exactly as they did on the server, but they still cheat every 1millionth roll?
Even if thats true - which I doubt - it still needs only a single person to test 1million instead of 100k rolls and they are done with it. E.g. paradocks (#1 rolls on coinichiwa) has as of now made 3,929,072 rolls. Even if only half of them have been verified the scam would be public by now. The users total wagered is ~4.8 BTC which is 122 Satoshi on average. Lets say your code would pass all the tests and cheat every millionth roll, that user would be short 488 satoshi.

Again I know provably fair is not 100% because there are other factors but the roll, but to say that there are possible loopholes is very unlikely. Id like to see stats like those for primedice, but aparently Stunna keeps them hidden or I am to stupid to find them. The site has run 3 billion rolls now. Someone would have caught a cheat.


[1] https://bitcointalk.org/index.php?topic=923461.msg10174134#msg10174134
Not really ... let's just say it is possible to write a random number generator that gives clues to the next roll.  The clues could be coupled to the server seed and another function.   If you know what the next roll is like, you have a lot of options for cheating.   However that is just one approach, there are others and I'm sure many that I've never thought of.

I'm not going to give you any details on how to make a random number generator that cheats.  I'll just say it is extremely difficult to make a random number generator that is truly random.  Additionally if you can run it and get the same sequence with the same seed, it isn't really random.  Anyway attacking the roll is a harder nut and there is a lot of low hanging fruit that I suspect most people would go with.  Even highly skilled programmers often aren't that strong in math.  

If you have the source and you can really understand the source then the hash keys might mean something.   Believe me, that is a tall order.   I wrote my own sha256 routine using AVX instructions along with parallel paths in the processor and understanding the simple hash math well enough to do that isn't something that can be done in a few hours.   There is a great deal of open source code that has had major bugs found only have years of a great many people going through the code.   If you don't believe me, read some pull requests in git repositories for your favorite Linux.    

The point is that these proofs are only valid if the site is honest in the first place.