Client seed: It can be anything. It is up to player to choose anything as his client seed. For example, I can use 'webtricksClientSeed' as my client seed or 'thisIsMyRandomClientSeed'. However, while choosing client seed make sure three things:
(i) Always choose new seed for new bet (never try same client seed with new server seed).
(ii) Don't choose easily identifiable seeds like I mentioned above (close your eyes and type random numbers and alphabets. I do like this and it works
).
Could you elaborate on this statement please? Why it's so important to do that?
Do you think the house program will detect you are always using the same seed and will create a losing server seed for it or it has nothing to do with that? Thank you very much to explain me what you mean (or someone else here).
Yes, house can detect the client seed. This is how the house can detect your client seed:
Bet 1: I used 'myFavSeed' as my client seed. After the bet, I clicked 'new seed' and site changed server seed plus generated new client seed for me, say 'dgbeigeinwo35353'.
Bet 2: But since I love my client seed, I again changed client seed to 'myFavSeed' and played the bet. After second bet, I once again generated new seeds to verify my second bet.
Everything will go well up till here. Since server seed is generated prior to client seed, house have no way to cheat you. But here comes the catch. Suppose house is maintaining the record of every client seed that you verified like this:
User.verifiedClientSeeds = ['myFavSeed', 'myFavSeed'];
Now house can check if client seed used in first bet is same as the second, if true then house will use 'myFavSeed' as dummy client seed and generate a server seed for a specific result. This server seed's hash will be shown to you for third bet.
If you once again choose 'myFavSeed' as your client seed, the result will be same as what house decided before game. However, in games like dice this may not be very advantageous for house. House may fix that the result will be 92.68 but still have no control over Roll over/Roll under which user may choose arbitrarily. But this thing can be disastrous in case of auto bet or if house even maintains the record of your betting habits. For example, if I picked roll over 50.5 four times whereas picked roll under 49.5 eleven times. Then house can draw a trend that I like to pick roll under 49.5 so it will present me server seed such that result generated with that server seed and myFavSeed as client seed will be above 49.5.
Yes I agree with you. But you shouldn't forget that a hash function is usually used to generate the roll number, for example on freebitco.in a HMAC-SHA512 function is used. So it's not possible to calculate the seed from a roll number.
The only solution is to make several tries until you find the good number or at least a number in the good range.
But when you use an auto-bet, it's very fast, some I'm not sure the house would have enough time to compute several seeds until it founds a good one...
Two strings are created :
STRING1 = "[NONCE]:[SERVER SEED]:[NONCE]"
STRING2 = "[NONCE]:[CLIENT SEED]:[NONCE]"
Then HMAC-SHA512 is used to hash STRING1 with STRING2 as the secret key, giving us a 128 character hex string.
The first 8 characters of the hex string are taken and converted to a decimal.
This decimal is then divided by 429496.7295 and rounded off to the nearest whole number.
This whole number is used as your roll, with the maximum possible value being 10,000.