The contract uses insecure, predictable pseudo-random number generation to determine if a player finds an egg, making it susceptible to manipulation.
The random number is based on block.timestamp
, block.prevrandao
, and msg.sender
, which are predictable by users and miners.
This allows manipulation of input parameters to consistently win the egg.
Players (especially bots or miners) can predict or brute-force winning attempts, severely compromising fairness and integrity of the game.
Manual review
For simple games, use Chainlink VRF (Verifiable Random Function) for secure randomness.
If using pseudo-random logic for demonstration, clearly document its insecurity and restrict for testing only.
Insecure methods to generate pseudo-random numbers
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.