EthereumCommonwealth / Roadmap

GNU Lesser General Public License v2.1
57 stars 17 forks source link

Decentralized governance system. #53

Open Dexaran opened 5 years ago

Dexaran commented 5 years ago

Callisto Treasury Governance system.

Abstract

The following describes a decentralized funding mechanism for development and maintenance of Callisto Network platform. Anyone can submit a project proposal and the stakeholders will decide on its necessity through a transparent voting procedure. The system is fully verifiable. Vote records are preserved in Callisto Network blockchain.

Core Components

1. Treasury

There is a Treasury in Callisto network. 10% of each mined block reward is sent to a special address where funds intended for further network development are stored.

2. Cold Staking.

There is a special Cold Staking mechanism in Callisto Network. Cold Staking is intended to incentivise longterm coin holders by paying interest. 20% of each mined block reward is allocated for Cold Staking.

Cold Staking is implemented in smart-contract.

Motivation

Decentralized governance system research, development and implementation are the main goals of Callisto Network as it is described in the whitepaper.

Specification

Treasury Governance system allows Callisto community to manage the distribution of a certain part of Callisto Treasury funds. It is planned to allocate 35% of total Treasury for community funding at HardFork 2. The remaining Treasury funds will be managed by Team Callisto as it was before.

The funding procedure includes several stages. An important point is that this process is iterative. We will call each iteration a treasury epoch. A treasury epoch is a period of time during which a predefined set of voters decides on funds allocation among predefined set of proposals.

Community Governed Treasury is a smart-contract. The source code is located here.

NOTE: This is a very first implementation which is still in development!

Proposal

Proposal is a record of funding request.

Proposals preserve the following information about the funding goal:

  1. Name - unique proposal identifier.

  2. URL - link to proposal text. NOTE: Treasury Governance smart-contract does not preserve proposal texts.

  3. Hash - hash of proposal text. As Treasury Governance smart-contract does not preserve proposal text, it is necessary to have a verification signature.

  4. Start Epoch - identifier of Treasury Epoch at which proposal will be voted. Proposal can start receiving funds only in the next epoch.

  5. End Epoch - number of epoch, at which proposal will receive the last payment.

  6. Address - this address will receive funds once per epoch if the proposal is accepted.

  7. Payment amount - amount of funds requested by this proposal per epoch.

  8. Vote records - amount of votes FOR/ AGAINST/ ABSTAIN.

  9. Status - "awaiting voting". "accepted", "rejected", "withdrawn".

Proposal submission

Community Treasury smart-contract allows anyone to submit a funding proposal. Proposal creation requires a small fee (500 CLO) to prevent spam/dummy proposals.

Proposals are processed in 27-days length funding epochs. Treasury Epoch is a period of time, which allows Voters to review proposals.

Proposal lifecycle:

  1. Proposal is submitted in epoch X.

  2. Proposal is reviewed and voted by Voters in epoch X + 1.

  3. Proposal starts to receive payments in epoch X + 2.

This ensures that the proposal will be under consideration for at least one full epoch. This will give the voters enough time to review multiple proposals.

Voters

Cold Stakers can become Voters. Voters review proposals and vote. Each voter has weight which is equal to his(her) Cold Staking Deposit. Thus, voters with more CLO has more weight.

Voters can only cast "FOR", "AGAINST" or "ABSTAIN" votes. Once a cold staker has casted a vote, he can not withdraw his funds from the Cold Staking until the end of current Treasury Epoch (at which he casted a vote).

Vote casting is a call of a function in smart-contract. Voters can only cast their votes during the voting stage of a proposal.

NOTE: It is planned to implement a mechanism of voting incentivization. Currently, voters do not receive any financial benefits.

Proposal evaluation

Proposal can be evaluated after its voting stage. There are two conditions that must be satisfied by the voting results in order for the proposal to start receiving funding: (1) proposal voting score must surpass a minimal threshold and (2) the number of votes FOR should be greater than the number of votes AGAINST.

