Tricky Sage Stallion
Medium
The EthosVouch::slash()
slashes up to 10% of all vouch balances for a given voucher. However, the voucher can front-run the slashing transaction by calling unvouch()
and paying the exit fee. If the exit fee is significantly lower than the penalties, the voucher can minimize or avoid most of the losses.
The current implementation of slash()
does not account for the possibility of a voucher executing an unvouch()
transaction immediately before the slashing is finalized.
- The
slash()
function is called to penalize a voucher. - The voucher has sufficient time to detect the slashing transaction and front-run it by calling
unvouch()
.
No response
No response
Allowing malicious vouchers to avoid penalties.
No response
One possible option could be implementing an unvouch queue, unvouch requests can still be slashed.