I have a question on how the provably fair system can resist collision scams.
I know this would be extremely difficult in the bitZino case (impossible for all practical purposes as long as the hashing algorithm remains unbroken), because the server secret is a coherent JSON string of cards. However, this could be the case on a cointoss setup where the server secret seed is just a random (or random-looking) string.
A malicious server could select two colliding seeds and show their identical hash. Then, upon receiving the client seed, the server chooses the server seed that yields the most favorable outcome and reveals it to the client, who has no means to know about the existence of the alternate seed. Therefore, the system is not provably fair.
Know collisions exist for the still widely used MD5 algorithm, and theoretical collisions (a significant reduction of the entire search space) are possible for SHA-1.
A possible solution could be that in the first step, the server combines its secret seed with a public nonce and shows the combined hash. This ensures that no collisions are available.
What do you think?
Thanks for the question oriolpont! bitZino uses the SHA256 hashing algorithm in our provably fair process, so our users are not susceptible to a hash collision attack as you describe. The SHA256 hash algorithm is the same one used for bitcoin mining, so if hash collisions in SHA256 become possible at some point in the future, we'll have a much larger problem on our hands than just bitZino's provably fair system.
Thank you, at least someone told the truth about it. I was trying to say this for a long time and no one would listen lol. Also they can effect the odds without you evening know and still show the correct hash. This dont mean anything with the provable fair system.
We cannot influence the odds of any wagers you place in bitZino, other than simply changing the rules to the game in question, which you will know (for example, if we paid out 6 to 5 on a blackjack instead of 3 to 2, you'd be able to easily notice this).
I posted this here because I noticed that bitzino is very pedagogical on the concept of provable fairness, and the subject is being actively discussed here.
Thank you for posting this, and feel free to follow-up if I wasn't clear enough in my explanations! Also, in case you didn't know, we wrote up a detailed article about the technical aspects of our provably fair system. You can read it here:
https://techblog.bitzino.com/2012-06-30-provably-fair-shuffling-through-cryptography.html