The ChoosingRam::increaseValuesOfParticipants
function and ChoosingRam::selectRamIfNotSelected
get the uint256 random
by abi encoding and hashing the block.timestamp
, block.prevrandao
, msg.sender
and other similar global variables which is just "pseudo randomness" and not true randomness i.e. miners and validators can predict the random number generated since everything here is done on-chain.
The Randomness logic used in the functions below are predictable
ChoosingRam::increaseValuesOfParticipants
ChoosingRam::selectRamIfNotSelected
Values generated using Bad Randomness or Weak Randomness can be predicted and can be used to favour the malicious user i.e one can set all characteristics to true and become selected ram
Manual Review
Foundry
Use a cryptographically provable random number generator like Chainlink VRF
The organizer is trusted, but the function `ChoosingRam::selectRamIfNotSelected` uses a way to generate a random number that is not completely random.
The organizer is trusted, but the function `ChoosingRam::selectRamIfNotSelected` uses a way to generate a random number that is not completely random.
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.