dgf-prototype/specification/docs/arbitration.md

3.1 KiB

Here we outline a sequence representing the on-chain portion of the dispute initiation and resolution process. If a Disputed Contract includes a "Trigger clause", a Complainant may initiate a dispute. The disputed funds are sent to the Arbitration DAO, and are held in escrow until a decision is rendered.

sequenceDiagram

participant complainant as Complainant
participant contract as Disputed Contract
box Arbitration DAO
participant arbitration as Arbitration Contract
participant forum as Forum
participant bench as Bench
end
participant arbitrator as Arbitrator
participant arbitrators as Arbitration DAO Members

arbitrator ->> arbitration : Stake availability
complainant ->> contract : Initiate dispute
contract ->>+ arbitration : Transfer disputed funds
arbitration ->>+ arbitrator : Assign arbitrator
loop Resolution
arbitrator ->>+ forum : Post resolution
arbitrator ->> arbitration : Submit resolution
deactivate arbitrator
arbitration ->>+ bench : Initiate Validation Pool<br>Includes portion of disputed funds as fee
bench -->> forum : VP targets resolution post
arbitrators ->> bench : Stake for/against VP
alt VP passes, resolution favors complainant
alt Disputed Contract Appeals
contract ->> arbitration : Submit an appeal (See Appeal Process, below)
else No Appeal
arbitration ->> complainant : Transfer remaining disputed funds
end
else VP passes, resolution favors disputed contract
alt Complainant Appeals
complainant ->> arbitration : Submit an appeal (see Appeal Process, below)
else No Appeal
arbitration ->> contract : Transfer remaining disputed funds
end
else VP fails
arbitration ->> arbitrator : Assign new arbitrator
end
deactivate bench
end %% loop


opt Appeal Process
arbitration ->>+ arbitrator : Assign reviewer
loop Resolution
arbitrator ->>+ forum : Post resolution
arbitrator ->> arbitration : Submit resolution
deactivate arbitrator
arbitration ->>+ bench : Initiate Validation Pool<br>Includes portion of disputed funds as fee
bench -->> forum : VP targets resolution post
arbitrators ->> bench : Stake for/against VP
alt VP passes, resolution favors complainant
arbitration ->> complainant : Transfer remaining disputed funds
else VP passes, resolution favors disputed contract
arbitration ->> contract : Transfer remaining disputed funds
else VP fails
arbitration ->> arbitrator : Assign new reviewer
end %% alt
end %% loop
end %% opt

deactivate arbitration
deactivate forum

The above sequence assumes that each instance of an Arbitration contract corresponds to a particular area of expertise. A contract which wants to support dispute initiation must select an Arbitration contract in advance, and the dispute will be assigned to an Arbitrator who has staked availability on that Arbitration contract.

A single Arbitration DAO may support multiple areas of expertise by deploying an Arbitration contract instance for each area of expertise. However, all of these instances would be governed by a single type of Reputation.

Alternatively, a new Arbitration DAO may be deployed for a given area of expertise. This Arb DAO would have its own type of Reputation, independent of other Arb DAOs.