Bitcoin Forum

Economy => Gambling discussion => Topic started by: MakaveliTA on October 09, 2019, 07:12:58 PM



Title: BTCArena.gg NEW COMMUNITY DICE PROVABLY FAIR SEEDING EVENT
Post by: MakaveliTA on October 09, 2019, 07:12:58 PM
SEEDING EVENT

Welcome to BTCArena.gg (https://btcarena.gg)'s first provably fair seeding event.
The purpose of this seeding event is to generate a series of dice outcomes, which players know and prove are fairly and randomly generated.

1. We have generated 10 Million sha256 hashes, starting with a server secret that has had its sha256 output repeatedly fed back into itself 10 million times.
The sha256 of the final hash is 48c91c34f6ec1b842ab5279098b07dda0679ebaff4cfbbd3c7843b2c51cea325. By making this public we are unable to pick an alternate sha256 chain

2. BTCArena will play through this chain of hashes in reverse order starting from the 10 million'th hash, and working it's way downwards. By this logic, game #1 will have its outcome decided by the 10 millionth hash. These hashes will be used in a provably fair manner, as will be described below.

3. To avoid any possible conflict of interest or criticisms that the chain generated contains lots of unfavourable rolls, each hash in the chain will be salted with a future block hash, which we have no control of. The seed will be the hash of block 598635 which hasn't been mined yet.

Code:
 sha256(Game#n Hash + Block Hash ) 

THE CODE


The method to create the sha256 chain
Code:
function genGameHash(server_hash) {
    return crypto.createHash('sha256').update(server_hash).digest('hex');
}

Method to mix server hash with client seed and convert outcome into a roll % between 0 and 1.
Code:
generateRollFromHash (server_hash, client_seed) {
    // * Combine server_hash and client_seed
    var hash = crypto.createHash('sha256').update(server_seed).update(client_seed).digest('hex');

    // Take first 5 characters from hash and convert to base 10
    var roll = parseInt((hash).substr(0, 5), 16) / parseInt('fffff', 16)

    return roll;
}


Title: Re: BTCArena.gg NEW COMMUNITY DICE PROVABLY FAIR SEEDING EVENT
Post by: MakaveliTA on October 09, 2019, 07:23:32 PM
https://archive.is/9YESW

https://web.archive.org/web/20191009192305/https://bitcointalk.org/index.php?topic=5191497.0

Snapshotted for proof, if someone reputable can quote it aswell.


Title: Re: BTCArena.gg NEW COMMUNITY DICE PROVABLY FAIR SEEDING EVENT
Post by: Dabs on October 09, 2019, 08:36:10 PM
SEEDING EVENT

Welcome to BTCArena.gg (https://btcarena.gg)'s first provably fair seeding event.
The purpose of this seeding event is to generate a series of dice outcomes, which players know and prove are fairly and randomly generated.

1. We have generated 10 Million sha256 hashes, starting with a server secret that has had its sha256 output repeatedly fed back into itself 10 million times.
The sha256 of the final hash is 48c91c34f6ec1b842ab5279098b07dda0679ebaff4cfbbd3c7843b2c51cea325. By making this public we are unable to pick an alternate sha256 chain

2. BTCArena will play through this chain of hashes in reverse order starting from the 10 million'th hash, and working it's way downwards. By this logic, game #1 will have its outcome decided by the 10 millionth hash. These hashes will be used in a provably fair manner, as will be described below.

3. To avoid any possible conflict of interest or criticisms that the chain generated contains lots of unfavourable rolls, each hash in the chain will be salted with a future block hash, which we have no control of. The seed will be the hash of block 598635 which hasn't been mined yet.

Code:
 sha256(Game#n Hash + Block Hash ) 

THE CODE


The method to create the sha256 chain
Code:
function genGameHash(server_hash) {
    return crypto.createHash('sha256').update(server_hash).digest('hex');
}

Method to mix server hash with client seed and convert outcome into a roll % between 0 and 1.
Code:
generateRollFromHash (server_hash, client_seed) {
    // * Combine server_hash and client_seed
    var hash = crypto.createHash('sha256').update(server_seed).update(client_seed).digest('hex');

    // Take first 5 characters from hash and convert to base 10
    var roll = parseInt((hash).substr(0, 5), 16) / parseInt('fffff', 16)

    return roll;
}

https://archive.is/9YESW

https://web.archive.org/web/20191009192305/https://bitcointalk.org/index.php?topic=5191497.0

Snapshotted for proof, if someone reputable can quote it aswell.


Title: Re: BTCArena.gg NEW COMMUNITY DICE PROVABLY FAIR SEEDING EVENT
Post by: MakaveliTA on October 09, 2019, 08:48:47 PM
The block 598635 has been mined so we have our seed: 00000000000000000006c853e15c07fefe1ed82ada3fe22c6ecd735b35550bb2


Will be launching soon!


Title: Re: BTCArena.gg NEW COMMUNITY DICE PROVABLY FAIR SEEDING EVENT
Post by: RHavar on October 09, 2019, 11:32:09 PM
Quoting to prevent change. At the time of quoting this, block 598635 has already been mined. However I've checked both archive views, and they appear to be before the block was mined, and the original OP message does not show "edited" at the time of this posting. So everything looks good.


SEEDING EVENT

Welcome to BTCArena.gg (https://btcarena.gg)'s first provably fair seeding event.
The purpose of this seeding event is to generate a series of dice outcomes, which players know and prove are fairly and randomly generated.

1. We have generated 10 Million sha256 hashes, starting with a server secret that has had its sha256 output repeatedly fed back into itself 10 million times.
The sha256 of the final hash is 48c91c34f6ec1b842ab5279098b07dda0679ebaff4cfbbd3c7843b2c51cea325. By making this public we are unable to pick an alternate sha256 chain

2. BTCArena will play through this chain of hashes in reverse order starting from the 10 million'th hash, and working it's way downwards. By this logic, game #1 will have its outcome decided by the 10 millionth hash. These hashes will be used in a provably fair manner, as will be described below.

3. To avoid any possible conflict of interest or criticisms that the chain generated contains lots of unfavourable rolls, each hash in the chain will be salted with a future block hash, which we have no control of. The seed will be the hash of block 598635 which hasn't been mined yet.

Code:
 sha256(Game#n Hash + Block Hash ) 

THE CODE


The method to create the sha256 chain
Code:
function genGameHash(server_hash) {
    return crypto.createHash('sha256').update(server_hash).digest('hex');
}

Method to mix server hash with client seed and convert outcome into a roll % between 0 and 1.
Code:
generateRollFromHash (server_hash, client_seed) {
    // * Combine server_hash and client_seed
    var hash = crypto.createHash('sha256').update(server_seed).update(client_seed).digest('hex');

    // Take first 5 characters from hash and convert to base 10
    var roll = parseInt((hash).substr(0, 5), 16) / parseInt('fffff', 16)

    return roll;
}