Appearance
Overview
Our platfrom utilizes a simple, extremely reliable, two-phase random number generation method that is completely self-contained. Crucially, our platfrom is fully decentralized and eliminates any possibility of manipulation ("black-box" operations). Unlike many applications that rely on verified random number services-which, despite improved reliability, still involve external parties and cannot fundamentally preclude potential collusion—our platfrom relies on no external party, ensuring absolute and verifiable fairness.
Two-Phase Randomness Generation
Phase 1: Commitment
The initial phase requires both players to commit to their individually input "lucky words" by submitting a cryptographic hash derived from their "lucky words". Crucially, the "lucky words" remain confidential and are never disclosed to the opposing player or the public.
Selection: Both players privately input a set of "lucky words" with a combined length of more than 6 characters.
Iterative Hashing: The input words are concatenated, and the resulting string is subjected to (n + 1) repeated hash operations. The output of each hash serves as the input for the subsequent operation.
Submission: The final resulting (n + 1)-times hashed value is then submitted to the blockchain, acting as the commitment lock.
Note on "lucky words": Our platform supports the input of characters from various languages and scripts. Players are encouraged to use diverse characters to maximize the complexity of their "lucky words."
Phase 2: Reveal, Verification and Generation
The second phase require both players reveals the n-times hashed value of their "lucky words," which will determine the game's outcome.
Reveal: Both players must submit the hash value obtained by calculating the hash of their original "lucky words" n times.
Verification: The submitted n-times hashed value is verified on-chain. The verification only passes if this value is the pre-image of the (n + 1)-times hashed value submitted in phase 1.
Generation: Once both revealed values are successfully verified, the final, unbiased random seed for the game is generated by combining the two values.
Note on Pre-image: In cryptography, the pre-image is the original input that produces a specific hash output. If we define the hash function as H such that H(A) = B, then A is the pre-image of B. Here, the submitted n-times hashed value is A, and the committed (n + 1)-times hashed value is B. The verification step simply confirms that H(A) = B.
Cryptographic Security Guarantee
The core security of above process relies on two factors: the accepted irreversibility of cryptographic hash functions and the complexity of the input data.
As long as a player keeps their initial "lucky words" private and those words are sufficiently complex, it is computationally infeasible (even with massive global computing power) to reverse the hash value and deduce the original input.
This principle is identical to the one safeguarding private and public key generation in cryptocurrencies, where the security also depends on the vast entropy (randomness and complexity) of the private key.
Enhancing Flexibility with Salt Value
To allow players to repeatedly use the same "lucky words", we incorporate a salt value into the hashing process.
Due to the inclusion of this unique salt, the cryptographic output (the final hash and, consequently, the random seed) will be different every time, even if the same "lucky words" are used across different rounds.
Consequently, you can reuse the same "lucky words" across many game rounds without risking the randomness being compromised, unless your "lucky words" is overly simple or leaked.