Currently, voting threshold is 50%. Total score of this proposal votes (FOR + AGAINST + ABSTAIN weight) must be greater than 50% of total voting weight of all Cold Stakers who declared themselves voters.

Proposal evaluation function must be called to apply the results of proposal evaluation. If the proposal is accepted then it receives the first payment immediately.

Multiepoch proposals

It is possible to request funding for multiple epochs by setting the end epoch.

If the proposal is multiepoch, then proposal creator must request funding manually once per epoch. Multiepoch proposals are voted and processed similarly to single payment proposals.

Re-evaluation of a multiepoch proposal

It is possible that community priorities or community itself have changed while the proposal was at the implementation stage. For example, voters who voted on a multiepoch proposal has left Callisto project and their votes must be subtracted from the proposal score. As the result, it could be necessary to re-evaluate accepted proposals.

Anyone can initiate the re-evaluation of a multiepoch proposal. In this case, proposal score and all vote records will be preserved from the previous voting. In the next treasury epoch, when the creator of re-evaluated proposal will request funding, the proposal will be re-evaluated automatically. If the proposal remains "accepted" then the creator of the proposal will receive funds immediately as if there were no re-evaluation.

yuriy77k commented 5 years ago

Automatical sending fonds by smart contract, based on voting, is not a good idea.

Due to a lack of a control mechanism, a scammer could make a good proposal (listing on an exchange, development of cool features, etc.) but after receiving money - will do nothing.

IMHO it will be even worse then ICO on Ethereum, where about 90% of them were scams. ICO investors spent their own money, therefore analyzed ICO proposal, team, project website, whitepaper. And all of these measures did not help to avoid scammers in most cases.

By voting for proposals, the voters lose nothing, therefore, no much motivation to make an in-depth analysis of the project. In this situation, scammers will be right at home.

Dexaran commented 5 years ago

@yuriy77k I would say that this payment scheme is not my own invention, but an already-existing governance system. DASH is an example: https://www.dash.org/governance/

I would say that scammers definitely can affect the system, but it is still better to have a funding mechanism rather than stop the development of the main goal of Callisto Network.

Anyways, manual funding destribution is not decentralized enough.

MyCryptoOdyssey commented 5 years ago

Some Comments & Questions on the proposed system:

"Community Treasury smart-contract allows anyone to submit a funding proposal. Proposal creation requires a small fee (500 CLO) to prevent spam/dummy proposals."

A small fee could be equivalent to a % of the request. Right now 500 CLO is $2.25 cents and seems arbitrary. For example if you are requesting 60,000 CLO for project you would need to fund X percentage for the request. Meaning the more you request the more upfront investment you need to make. (Still not a 100% solution but I think a better option)

How will proposals present to voters? (Like on the current proposal site) or will the proposals in the new governance system be more robust and structured.

Will there be any gate keeping mechanism to reject proposal that do not meet submission standards or will this be via the request form process?

Will individuals be able to conduct presentations or more robust interactions to help voters understand the goals through CLO sponsored AMAs or through Discord or Telegram?

Dexaran commented 5 years ago

A small fee could be equivalent to a % of the request. Right now 500 CLO is $2.25 cents and seems arbitrary. For example if you are requesting 60,000 CLO for project you would need to fund X percentage for the request. Meaning the more you request the more upfront investment you need to make. (Still not a 100% solution but I think a better option)

This may be a good option, but for now 500 should be enough. Gas prices are very low on CLO but no one is trying to spam the network even with this prices.

How will proposals present to voters? (Like on the current proposal site) or will the proposals in the new governance system be more robust and structured.

Proposal should contain the URL where it will be described formally. We will release the guidelines for proposal representations later.

Will there be any gate keeping mechanism to reject proposal that do not meet submission standards or will this be via the request form process?

For the first version - no.

Will individuals be able to conduct presentations or more robust interactions to help voters understand the goals through CLO sponsored AMAs or through Discord or Telegram?

We will do out best to help voters understand the system but we need mostly technically-educated voters to vote in the initial stages.