The finalizeValidation
function in LLMOracleCoordinator
calculates the standard deviation of the scores given by all the validators for a particular genertion. This _stddev
is then used to determine the range of the acceptable scores as:
score >= _mean - _stddev && score <= _mean + _stddev
.
However, if the standard deviation is higher than the mean, the transaction will revert due to an underflow in the calculation of the range.
A similar issue occurs when calculating the range of acceptable scores for the generations in the same function.
The chances of this happening are not very rare either, even if one value if different than the rest, the mean of the data may be less than the standard deviation as shown in the PoC.
Add this to LLMOracleCoordinator.test.ts
:
The completion of the task will never be successful and the generators and validators will not receive their fees.
Manual Review
Use a different method to calculate the range of acceptable scores when the standard deviation is higher than the mean.
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.