-
Notifications
You must be signed in to change notification settings - Fork 373
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(proof-of-contribution): bootstrap document (#954)
- Loading branch information
Showing
1 changed file
with
97 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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------------------+ |