Author

Topic: Slide re-seeding event (Read 180 times)

legendary
Activity: 2772
Merit: 3284
September 26, 2020, 01:14:32 AM
#2
Welcome to slide seeding event #2. We re-coded Slide to clean up our codebase add some changes/features. Unfortunately we pushed a version to production that had mixed up the two tables in the function that returned RNG inputs and thus our previous seed was exposed briefly.

This is being seeded the same way as the previous slide event using a method made popular by rhavar.

To prove our fairness we have generated a chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash.

The last hash in the chain is: 8fdb3105bc0eee5ab95ebd3b94084a261422af67b53fca4d2ba480f32e3b7bae

The formula for generating the game result:
Code:
const gameHash = hashChain.pop()
const hmac = createHmac('sha256', gameHash);
// blockHash is the hash of bitcoin block 631,111
hmac.update(blockHash);
const hex = hmac.digest('hex').substr(0, 8);
const int = parseInt(hex, 16);
const result = Math.max(1, (2 ** 32 / (int + 1)) * (1 - 0.02))

blockHash used is Bitcoin block 650,200  which has not been mined at time of posting. Basically we are using the hash of a future bitcoin block as a client seed so players can be certain that we did not pick one in the house’s favor. I’d appreciate it if someone could quote this post so this is all set in stone.



Quoted and archived. As of this post, the latest block is 650,037.
legendary
Activity: 3192
Merit: 1279
Primedice.com, Stake.com
September 25, 2020, 10:06:29 PM
#1
Welcome to slide seeding event #2. We re-coded Slide to clean up our codebase add some changes/features. Unfortunately we pushed a version to production that had mixed up the two tables in the function that returned RNG inputs and thus our previous seed was exposed briefly.

This is being seeded the same way as the previous slide event using a method made popular by rhavar.

To prove our fairness we have generated a chain of 10,000,000 SHA256 hashes where each hash is the hash of the hexadecimal representation of the previous hash.

The last hash in the chain is: 8fdb3105bc0eee5ab95ebd3b94084a261422af67b53fca4d2ba480f32e3b7bae

The formula for generating the game result:
Code:
const gameHash = hashChain.pop()
const hmac = createHmac('sha256', gameHash);
// blockHash is the hash of bitcoin block 631,111
hmac.update(blockHash);
const hex = hmac.digest('hex').substr(0, 8);
const int = parseInt(hex, 16);
const result = Math.max(1, (2 ** 32 / (int + 1)) * (1 - 0.02))

blockHash used is Bitcoin block 650,200  which has not been mined at time of posting. Basically we are using the hash of a future bitcoin block as a client seed so players can be certain that we did not pick one in the house’s favor. I’d appreciate it if someone could quote this post so this is all set in stone.

Jump to: