The increaseValuesOfParticipants()
function in the ChoosingRam
contract utilizes a logic to generate random numbers. However, this randomness logic can be predicted by users, allowing an attacker to repeatedly call the function until achieving a desired outcome. This predictability undermines the security and fairness of the function.
Predictable randomness enables attackers to manipulate the outcome by repeatedly invoking the function until the desired random number is generated. This compromises the randomness logic, leading to potential exploitation and unfair advantages within the system.
To ensure randomness cannot be predicted or manipulated, use a Verifiable Random Function (VRF) service. VRF services provide secure and verifiable random numbers that are resistant to prediction and manipulation attacks. Some recommended services include:
Chainlink VRF (Recommended): Provides cryptographically secure randomness.
Gelato: Offers automation and randomness services.
Pyth: Delivers reliable and tamper-proof random numbers.
By integrating one of these VRF services, the randomness logic in increaseValuesOfParticipants() will be significantly more secure, preventing the vulnerabilities associated with the current implementation.
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.