CIP-0182? | Optimistic Constitutionality#1164
CIP-0182? | Optimistic Constitutionality#1164ptrdsh wants to merge 9 commits intocardano-foundation:masterfrom
Conversation
|
An X user commented:
This is my response, and with it, i make a note to myself to need to incorporate such arguments in the CIP, and underline them with quantitative figures, sources where possible.
|
rphair
left a comment
There was a problem hiding this comment.
Thanks @ptrdsh - this looks like an intelligent & beneficial submission. I understand it will be admissible regardless of implications to "social governance" (see #937) because it's simply a Ledger change. On for Triage at the next CIP meeting — https://hackmd.io/@cip-editors/131 — and just some formatting considerations before general review begins here:
|
|
||
| This CIP requires a **hard fork** to activate, as it changes the ledger's ratification semantics. | ||
|
|
||
| #### Phase 1: Specification & Review |
There was a problem hiding this comment.
If the "phases" in this section could be converted into a nested bulleted lists, it would be much easier for reviewers, editors, and implementors to work with.
There was a problem hiding this comment.
Thank you, I agree. That section is anyway rather weak and would need some edits. Will change the formatting while doing so.
There was a problem hiding this comment.
@ptrdsh I've committed the formatting changes so editors can focus on the rewrite issues... just please git pull these in to your working branch so a further git push (without force) will keep everything well documented here 🤓
| ### Info Action | ||
| A community vote is most likely beneficial or even required for such a change, as it cannot individually be voted on within the hardfork GA, with which it would get activated. |
There was a problem hiding this comment.
As with the adjacent item, if the list above could be tick-boxed as it many other CIPs (YMMV [by browser, I hear] for getting this to work with ordered lists) then it could be visualised & processed more easily. Then this particular item can be added to it (maybe nested as a prerequisite of one of the main acceptance criteria).
There was a problem hiding this comment.
Nice idea. fully agreed
| - Hard fork governance action submitted, requiring approval from the CC, DReps, and SPOs under the *current* (pre-Optimistic) rules. | ||
| - Upon ratification and enactment at the subsequent epoch boundary, Optimistic Constitutionality becomes active with `ccOptimisticEnabled :: Bool` set to `TRUE`. | ||
|
|
||
| #### Optional: Off-Chain Convention (Pre-Hard-Fork) |
There was a problem hiding this comment.
Since the goal of these is to keep the Path to Active lean, if this is a complex consideration it can be defined in one of the earlier sections and then the "decision" & potential task(s) entered into one of the concise lists in this section.
What the editors / CIP process are trying to avoid are new ideas about the CIP substance being introduced at the "last minute" in the final part of the document.
There was a problem hiding this comment.
Yes you're fully right. Thanks for spotting and flagging! Will change
|
Should a minority of dReps and/or SPOs be able to flag a proposal as potentially unconstitutional? If they do, the CC would be required to weigh in to over-rule their concern. The flagging thresholds could be ~30%. |
|
To mitigate the risk of a single CC member sabotaging a proposal at the final block of an epoch, I propose the following modification to the ratification logic: The Challenge Window (
|
|
|
||
| **A structural observation:** | ||
|
|
||
| Across the first ~100 governance actions on mainnet, no proposal was rejected by the CC where DReps would otherwise have approved it. Every proposal the CC found unconstitutional was independently rejected by DRep vote. DReps, acting in rational self-interest to protect their stake and the infrastructure their businesses rely on, have proven effective at identifying bad proposals without CC guidance. |
There was a problem hiding this comment.
The argument could also be made that the DReps are closely monitoring the constitutionality assessments by the CC and naturally would not approve of an action that fails the constitutionality assessment.
| 1. **Late voting.** CC members empirically tend to vote in the final 20% of a governance action's lifetime, after DReps have already cast votes. This wastes DRep effort on proposals that the CC ultimately rejects. | ||
| 2. **DRep discouragement.** When CC rejections arrive late, DReps who already spent time evaluating proposals see their work invalidated. Over time, this suppresses DRep participation. | ||
| 3. **False urgency.** The requirement that CC members evaluate every proposal creates a baseline workload that scales linearly with governance activity, regardless of whether the proposals are contentious. | ||
| 4. **Compensation pressure.** The active-approval model makes the "CC members must be compensated" argument seem self-evident, because their workload is indeed real and ongoing. Regardless, since the activation of Conway-era governance, the community has been unable to reach consensus on whether and how Constitutional Committee members should be compensated, despite mentions of this in (all versions so far of the) constitution. Optimistic Constitutionality aids to dissolve this by dramatically reducing the expected workload, and introduces new, more transparent possibilities for CC compensation, should that remain a desire. |
There was a problem hiding this comment.
Optimistic Constitutionality aids to dissolve this by dramatically reducing the expected workload
I think the 'reduced workload' is an illusion, as the responsibility for 'catching' unconstitutional governance actions still rests with the Constitutional Committee (CC). CC members will likely continue to review every single action to ensure nothing slips through the cracks; otherwise, they risk being held liable if the treasury is raided. Relying on 'Optimistic' oversight risks a dangerous diffusion of responsibility, where every member assumes someone else is doing the vetting, leaving the door wide open for malicious actors.
Furthermore, I don't think this approach accounts for specific attack vectors, such as draining the treasury or implementing malicious parameter changes. For example, someone could submit a governance action in the final slots of an epoch and collude with the top 10 DReps to vote "yes." If no CC member catches this mischievous behavior in time, the action could meet the ratification threshold without the CC being able to stop it.
In my view, the risk is simply too high to consider this approach.
Co-authored-by: Nicolas Cerny <61423239+thenic95@users.noreply.github.com>
|
@ptrdsh looks like your last commit 0e38ae3 takes care of at least half the review points in #1164 (review), still visible above. These would be resolved & abbreviated automatically if committing through the GitHub UI: which is generally easier (only requiring a So if you need to make these changes outside the UI (and for the corrections above), can you "Resolve" each of the conversations to help us keep track of the review points that remain? 🙏 |
|
To really simplify this proposal, it essentially changes how the ledger treats non-voting CC members on active governance actions. Instead of treating non-voting from CC members as a NO, this change defaults the CC to a YES, as long as no CC member actively casts a NO vote. If even one NO vote is cast, the ledger reverts to the current rules, where not voting is treated as a NO. I see two main risks:
These are the main attack vectors I currently see. |
rphair
left a comment
There was a problem hiding this comment.
@ptrdsh we agreed at the CIP meeting today that this should be confirmed a CIP candidate because of the quality & positive direction of the comments made by reviewers so far: on both the technical proposal as well as any implications for the overall governance process.
Next we would need you to respond to all the review points above before progressing this (marking the resolved things Resolved with a note about any change that was made). The comments you've already responded affirmatively to would make a great first update & when editors see that's happened we can pass this around for a second review & maybe put it explicitly on the CIP agenda then.
In the meantime please rename the containing directory to CIP-0182 and update the "latest version" link in the original post accordingly 🎉
This CIP introduces Optimistic Constitutionality, changing how governance actions are approved under CIP-1694.
Overview
Learning from the last nearly 100 Governance Actions onchain, no proposal that DReps wanted approved got rejected by the CC. The CCs effort however was insurmountable despite this perfect agreement.
It turned out that DReps are excellent in filtering wrongful/bad proposals naturally by voting on their personal preference, regardless of constitutionality. This fact can be used to the network's advantage and reduce the cost of constitutional review drastically by borrowing from Zero Knowledge applications, where Optimistic Rollups (TRUE until someone says otherwise) is an effective expensive-verification-mitigation technique.
Optimistic Constitutionality shifts the CC from constant involvement to on-demand oversight, dramatically reducing workload and, among others, providing constructive aid to the ongoing debates around CC compensation.
Changes proposed
Instead of requiring the Constitutional Committee (CC) to actively approve every action, proposals are assumed constitutional by default and move forward unless one CC member raises an objection by voting "No"/"Unconstitutional" - a "constitutional challenge" or veto. If such a challenge occurs, the original CIP-1694 approval process resumes, requiring full CC voting and the other CC members then either confirm the veto-ing CC's challenge by voting no/unconstitutional as well, or overrule it by voting yes/constitutional with the defined majority threshold.
The required change is happening in the ledger logic for ratification, which is changed to:
RATIFIED = (zero CC no votes exist **OR** (CC Yes votes ≥ CC threshold)) **AND** (DRep Yes stake ≥ DRep threshold) **AND** (SPO Yes stake ≥ SPO threshold)And, the introduction of a new protocol parameter
ccOptimisticEnabled :: Boolto control whether Optimistic Constitutionality is active or not, is helpful.Path to Active
This CIP requires additional code in the ledger, and can only be activated with a hardfork. Due to this, it will be beneficial to let the ecosystem vote on this via an info action, as this change will be packaged within a fork containing countless changes.
RISKS
sleeping at the wheel
Given that CC members are, and in fact must, be active community members, "sleeping at the wheel" risks are diminishingly low, as CC members (are assumed) to already follow Cardano Governance naturally anyway. This is additionally mitigated by now massively increased redundancy: Only 1 of (currently) 7 members must vote no.
power abuse
CC members could single-handedly block all approved, near-ratified Governance Actions by voting No/ calling out a "constitutional challenge" up until the last block of an epoch. This risk is real, and currently known possible mitigations for it, such as introducing approval window extensions are only increasing complexity a lot, introduce other issues, and overall provide no actual benefit.
I postulate that the best mitigation for such power abuse would be to acknowledge the risk and rely on state of no confidence posteriori.
OPEN QUESTIONS
(rendered latest version from branch)