Pseudo randomness in ChoosingRam::increaseValuesOfParticipants
leads to unfair advantages for challenger users.
In blockchain randomness similar to that in the above function is predetermined
uint256 random = uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao, msg.sender)))
, so any user can know the "random number"
beforehand. For randomness to be generated in a blockchain something like Chainlink VRF is required.
The user can pre-run the code locally with the arguments which return the random number, see if they will be the winner, and then decide if they will call
ChoosingRam::increaseValuesOfPartints
. That leads to an unfair advantage for the user.
Manual Review
Replace the pseudo-randomness with Chainlink VRF.
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.