A brief introduction to ERC-792

ERC-792 is an arbitration standard on Ethereum, proposed and implemented by Kleros, a decentralized dispute resolution protocol.

ERC-792 uses two separate types of contracts to divide arbitration and execution: Arbitrator contract and Arbitrable contract. The former, akin to a court, is solely responsible for arbitration; while the latter, where disputes arise, executes the contract according to the arbitration outcome.

This abstraction makes it possible that developers of Arbitrable contracts do not need to know the internal process of Arbitrator contracts, and vice versa.

What Arbitrator contract does:

  • creates a dispute (createDispute function, must be called by Arbitrable contract).

  • appeals a ruling (appeal function, must be called by Arbitrable contract).

  • delivers a ruling (by calling rule function of Arbitrable contract).

What Arbitrable contract does:

  • determines in which cases a dispute arises, defining logic to create disputes (by calling createDispute function on Arbitrator contract with required fee).

  • determines in which cases an appeal is possible, defining logic to appeal (by calling appeal function on Arbitrator contract with required fee).

  • enforces decisions delivered by Arbitrator contract (via the rule function, which must be called by Arbitrator contract).

Major functions
Major functions

Appeal

Following a decision by the Arbitrator, the involved parties are allotted a specific period to challenge the ruling. If the decision is not appealed within this window, it becomes conclusive. However, if an appeal is made, the Arbitrator has to make a decision (allowed to be the same) again.

This process continues until there are no further appeals. The cost associated with appealing serves as a deterrent against indefinite appeals.

Fees

Initiating a dispute incurs a fee payable to the Arbitrator, and appealing a decision also carries a cost. Both parties of a dispute must pay the arbitration fee, while the winner of the dispute will get reimbursed.

Dispute status

  • Waiting: initial status when a dispute arises.

  • Appealable: the dispute got a ruling and the Arbitrator allows to appeal it.

  • Solved: the dispute got a ruling and the ruling is final, to be enforced. If a dispute is not appealed within the appealable time, it becomes Solved.

Workflow

  • Arbitrable contract calls createDispute function on Arbitrator contract to create a dispute.

  • Arbitrator contract gives a ruling, initiating the period for appeals.

  • Arbitrable contract calls appeal function on Arbitrator contract to make an appeal.

  • Once the appeal period ends, Arbitrator contract delivers a final ruling, calling rule function on Arbitrable contract.

  • Finally, Arbitrable contract implements the decision.

Workflow
Workflow

https://developer.kleros.io/en/latest/index.html