Why does satoshidice have to re-hash the transaction details in order to determine your "lucky" number?

Are there no publicly viewable randomized numbers or hashes that are impossible for the sender to duplicate without broadcasting the transaction?

1 Answer 1


The transaction hash is determined by the contents of the transaction. As such the payment sender determines the transaction hash so it is not random.

But the SatoshiDICE bettor does not know the secret that SatoshiDICE will use and the result of the hash after including the secret is for all practical purposes random.

To know that SatoshiDICE didn't cheat, the hash of the secret is known to the bettor in advance and then released the following day. So the bettor can verify that correct secret was indeed used, and with that verify that the correct payout occurred.

Since SatoshiDICE wagers are bets against the house, all that is needed is a way to determine that the house properly made each payout. This method of using the transction hash plus secret (revealed at a later time) succeeds at providing just that.

  • Correct me if I am wrong, but it is already near impossible to predict the transaction hash. The server seed is not needed, just an added layer of randomness.
    – ericosg
    Commented Feb 24, 2023 at 11:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.