Flash Roulette Relaunch
The previous hashes recently ran out, and as promised, the server seed for the previous seeding event is:
46754072ddcdcecd9c77b48c7e11f6d138eca5032539be629ba5071b9d0b47b42afd1cbcaee3293d5c8e7943cd79e40a2ad52c64b4e5d5f6e466fb381fcd1106
To keep this game provably fair, we'll announce our methods here again.
We will generate a new batch of 1 Million SHA512 chained hashes (starting with a new server secret)
The final hash is:
b89ea9dc6fe756403bdd493b01cc6dbb6d2ac4fcbde310589e017445b90182db0624bb8d927479586e6bce9c309b0f9e6cc2946fe2ffdbced10d4935c9b98304
Bitsler will go through the hashes (in reverse order) and use each hash to determine the roulette result. So the hash of our first game's hash is the same as our published final hash.
To ensure we didn't pick a hash chain that has some advantage for us, we will use a future bitcoin block hash as "client seed" to generate the final roulette results. We will use the block hash of bitcoin block https://btc.com/block/756200 (around 1 PM GMT at Sep 29, 2022) .
The code to generate each roulette result is:
$hash = hash_hmac('sha512', $gameHash, $blockHash);
$config_multipliers =
[
[
"150" => 3,
"100" => 8,
"50" => 5
],
[
"350" => 1,
"250" => 1,
"200" => 1,
"150" => 1,
"100" => 2,
"50" => 2,
"29" => 8
],
[
"350" => 1,
"250" => 1,
"200" => 1,
"150" => 1,
"100" => 2,
"50" => 2,
"29" => 8
],
[
"350" => 1,
"250" => 1,
"200" => 1,
"150" => 1,
"100" => 2,
"50" => 2,
"29" => 8
]
]; $offset = 0;
do {
$number = substr($hash, $offset, 5);
$number = hexdec($number);
$offset += 5;
} while ($number > 999999);
$number = $number % 37; $multipliers = [];
for ($i = 0; $i < count($config_multipliers); $i++) {
do {
$multiNumber = substr($hash, $offset, 5);
$multiNumber = hexdec(($multiNumber));
$offset += 5;
} while ($multiNumber > 999999 || isset($multipliers[$multiNumber % 37]));
$multiNumber = $multiNumber % 37;
// multiplier
$amount_number = hexdec(substr($hash, $offset, 1));
$offset += 1;
// Loop multipliers
$multiplier_number = 0;
foreach ($config_multipliers[$i] as $multiplier => $range) {
$multiplier_number += $range;
// If the end of range is more than generated number, we use current multiplier
if ($multiplier_number > $amount_number) {
$multiplier = floatval($multiplier);
break;
}
} // return
$multipliers[$multiNumber] = $multiplier;
}
print_r(["result" => $number, "multipliers" => $multipliers]);
Important
This blog post will be shared on our social media channels and archived by several archive websites. Therefor we cannot edit the final hash (and therefor hash chain) nor the future bitcoin block number anymore. This makes our new game Flash Roulette completely provably fair.