An Arbitration Charter to clarify Arbitrator behavior

As The Graph ecosystem migrates subgraphs from E&N’s hosted service to The Graph decentralized network, I felt it would be worthwhile to add more clarity to how the Arbitrator will behave, as there will be more opportunities for dispute creation and slashing in the near future.

I put this into the form of an “Arbitration Charter”, the goal being that when this is sufficiently well developed, The Graph Council could vote to ratify it, thus signaling that this is the standard they will hold the Arbitrator to. Currently, the Arbitrator is set to a 2-of-3 Gnosis multisig w/ @ariel, @davekaj, and @jannis as members.

Since I foresee this GIP acting as an opportunity to express feedback on the arbitration mechanism itself, I’d like to emphasize that the Arbitration Charter itself does not grant any new capabilities to the Arbitrator. Rather, it establishes norms that constrain how an Arbitrator should engage with the protocol, given their existing capabilities.

Nonetheless, feedback on the arbitration mechanism itself is always welcome, either here or in separate proposals.

For convenience, I’ve pasted the “Abstract” and “Motivation” of the GIP below. The full body of the GIP can be found on the zerim/arbitration-charter branch of the GIPs repo on Radicle (instructions for how to access that here: GIP-0001 and Getting Started with GIPs, GRPs, GRCs, etc).

Abstract

The Graph has a protocol role called an Arbitrator who is assigned through decentralized governance. The Arbitrator is an Ethereum Account that has the ability to decide the outcome of disputes in the protocol. The purpose of the Arbitration Charter are to establish norms that constrain the Arbitrator’s actions beyond what is expressible or currently expressed in smart contract code. We propose that any Arbitrator that does not comply with the norms laid out in this charter be replaced via decentralized governance.

Motivation

The Arbitrator is a protocol role that is assigned via decentralized governance, and as such there are certain parts of its behavior that are not specified in smart contract code running on-chain. Having a protocol charter for this actor’s behavior creates clarity for the ecosystem in how the role of the Arbitrator will be executed and establishes a standard for measuring the effectiveness of an Arbitrator, which can be referenced in protocol governance discussions around the appointment of an Arbitrator.

The substance of the Arbitration charter is intended to ensure that the Arbitrator is fulfilling their role of supporting a healthy and functioning network where Indexers perform their work correctly, while minimizing the risk to honest Indexers of being economically penalized while interacting with the protocol in good faith.

Feedback welcome!

9 Likes

I have not been able to see the details of the arbitration mechanism on Radicle (not able to find it there), so apologies if some of the thoughts expressed here are repetitive. I do believe that an arbitration mechanism is very meaningful to further demonstrate that The Graph seeks to uphold strong principles of integrity in the protocol.

Besides the need for a fair and impartial dispute resolution process, I also see a secondary motivation that the arbitration mechanism has the potential to pursue: progressive minimization. The arbitration process is a governance element which may be necessary to enact more frequently early on. The core arbitrator mandate is to come to an impartial resolution of a dispute, but it could also be expanded to include an assessment of the nature of the dispute concluding with thoughtful directional community feedback to develop solutions that prevent such disputes from recurring. A long-term aspirational goal may thus be that we have a solid arbitration mechanism in place without the need to enact it, therefore minimizing the need to action a governance process.

With the above in mind, here are some specific suggestions in response to your post, which are considerations for arbitrator responsibilities that may not yet be specified in the smart contract:

  • Arbitrators should demonstrate their attempt to seek statements on the dispute from all involved parties prior to evaluating the dispute

  • At least one meeting should be held amongst the arbitrators to mutually review the dispute prior to proceeding to a vote. Meeting notes should be produced that document the review and discussions of the dispute amongst the arbitrators

  • Perform a dry vote prior to proceeding with multisig. If no 100% majority, then arbitrators proceed to consult opinion of a mutually agreed upon subject matter expert to obtain an impartial, non-binding, opinion on the dispute

  • At least one majority voting arbitrator should produce a concluding statement accommodating the voting decision that includes the following components:

    • Reasoning of the decision
    • Risk assessment of future occurrences for like-kind disputes, incl. feasibility to mitigate such risks via protocol enhancements
    • If applicable, provide directional community recommendation for GIP development to address the cause of the dispute
2 Likes

Hey, @ZorroZ01 thanks for the excellent suggestions. Some of these are already captured in the Arbitration Charter and others I think would be worth adding.

BTW, try checking the Radicle repo again, I don’t think my changes had propagated properly before I closed my Radicle client. Should be there now.

@ZorroZ01 per the discussion here the Radicle team says some of these replication issues will be solved in an upcoming breaking release (the joys of dogfooding the bleeding edge of decentralized tech :wink: ).

In the meantime, I’ve posted the full contents of the Arbitration Charter (no feedback incorporated yet) on HackMD here.

3 Likes

Thank you @Brandon , helps seeing the details. Here some further feedback for consideration after having read the Charter.

  • Double Jeopardy
    I assume the double jeopardy rule would apply to past faults by indexers, meaning that it excludes new future faults. If true, then such clarification would be helpful. Right now, it is written in a way where it could be interpreted that indexers are exempt from future slashing for creating the same faults again post arbitration.

  • Penalty & Reward level specifications
    If not already defined on-chain, then I would highlight that outside of the maximum allowable slashing amount for indexers, the Arbitration Charter currently does not specify any amounts and/or ranges around penalties and rewards. Guidance on that would be useful to ensure fair and equal treatments across like-kind cases for all stakeholders and to take into consideration factors such as escalating penalty levels for repeat offenders.

  • Arbitration Decision Appeal
    While the arbitration itself is designed to be a final settlement on a dispute, there may be legitimate instances where an arbitration decision may want to be appealed by either party. Scope may be process related (i.e. one party claiming that rules of Arbitration Charter were not followed). This could be introduced as a delay of the execution of the arbitration decision, such as 48 hours, during which time appeals can be submitted.

1 Like

The GIP for the Arbitration Charter has been updated per the feedback received above and since the recent protocol town hall.

Can be found on the zerim/arbitration-charter branch of the GIPs repo and also posted here for convenience: Abstract - HackMD

Additional feedback welcome.