DGF Smart Contract Specs: Difference between revisions

From DAO Governance Wiki
Jump to navigation Jump to search
(Specifications added to page.)
(Added TODO items after meeting with Maciej.)
 
(2 intermediate revisions by one other user not shown)
Line 6: Line 6:
In short DGF is a citation system in a forum with a validation pool (VP) using the idea of non-tradeable reputation as the primary incentive over money. The forum will be organized by a weighted directed acyclic graph (WDAG) wherein publishing, citing, and reviewing work requires staking reputation up or down - requiring different identity and data storage strategies. Reputation percolates through the graph and is governed by a number of voting typologies (in order to better address Arrow’s Theorem). Facets of the voting typologies and WDAG are hyperparameterized, which allows the system to shift fluidly between incentivizing innovation and validation (which addresses Goodhart’s Law).
In short DGF is a citation system in a forum with a validation pool (VP) using the idea of non-tradeable reputation as the primary incentive over money. The forum will be organized by a weighted directed acyclic graph (WDAG) wherein publishing, citing, and reviewing work requires staking reputation up or down - requiring different identity and data storage strategies. Reputation percolates through the graph and is governed by a number of voting typologies (in order to better address Arrow’s Theorem). Facets of the voting typologies and WDAG are hyperparameterized, which allows the system to shift fluidly between incentivizing innovation and validation (which addresses Goodhart’s Law).


=== Basic Technical: ===
=== Basics: ===
A consensus mechanism is the easiest way to describe the utility of the system - please refer to the [[Block producer DAO]] page. To populate this WDAG, there are different user types and post types that will cite each other with various weights to earn reputation that can later be used to earn money and or voting power. The basic user types are people that in or out of the DAO. The basic post types include posts, and proposals where proposal types can be specified (work, review, governance etc.).
A consensus mechanism is the easiest way to describe the utility of the system - please refer to the [[Block producer DAO]] page. To populate this WDAG, there are different user types and post types that will cite each other with various weights to earn reputation that can later be used to earn money and or voting power. The basic user types are people that in or out of the DAO. The basic post types include posts, and proposals where proposal types can be specified (work, review, governance etc.).


Line 51: Line 51:
* To handle the initial case when no WREP has yet been minted, the WSC can accept an availability stake of 0 WREP, and all such stakes should be given equal weight in the random selection.
* To handle the initial case when no WREP has yet been minted, the WSC can accept an availability stake of 0 WREP, and all such stakes should be given equal weight in the random selection.


==== When WEV is submitted to a WSC ====
===== When WEV is submitted to a WSC =====
 
# The WSC initiates a VP targeting the WEV.
# The WSC initiates a VP targeting the WEV.
# The fungible tokens are transferred to the VP.
# The fungible tokens are transferred to the VP.
Line 58: Line 57:
# All WREP holders have an opportunity to stake for or against the VP.
# All WREP holders have an opportunity to stake for or against the VP.


==== When VP is initiated ====
===== When VP is initiated =====
 
# WREP is minted in proportion to the fungible tokens received.  The proportion is determined by the WREP Minting Ratio parameter.
# WREP is minted in proportion to the fungible tokens received.  The proportion is determined by the WREP Minting Ratio parameter.


==== When VP is approved ====
===== When VP is approved =====
 
# Minted WREP is transferred to the WEV post, and propagated to its authors and citations,  up to the depth specified by the Reference Chain Limit parameter.
# Minted WREP is transferred to the WEV post, and propagated to its authors and citations,  up to the depth specified by the Reference Chain Limit parameter.
# Fungible tokens are distributed to all WREP holders in proportion to their WREP.
# Fungible tokens are distributed to all WREP holders in proportion to their WREP.


==== When VP is rejected ====
===== When VP is rejected =====
 
# Minted WREP is transferred to the DAO members who staked against the WEV.
# Minted WREP is transferred to the DAO members who staked against the WEV.
# Fungible tokens are distributed to all WREP holders in proportion to their WREP.
# Fungible tokens are distributed to all WREP holders in proportion to their WREP.
Line 82: Line 78:
==== Smart Contracts ====
==== Smart Contracts ====


==== Forum ====
===== Forum =====
 
* Contains Posts
* Contains Posts
** Each post may have one or more authors
** Each post may have one or more authors
Line 96: Line 91:
** To post authors
** To post authors


==== Validation Pool ====
===== Validation Pool =====
 
* Accepts fungible tokens to initiate a VP targeting a given Post
* Accepts fungible tokens to initiate a VP targeting a given Post
* Mints WREP in proportion to fungible tokens
* Mints WREP in proportion to fungible tokens
Line 105: Line 99:
* If the VP is approved, awards WREP to the targeted post
* If the VP is approved, awards WREP to the targeted post


