Bitcoin Forum
July 22, 2018, 08:47:53 PM *
News: Latest stable version of Bitcoin Core: 0.16.1  [Torrent]. (New!)
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Provably fair?  (Read 1738 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.
1532292473
Hero Member
*
Offline Offline

Posts: 1532292473

View Profile Personal Message (Offline)

Ignore
1532292473
Reply with quote  #2

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

Posts: 1532292473

View Profile Personal Message (Offline)

Ignore
1532292473
Reply with quote  #2

1532292473
Report to moderator
1532292473
Hero Member
*
Offline Offline

Posts: 1532292473

View Profile Personal Message (Offline)

Ignore
1532292473
Reply with quote  #2

1532292473
Report to moderator
1532292473
Hero Member
*
Offline Offline

Posts: 1532292473

View Profile Personal Message (Offline)

Ignore
1532292473
Reply with quote  #2

1532292473
Report to moderator
cloverme
Legendary
*
Offline Offline

Activity: 1414
Merit: 1040


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: 202
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: 882
Merit: 500

★Adconity.com★


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

Is this random enough?
probably

smiletyson
Hero Member
*****
Offline Offline

Activity: 641
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: 1414
Merit: 1040


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: 882
Merit: 500

★Adconity.com★


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: 1414
Merit: 1040


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
Jr. Member
*
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!