When numGenerations and numValidations are both set to 1 (which are the default values in scripts/common/parameters.ts and in the deployed contracts on Base Sepolia), a malicious actor with sufficient computational power can game the system by:
Registering two addresses:
One as a Generator
One as a Validator
For each oracle request:
The Generator address submits an invalid/low-quality response
The Validator address validates their own response with a high score
Both addresses collect their respective fees
LLMOracleCoordinator.sol#L334-L355
With only one validation:
The mean is equal to the single score
The standard deviation is 0
The single score will always be within range
The validator always gets paid
The generator always gets paid since there's only one response
The oracle system can be completely gamed by a single actor
Users receive low-quality or incorrect responses
Malicious actors can collect both generator and validator fees while providing no value
The protocol's reputation and utility are severely damaged
This is particularly severe as these are the default parameters in parameters.ts and in the deployed testnet contracts
Require a minimum of 3 validations per generation to ensure statistical significance
Update the default parameters in parameters.ts to higher/safer values
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.