The buyer or seller can act dishonestly and force the other party to receive fewer funds than expected due to unnecessarily initiating a dispute.
If the buyer and the seller end up in a dispute, an arbiter is able to resolve the dispute by calling the resolveDispute
function in the Escrow
contract. For the arbitration services, the arbiter receives a pre-configured fee (i_arbiterFee
), which is deducted from the escrowed funds and transferred to the arbiter's address (i_arbiter
).
However, any party (buyer and seller) can initiate a dispute by calling the initiateDispute
function, even if there's no legitimate reason for a dispute. The initiator of the dispute could act in a malicious way to cause the other party to receive fewer funds than expected (due to the required arbitration by the arbiter and thus the deduction of the arbiter fee).
For instance, after delivering the goods (e.g., audit report) to the buyer by the seller, the buyer could initiate a dispute, requiring arbitration by the arbiter and thus lowering the payout to the seller.
The "winner" of the resolved dispute receives fewer funds due to the deduction of the arbiter fee.
Manual Review
Consider collecting the arbiter fee from both parties (buyer and seller) at the beginning of the escrow, and in case of a dispute, collect the fee from the losing party and return the arbiter fee to the winning party. For more details and inspiration, see the escrow_solidity repository by Shubham Chaudhary
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.