Bitcoin Forum
May 17, 2021, 02:20:53 PM
 News: Latest Bitcoin Core release: 0.21.1 [Torrent]
 Home Help Search Login Register More
 Pages: [1] 2  All
 Author Topic: Bustabit (v2) Seeding Event  (Read 2305 times)
RHavar
Legendary

Offline

Activity: 2338
Merit: 1803

 January 23, 2018, 12:05:18 AMMerited by LoyceV (2), DarkStar_ (1), milewilda (1)

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.
1621261253
Hero Member

Offline

Posts: 1621261253

Ignore
 1621261253

1621261253
 Report to moderator
1621261253
Hero Member

Offline

Posts: 1621261253

Ignore
 1621261253

1621261253
 Report to moderator
1621261253
Hero Member

Offline

Posts: 1621261253

Ignore
 1621261253

1621261253
 Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1621261253
Hero Member

Offline

Posts: 1621261253

Ignore
 1621261253

1621261253
 Report to moderator
1621261253
Hero Member

Offline

Posts: 1621261253

Ignore
 1621261253

1621261253
 Report to moderator
1621261253
Hero Member

Offline

Posts: 1621261253

Ignore
 1621261253

1621261253
 Report to moderator
RHavar
Legendary

Offline

Activity: 2338
Merit: 1803

 January 23, 2018, 12:07:12 AM

To prevent editing of the OP, I have taken an archived snapshot of the page: http://archive.is/18raj   and ask that people quote and save the original post (and confirm that block 505750 is still not mined).
joksim299
Legendary

Offline

Activity: 1904
Merit: 1013

Bitdice is scam scam scammmmmmmmmmmmmmmmmmmmmmmmmm

 January 23, 2018, 12:46:42 AM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.

Lionidas
Hero Member

Offline

Activity: 1008
Merit: 1012

 January 23, 2018, 01:21:41 AM

It has been a while since you announced a new version of the site would be released and I think it is just about time to unveil it.
Seems like a year now since I first heard about the site getting redesigned and slapping a Version 2 to the splash screen.
dooglus
Legendary

Offline

Activity: 2926
Merit: 1310

 January 23, 2018, 02:13:06 AM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.

Ryan asked me to quote this. So I'm quoting this.

 Just-Dice ██                        ██████████                ██████████████████        ██████████████████████████  ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████    ██████████████████████            ██████████████                    ██████ Play or Invest ██                        ██████████                ██████████████████        ██████████████████████████  ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████    ██████████████████████            ██████████████                    ██████ 1% House Edge
dooglus
Legendary

Offline

Activity: 2926
Merit: 1310

 January 23, 2018, 02:16:05 AM

The current Bitcoin block height is 505626 by the way. Block 505750 hasn't been mined yet, but will be in the next 24 hours or so.

 Just-Dice ██                        ██████████                ██████████████████        ██████████████████████████  ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████    ██████████████████████            ██████████████                    ██████ Play or Invest ██                        ██████████                ██████████████████        ██████████████████████████  ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████    ██████████████████████            ██████████████                    ██████ 1% House Edge
DarkStar_
Legendary

Online

Activity: 2058
Merit: 2611

