1
1
# Governance
2
2
3
- Governance is a program the chief purpose of which is to control the upgrade of other programs through democratic means.
4
- It can also be used as an authority provider for mints and other forms of access control as well where we may want
5
- a voting population to vote on disbursement of access or funds collectively.
3
+ Governance is a program the chief purpose of which is to create Decentralized Autonomous Organizations (DAOs).
4
+ It can be used as an authority provider for mints, token accounts and other forms of access control where for example
5
+ we may want a voting population to vote on disbursement of funds collectively.
6
+ It can also control upgrades of itself and other programs through democratic means.
6
7
7
8
## Architecture
8
9
@@ -49,7 +50,7 @@ from the governed token account.
49
50
50
51
### How does the authority work?
51
52
52
- Governance can handle arbitrary executions of code, but it's real power lies in the power to upgrade programs .
53
+ Governance can handle arbitrary executions of code. In the program governance case it can execute program upgrades .
53
54
It does this through executing instructions to the bpf-upgradable-loader program.
54
55
Bpf-upgradable-loader allows any signer who has Upgrade authority over a Buffer account and the Program account itself
55
56
to upgrade it using its Upgrade command.
@@ -65,7 +66,7 @@ mint and transfer instructions for the governed accounts.
65
66
66
67
### Proposal accounts
67
68
68
- A Proposal is an instance of a Governance created to vote on and execute given set of changes .
69
+ A Proposal is an instance of a Governance created to vote on and execute given set of instructions .
69
70
It is created by someone (Proposal Owner) and tied to a given Governance account
70
71
and has a set of executable instructions to it, a name and a description.
71
72
It goes through various states (draft, voting, executing, ...) and users can vote on it
@@ -101,17 +102,31 @@ When a Proposal is created and signed by its Signatories voters can start voting
101
102
equal to deposited governing tokens into the realm. A vote is tipped once it passes the defined ` vote_threshold ` of votes
102
103
and enters Succeeded or Defeated state. If Succeeded then Proposal instructions can be executed after they hold_up_time passes.
103
104
104
- Users can relinquish their vote any time during Proposal lifetime, but once Proposal it decided their vote can't be changed.
105
+ Users can relinquish their vote any time during Proposal lifetime, but once Proposal is decided their vote can't be changed.
105
106
106
107
### Community and Councils governing tokens
107
108
108
109
Each Governance Realm that gets created has the option to also have a Council mint.
109
110
A council mint is simply a separate mint from the Community mint.
110
111
What this means is that users can submit Proposals that have a different voting population from a different mint
111
- that can affect the same program . A practical application of this policy may be to have a very large population control
112
+ that can affect the same DAO . A practical application of this policy may be to have a very large population control
112
113
major version bumps of Solana via normal SOL, for instance, but hot fixes be controlled via Council tokens,
113
114
of which there may be only 30, and which may be themselves minted and distributed via proposals by the governing population.
114
115
116
+ Another important use case is to use the Council for DAO inception. At the beginning of a DAO life
117
+ there are lots of risks and unknowns.
118
+ For example it's not known whether the community of token holders would engage and participate in DAO votes.
119
+ And if it would engage then to what extent. It means it can be difficult for example to decide how many votes are
120
+ required for a proposal to be successfully voted on.
121
+ This is why in order to avoid traps and potentially irreversible actions the Council can be used as a safety net
122
+ in a similar way to Multisig to moderate and supervise the voting process at the DAO inception.
123
+ Once the newly born DAO goes through several successful proposal votes and everything is going smoothly
124
+ the council can be removed from the DAO through a community vote.
125
+
126
+ The Council can also be used for protocols and communities which haven't launched their token yet.
127
+ In such cases the DAO can be setup with the yet to launch token and the Council which would governed
128
+ the DAO until the token is distributed.
129
+
115
130
### Proposal Workflow
116
131
117
132
![ Proposal Workflow] ( ./resources/governance-workflow.jpg )
0 commit comments