You are viewing a single comment's thread from:

RE: SteemRollers | Provably Fair SteemDice v.02 (Now we accept STEEM!)

Like I already said here, this is not provably fair: nothing stops you from selecting a secret after the fact. You can select the outcome of the first n games per day to your liking, and then mine a matching secret in about 2^n attempts (depending on the chance and actual outcome).

Sort:  

Honesty, I don't understand how that would work. If you would like to show me an example I would like to see it. If I am reading it right you are saying that multiple secret keys will work for the same rolls?

They broadcast a txid to me.
I take the sha256(txid + key)
Say the result is: f4fe638581903dabc67d4b80ee7e3018bad898dabde1cd1578738fef471812c2
Then I take f4fe and convert it to a decimal to get the roll of 62718.
I am just not seeing how I can reproduce f4fe638581903dabc67d4b80ee7e3018bad898dabde1cd1578738fef471812c2
along with all the other hashes with a different key.

I got this model from SatoshiDice.

If there is a way it is beyond my current understanding. If know of a way to make fair I am all for it.

On the very first roll in a day you can decide if you want that player to win or to lose, then choose a secret that produces the desired outcome:

  1. Choose secret
  2. Compute roll
  3. If roll doesn't match desired outcome, go back to step 1
  4. Publish resulting transaction

This can be extended to the first N rounds in a day. In the following, i denotes the current round number, r_j the roll of round j, t_j the txid of round j:

  1. if i < N, choose desired roll outcome r_i and publish result
  2. else if current round == N, choose desired roll outcome r_N
    2.a select secret
    2.b compute hashes of (t_j + secret) and compare to r_j, if mismatch go back to 2a
    2.c publish result
    2.d save secret as S
  3. else /* i > N */ compute r_i from t_i + S and publish result

I was wrong with my original estimate of 2^n attempts because I overlooked that you publish r_i. In truth you need about 2^(16*N - 15) attempts.

Thank you for trying to explain. It is still over my head. Is there something I could add to make suitably fair for you? In any case my secret key is generated with sha256(str(random())) and changed automatically at midnight then published. I guess there isn't a good way to prove that, but you may look at the wallet results and statistical evidence.

I am all for making it provably fair. To the best of my knowledge it is. I am open to working with you since you seem to have a better grasp on it than I do.

What I think you are saying is don't publish the result until the I find a secret that matches all the results prior to that roll? Once I find a secret that matches every desired result of every roll, then I publish the roll. If so wouldn't that take a ton of computational power do that in the time span of receiving and sending back a transfer? By the time I got past a couple rolls wouldn't it be more cost effective to use that power for mining crypto instead? I am not trying to poke fun or anything. I am just trying to understand it.

What I think you are saying is don't publish the result until the I find a secret that matches all the results prior to that roll? Once I find a secret that matches every desired result of every roll, then I publish the roll.

Exactly!

The computational power required depends on how many rolls you want to fake. For the first one in a day it would be very easy. I think 3-4 should be possible without too much effort.

IMO publishing a hash of the secret at the start of the day would help a lot. I'm not going to say that it would be secure, but I don't currently see how you could cheat then.

Coin Marketplace

STEEM 0.21
TRX 0.13
JST 0.030
BTC 67441.24
ETH 3492.03
USDT 1.00
SBD 2.81