The randomness needed in ChooosingRam::increaseValuesOfParticipants
and ChoosingRam::selectRamIfNotSelected
is gotten from method that can be manipulated to ensure some predictability and defeat the purpose of randomness.
The protocol relies on:
To generate a random number. But this randomness is weak because block.timestamp
and block.prevrandao
are values that can be manipulated by validators/miners.
Since this method is used to determine the selected ram, A malicious user can exploit it and have an advantage.
Manual
Consider using ChainlinkVRF as a way to get randomness in the contract
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.