From fe5a36b75e4ef533494f879f20febfdf4c5bf487 Mon Sep 17 00:00:00 2001 From: "Mike Hornan [ABLE]" <112007661+Hornan7@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:17:28 -0400 Subject: [PATCH 1/2] Update CIP-1694 - Replace "New Constitutional Committee" governance action by "Update Committee" - Replace "Update to the Constitution" governance action by "New Constitution". This is how it is called on-chain when submitting this governance action and when querying the its tag. I also changed it for semantic reasons. - Replace "Proposal policy" by "Guardrails Script". This wording is mainly used broadly by everyone and is also the wording used in the Interim constitution Article VIII, Apendix 1, (Automated Checking ("Guardrails Script")). - Update each parameters name tags as seen on chain. (conway era) - Replace "Pre-defined Drep" name by "Pre-defined voting option" at 3 different placed in the CIP-1694 (Which got me in big trouble, but lets not go there. =P) --- CIP-1694/README.md | 141 +++++++++++++++++++++++---------------------- 1 file changed, 71 insertions(+), 70 deletions(-) diff --git a/CIP-1694/README.md b/CIP-1694/README.md index 79844313c..926fb60ff 100644 --- a/CIP-1694/README.md +++ b/CIP-1694/README.md @@ -158,7 +158,8 @@ How any private companies, public or private institutions, individuals etc. cho - [Constitutional committee keys](#constitutional-committee-keys) - [Replacing the constitutional committee](#replacing-the-constitutional-committee) - [Size of the constitutional committee](#size-of-the-constitutional-committee) - - [Term limits](#term-limits) + - [Terms](#terms) + - [Guardrails Script](#guardrails-script) + [Delegated representatives (DReps)](#delegated-representatives-dreps) - [Pre-defined Voting Options](#pre-defined-voting-options) - [Registered DReps](#registered-dreps) @@ -224,10 +225,10 @@ The constitutional committee will use a hot and cold key setup, similar to the e #### Replacing the constitutional committee The constitutional committee can be replaced via a specific governance action -("New constitutional committee", described below) that requires the approval of both +("Update committee", described below) that requires the approval of both the **SPOs** and the **DReps**. The threshold for ratification might be different depending on if the governance is -in a state of confidence or a state of no confidence. +in a normal state or a state of no confidence. The new constitutional committee could, in principle, be identical to or partially overlap the outgoing committee as long as the action is properly ratified. This might happen, for example, if the electorate has collective confidence in all or part of the committee and wishes to extend its term of office. @@ -236,14 +237,14 @@ This might happen, for example, if the electorate has collective confidence in a #### Size of the constitutional committee Unlike the Shelley governance design, the size of the constitutional committee is not fixed and can be any nonnegative number. -It may be changed whenever a new committee is elected ("New constitutional committee and/or threshold"). +It may be changed whenever a new committee is elected ("Update committee"). Likewise, the committee threshold (the fraction of committee `Yes` votes that are required to ratify governance actions) is not fixed and can also be varied by the governance action. This gives a great deal of flexibility to the composition of the committee. In particular, it is possible to elect an empty committee if the community wishes to abolish the constitutional committee entirely. Note that this is different from a state of no-confidence and still constitutes a governance system capable of enacting proposals. There will be a new protocol parameter for the minimal size of the committee, -itself a nonnegative number called `ccMinSize`. +itself a nonnegative number called `committeeMinSize`. #### Terms @@ -269,16 +270,16 @@ The maximum term is a governance protocol parameter, specified as a number of ep During a state of no-confidence, no action can be ratified, so the committee should plan for its own replacement if it wishes to avoid disruption. -#### Proposal policy +#### Guardrails Script While the constitution is an informal, off-chain document, there will also be an optional script that can enforce some guidelines. This script acts to supplement the constitutional committee by restricting some proposal types. For example, if the community wishes to have some hard rules for the treasury that cannot be violated, a script that enforces -these rules can be voted in as the proposal policy. +these rules can be voted in as the guardrails script. -The proposal policy applies only to protocol parameter update and +The guardrails script applies only to protocol parameter update and treasury withdrawal proposals. @@ -454,8 +455,8 @@ A governance action is an on-chain event that is triggered by a transaction and | Action | Description | |:--------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------| | 1. Motion of no-confidence | A motion to create a _state of no-confidence_ in the current constitutional committee | -| 2. New constitutional committee and/or threshold and/or terms | Changes to the members of the constitutional committee and/or to its signature threshold and/or terms | -| 3. Update to the Constitution or proposal policy | A modification to the Constitution or proposal policy, recorded as on-chain hashes | +| 2. Update committee and/or threshold and/or terms | Changes to the members of the constitutional committee and/or to its signature threshold and/or terms | +| 3. New Constitution or Guardrails Script | A modification to the Constitution or Guardrails Script, recorded as on-chain hashes | | 4. Hard-Fork[^2] Initiation | Triggers a non-backwards compatible upgrade of the network; requires a prior software upgrade | | 5. Protocol Parameter Changes | Any change to **one or more** updatable protocol parameters, excluding changes to major protocol versions ("hard forks") | | 6. Treasury Withdrawals | Withdrawals from the treasury | @@ -467,9 +468,9 @@ They must provide a deposit of `govActionDeposit` Lovelace, which will be return The deposit amount will be added to the _deposit pot_, similar to stake key deposits. It will also be counted towards the stake of the reward address it will be paid back to, to not reduce the submitter's voting power to vote on their own (and competing) actions. -If a proposal policy is present, the transaction must include that -policy in the witness set either directly, or via reference inputs, -and any other requirements that the proposal policy makes must be +If a guardrails script is present, the transaction must include that +script in the witness set either directly, or via reference inputs, +and any other requirements that the guardrails script makes must be satisfied. Note that a motion of no-confidence is an extreme measure that enables Ada holders to revoke the power @@ -492,10 +493,10 @@ Depending on the type of governance action, an action will thus be ratified when > **Warning** > As explained above, different stake distributions apply to DReps and SPOs. -A successful motion of no-confidence, election of a new constitutional committee, +A successful motion of no-confidence, update of the constitutional committee, a constitutional change, or a hard-fork, delays ratification of all other governance actions until the first epoch after their enactment. This gives -a new constitutional committee enough time to vote on current proposals, re-evaluate existing proposals +an updated constitutional committee enough time to vote on current proposals, re-evaluate existing proposals with respect to a new constitution, and ensures that the in principle arbitrary semantic changes caused by enacting a hard-fork do not have unintended consequences in combination with other actions. @@ -517,25 +518,25 @@ The following table details the ratification requirements for each governance ac The SPO vote threshold which must be met as a percentage of the stake held by all stake pools.
A value of - means that SPO votes do not apply. -| Governance action type | CC | DReps | SPOs | -|:------------------------------------------------------------------|:---|:---------|:---------| -| 1. Motion of no-confidence | \- | $P_1$ | $Q_1$ | -| 2a. New committee/threshold (_normal state_) | \- | $P_{2a}$ | $Q_{2a}$ | -| 2b. New committee/threshold (_state of no-confidence_) | \- | $P_{2b}$ | $Q_{2b}$ | -| 3. Update to the Constitution or proposal policy | ✓ | $P_3$ | \- | -| 4. Hard-fork initiation | ✓ | $P_4$ | $Q_4$ | -| 5a. Protocol parameter changes, network group | ✓ | $P_{5a}$ | \- | -| 5b. Protocol parameter changes, economic group | ✓ | $P_{5b}$ | \- | -| 5c. Protocol parameter changes, technical group | ✓ | $P_{5c}$ | \- | -| 5d. Protocol parameter changes, governance group | ✓ | $P_{5d}$ | \- | -| 6. Treasury withdrawal | ✓ | $P_6$ | \- | -| 7. Info | ✓ | $100$ | $100$ | +| Governance action type | CC | DReps | SPOs | +|:---------------------------------------------------------------------|:---|:---------|:---------| +| 1. Motion of no-confidence | \- | $P_1$ | $Q_1$ | +| 2a. Update committee/threshold (_normal state_) | \- | $P_{2a}$ | $Q_{2a}$ | +| 2b. Update committee/threshold (_state of no-confidence_) | \- | $P_{2b}$ | $Q_{2b}$ | +| 3. New Constitution or Guardrails Script | ✓ | $P_3$ | \- | +| 4. Hard-fork initiation | ✓ | $P_4$ | $Q_4$ | +| 5a. Protocol parameter changes, network group | ✓ | $P_{5a}$ | \- | +| 5b. Protocol parameter changes, economic group | ✓ | $P_{5b}$ | \- | +| 5c. Protocol parameter changes, technical group | ✓ | $P_{5c}$ | \- | +| 5d. Protocol parameter changes, governance group | ✓ | $P_{5d}$ | \- | +| 6. Treasury withdrawal | ✓ | $P_6$ | \- | +| 7. Info | ✓ | $100$ | $100$ | Each of these thresholds is a governance parameter. There is one additional threshold, `Q5`, related to security relevant protocol parameters, which is explained below. The initial thresholds should be chosen by the Cardano community as a whole. -The two thresholds for the Info action are set to 100% since setting it any lower +All thresholds for the Info action are set to 100% since setting it any lower would result in not being able to poll above the threshold. Some parameters are relevant to security properties of the system. Any @@ -579,8 +580,8 @@ but they must be *deliberately* designed to do so. Actions that have been ratified in the current epoch are prioritized as follows for enactment: 1. Motion of no-confidence -2. New committee/threshold -3. Update to the Constitution or proposal policy +2. Update committee/threshold +3. New Constitution or Guardrails Script 4. Hard Fork initiation 5. Protocol parameter changes 6. Treasury withdrawals @@ -620,15 +621,15 @@ Every governance action will include the following: In addition, each action will include some elements that are specific to its type: -| Governance action type | Additional data | -|:-------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 1. Motion of no-confidence | None | -| 2. New committee/threshold | The set of verification key hash digests (members to be removed), a map of verification key hash digests to epoch numbers (new members and their term limit), and a fraction (new threshold) | -| 3. Update to the Constitution or proposal policy | An anchor to the Constitution and an optional script hash of the proposal policy | -| 4. Hard-fork initiation | The new (greater) major protocol version | -| 5. Protocol parameters changes | The changed parameters | -| 6. Treasury withdrawal | A map from stake credentials to a positive number of Lovelace | -| 7. Info | None | +| Governance action type | Additional data | +|:---------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 1. Motion of no-confidence | None | +| 2. Update committee/threshold | The set of verification key hash digests (members to be removed), a map of verification key hash digests to epoch numbers (new members and their term limit), and a fraction (new threshold) | +| 3. New Constitution or Guardrails Script | An anchor to the Constitution and an optional script hash of the Guardrails Script | +| 4. Hard-fork initiation | The new (greater) major protocol version | +| 5. Protocol parameters changes | The changed parameters | +| 6. Treasury withdrawal | A map from stake credentials to a positive number of Lovelace | +| 7. Info | None | > **Note** > The new major protocol version must be precisely one greater than the current protocol version. @@ -654,29 +655,29 @@ The _network_, _economic_ and _technical_ parameter groups collect existing pro In addition, we introduce a new _governance_ group that is specific to the new governance parameters that will be introduced by CIP-1694. The **network group** consists of: -* maximum block body size (`maxBBSize`) +* maximum block body size (`maxBlockBodySize`) * maximum transaction size (`maxTxSize`) -* maximum block header size (`maxBHSize`) -* maximum size of a serialized asset value (`maxValSize`) -* maximum script execution units in a single transaction (`maxTxExUnits`) -* maximum script execution units in a single block (`maxBlockExUnits`) +* maximum block header size (`maxBlockHeaderSize`) +* maximum size of a serialized asset value (`maxValueSize`) +* maximum script execution units in a single transaction (`maxTxExecutionUnits`) +* maximum script execution units in a single block (`maxBlockExecutionUnits`) * maximum number of collateral inputs (`maxCollateralInputs`) The **economic group** consists of: -* minimum fee coefficient (`minFeeA`) -* minimum fee constant (`minFeeB`) -* delegation key Lovelace deposit (`keyDeposit`) -* pool registration Lovelace deposit (`poolDeposit`) -* monetary expansion (`rho`) -* treasury expansion (`tau`) +* minimum fee coefficient (`txFeePerByte`) +* minimum fee constant (`txFeeFixed`) +* delegation key Lovelace deposit (`stakeAddressDeposit`) +* pool registration Lovelace deposit (`stakePoolDeposit`) +* monetary expansion (`monetaryExpansion`) +* treasury expansion (`treasuryCut`) * minimum fixed rewards cut for pools (`minPoolCost`) -* minimum Lovelace deposit per byte of serialized UTxO (`coinsPerUTxOByte`) -* prices of Plutus execution units (`prices`) +* minimum Lovelace deposit per byte of serialized UTxO (`utxoCostPerByte`) +* prices of Plutus execution units (`executionUnitPrices`) The **technical group** consists of: -* pool pledge influence (`a0`) -* pool retirement maximum epoch (`eMax`) -* desired number of pools (`nOpt`) +* pool pledge influence (`poolPledgeInfluence`) +* pool retirement maximum epoch (`poolRetireMaxEpoch`) +* desired number of pools (`stakePoolTargetNum`) * Plutus execution cost models (`costModels`) * proportion of collateral needed for scripts (`collateralPercentage`) @@ -684,10 +685,10 @@ The **governance group** consists of all the new protocol parameters that are in * governance voting thresholds ($P_1$, $P_{2a}$, $P_{2b}$, $P_3$, $P_4$, $P_{5a}$, $P_{5b}$, $P_{5c}$, $P_{5d}$, $P_6$, $Q_1$, $Q_{2a}$, $Q_{2b}$, $Q_4$, $Q_5$) * governance action maximum lifetime in epochs (`govActionLifetime`) * governance action deposit (`govActionDeposit`) -* DRep deposit amount (`drepDeposit`) -* DRep activity period in epochs (`drepActivity`) -* minimal constitutional committee size (`ccMinSize`) -* maximum term length (in epochs) for the constitutional committee members (`ccMaxTermLength`) +* DRep deposit amount (`dRepDeposit`) +* DRep activity period in epochs (`dRepActivity`) +* minimal constitutional committee size (`committeeMinSize`) +* maximum term length (in epochs) for the constitutional committee members (`committeeMaxTermLength`)