From fcdaa3e3b4ee5dde2a57d9431ba3e7a201b968f3 Mon Sep 17 00:00:00 2001 From: Ladd Hoffman Date: Wed, 19 Jun 2024 17:43:08 -0500 Subject: [PATCH] add notes from discussion --- specification/docs/requirements.md | 34 ++++++++++++++++++++++++----- specification/docs/system-design.md | 10 ++++++--- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/specification/docs/requirements.md b/specification/docs/requirements.md index 7449849..618e998 100644 --- a/specification/docs/requirements.md +++ b/specification/docs/requirements.md @@ -18,7 +18,7 @@ Validation Pools mint and award Reputation (REP). REP can be used for staking fo 1. Burn: Decrease the value associated with a given wallet address - 1. Update: Decrease the value associated with one wallet address, and increase the value associated with another address by the same amount. + 1. Update (a.k.a. Transfer): Decrease the value associated with one wallet address, and increase the value associated with another address by the same amount. 1. A Reputation holder must not be able to transfer Reputation to any other account. @@ -34,9 +34,9 @@ The experts will stake their reputation on the soundness of their judgements. 1. Anyone may initiate a Validation Pool - 1. A Validation Pool may be initated with a fee + 1. A Validation Pool may be initated with or without a fee - 1. Reputation (REP) is minted in proportion to the submitted fee + 1. Reputation (REP) is minted in proportion to the submitted fee. If no fee is included, no REP should be minted. 1. Half of the minted REP is staked in favor of the VP @@ -45,17 +45,27 @@ The experts will stake their reputation on the soundness of their judgements. 1. A Validation Pool must include the following parameters 1. Quorum (Between 1/10 and 1) + + 1. For the Quorum to be met, the total amount of REP staked for and against the VP, divided by the total available REP in the DAO, must be greater than or equal to this ratio. 1. Quorum must be greater than or equal to a minimum value, such as 1/10, in order to prevent validation pools from being pushed through without sufficient participation. 1. Win Ratio (between 0 and 1) + 1. For a VP to be accepted, the amount of REP staked in favor, divided by the total amount of REP staked for and against the VP, must be greater than or equal to this ratio. + 1. Binding Percent (between 0 and 100%) - 1. Redistribute losing stakes (boolean) + 1. This represents the amount of staked REP that may be lost if staked on the losing side of a VP. 0% Binding means that no staked REP may be lost. 100% Binding means that all staked REP may be lost. A value between these extremes means that a fraction of staked REP may be lost. + + 1. Redistribute Losing Stakes (boolean) + + 1. If Redistribute Losing Stakes is true, then the Binding % of REP staked on the losing side of the VP is distributed among those who staked on the winning side, in proportion to their stakes. If Redistribute Losing Stakes is false, then the Binding % of REP staked on the losing side of the VP is burned rather than being redistributed. 1. Target Forum Post (explained in the Judicial governance section) + 1. The Target Forum Post represents the subject of the Validation Pool. + 1. A DAO member may stake Reputation for or against a Validation Pool after the pool is initiated and before the duration elapses 1. Once the duration has elapsed, the outcome of the VP may be evaluated. @@ -94,10 +104,20 @@ The day to day operations of a DAO are centered around Work Smart Contracts (WSC 1. The Customer must submit approval/disapproval of the work to the WSC. -1. The Staking Clients must verify the work evidence, and stake for/against a Validation Pool targeting the Work Evidence Post. +1. The WSC must initiate a Validation Pool targeting the Work Evidence Post. 1. This Validation Pool may target a single WEV Post, or multile WEV Posts (see Rollup section, below). + 1. The fee from the Customer should be included when initiating this VP. The VP mints Reputation based on the provided fee. + + 1. The Staking Clients must verify the work evidence, and stake for/against the Validation Pool targeting the Work Evidence Post. + + 1. If the VP is approved, the minted Reputation is awarded to the Worker who submitted the Work Evidence. + + 1. The VP then distributes the fee among all DAO members, in proportion to their Reputation balances. + +Note that the Worker does not directly receive the fee for the work they perform. Instead, they receive Reputation; then, based on their Reputation balance, they receive a fraction of all future fees sent to the DAO. The purpose of this is to incentivize long-term considerations and investment in the future of the DAO. The more REP a Worker earns, the more they get payed over time, as the DAO takes in revenue. + ### Legislative The DAO will need to be able to update the rules by which it operates, in order to respond to changing circumstances or goals. There will not always be unanimous consensus regarding what changes to make. Therefore, we need a legislative governance process that a DAO can use in order to progress from disagreement to agreement. @@ -110,6 +130,8 @@ To achieve such a process, we introduce a Proposal mechanism. The proposal must 1. Note that, if desired, this requirement could be strengthened such that only a DAO member may submit a Proposal + 1. A Proposal may include a callback, to be executed when and if the Proposal is accepted. This callback may also include opaque data to be passed to the callback when executed. + 1. A DAO member may attest a certain amount of REP to indicate that they are aware of the proposal. The amount must be less than or equal to the DAO member's REP balance. 1. Once the Proposal has reached 10% Attestation, meaning that 10% of the DAO's total supply of REP has been attested, the first Referendum shall be initiated. This referendum should be a Validation Pool that is 0% binding, with a quorum of 1/10 and a win ratio of 2/3. @@ -134,6 +156,8 @@ To achieve such a process, we introduce a Proposal mechanism. The proposal must 1. If the third Referendum is accepted and meets a 50% participation rate, then the Proposal is accepted. + 1. If provided, the callback should be executed. This can be used, for example, to update parameter values of a smart contract. + ### Judicial In the Executive governance section we outline how the DAO polices the REP minting process, and the Legislative governance section we outline how the DAO may modify the rules by which it operates. Now, we need to consider that as the DAO develops new rules, it may wish to reevaluate past REP rewards in light of new perspectives. diff --git a/specification/docs/system-design.md b/specification/docs/system-design.md index fdd3a24..4506c53 100644 --- a/specification/docs/system-design.md +++ b/specification/docs/system-design.md @@ -188,7 +188,7 @@ To achieve the Proposals requirements, the contract must do the following: 1. Implement a method to initiate a Proposal - 1. The caller should be able to provide an optional callback to be executed when and if the Proposal is accepted + 1. The caller should be able to provide an optional callback to be executed when and if the Proposal is accepted. This can be used, for example, to update parameter values of a smart contract. 1. Implement a method for a DAO member to attest to a Proposal @@ -276,15 +276,19 @@ To achieve the Rollup requirements, the contract must do the following: 1. Implement a method to add an item to the queue of items to be batched - 1. This should be a payable method + 1. This should be a payable method, because it needs to receive the fee that would have been sent to initiate a Validation Pool directly targeting the given Post. + + 1. The batch item should reference a Forum Post ID. However, the Post itself does NOT need to be stored on-chain. It is sufficient for the Post to be available off-chain, as long as the Batch Worker and Validating Clients are able to retrieve it. 1. Implement a method for the current Batch Worker to initiate a Validation Pool targeting a Rollup Post that represents items from the batch queue. 1. Items must be submitted in order without skipping any items + 1. When initiating the VP targeting the Batch Post, the Rollup contract should include the aggregate of the fees that were included with each item in the batch. + 1. Implement a method to select a new Batch Worker - 1. If this method is called to replace a Batch Worker who has failed to submit the next batch, a Validation Pool should be initiated and the Batch Worker's stakes submitted in favor of the VP. The DAO members may then stake against this VP, punishing the worker who failed to submit the batch. + 1. If this method is called to replace a Batch Worker who has failed to submit the next batch, a Validation Pool should be initiated and the Batch Worker's stakes submitted in favor of the VP. The DAO members may then stake against this VP, punishing the worker who failed to submit the batch. This is a case where a Validation Pool would be initiated without a fee, and no Reputation would be minted for that VP. **`AddItem`** Parameters