You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
require(revealTS <= uint32(now),
"Arbitration cannot be done until the last answerer has had time to reveal its commitment.");
A malicious miner can increase the block time by up to 15s and still get it accepted. For an unrevealed commitment which is in the last 15s of its commitment timeout, and if the miner requested arbitration, computeWinner deems the miner the winner.
Therefore the require(...) should include a 15s grace period to guarantee the commitment is never timed out prematurely.
RealitioArbitratorProxy.computeWinner
protects non-timed-out commitments with:A malicious miner can increase the block time by up to 15s and still get it accepted. For an unrevealed commitment which is in the last 15s of its commitment timeout, and if the miner requested arbitration,
computeWinner
deems the miner the winner.Therefore the
require(...)
should include a 15s grace period to guarantee the commitment is never timed out prematurely.See pacamara/realitio-contracts#1 for demonstration code.
(Issue identified from code review for bounty #244 )
The text was updated successfully, but these errors were encountered: