So, the results of the CIP-1694 polls have been in for a few days now:
Cardano Ballot:
Summon:
By the way: The 12 million ADA voting “Yes” by the Cardano Foundation are more than 10% of the Cardano Ballot and almost 50% of the Summon ballot. I still think that it’s a very bad idea if the powers that be vote themselves in a poll that is supposed to measure the community sentiment.
And I have been one of the few dissidents voting “No”.
Actually, I was 16 of the dissidents in the case of Cardano Ballot. I put my stake on 16 different accounts when being forced to shortly move from hardware to software wallet. Because I could. And to show how ridiculous a head count – that does not count heads, but accounts – is in such votes. But it’s still only 7.5k ADA of those “No” votes. So, some people with bigger bags must have also been a bit disgruntled.
I want to give the reasons in the following:
Problems with the poll
The poll itself had some problems:
Biased question
The question asked was:
Based on the current progress, should we as a Cardano community continue to develop and deploy minimum viable on-chain governance as described in CIP-1694, subject to the final approval of the SPOs?
That immediately raised a lot of questions what exactly happens if we vote “No”. Especially combined with Hoskinson’s announcement that they will burn the governance keys if the community does not approve what has now been build. There may be non-harmful ways to interpret that, to throw the towel and let others take over, but it sure made the impression of a threat of a rather catastrophic outcome to lots of users.
So, this left nearly everyone who can at least somehow live with the “current progress […] as described in CIP-1694” voting “Yes”. And only the ones who would rather have nothing than what is currently worked on voting “No”.
It would have been good to have at least a bit more detail, single questions on issues that have been discussed a lot – “Do you want pure stake-based voting weight, quadratic voting, or number of wallets (despite its problems)?”, “Should delegations to dReps expire?”, … – and/or a nuance between “That’s great!”, “It must be ensured that future developments will happen!”, “Do not start it, before considerable changes have been done!”, and “Throw it away and back to the drawing board!” for the general “How should we continue?” question.
Just having a “take it or leave it” question on the whole thing is just an acclamation, a Napoleonean plebiscite: “Should I become emperor or do you want total chaos? You have a choice!”
Hardware wallet participation and interpretation uncertainty
Immediately after the poll was announced, people realised that hardware wallets cannot participate with how Cardano Ballot is built up to now, although workarounds (not using signData
but signTx
with a “transaction” that is not and cannot be submitted to the chain and has the payload in its metadata) are long known and are employed for example by the alternative Summon poll.
Not seeing the importance of hardware wallet support beforehand is a considerable failure in judgement, but what happened afterwards made it worse.
People were told that they should just create an additional hot wallet with just a couple of ADA. This is in stark contrast to the FAQ to this day stating:
The Cardano Ballot is a stake-based system; therefore, the total power of a wallet will be determined by the amount of ada staked in that wallet at the time of the Snapshot (November 21st, before 21:44 UTC).
https://docs.1694ballot.cardano.org/support/f.a.q.s-english#how-is-my-ballot-power-calculated
So, after this nobody knew anymore if it is supposed to be a stake-weighted vote (in which case “just voting with a small hot wallet” is quite meaningless) or if it is supposed to be counted by votes with all of the problems (or rather the complete impossibility) of identifying unique voters.
Moreover, in his video stream on the topic, Hoskinson made it appear like they were conscious about this problem, another vote when the currently developed signData
functionality for Ledger and Trezor will be available was already planned from the start, and comparing these votes would be a totally interesting experiment.
None of this has been announced before this video stream happened, waiting for the Ledger and Trezor implementation is totally unnecessary when using the signTx
workaround, and I don’t really like being gaslighted in making a fuss about a nothingburger because some hastily invented things should have allegedly been known before. No, they were not, you just made that up!
And if anything this led to even more confusion: Is this thing now the oh so important temperature check? Or should we wait for the “real” temperature check when hardware support is (maybe) available some time in 2024?
Total clusterfuck!
Problems with the process up to now
“Based on the current progress, […]”
I see a lot of problems with how what we are looking at now came to be:
Not neutral from the start
As @KtorZ wrote in the pull request discussion on CIP-1694 (https://github.com/cardano-foundation/CIPs/pull/380#issuecomment-1460574579):
We’ve arguably never really discussed what Cardano governance should look like prior to the CIP. There has been visions and ideas from many sides, but it’s never really been “agreed by the community”. Yet it’s a recursive problem: agreeing on something of that scale requires some form of governance in the first place.
I’m sure he would not see that as such a big failure (he’s one of the authors after all), but I do. Yes, it is partly a chicken-and-egg problem. But organising a rather open process where multiple approaches and proposals have a chance would have in my opinion been possible.
Going into the discussion with a quite detailed proposal that already contains a lot of design decisions – we use dReps, we write a constitution and establish a “constitutional committee”, we use pure stake-weighted voting, … – narrows the debate quite a bit. And everything questioning one of these decisions is at a disadvantage from the start.
Moreover, it was not made clear what requirements a competing proposal would have to fulfil. “These things – hard forks, parameter changes, treasury disbursements, open polls – have to be decided somehow. Every ADA holder has to have access to the decision process. …”
By the way, similar problems exist in Catalyst operation: The IOG Catalyst team regularly comes up with very detailed ideas of how the thing should “obviously” work and the discussion is then seemingly naturally narrowed to some details in these ideas, but does not allow discussing principles anymore: “How should categories be scoped?” instead of “Should there even be categories?”, “Do we want to allow No votes?” instead of “Which voting method do we want to use in the first place?”, “What rules do we want for community reviewers?” instead of “Should there be ‘official’ (and paid) reviews at all?”, …
No equal access to implementation
That was made even worse by starting to implement it half-way through the discussion, again without stating anything against what interfaces in the cardano-node
competing proposals would have to implement which functionality at a minimum (in addition to the fact that Haskell developers are notoriously hard to even find). So, this made competing with the proposal given to us from above even more pointless. Who would support some outlandish proposal when there is a proposal backed by the founding entities that is already almost finished and tested on the “Sanchonet”?
The necessity of implementing proposals will become a recurring problem of governance. It only makes sense to vote on a hard fork if someone™ has implemented it. It is made a bit better by the recent move of the core repositories from IOG to Intersect MBO. But it are more or less still the same people up to now, it is not clear at all what a proposed hard fork has to fulfil to be merged into the node implementation, so that voting on it even makes sense, the code is not really documented in a way that a lot of teams could implement something there, … It will be a long way until this becomes something that can be called “decentralised”. And maybe, just maybe this should have been the first step?
CIP discussion largely ignored
There was a huge discussion on the original pull request of CIP-1694: https://github.com/cardano-foundation/CIPs/pull/380
Admittedly, a lot of that could be seen as noise, a linear discussion on a single pull request is not the best format for debates on fundamentals, and some improvements on details were done. But a lot of more elementary questions were just sidelined and ultimately forgotten.
I firmly believe something like Voltaire (or Catalyst for that matter) needs a much more open process, starting as said above with just some basic requirements and giving some support for groups to form around several competing proposals on an equal footing, with clear guidelines where and how to provide the finished proposals.
And such a process has to be shepherded by the current powers. “Why don’t you do it, while we are doing our thing with the full power of our communication channels and access to the core development team?” is just super cynical.
Workshops as exclusionary participation simulation
Various in-person workshops and a few online ones are always cited as receipts how much the community participated in the process.
Such workshops are a very exclusionary method in my opinion. They all require participants to be available at a very specific time and in-person workshops also require considerable effort for travelling and accommodation. All who cannot afford one or the other are completely excluded.
Moreover, I believe that they often only simulate participation because the organisers can decide totally freely what they take from them, what small changes they can take and advertise as “We heard the community!!!” and what they discard as: “Nice that you have an opinion but nope!”
Problems in CIP-1694
“[…] as described in CIP-1694, […]”
And I also still have some concrete problems with the content of CIP-1694:
dReps
I still think that dReps are a very bad idea. They allow some popular persons to accumulate enormous amounts of voting power to the point where it makes zero sense to participate and try to stand against them leaving us with just the choice which of these super VIPs to support.
We already know from stake pool delegations – with a lot of delegations staying for years even after a pool retires and no rewards are paid anymore – that people will just do fire and forget delegations and probably seldomly check if the dRep really acts in their spirit. If one dRep takes a really bad side on a particular topic, it will be a Herculean, almost impossible task to convince people to switch delegations.
This could have been made less bad with at least two things proposed amongst other places in that CIP pull request discussion:
- Limit the maximum voting power of dReps similarly to the saturation of stake pools, so that delegators would have to look for another dRep to delegate to or risk that their voting power is wasted.
- Let delegations expire so that delegators are forced to at least shortly reconsider their choice from time to time and dReps cannot accumulate a base delegation from people who are not really interested and will virtually never switch irrespective of what the dRep does or does not do.
And this is potentially a quite large risk to the hope that we “can fix this later” since it is only a “minimal viable governance” to get started. Once a small group of dReps has so much power, their vote is needed to change that again. Maybe, they are selfless enough to do that anyway, but there is a risk in asking people: “Do you want less power?”
Delegation incentives
The CIP we just “voted” on still contains:
There will be a short bootstrapping phase during which rewards will be earned for stake delegation etc. and may be withdrawn at any time. After this phase, although rewards will continue to be earned for block delegation etc., reward accounts will be blocked from withdrawing any rewards unless their associated stake credential is also delegated to a DRep. This helps to ensure high participation, and so, legitimacy.
https://cips.cardano.org/cip/CIP-1694#incentives-for-ada-holders-to-delegate-voting-stake
People shall be coerced into delegating under any circumstance if they are interested or not or if they feel informed enough or not, otherwise they won’t be able to withdraw staking rewards.
I have no idea if that is already implemented in the Sanchonet code, but it is definitely part of what was just approved by 90% or more of the poll participants.
This makes the effects from the previous section much worse since it forces even people to do potential fire and forget delegation who would normally just say: “Well, I’m neither interested nor informed. I’ll just let the other people do that.”
Moreover, it forces even CEXes who want to continue to stake to delegate to a dRep.
Yep, they all can just delegate to the automatic “Abstain” dRep, but will they? And what does it get us when a very large percentage of votes is always and automatically “Abstain”?
Constitution
It is quite unclear (to me) what this constitution shall really look like.
The example in the CIP itself – “The Cardano network must always be able to produce new blocks.” – is almost trivial and would in my opinion not even need to be written down. Yes, of course, we want the chain to continue to operate. And some of the safeguards – allowed intervals for certain parameters – can maybe just be written into the code in the future. But that would be just a hard fork enabling these rules, restricting the allowed governance operations. Do we need a constitution for that?
Other ideas – “Cardano will always have a fixed supply of 45 billion ADA.” – might one day become controversial. The reserve getting slowly emptied and rewards therefore getting less and less is already very visible. Maybe, we need long-time inflation. Maybe, fixed supply was just a broken ideology. Yes, those will be hard discussions. They can be had on a discussion to change the constitution, but why? Why not just have them on the appropriate hard fork and parameter change discussions?
And then there are some who want very ideological things – “We, the Cardano community, firmly believe crazy conspiracy narratives about the Fed!” – in the constitution: https://forum.cardano.org/t/constitutional-amendments-protecting-cardano-from-the-central-banks/125059
Which of those variants will it be? And do we need that?
Constitutional committee
The constitutional committee is as per CIP-1694 supposed to only vote if a government action respects this strange constitution of the previous section. But there is actually no safeguard that they really restrict themselves to that. They can declare whatever they want as “constitutional” or “non-constitutional”. And, in contrast to the Supreme Court and similar highest courts in other countries, Cardano has no judicial tradition that could alleviate that. We do not have a pool of established jurists and could restrict the committee to be drawn from them.
And as for the dReps, there is a risk that the constitutional committee blocks further development of the governance system on the claim that the changes are “unconstitutional”.
Yeah, the dReps – and, if you don’t share my reservations on dReps, therefore the community – could decide to no-confidence the committee and vote a new one. But why even have them in the first place?
Do we even need such a thing? In a first attempt at minimal viable governance? Where the decisions are only such mundane things as hard forks, parameter changes, and treasury disbursements?
In contrast to the hopes and beliefs of some, we are not at the point, where we build and have to decide on the destiny of a network state. We are “just” managing a cryptocurrency blockchain here. If we can’t even get people to not vote for self-destruction, it should probably self-destruct for good.
“Election” of constitutional committee
CIP-1694 doesn’t even have a proper election of the constitutional committee members, just some strange “new constitutional committee” governance action that does a whole slate of changes to the committee, removes several and adds others in one go.
We can’t vote to just have no confidence in a single member, we always have to no-confidence the whole committee. We can’t vote for or against single candidates for the committee, but only on these whole slate governance actions. If you want to remove or not elect a specific candidate, you have to propose a different governance action doing almost the same except for this one candidate. Or maybe it is more promising to do a slate with more differences? Or maybe both?
And if more than one of them are successful, according to CIP-1694, the first that was accepted to the chain wins. So, it pays to be quick and submit the first proposal(s) for a new committee. If multiple get over the thresholds, the quicker one wins. What kind of election system is that?
Conclusion
Some of the points in this post, I have previously brought up in a post to both the CIP discussion https://github.com/cardano-foundation/CIPs/pull/380#issuecomment-1472917236 and this forum https://forum.cardano.org/t/minimal-viable-governance/115621.
Nothing has changed since then. On the contrary, other points in this post have come in addition to that.
So, I had to vote “No” on those “Is everything peachy with CIP-1694?” polls.