From 5d32c39912190764faf25aa4fd0ef79845b122e7 Mon Sep 17 00:00:00 2001 From: Manfred Touron <94029+moul@users.noreply.github.com> Date: Tue, 11 Jul 2023 13:00:27 +0200 Subject: [PATCH] docs(proof-of-contribution): bootstrap document (#954) --- docs/proof-of-contribution.md | 97 +++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 docs/proof-of-contribution.md diff --git a/docs/proof-of-contribution.md b/docs/proof-of-contribution.md new file mode 100644 index 00000000000..e839a3cdf1f --- /dev/null +++ b/docs/proof-of-contribution.md @@ -0,0 +1,97 @@ +# Proof of Contribution + +The gno.land chain utilizes a reputation-based consensus mechanism instead of proof-of-stake. +This mechanism emphasizes values and expertise to carry out important tasks like choosing validators and allocating rewards. + +Meta issue: [#918](https://github.com/gnolang/gno/issues/918). + +Presentation: https://github.com/gnolang/workshops/tree/main/presentations/2023-06-06--buidl-asia--manfred. + +## Main Concepts + +- Validator set determined by `worxDAO`, a DAO serving as the authority. +- Governance and distribution managed through smart contracts. +- Chain monitors contract changes (e.g., `valset`) to configure `Tendermint2`. +- No staking involved in consensus. +- Chain fees distributed to contributors and validators, not stakers. +- Chain fees accumulated in a contract-managed bucket for efficient distribution. +- Validators likely have equal power (1). +- Validators do not vote like in PoS, but may participate in dedicated governance topics, maybe. + +## High-level schema + + ____ ____ ____ __ _ __ __ _ + / __ \_________ ____ / __/ ____ / __/ _________ ____ / /______(_) /_ __ __/ /_(_)___ ____ _____ + / /_/ / ___/ __ \/ __ \/ /_ / __ \/ /_ / ___/ __ \/ __ \/ __/ ___/ / __ \/ / / / __/ / __ \/ __ \/ ___/ + / ____/ / / /_/ / /_/ / __/ / /_/ / __/ / /__/ /_/ / / / / /_/ / / / /_/ / /_/ / /_/ / /_/ / / / (__ ) + /_/ /_/ \____/\____/_/ \____/_/ \___/\____/_/ /_/\__/_/ /_/_.___/\__,_/\__/_/\____/_/ /_/____/ + + +---------------------------------------------------------------+ +------------------------------------+ + | gno.land/{p,r} contracts | | gno.land | + | | | | + | +-----------------------------+ +---------------------+ | | | + | | | | r/system/valset | | | | + | | | +->| |--+------+ | +-------------+ | + | | worxDAO | | | validator set | | | | | | | + | | |--+ +---------------------+ | +-------+->| Gno SDK |----------+ | + | | the "Contributors DAO" | | | r/system/chaincfg | | | | | | | | + | | | +->| |--+------+ | +-------------+ | | + | | | | chain configuration | | | | | | + | +-----------------------------+ +---------------------+ | | | | | + | | +---------------------+ | | v v | + | v | r/system/rewards | | | +-------------+ +-------------+ | + | +--------------------+ | | | | | | | | | + | | Evaluation DAO | |distribute rewards to| | | | TM2 |-->| GnoVM | | + | | | | contributors and | | | | | | | | + | |Qualification system| | validators | | | +-------------+ +-------------+ | + | |to distribute ^worx | | +------+ | | | | | | + | +--------------------+ | |Bucket|<- - -|- + -chain fees -|- - - - - | | + | +-------+------+------+ | | | | + +---------------------------------------------------------------+ +---------------------------+--------+ + ^ | + | | + +---------------user TXs can publish and call contracts--------------------+ + +## Components + +### `gno.land` + +The main blockchain powered by the `TM2` engine. It offers permissionless smart +contracts with the `GnoVM` and can self-configure from contracts using the +`GnoSDK`. + +### `worxDAO` + +The governance entity consisting of contributors, responsible for governing the +`r/system` realms, including `valset` and `chaincfg`. + +Meta issue: [#872](https://github.com/gnolang/gno/issues/872). + +### `r/system/valset` + +A realm (smart contract) that enables the `worxDAO` to update the validator set. +Similar to a PoA system, the authority is decentralized in a DAO. + +Additionally, this contract is queried by `gno.land` to configure `TM2` when +changes are made to the validator set. + +### `r/system/chaincfg` + +A governance-backed smart contract that allows for chain configuration through +governance. + +It helps prevent unnecessary upgrade campaigns for minor updates. + +### Evaluation DAO + +The system employed by the `worxDAO` to incentivize contributions with `^worx` tokens. + + +---------------1. propose a contribution-------------+ + | v + +--------------+ +----------------+ + | |--------3. improve, negotiate------->| | + | contributor | | Evaluation DAO | + | |<-------4. distribute ^worx----------| | + +--------------+ +----------------+ + ^ | + +---------------2. review, challenge------------------+