Skip to content

Commit ad0e019

Browse files
authored
flesh out governance section (#59)
governance: flesh out governance section, check parameters current
1 parent 41e4e49 commit ad0e019

File tree

2 files changed

+39
-14
lines changed

2 files changed

+39
-14
lines changed

pages/gov.mdx

+39-14
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,67 @@
22

33
Penumbra has a decentralized governance system intended to help the community of
44
Penumbra users and stakeholders coordinate and express their opinions about the
5-
future of the protocol. As a decentralized protocol, no single entity is in
6-
control of the network. Penumbra's governance system does not have control over
5+
future of the protocol. As a decentralized protocol, no single entity is in
6+
control of the network. Penumbra's governance system does not have control over
77
the network either, and acts as a coordination and signaling mechanism for the
88
community.
99

1010
Penumbra's governance system is modeled after the design of the Cosmos SDK:
1111
validators cast default votes on behalf of their delegators, which delegators
1212
can permissionlessly override.
1313

14+
## Proposals
15+
16+
Anyone can submit a governance proposal by depositing the required deposit of tokens. This permissionless model enables all stakeholders to participate in the governance process.
17+
18+
### Deposit
19+
20+
A proposal submitter must submit an escrow deposit. This deposit may be claimed after the voting concludes whether or not the proposal passes, or if the proposal is withdrawn.
21+
22+
The deposit cannot be returned if the number of no votes exceeds the network's current proposal slash threshold parameter. The current required proposal deposit is 10 UM (set by the `proposalDepositAmount` parameter)
23+
1424
### Proposal Types
1525

1626
There are several types of proposal:
1727

1828
- **Signaling**: the primary type of proposal, which has no effect on the chain. Signaling proposals allow collecting community sentiment as part of the process for reaching consensus.
1929
- **Upgrade**: a special kind of signaling proposal that also coordinates a chain halt. Once the chain halts, full node operators can choose whether to apply an upgrade to a new software version.
20-
- **Emergency**: a special kind of signaling proposal that also coordinates a chain halt. Emergency proposals have special acceptance criteria but limited powers, described below.
30+
- **Emergency**: a special kind of signaling proposal that also optionally coordinates a chain halt. Emergency proposals have special acceptance criteria but limited powers, described below.
2131
- **Parameter Change**: adjusts technical parameters for the chain's operation.
2232
- **(Un)Freeze IBC Client**: allows (un)freezing an IBC client for a counterparty chain, e.g., in the event the community determines that a counterparty chain was compromised.
2333
- **Community Pool Spend**: spends funds from the community pool. _Currently disabled via chain parameter pending community consensus around the role of the community pool and to minimize protocol risk_.
2434

25-
To deter spam, proposal submission requires posting a deposit, which can be
26-
slashed if the community rejects the proposal with an overwhelming margin (on
27-
mainnet, >80% rejection).
28-
29-
### Voting
35+
## Voting
3036

3137
Both delegators and validators can vote on proposals. Validator votes are
32-
public, and act as default votes for their delegators. Delegator votes are
33-
private, and override the validator's vote. Delegators can vote only if they
34-
held their delegation tokens when the proposal was submitted.
38+
public, attributable, and act as default votes for their delegators. Delegator votes are
39+
anonymous, and override their portion of the validator's vote. Delegators can vote only if they
40+
held delegation tokens to active validators when the proposal was submitted.
41+
42+
### Vote Types
43+
44+
There are three types of vote:
45+
* `Yes`
46+
* `No`
47+
* `Abstain`
48+
49+
Penumbra does not have a `NoWithVeto` vote type. Proposal deposits will be slashed if the number of no votes exceeds the network's current proposal slash threshold parameter (80% by default, set by the `proposalSlashThreshold` parameter). The slashing mechanism exists to deter spam proposals.
50+
51+
Votes cannot be changed after they are cast.
52+
53+
### Pass Criteria
54+
55+
At the end of the voting period, a proposal passes, fails, or is slashed. The proposal can also be withdrawn before the voting period ends. A withdrawn proposal can still be slashed. This diagram illustrates the proposal lifecycle:
56+
57+
<picture>
58+
<img src="./images/governance-diagram.png" />
59+
</picture>
3560

3661
Non-emergency proposals pass as long as they achieve:
3762

38-
- **Duration**: voting ends after a specified period, allowing delegators to vote (initially 48h);
39-
- **Quorum**: the minimum percentage of staked tokens that must have voted (40% on mainnet);
40-
- **Threshold**: the percentage of YES votes out of all votes must be above this threshold (67% on mainnet).
63+
- **Duration**: voting ends after a specified period, allowing delegators to vote (initially 48h, set by the `proposalVotingBlocks` parameter);
64+
- **Quorum**: the minimum percentage of staked tokens that must have voted (40% on mainnet, set by the `proposalValidQuorum` parameter);
65+
- **Threshold**: the percentage of YES votes out of all votes must be above this threshold (67% on mainnet, set by the `proposalPassThreshold` parameter).
4166

4267
Emergency proposals have special criteria: they pass immediately as soon as
4368
1/3+1 of the stake weight votes YES, without waiting for delegator votes.

public/images/governance-diagram.png

248 KB
Loading

0 commit comments

Comments
 (0)