==== Reputation ====
===== Reputation =====
 
* Extends ERC 721 (Non-fungible token)
* Extends ERC 721 (Non-fungible token)
* Associates a floating point value with each token
* Associates a floating point value with each token
* Allows VP and Forum to transfer value from one token to another, as specified above
* Allows VP and Forum to transfer value from one token to another, as specified above


==== Work ====
===== Work =====
 
* Accepts WREP stakes for worker availability
* Accepts WREP stakes for worker availability
* Accepts fungible token fees from customers
* Accepts fungible token fees from customers
Line 120: Line 112:


=== User Scenarios: ===
=== User Scenarios: ===
Here is DGF's repository of [https://www.dgov.io <nowiki>use-cases [3]</nowiki>].


Here is a [https://sequencediagram.org/index.html#initialData=C4S2BsFMAIBEHEBiAHAhgJ1AYxGgdsNAFID2ARtAAokDOwk6A9HiXgLQCuND0AogB7IGwAIwAoMWkwgc+YAHN0JDsmgBicCHkALYGXAcYACS3a2AGUgA3SODhJoAZUgBHQ3iyRJGbLlQFoLgZvaVl-QkQSdA4AWxDfOWgANVRNABNUUFYqEhJwMUg8NIkpBPDFZVUBVBjkKDFoaFKZPwIKlXVNHQV0VABPaAB5ADNhtgBhbVQQPEZHKbSSAHcGpp8WxKD0aHgSKwEhTAAGeI3w6AB1ajoTxuawgK2+QWFxO-WHwiulZFpUt+ghWKjVW91aPUqQ3Yk2meBKH3BgW421IFAASq5DHQGMxWGwDq8JO9QoiLoNkMhxGDEtQ8uIiWsSZtkc9DsAAEyghGJb4kX40VKc4llAK08BCxkiwhigDMqyB0AKRQkamgJh00EsNjsjmA0SwwA46C8WzYAD5ItEYgAuY2oYpPc3QS2xa38whiU0WqKulRWEj0RiLJZ4f30aB0VAAa0gNE9yPNLptxqsIEgS2gAAphuBUPJGECotwAJTxhiJn025A-P7gGhZmJcQg4egAOiaNYFdegWH8PbAkAAOnhoCm00saAAaJq0YBTjt82v1mbQfxpaDD5SEEjDHskGKNvBgAZYVj0AilpMAHjYKXSmRA2TF1tPB44R+AAysqRAGXo9ZYNJY1XIpATSeRgM3XcLlgABBeBARoIQcFScABiWbRCmgGJWEgAZCnodB62HYBMIjPpsRiVsVR2PZWWES5HHGHs7SyEdMxoBZljRXhKFLdpVEoTtUmgI5rVomx0DwVBPFWRonl2fYXmOaBzTNS5rmAI5oHEmgODIGIwBnOhoGAEgWMgTIYAuJjFSBMRVQJTBoBERjxjEASqGEuwRHEi4oijJEZnkaB5D2BhpI8LxGnklknNEVSzXU3l+X+HSI30wzCHdEEWHDcLthS2tXPErhgrcuSNO81y1I02dtPEltY0zI5WyOERSyVYEQVVVEcmxdAPKUDohMXLtoHZPyAugDE3FjYAxDFEQ1LJClfNgxRIGAszjMIAArcgxBk0Bv3DVbKTEPKYAKy5yUpa0yrwEKbPcmKkR4eL2US5K7t8iNgGjYDUG-EBczIUHj0qp54pqpLbrW9LIxjetgemMGIc-MsUXIGbMXmnEWHYGGVt+609IMoyABIRCOWnoGGKJoCWab7Uk0AAC9IHXMgBjgwYJCu6AbqW60ADk8XiiNbEgA160ZpJKClqBZeHIChCKcrsherNeiKfclZltjOqx4gcdmrFCNxInlNEEm1utPr3R4LBtFybh62GJQYlXClNF7Ag40q87YfU6Gba+8SlhmetSJgA6KHB7rGk80bUrsGVxMl2CsFfOoQE44D-PQQLzfmpmwG0S5pt4VMgKiqG4vD76qrGwVEcysB63dIPU9rL7aqKrsSv7f8WtbGVSzewe24HzSGpH5rWvayeYrDtl+7hsUI+gGYwBAKzkh-P9HxHMUs2GLbxKOYtFWOkBTpgLfKq35uX-EwyAkzGnaZ4vjFUF4WuRxTpQuDMBkjQX6z28tvasfI8wH0zAANgAJxHAuL-G+PdoHNzXsIGBPx4HhiQag9BvEV6NGnsAqBrdwDD1gb8eQCCZS01IXxMQlD2Q3iflPXuQ8cGNzZHQmsjCiHMLQRgxUHDzTcJipAuGVx6rpXoSQERkAv7iLIT3RRtUFJ7HivPZRqj1GsMnpdAM11JJ1RuDpY0yAOAAzYtAAAvC5DRlAzH5UsQo6x4lvwGBgC46m2kPEWJ4LgzAw9bH2IfNkFxYjWEhKFpY8JCVxJkFSP4TwzjoCU3ZMggA7A3D6NsQ5WK0ko4RCDcmtgKZ1ABySBF4JsZAOxDiT7ZJQW4xJN0UkR3SbmKK2TKaIIAByFIFuYpJPBvHlNtC06JjiXEiHZDU-JCT6nTLnulPxhghnLNWXJMQQE74PxyHkTkxyDT3wPsHBo9lATKiGpCVh0BxisDZjHcy8Bf4xXAe9bYil9GvyATKdKu9QAHzvL+GJp8gHn0vi5FZtTb5XNObKZ+ILgV5FBe-GYhAv5IvyZgjZ2xZQgLAW9Mls9FHiXoYQmABLVmYJ4douGuilJsgMQQ1RWZ9nIu6Q0nggKbbzyiW02JiLVnfN4gKsJLJhWcvSv0zJATJUFKOZZVFB90USHshIIAA sequence diagram] that showcases how CREP turns into GREP.
* Here is DGF's repository of [https://www.dgov.io <nowiki>use-cases [3]</nowiki>].
* Here is a [https://sequencediagram.org/index.html#initialData=C4S2BsFMAIBEHEBiAHAhgJ1AYxGgdsNAFID2ARtAAokDOwk6A9HiXgLQCuND0AogB7IGwAIwAoMWkwgc+YAHN0JDsmgBicCHkALYGXAcYACS3a2AGUgA3SODhJoAZUgBHQ3iyRJGbLlQFoLgZvaVl-QkQSdA4AWxDfOWgANVRNABNUUFYqEhJwMUg8NIkpBPDFZVUBVBjkKDFoaFKZPwIKlXVNHQV0VABPaAB5ADNhtgBhbVQQPEZHKbSSAHcGpp8WxKD0aHgSKwEhTAAGeI3w6AB1ajoTxuawgK2+QWFxO-WHwiulZFpUt+ghWKjVW91aPUqQ3Yk2meBKH3BgW421IFAASq5DHQGMxWGwDq8JO9QoiLoNkMhxGDEtQ8uIiWsSZtkc9DsAAEyghGJb4kX40VKc4llAK08BCxkiwhigDMqyB0AKRQkamgJh00EsNjsjmA0SwwA46C8WzYAD5ItEYgAuY2oYpPc3QS2xa38whiU0WqKulRWEj0RiLJZ4f30aB0VAAa0gNE9yPNLptxqsIEgS2gAAphuBUPJGECotwAJTxhiJn025A-P7gGhZmJcQg4egAOiaNYFdegWH8PbAkAAOnhoCm00saAAaJq0YBTjt82v1mbQfxpaDD5SEEjDHskGKNvBgAZYVj0AilpMAHjYKXSmRA2TF1tPB44R+AAysqRAGXo9ZYNJY1XIpATSeRgM3XcLlgABBeBARoIQcFScABiWbRCmgGJWEgAZCnodB62HYBMIjPpsRiVsVR2PZWWES5HHGHs7SyEdMxoBZljRXhKFLdpVEoTtUmgI5rVomx0DwVBPFWRonl2fYXmOaBzTNS5rmAI5oHEmgODIGIwBnOhoGAEgWMgTIYAuJjFSBMRVQJTBoBERjxjEASqGEuwRHEi4oijJEZnkaB5D2BhpI8LxGnklknNEVSzXU3l+X+HSI30wzCHdEEWHDcLthS2tXPErhgrcuSNO81y1I02dtPEltY0zI5WyOERSyVYEQVVVEcmxdAPKUDohMXLtoHZPyAugDE3FjYAxDFEQ1LJClfNgxRIGAszjMIAArcgxBk0Bv3DVbKTEPKYAKy5yUpa0yrwEKbPcmKkR4eL2US5K7t8iNgGjYDUG-EBczIUHj0qp54pqpLbrW9LIxjetgemMGIc-MsUXIGbMXmnEWHYGGVt+609IMoyABIRCOWnoGGKJoCWab7Uk0AAC9IHXMgBjgwYJCu6AbqW60ADk8XiiNbEgA160ZpJKClqBZeHIChCKcrsherNeiKfclZltjOqx4gcdmrFCNxInlNEEm1utPr3R4LBtFybh62GJQYlXClNF7Ag40q87YfU6Gba+8SlhmetSJgA6KHB7rGk80bUrsGVxMl2CsFfOoQE44D-PQQLzfmpmwG0S5pt4VMgKiqG4vD76qrGwVEcysB63dIPU9rL7aqKrsSv7f8WtbGVSzewe24HzSGpH5rWvayeYrDtl+7hsUI+gGYwBAKzkh-P9HxHMUs2GLbxKOYtFWOkBTpgLfKq35uX-EwyAkzGnaZ4vjFUF4WuRxTpQuDMBkjQX6z28tvasfI8wH0zAANgAJxHAuL-G+PdoHNzXsIGBPx4HhiQag9BvEV6NGnsAqBrdwDD1gb8eQCCZS01IXxMQlD2Q3iflPXuQ8cGNzZHQmsjCiHMLQRgxUHDzTcJipAuGVx6rpXoSQERkAv7iLIT3RRtUFJ7HivPZRqj1GsMnpdAM11JJ1RuDpY0yAOAAzYtAAAvC5DRlAzH5UsQo6x4lvwGBgC46m2kPEWJ4LgzAw9bH2IfNkFxYjWEhKFpY8JCVxJkFSP4TwzjoCU3ZMggA7A3D6NsQ5WK0ko4RCDcmtgKZ1ABySBF4JsZAOxDiT7ZJQW4xJN0UkR3SbmKK2TKaIIAByFIFuYpJPBvHlNtC06JjiXEiHZDU-JCT6nTLnulPxhghnLNWXJMQQE74PxyHkTkxyDT3wPsHBo9lATKiGpCVh0BxisDZjHcy8Bf4xXAe9bYil9GvyATKdKu9QAHzvL+GJp8gHn0vi5FZtTb5XNObKZ+ILgV5FBe-GYhAv5IvyZgjZ2xZQgLAW9Mls9FHiXoYQmABLVmYJ4douGuilJsgMQQ1RWZ9nIu6Q0nggKbbzyiW02JiLVnfN4gKsJLJhWcvSv0zJATJUFKOZZVFB90USHshIIAA sequence diagram] that showcases how CREP turns into GREP.
* TODO:
** Changing parameters: [TBD]
** Storage: [TBD]
** Corner cases: [TBD]
** Rethink redistribution mechanism: [TBD] Uniswap? Scaling issues already exist.


== References ==
== References ==

Latest revision as of 09:42, 7 November 2023

Version 1: Collaboration with Odra[edit | edit source]

Background:[edit | edit source]

DAOs don't exist, but they should. DGF intends to build the first DAO. While code can implement the letter of the law, and DAO solutions thus far have focused on this aspect of governance, the question of how to create sustainable revenue generating (both for-profit and non-profit) DAOs is essentially a question of how the spirit of the law can persist amidst an ever-changing situational landscape. DGF proposes to answer this question by combining the forces of funding, publishing, and governance in a reputation system that allows values to be showcased based on hyperparameter choices. The solution uses hyperinflationary, non-tradeable, evolutionary, (non-negative real valued) reputation NFTs embedded in a tunable, clonable, appendable system that outlines the requirements for a sustainable DAO.

In short DGF is a citation system in a forum with a validation pool (VP) using the idea of non-tradeable reputation as the primary incentive over money. The forum will be organized by a weighted directed acyclic graph (WDAG) wherein publishing, citing, and reviewing work requires staking reputation up or down - requiring different identity and data storage strategies. Reputation percolates through the graph and is governed by a number of voting typologies (in order to better address Arrow’s Theorem). Facets of the voting typologies and WDAG are hyperparameterized, which allows the system to shift fluidly between incentivizing innovation and validation (which addresses Goodhart’s Law).

Basics:[edit | edit source]

A consensus mechanism is the easiest way to describe the utility of the system - please refer to the Block producer DAO page. To populate this WDAG, there are different user types and post types that will cite each other with various weights to earn reputation that can later be used to earn money and or voting power. The basic user types are people that in or out of the DAO. The basic post types include posts, and proposals where proposal types can be specified (work, review, governance etc.).

The primitives for a multi-REP DAO are:

  1. chat REP (CREP) class
  2. work REP (WREP) class
    Sequence diagram showcasing the Core mechanism of DGF.
    Sequence diagram showcasing that DGF is basically a WDAG with a percolating citation structure managed by a validation pool.

Specifications:[edit | edit source]

See Google Doc [2].

Terms[edit | edit source]

  • Decentralized Autonomous Organization (DAO)
  • Work Reputation (WREP)
  • Validation Pool (VP)
  • Work Smart Contract (WSC)
  • Work Evidence (WEV)

Overview[edit | edit source]

There are three ways to earn Work Reputation (WREP).

  1. Contribute to defining a Work Smart Contract (WSC)
    1. as the author of a WSC, or
    2. as the author of a post cited by a WSC, or
    3. as the author of a post cited by a post cited by a WSC, etc. (depth limited by Reference Chain Limit parameter).
  2. Contribute to performing work that fulfills a WSC
    1. as the author of a Work Evidence post (WEV), or
    2. as the author of a post cited by a WEV, or
    3. as the author of a post cited by a post cited by a WEV, etc. (depth limited by Reference Chain Limit parameter).
  3. Staking WREP in a Validation Pool (VP),
    1. to validate a VP,
    2. or to police a VP.

Note that WREP is ONLY minted in proportion to fungible tokens submitted to a Validation Pool (VP).

When fungible tokens are submitted to a WSC[edit | edit source]

The WSC must select a worker to whom the work is assigned.

The recommended way to select a worker is as follows:

  • DAO members (a.k.a. WREP holders) indicate their availability by staking their WREP toward the WSC.
  • WSC selects a worker randomly, with probability of selection for each worker weighted by that worker’s staked WREP.
  • To handle the initial case when no WREP has yet been minted, the WSC can accept an availability stake of 0 WREP, and all such stakes should be given equal weight in the random selection.
When WEV is submitted to a WSC[edit | edit source]
  1. The WSC initiates a VP targeting the WEV.
  2. The fungible tokens are transferred to the VP.
  3. The WREP staked by the worker toward availability is transferred to stake in favor of the VP.
  4. All WREP holders have an opportunity to stake for or against the VP.
When VP is initiated[edit | edit source]
  1. WREP is minted in proportion to the fungible tokens received. The proportion is determined by the WREP Minting Ratio parameter.
When VP is approved[edit | edit source]
  1. Minted WREP is transferred to the WEV post, and propagated to its authors and citations, up to the depth specified by the Reference Chain Limit parameter.
  2. Fungible tokens are distributed to all WREP holders in proportion to their WREP.
When VP is rejected[edit | edit source]
  1. Minted WREP is transferred to the DAO members who staked against the WEV.
  2. Fungible tokens are distributed to all WREP holders in proportion to their WREP.

Note that there may be multiple alternative WSC in play at a given time.

In order to promote a healthy culture, WSC and WEV SHOULD cite contributions of other DAO members.

Members SHOULD vote against WEV that violates the community’s standards.

Members SHOULD vote against WEV that is submitted to an improper WSC.

Smart Contracts[edit | edit source]

Forum[edit | edit source]
  • Contains Posts
    • Each post may have one or more authors
      • If a post has multiple authors, each author may have a weight
      • Author weights sum must equal 1
    • Each post may cite zero or more other posts
      • Each citation has a weight between -1 and 1
      • Sum of all positive weights must not be greater than 1
      • Sum of all negative weights must not be less than -1
  • Propagates WREP
    • To cited posts, recursively up to Reference Chain Limit
    • To post authors
Validation Pool[edit | edit source]
  • Accepts fungible tokens to initiate a VP targeting a given Post
  • Mints WREP in proportion to fungible tokens
    • Parameter: Minting Ratio
  • Accepts WREP stakes for or against the targeted Post
  • Awards WREP to winning voters, whether for or against
  • If the VP is approved, awards WREP to the targeted post
Reputation[edit | edit source]
  • Extends ERC 721 (Non-fungible token)
  • Associates a floating point value with each token
  • Allows VP and Forum to transfer value from one token to another, as specified above
Work[edit | edit source]
  • Accepts WREP stakes for worker availability
  • Accepts fungible token fees from customers
  • Assigns work to workers
  • Accepts WEV submissions
  • Initiates VP to approve WEV

User Scenarios:[edit | edit source]

  • Here is DGF's repository of use-cases [3].
  • Here is a sequence diagram that showcases how CREP turns into GREP.
  • TODO:
    • Changing parameters: [TBD]
    • Storage: [TBD]
    • Corner cases: [TBD]
    • Rethink redistribution mechanism: [TBD] Uniswap? Scaling issues already exist.

References[edit | edit source]

[1]Odra's Bid Escrow 2.0 document for CRDAO

[2]DGF DAO Reputation On-Chain Requirements

[3]DGF Website