Bitcoin Forum
October 19, 2018, 10:26:17 AM *
News: Make sure you are not using versions of Bitcoin Core other than 0.17.0 [Torrent], 0.16.3, 0.15.2, or 0.14.3. More info.
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Provably fair?  (Read 1745 times)
WillTat4Bitcoin
Sr. Member
****
Offline Offline

Activity: 270
Merit: 250


View Profile
October 28, 2015, 05:37:04 PM
 #1

I'm slowly working on my own game for bitcoin. However, i'm not sure how I can go about making it provably fair. I'm new at coding and everything like that.
1539944777
Hero Member
*
Offline Offline

Posts: 1539944777

View Profile Personal Message (Offline)

Ignore
1539944777
Reply with quote  #2

1539944777
Report to moderator
Bitcoin mining is now a specialized and very risky industry, just like gold mining. Amateur miners are unlikely to make much money, and may even lose money. Bitcoin is much more than just mining, though!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1539944777
Hero Member
*
Offline Offline

Posts: 1539944777

View Profile Personal Message (Offline)

Ignore
1539944777
Reply with quote  #2

1539944777
Report to moderator
cloverme
Legendary
*
Offline Offline

Activity: 1456
Merit: 1041


SpacePirate.io


View Profile WWW
October 28, 2015, 06:18:26 PM
 #2

In general...

A) Pick a random boolean value
B) Generate long random string
C) Combine A and B
D) Hash value of C (using sha256 or sha512)
E) Notify the user of value of D before the game round is played and then the value of C after the game is played.

Recommend that you encrypt the value of C in transit and at rest.
Some will recommend adding client and server seeds to the hash or seeding the random string as well in B.

Avoid weak random number generators. (https://cwe.mitre.org/data/definitions/338.html)



Misiak4
Member
**
Offline Offline

Activity: 184
Merit: 10

ImmVRse | Disrupting the VR industry


View Profile
October 29, 2015, 04:54:22 PM
 #3

What about using free API from RANDOM.ORG? Its pretty simple to implement :-)

Check out their API doc at https://api.random.org/json-rpc/1/

They even offer some "ready-made" (but PAID) solutions.

UserVVIP
Sr. Member
****
Offline Offline

Activity: 294
Merit: 250


View Profile
October 29, 2015, 08:06:55 PM
 #4

You should search for it on github.

Most code is there.
Pattart
Hero Member
*****
Offline Offline

Activity: 980
Merit: 500


View Profile
October 29, 2015, 08:13:48 PM
 #5

Is this random enough?
probably

smiletyson
Hero Member
*****
Offline Offline

Activity: 640
Merit: 503


Blockchain with solar energy


View Profile
October 29, 2015, 11:57:22 PM
 #6

nope.
since it's a known value then it's not random anymore.

[]
▄▄▄████████▄▄▄
▄▄██████████████████▄▄
▄████████████████████████▄
▄███████▀               █████▄
▄██████▀       ▀███████   █████▄
▄█████▀  ▄    █▄   ▀██▀  ▄  █████▄
████▀  ▄██  █  ███▄    ▄███  █████
▄███  ▄████ ███  ██▀     ▀███  ████▄
███         ▀███    ▄███▄   ▀█  ████
███  ████▄            ▀▀▀██▄     ███
████  ████ ████▀    █▄▄▄         ███
▀████  ██  ██▀  ▄██  ███▀▀      ███▀
█████  █  ▀  ▄████▀    ▄██▀  ▄████
▀█████     ▄█▀▀    ▄  ██▀  ▄█████▀
▀█████       ▄▄█████    ▄██████▀
▀█████               ▄███████▀
▀████████████████████████▀
▀▀██████████████████▀▀
▀▀▀████████▀▀▀
▄▄▄████████▄▄▄
▄▄██████████████████▄▄
▄████████████████████████▄
▄███████▀               █████▄
▄██████▀       ▀███████   █████▄
▄█████▀  ▄    █▄   ▀██▀  ▄  █████▄
████▀  ▄██  █  ███▄    ▄███  █████
▄███  ▄████ ███  ██▀     ▀███  ████▄
███         ▀███    ▄███▄   ▀█  ████
███  ████▄            ▀▀▀██▄     ███
████  ████ ████▀    █▄▄▄         ███
▀████  ██  ██▀  ▄██  ███▀▀      ███▀
█████  █  ▀  ▄████▀    ▄██▀  ▄████
▀█████     ▄█▀▀    ▄  ██▀  ▄█████▀
▀█████       ▄▄█████    ▄██████▀
▀█████               ▄███████▀
▀████████████████████████▀
▀▀██████████████████▀▀
▀▀▀████████▀▀▀
[|]
cloverme
Legendary
*
Offline Offline

Activity: 1456
Merit: 1041


SpacePirate.io


View Profile WWW
October 30, 2015, 06:09:28 PM
 #7

What about using free API from RANDOM.ORG? Its pretty simple to implement :-)

Check out their API doc at https://api.random.org/json-rpc/1/

They even offer some "ready-made" (but PAID) solutions.

This has less to do with random number generation than what OP was looking for; a way to prove that the outcome was not unfairly predetermined. As an example, one could generate a random number for a dice roll that a player bets on, then modify the random number to favor the house when the bet is large after a series of wins to generate a loss and take the player's bet. With a provably fair model, the dice roll can be verified that it wasn't tampered with after the bet was made.

You could use a service like random.org to generate the random number, but when money is involved, it's better to use a random number generator that's not from a 3rd party and uses a cryptographic random number generator. People and organizations are corruptible by money.
Pattart
Hero Member
*****
Offline Offline

Activity: 980
Merit: 500


View Profile
October 31, 2015, 03:36:09 AM
 #8

nope.
since it's a known value then it's not random anymore.
I thought he was giving an example of a bunch of random numbers that he was generating.

crypt_bit
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
February 12, 2017, 12:26:07 PM
 #9

What would be the most likely value taken to generate Server Seed in a provably fair game, if the value of random number generated by the script is known.

Please help  Cry Cry
cloverme
Legendary
*
Offline Offline

Activity: 1456
Merit: 1041


SpacePirate.io


View Profile WWW
February 13, 2017, 05:52:03 AM
 #10

What would be the most likely value taken to generate Server Seed in a provably fair game, if the value of random number generated by the script is known.

Please help  Cry Cry

Generate a CPRNG value to use for the server seed, in C# use the RNGCryptoServiceProvider class, random_bytes() in php, and the secrets.() class in python.   

If you want to store that server seed to be revealed later in time, you should encrypt it using AES256 or higher with a complex encryption key and stored in a file system outside of the webserver contextual directories (So, don't store any keys in www/html, etc). If you want to get fancy and money is no object, you can buy a hardware device to do it for you (called an HSM).

If you're not concerned with overhead or ease of use, there's no need to keep re-using the same server seed. It just means that you can't reveal the server seed until a later point in time.
Tradescoinz
Newbie
*
Offline Offline

Activity: 37
Merit: 0


View Profile
February 13, 2017, 09:55:53 PM
 #11

You should search for it on github.

Most code is there.

Watchout for backdoors.
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!