Join the world-leading crypto sportsbook NOW!

 January 23, 2018, 02:49:45 AM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.

 ░░░░░▄▄██████▄▄░░▄████▀▀▀▀▀▀████▄░███▀░░░░░░░░░░▀█▀████░░░▄██████▄▄░░░██░░░░░█████████░░░░██▌░░░░█████████████████░░░░█████████████████░░░░░███████████████████▄░░▀██████▀░░░████▀█▄▄░░░░░░░░░░▄███░░▀████▄▄▄▄▄▄████▀░░░░░▀▀██████▀▀ .ChipMixer.{ MIXING REINVENTED FOR YOUR PRIVACY #.ChipMixer. ░░░░░▄▄██████▄▄░░▄████▀▀▀▀▀▀████▄░███▀░░░░░░░░░░▀█▀████░░░▄██████▄▄░░░██░░░░░█████████░░░░██▌░░░░█████████████████░░░░█████████████████░░░░░███████████████████▄░░▀██████▀░░░████▀█▄▄░░░░░░░░░░▄███░░▀████▄▄▄▄▄▄████▀░░░░░▀▀██████▀▀
DarkDays
Legendary

Offline

Activity: 1750
Merit: 1167

www.Crypto.Games: Multiple coins, multiple games

 January 23, 2018, 03:59:12 AM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.

The current block is 505641.

 ████  ███████  ████████████████      ██████████      ████████████████████████████████████████   ████  ██████████████ ████████████████████████████████████████████  ████████████████████████        ████████ ███████████▀▀███▀▀█████████████████▀▀     ███     ▀▀██████████▀   ▄▄█████████▄▄   ▀████████▄▄▄███▀  ▀█▀  ▀███▄▄▄██████▀▀▀██▀      ▀      ▀██▀▀▀███▀  ▄██               ██▄  ▀██   ████▄▄         ▄▄████   ██▄  ▀██▀             ▀██▀  ▄███▄▄▄██▄             ▄██▄▄▄██████▀▀▀███▄ ▄█ █▄ ▄███▀▀▀████████▄   ▀▀███▄█████▀▀   ▄███████████▄     ███     ▄██████████████████▄▄███▄▄███████████ .CRYPTO..GAMES..Catch the winning spirit! ██████████████████████████ ██████████████████████████ ..PLAY NOW.. ███  ███████  █████████████████████      ██████████████      ████████████████████████████████████████  ████   ██████████████████ ████████████████████████████████████  █████████████████████████        ███
dooglus
Legendary

Offline

Activity: 2926
Merit: 1310

 January 23, 2018, 08:10:49 AMMerited by LoyceV (2), Lutpin (2), MadZ (1)

I put the sha256 hash of OP's message in the Bitcoin blockchain:

Quote
\$ wget -q https://just-dice.com/misc/signing-event-2.txt

# show the start of its first line
\$ head -n 1 signing-event-2.txt | cut -c 1-150
In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts g

# show the start of its last line
\$ tail -n 1 signing-event-2.txt | cut -c 1-150
Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of

# compute the hash of the message
\$ sha256sum signing-event-2.txt
a015693871d8bde65f57ec82f52f6b192e9a11fa26a37e63e17dc3092c6c7fab  signing-event-2.txt

# create, sign, and broadcast a transaction containing the hash
\$ bitcoin-cli sendrawtransaction \$(bitcoin-cli signrawtransaction \$(bitcoin-cli createrawtransaction '[{"txid":"2c5a01bc4bfb0dfde815ebbe7f08e0c93c3b2d40d220021095c06938abf3b29e","vout":0}]' '{"bc1qnle0kjvz4wyju49m00krxztdqu5ygak00nft37":1.265456, "data":"a015693871d8bde65f57ec82f52f6b192e9a11fa26a37e63e17dc3092c6c7fab"}' 0 true) | grep hex | cut -d'"' -f4)
b6439e1c9eb3915b3cc89871d2c2479f3f1847f0c7bab252c3ebc503b8f6d344

# check that the transaction includes the hash of the message
\$ bitcoin-cli getrawtransaction b6439e1c9eb3915b3cc89871d2c2479f3f1847f0c7bab252c3ebc503b8f6d344 true | grep "RETURN a01569"
"asm": "OP_RETURN a015693871d8bde65f57ec82f52f6b192e9a11fa26a37e63e17dc3092c6c7fab",

It was included in block 505672. Block 505750 still hasn't been mined.

 Just-Dice ██                        ██████████                ██████████████████        ██████████████████████████  ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████    ██████████████████████            ██████████████                    ██████ Play or Invest ██                        ██████████                ██████████████████        ██████████████████████████  ██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████    ██████████████████████            ██████████████                    ██████ 1% House Edge
Luxo42
Member

Offline

Activity: 126
Merit: 22

 January 23, 2018, 09:16:19 AM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.
Finally!
Luxo42
Member

Offline

Activity: 126
Merit: 22

 January 23, 2018, 09:32:51 AM

So, house edge is fixed now at 1%
And 0.99x busts are present
xxjumperxx
Full Member

Offline

Activity: 476
Merit: 230

 January 23, 2018, 01:23:38 PM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.

I have been waiting a while for BaB2.
Lionidas
Hero Member

Offline

Activity: 1008
Merit: 1012

 January 23, 2018, 03:53:56 PM

Yeah I have been waiting for this site release for a while.
Can't wait to pour another close to 5btc into this reloaded version of the site now.

When will it be officially launched and will you be having some kind of competition during the launch?
RHavar
Legendary

Offline

Activity: 2338
Merit: 1803

 January 23, 2018, 03:54:49 PM

Thanks everyone! (Especially dooglus for embedding the hash in the blockchain!)

So, house edge is fixed now at 1%
And 0.99x busts are present

Almost! The last line:

Code:
Math.max(1, result / 100)

Guarantees no bust is less than 1  (but 1.01x will be the min cash out)
hopenotlate
Legendary

Offline

Activity: 2590
Merit: 1056

 January 23, 2018, 06:55:34 PM

In a few days I will be releasing version 2 of bustabit. The principle of our provably fair system remains the same, but the algorithm that converts game hashes to game results has changed. Therefore I'm holding a new seeding event.

Starting with a secret I've generated a chain of 10,000,000 SHA256 hashes. Each element is the hash of the lowercase, hexadecimal string representation of the previous hash. The hash of the chain's last element is 86728f5fc3bd99db94d3cdaf105d67788194e9701bf95d049ad0e1ee3d004277.

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 a game #n, simply hash it n times and compare the result with the terminating hash.

To calculate a game's result from its hash:
Code:
const crypto = require("crypto")

function gameResult(seed, salt) {
const nBits = 52 // number of most significant bits to use

// 1. HMAC_SHA256(key=salt, message=seed)
const hmac = crypto.createHmac("sha256", salt)
hmac.update(seed)
seed = hmac.digest("hex")

// 2. r = 52 most significant bits
seed = seed.slice(0, nBits/4)
const r = parseInt(seed, 16)

// 3. X = r / 2^52
let X = r / Math.pow(2, nBits) // uniformly distributed in [0; 1)

// 4. X = 99 / (1-X)
X = 99 / (1 - X)

// 5. return max(trunc(X), 100)
const result = Math.floor(X)
return Math.max(1, result / 100)
}

Before being used to calculate the corresponding result, each game hash is salted with the lowercase, hexadecimal string representation of the hash of bitcoin block 505750. This block has not been mined yet, proving that I have not deliberately picked a chain that is unfavorable for players.

Really curious to see V2

Quoting for reference.

Edit: just noticed Dooglus did it way better than me
RHavar
Legendary

Offline

Activity: 2338
Merit: 1803

 January 23, 2018, 08:32:43 PM

Block 505750 has been mined, so we have our client seed: 0000000000000000004d6ec16dafe9d8370958664c1dc422f452892264c59526
Dexon
Full Member

Offline

Activity: 230
Merit: 154

I'm a web dev :D

 January 23, 2018, 11:09:34 PM

Block 505750 has been mined, so we have our client seed: 0000000000000000004d6ec16dafe9d8370958664c1dc422f452892264c59526

Hype
Pali
Member

Offline

Activity: 221
Merit: 13

 January 26, 2018, 05:39:33 PM

Awesome news, people will be peaked for the new release

BTCArena - First and most established PVP Gambling Platform.
Bitcoin Gamble Talk - First and biggest crypto gambling discord.
RHavar
Legendary

Offline

Activity: 2338
Merit: 1803

 January 26, 2018, 09:55:13 PM

Waiting...

If everything goes according to plan, it should be launched in < 24 hours =)
Paractor
Full Member

Offline

Activity: 275
Merit: 133

 January 26, 2018, 09:58:31 PM

Waiting...

If everything goes according to plan, it should be launched in < 24 hours =)
That soon?
Congratulations on a timely release then.
Can't wait to get busting my bits on there.

 Pages: [1] 2  All