SolomonDefi / solomon-monorepo

Monorepo containing core Solomon apps, services, libraries, and deploy config.
6 stars 3 forks source link

Implementation of dispute voting in Juror contracts #121

Closed jtse0 closed 2 years ago

jtse0 commented 3 years ago

Voting needs to be clarified before we implement functions related to voting in the SlmJudgement contract.

Perhaps we can also add a voting period that is set in place to allow jurors to vote. If that time ends and there have not been sufficient votes to meet the minimum voting requirements, then a new batch of jurors will be selected to continue voting to hopefully meet the minimum requirement to complete the dispute vote process.

This kind of ties into issue related to voting incentives: https://github.com/SolomonDefi/solomon-monorepo/issues/123

solomondefi-dev commented 3 years ago

According to the whitepaper:

  1. Seven jurors will be selected randomly by smart contract.
  2. Any or all of these seven may render a judgment within 72 hours.
  3. Judgments will be tallied after 72 hours, with the funds released to the winner by a simple majority.

We have some leeway in implementation, but need to make sure it's fair, and presented to the community. We may want to set the number of jurors based on the size of the existing pool.

A fixed time is good, so that the winner can trigger release of funds after a set time, and we don't have to worry about implementing some kind of service that handles dispersal.

After some discussion, we can probably solve the problem of 0 votes by judging in favor of the buyer, at least in the case of a chargeback. This doesn't work as well for escrow. Another possible option is to fall back to Admin decision in this case - we could have a special group of accounts that get to break ties. This may be the simplest initial solution.

beefho67 commented 3 years ago

The offline discussion goes on before implementation.

jtse0 commented 3 years ago

After discussion, this ticket will only focus on the unambiguous situation where a winning decision can be clearly decided. Another ticket will be created for handling situations where there is a tie. Work on this ticket can proceed.