Search content
Sort by

Showing 8 of 8 results by TopGame
Post
Topic
Board Gambling
Re: 999xCrash game in Telegram fairness verification and salt decision notification
by
TopGame
on 30/08/2024, 02:35:49 UTC
Let me answer your doubts. Players can compare the results of this round with the results of the last N rounds to confirm whether the dealer is cheating. Because we use continuously generated hashes to generate results.
For the specific principle, you can refer to:
https://top.game/help/provably-fair

Well, this time i was wrong, if the result is based on the previous game then you are using a good provably fair engine, i have seen people doing this kind of provably fair for games like crash in the past.

I got confused because i only saw the seed and salt, and for a moment i thought you were taking random salts for each round, casinos like freebitco do it, and i don't feel that's a good provably fair method, but you are implementing a good one, so, good luck with your project and thanks for offering a fair engine to the community, we need more of those.

Thank you.
Our vision is to strive to create a fair gaming environment so that players can enjoy the real joy of the game!
Post
Topic
Board Gambling
Merits 1 from 1 user
Re: 999xCrash game in Telegram fairness verification and salt decision notification
by
TopGame
on 30/08/2024, 01:59:28 UTC
⭐ Merited by seoincorporation (1)
Code:
(seed, salt) => {
    const nBits = 52; // number of most significant bits to use

    // 1. HMAC_SHA256(message=seed, key=salt) 
    const hmac = CryptoJS.HmacSHA256(CryptoJS.enc.Hex.parse(seed), salt);
    seed = hmac.toString(CryptoJS.enc.Hex);

Just an observation, here is different the input seed than the last seed, so, why not use different names for that variable, like seed and serverSeed.

And your provably fair has a problem, is not fair at all, let me explain why.

A true provably fair engine needs a Nonse, that's a number that increases on each bet, that way your seed and salt are the same on each roll, but you provide a "secret seed", that way the user can't predict the next roll, and if the user want to reveal that secret seed, then he must ask for another seed. That's how the perfect provably fair system works. And since you only have a seed and salt that means your salt is dynamic, and you can manipulate that on each roll to decrease the user odds. The only protection for the user is to change the seed each roll.

Let me answer your doubts. Players can compare the results of this round with the results of the last N rounds to confirm whether the dealer is cheating. Because we use continuously generated hashes to generate results.
For the specific principle, you can refer to:
https://top.game/help/provably-fair
Post
Topic
Board Gambling
Re: 999xCrash game in Telegram fairness verification and salt decision notification
by
TopGame
on 30/08/2024, 01:43:20 UTC
Block 40,009,999 has been mined, so we have our salt: mqOPKpO312RmSiIhbBh6w9JZrmAahjBgYd8+LIPjaU8=
https://tonscan.com/blocks/-1/8000000000000000/40009999

Post
Topic
Board Gambling
Re: 999xCrash game in Telegram fairness verification and salt decision notification
by
TopGame
on 29/08/2024, 13:51:44 UTC
Yes
I'm glad you're interested in our platform. Stay tuned!
Post
Topic
Board Gambling
Re: 999xCrash game in Telegram fairness verification and salt decision notification
by
TopGame
on 29/08/2024, 13:18:05 UTC
We are applying our online casino technology to TON. Please look forward to our games.
 Grin
Post
Topic
Board Gambling
Topic OP
999xCrash game in Telegram fairness verification and salt decision notification
by
TopGame
on 29/08/2024, 12:34:47 UTC
Hello world,

We are about to launch a Crash game in Telegram. In order to provide an absolutely fair game, we will now announce the formula for fairness verification and how to determine the salt:

GAME RESULT FORMULA:
Code:
const gameResult = (seed, salt) => {
    const nBits = 52; // number of most significant bits to use

    // 1. HMAC_SHA256(message=seed, key=salt)  
    const hmac = CryptoJS.HmacSHA256(CryptoJS.enc.Hex.parse(seed), salt);
    seed = hmac.toString(CryptoJS.enc.Hex);

    // 2. r = 52 most significant bits
    seed = seed.slice(0, nBits / 4);
    const r = parseInt(seed, 16);

    // 3. X = r / 2^52
    let X = r / Math.pow(2, nBits); // uniformly distributed in [0; 1)
    X = parseFloat(X.toPrecision(9));

    // 4. X = 90 / (1-X)
    X = 90 / (1 - X);

    // 5. return max(trunc(X), 100)
    const result = Math.floor(X);
    return Math.max(1, result / 100);
  };
 
GET SALT:
Prior to being used for calculation, each game hash is salted with the lowercase + hexadecimal string representation of the hash from pre-selected TON Masterchain block 40,009,999. This block has not been mined yet as of this post, proving that we have not deliberately selected a mined block with a hash that could be favorable to the house. Once block 40,009,999 has been mined, the results will be posted to this thread as a reply.
[/quote]
Post
Topic
Board Gambling
Re: Crash game fairness verification and salt decision notification
by
TopGame
on 17/09/2023, 07:05:34 UTC
Block 808,080 has been mined, so we have our salt: 0000000000000000000211eb82135b8f5d8be921debf8eff1d6b38b73bc03834
https://blockchair.com/bitcoin/block/808080
Post
Topic
Board Gambling
Topic OP
Crash game fairness verification and salt decision notification
by
TopGame
on 22/08/2023, 07:22:58 UTC
Hello world,

We are about to launch our own Crash game. In order to provide an absolutely fair game, we will now announce the formula for fairness verification and how to determine the salt:

GAME RESULT FORMULA:
Code:
const gameResult = (seed, salt) => {
    const nBits = 52; // number of most significant bits to use

    // 1. HMAC_SHA256(message=seed, key=salt) 
    const hmac = CryptoJS.HmacSHA256(CryptoJS.enc.Hex.parse(seed), salt);
    seed = hmac.toString(CryptoJS.enc.Hex);

    // 2. r = 52 most significant bits
    seed = seed.slice(0, nBits / 4);
    const r = parseInt(seed, 16);

    // 3. X = r / 2^52
    let X = r / Math.pow(2, nBits); // uniformly distributed in [0; 1)
    X = parseFloat(X.toPrecision(9));

    // 4. X = 99 / (1-X)
    X = 99 / (1 - X);

    // 5. return max(trunc(X), 100)
    const result = Math.floor(X);
    return Math.max(1, result / 100);
  };
 
GET SALT:
Prior to being used for calculation, each game hash is salted with the lowercase + hexadecimal string representation of the hash from pre-selected Bitcoin block 808,080. This block has not been mined yet as of this post, proving that we have not deliberately selected a mined block with a hash that could be favorable to the house. Once block 808,080 has been mined, the results will be posted to this thread as a reply.