Given that arbitrer
is an immutable variable, in case of a dispute, unresponsiveness of the arbiter
account can trap the funds in the Escrow
contract.
If a dispute arises but the arbiter does not resolve it, funds can remain locked in the contract. If the arbiter lost his wallet or is permanently incapacitated due to any reason, and thus cannot resolve the dispute, the funds are lost for ever.
Escrow instantiated, funds are now in escrow.
Either of the parties triggers a dispute
The arbiter loses wallet and cannot resolve dispute (or lost wallet, is out of reach etc.).
Funds locked in Escrow and Parties cannot do anything
Medium
Manual review.
The following mitigations are recommended:
Instead of having one arbitrator, let there by an array of arbiters submitted upon construction. Anyone of these addresses can therefore resolve a dispute, thereby making the chance of funds getting locked almost non existent (unless all of them become unavailable).
Allow buyer and seller to change the arbitrator. Add a new function which sets the arbiter address if the permission bool from both buyer and seller is true.
Only allow multisig Arbiter addresses
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.