Submitted by Trust
HolographOperator.sol#L354
Operators in Holograph do their job by calling executeJob() with the bridged in bytes from source chain.
If the primary job operator did not execute the job during his allocated block slot, he is punished by taking a single bond amount and transfer it to the operator doing it instead.
The docs and code state that if there was a gas spike in the operators slot, he shall not be punished. The way a gas spike is checked is with this code in executeJob:
However, there is still a way for operator to claim primary operators bond amount although gas price is high. Attacker can submit a flashbots bundle including the executeJob() transaction, and one additional bribe transaction. The bribe transaction will transfer some incentive amount to coinbase address (miner), while the executeJob is submitted with a low gasprice. Miner will accept this bundle as it is overall rewarding enough for them, and attacker will receive the base bond amount from victim operator. This threat is not theoretical because every block we see MEV bots squeezing value from such opportunities.
info about coinbase transfer
info about bundle selection
Dishonest operator can take honest operators bond amount although gas price is above acceptable limits.
Manual audit, flashbot docs
Do not use current tx.gasprice amount to infer gas price in a previous block.
Probably best to use gas price oracle.
gzeon (judge) commented:
alexanderattar (Holograph) disputed and commented:
Trust (warden) commented:
ACC01ADE (Holograph) commented:
