Dispute Lifecycle

Dispute lifecycle

The following guide aims to cover all the information you need to know as a keeper to understand a dispute's lifecycle and its related tasks so you can have the best experience possible using Celeste. For an overview of the Dashboard and its modules, click here.

Celeste uses terms to keep track of protocol timesteps. Each term is currently set to last eight hours. Every time period in Celeste is composed of terms (e.g. the vote commit duration lasts six terms, or two days). The current term and its remaining time is always displayed at the top of the dashboard.

As for disputes, they essentially observe the following lifecycle:

  • Pre-draft state: Dispute creation and comment window.

  • Voting rounds: Voting rounds are where Keepers are drafted, review the dispute and related comments, then cast and reveal their votes. Disputes can be made up of multiple voting rounds if the first round's ruling is appealed.

  • Final ruling: Dispute is settled.

1. Dispute creation and comment submission

Once a dispute is created, a time period of up to seven days is allowed to submit comments that will later be reviewed by keepers, in most cases this period will be shortened as proposers and challengers will submit any comments at the time of dispute creation. Comments can be submitted in text format but HTTP and IPFS links are also accepted, and will be displayed in the dashboard.

No action is required by Keepers during this period.

Discussion and commentary about disputes can happen out of band at any time, and keepers are encouraged to consider all relevant information when making their decisions. These formal comments are simply to provide a means for proposers and challengers to provide their rationale for the dispute that will be highly visible to all drafted keepers.

2. Drafting keepers

After the evidence period is over, the first voting round is initiated and the Drafting period begins. The only task required during this period is to click on the Draft keepers button in the dispute page. Anybody can execute this task and receive a reward proportional to the number of keepers being drafted. The current draft reward amount is $0.1 in Honey per keeper.

Your chances of being drafted as a keeper are directly proportional to your actively staked HNY.

If you get selected as a Keeper, here are a few things you need to know:

  • If you have opted into the email notification service, you should receive an email notification containing information about the dispute and the next steps for you.

  • A portion of your active HNY will be locked until the final ruling is confirmed. The main purpose of locking your active HNY is to incentivize consensus decisions and honest behavior. The exact locked amount is equal to 30% of the minimum active balance for each time you get drafted. The minimum active balance is currently 0.5 Honey, therefore the amount locked would be 0.15 Honey. You can learn more about the various scenarios possible for your locked tokens in the voting and ruling sections.

  • It's possible to get drafted multiple times for the same dispute, if there are appeal rounds. In that case, the amount locked will be multiplied by the number of times you are being drafted. The voting power will also be proportional to this number. For example, a juror getting drafted twice for a dispute would have 0.3 Honey locked and twice the normal voting weight.

  • Neither your inactive HNY nor the HNY contained in your wallet will be locked, only a portion of your active HNY.

3. Vote commit

The voting period is critical for a drafted keeper. What you must do within the allocated time is first to review the dispute, then to try anticipating what the voting decision of the plurality of keepers will be.

This seems counterintuitive at first. Celeste is not exactly asking your opinion, but rather what you think the ultimate outcome would be if the dispute were to be appealed and escalated until all keepers could participate. Therefore, to encourage this dynamic Keepers are incentivized to reach consensus and are rewarded or penalized accordingly.

Most importantly, it is essential to cast a vote since failing to do so will result in financial penalties for you.

Failing to cast a vote will result in your locked tokens getting slashed and redistributed to the winning keepers after the final ruling - so make sure to commit and reveal your vote in the allotted time periods.

The vote commit period lasts two days. Here are the steps required to cast a vote:

3.1 Select one of the three voting choices

Three choices are available: voting to Allow the action being disputed, voting to Block the action, or Refuse to vote. You can choose refuse to vote for many reasons, for example if you consider that the evidence was not conclusive enough or the description was incoherent. Remember that you should vote the way that you think a plurality of jurors will vote, since you will be penalized if your vote is in the minority.

3.2 One-time-use code

To keep the votes secret until the end of the voting period, your vote will be combined with a randomly generated code. For security purposes, it's important that you save this code somewhere safe (such as inside a password manager) and do not share it with anyone.

Click the Commit your vote button to send the transaction.

3.3 Leaking the secret one-time-use code

If you leak your one-time-use-code, either by accident or on purpose, you could be penalized. This will put you on the losing side of a dispute even if you cast your vote for the plurality outcome, and your locked HNY will be redistributed to the plurality keepers after the final ruling. This mechanism is in place to dis-incentivize cheating/collusion among keepers.

If another keeper leaks their one-time-use code then you can penalize them using the following steps (this will be added to the juror dashboard for ease of use in the near future).

Step 1. Find the "leak" function on the Celeste Voting contract.

Step 2. Fill out the form fields with the following information:

  • _voteId: enter the vote ID that the juror is leaking their code for.

    • To get the vote ID, go to the Aragon Court subgraph "Disputes and rounds with votes" section, enter the Dispute # in place of "0" where it says {id_in: [0]}, then press Ctrl+Enter on your keyboard to execute the query. On the right side of the query box it will say "vote": "id": "0". In this case 0 is the vote ID. Note that the vote ID will be different for any dispute other than Dispute #0.

  • _voter: the Ethereum address of the cheating keeper

  • _outcome: the outcome the cheating juror submitted. It can be a 2 (Refuse to rule), a 3 (Against), or a 4 (In favor).

  • _salt: the salt the cheating juror used to commit the vote

    • To get the salt, take the one-time-use code that was leaked and enter it as the "Input" on this Keccak256 conversion tool then press the "Hash" button. The result int the "Output" box is what you should copy/paste into the _salt field.

An example of the completed form looks like this:

Step 3. Click the "write" button, then sign and send the transaction. Once the transaction is confirmed, the juror who leaked their one-time-use code will be penalized.

4. Vote reveal

After the voting period has ended, keepers will have two days to reveal their vote.

Otherwise, simply click on the Reveal your vote button. Your one-time code shouldn't be necessary unless your browsers local storage has been reset, but if it is needed, you'll be prompted to retrieve it from the safe place you stored it and enter it.

5. Appeal and appeal confirmation

Now that the votes are revealed, you can see whether you voted with the plurality or not. But before the ruling can be executed, an appeal period is started during which any user can lock HNY as collateral to propose an appeal. The appeal collateral amount is 3 times the cost for employing the Keepers for the following round.

However, an appeal must be confirmed by a second user to officially start a new round. The appeal confirmation collateral amount is 2 times the cost for employing Keepers for the following round.

If an appeal is confirmed, a new adjudication round is initiated and a new set of keepers are drafted. With each new appeal, the number of keepers is multiplied by three. The appeal and appeal confirmation periods both last two days.

If an appeal is not confirmed, then the outcome proposed by the appealing party wins. For example, if the ruling of the previous round was "Allow" and the appealing party proposes a "Block" ruling, and no one confirms the appeal, then the final ruling will be "Block".

When the final ruling is confirmed, if the ruling has switched in favor of the user who appealed (the "appealing party") then the collateral of the user who confirmed the appeal (the "confirming party") is redistributed to the appealing party. If the ruling is in favor of the confirming party, then the collateral of the appealing party is redistributed to the confirming party. And if the final ruling is in neither the appealing party nor the confirming party's favor, then both the appealing party and confirming party get their collateral back minus a fee that goes to the keepers who voted in the plurality.

6. Final ruling

Once a ruling has been decided without any appeal, the final ruling is sent to the smart contract that triggered the dispute and all the adjudication rounds for the dispute can be settled taking into account the final ruling for rewards and penalties.

If, as a keeper, you voted with the plurality of keepers in the final ruling, congratulations! You just earned $10 in Honey and a percentage of the slashed HNY from jurors who voted in the minority.

If, however, you voted with the minority, your locked HNY is redistributed to the keepers who voted with the plurality in the final ruling.

7. Final appeal round

The maximum number of appeal rounds is not infinite, it is currently set to four. If an appeal is still confirmed after the maximum allowed is reached, a final round is initiated where the number of jurors equal to total active stake / min active balance (0.5 Honey)is drafted, in which case all drafted jurors will be required to make up and safely store a secret passphrase to vote.

Last updated