Author

Topic: FTWBits.com Provably Fair Seeding Event (Read 132 times)

newbie
Activity: 1
Merit: 0
July 01, 2018, 07:12:07 PM
#1
This will reuse the idea posted by Ryan and used for Bustabit.
 
This is an event to prove FTWBits is fair (the site is not live until later this week).
 
Starting with a secret seed I've generated a chain of 10,000,000 SHA256 hashes for each game mode. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash.
 
FTWBits will play through these chains of hashes, in reverse order, and use the hashes to determine the outcomes of the games.
 
To avoid criticism that the Server Secrets used in step 1 were carefully chosen to generate lots of "bad" crash points, each hash in the chain will be salted with a client seed, which we have no control of.
The client seed will be the block hash of a Bitcoin block that hasn't yet been mined: block 531082
 
The hash of the chain's last element for roulette is: 63e798f8a71d6c1d86c1480cb767fd643c6ec4b6df9a5f2cd2e6e128aa227389
The hash of the chain's last element for crash is: 749e94d94c634062035e588493f32d2c29bfa20323b4fb27be1fdcd22b16d754
 
 
The reference code (javascript) is:
Code:
var _crypto = require("crypto");
 
var secret = "server secret";
var hash_count = 10000000;
 
var hash_chain = [];
var previous_hash = "";
for (var i = 0; i < hash_count; ++i) {
    previous_hash = _crypto.createHash("sha256").update(i === 0 ? secret : previous_hash).digest("hex");
    hash_chain.push(previous_hash);
}

The method to create the hash chain is simply sha256.
Jump to: