CrashingCrypto --
We are excited to announce the CrashingCrypto project. The CrashingCrypto project will be a network of crash games, licensed under the original Bustabit license.
In order to see our license, please visit the original Bustabit website at:
https://bustabit.com/license.txt This thread is the provably fair seeding event for the CrashDoge project. We have taken the same approach as the original Bustabit website to illustrate “provably fair.” We have therefore picked blocks that have not yet been mined as part of the logic that derives game crash results, so there is no possible way that we could have “manipulated” any of the results for any game played on one of the CrashingCrypto sites.
Starting with a secret, we have generated a chain of 10,000,000 SHA256 hashes for each respective site. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. Please see below to determine the hash of each chain's last element for each respective CrashingCrypto based website.
Every game maps to a hash in the chain. The 10,000,000th element of the chain is the hash of game #1 and the first element in the chain is the hash of game #10,000,000. To verify that a hash belongs to game #n (n=game number), simply hash it n times and compare the result with the terminating hash.
To calculate a game's result from its hash:
Code:
function crashPointFromHash(serverSeed, clientSeed) {
function divisible(hash, mod) {
// We will read in 4 hex at a time, but the first chunk might be a bit smaller
// So ABCDEFGHIJ should be chunked like AB CDEF GHIJ
var val = 0;
var o = hash.length % 4;
for (var i = o > 0 ? o - 4 : 0; i < hash.length; i += 4) {
val = ((val << 16) + parseInt(hash.substring(i, i+4), 16)) % mod;
}
return val === 0;
}
var hash = crypto.createHmac('sha256', serverSeed).update(clientSeed).digest('hex');
/* In 1 of 101 games the game crashes instantly. */
if (divisible(hash, 101))
return 0;
/* Use the most significant 52-bit from the hash
to calculate the crash point */
var h = parseInt(hash.slice(0,52/4),16);
var e = Math.pow(2,52);
return Math.floor((100 * e - h) / (e - h));
}
Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of following hashes for each respective site:
CrashDOGE: block #2,555,666 on the Dogecoin blockchain (
https://dogechain.info)
CrashETH: block #TO BE ANNOUNCED on the Ethereum blockchain (
https://etherscan.io)
CrashLTC: block #TO BE ANNOUNCED on the Litecoin blockchain (
https://live.blockcypher.com/ltc/)
CrashBCH: block #TO BE ANNOUNCED on the Bitcoin Cash blockchain (
https://explorer.bitcoin.com)
CrashingBitcoin: block #TO BE ANNOUNCED on the Bitcoin Core blockchain (
https://blockchain.info)
By choosing blocks that have not yet been mined, we can prove that we have not deliberately picked an unfavorable chain for players or created a biased house edge.
CrashDoge will be live within 48 hours of this message being posted. This gives us time to implement the hash chain (games) from the block once it is mined. All of the other sites will be coming online one-by-one after CrashDoge is launched. Cheers.
-CrashingCrypto Admin