Hashing msg.sender
, block.timestamp
, block.prevrandao
together creates a predictable final number. A predictable number is not a good random number.
Validators can know ahead of time the block.timestamp
and block.prevrandao
and use that knowledge to predict when / how to participate. See the solidity blog on prevrando here.
Malicious users can manipulate these values or know them in advance to find the eggs.
Foundry
Aderyn
Slither
Consider using an oracle for your randomness like Chainlink VRF.
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.