Entering Voltaire: poll experiment live on mainnet

Entering Voltaire: poll experiment live on mainnet


A public, permissionless blockchain such as Cardano needs a governance system that not only accepts but actually encourages participation from the entire community. In fact, even before adopting a particular system, the various members of the ecosystem should be consulted, using a mechanism to foster discussions that forecasts what will happen in the future governance system.

The Cardano Foundation knows the importance of testing mechanisms beforehand, and of doing so in a way that actively involves all members of the Cardano ecosystem. In this spirit, we launched a poll experiment for stake delegators and stake pool operators (SPOs) alike.

The first phase inquired about the level of satisfaction with the current rewards and incentives scheme. To account for potential imperfections while simultaneously spurring contributions and collaborations, this initial phase took place in a testnet environment. It concluded last Wednesday, 10 May 2023, when the redelegation epoch closed.

Anyone interested can consult the results on Adastat’s dashboard for the PreProd Testnet poll, or on Cardanoscan’s own PreProd dashboard, and verify how each stake pool operator voted. The dashboards also make it clear that, though the poll captures validated data, the result numbers themselves can be counted and organized in different ways leading to rather disparate conclusions. For instance, the percentage of dissatisfaction appears overwhelming when grouping results per delegators, but diminishes significantly if looking at either pools or stake values.

Data analysis, however, does not fall within the scope of the experiment. The Foundation plans, designs, and organizes the poll. Until we enter Voltaire’s full set of decentralized governance, a decision about which parameters to use and how to apply them to interpret the data, falls to the combined responsability of IOG, EMURGO, and the Foundation itself. Although we hope the discussions and insights gained from the on-chain poll will show relevant ways to use polls for surveying a public majority, and consequently help create robust mechanisms for governance participation, this nonetheless remains an initial step meant to assess possibilities.

If we as an ecosystem wish to develop a decentralized, as well as effective system of on-chain surveys that can genuinely improve the Cardano space and make it more resilient, multiple aspects require careful consideration. Including which questions to pose and how to do so. For precisely this reason, the Cardano Foundation meticulously pondered both the content and the format of the on-chain phase question.

A binary question might have a direct simplicity that renders it appealing, yet it provides little to no insights into why voters went in one direction or the other. It would only show how many people like or dislike an idea, thus complicating any attempt at deriving conclusions from the results. A multiple choice question, on the other hand, would allow for more options and greater understanding of the opinion distribution, yet it could still hamper interpretation. To surpass these limitations, a multiple choice question would need options capable of giving voters a good range of choices while simultaneously attaching some kind of reasoning to each one. In the end, the Foundation settled for a straightforward multiple choice question with six options, four of which addressing two different factors:

Which setup would you prefer to be put in place from Q3 2023 onwards?

  • Keep k at 500 and minPoolCost at 340 ada.
  • Keep k at 500 and halve minPoolCost to 170 ada.
  • Increase k to 1000 and keep minPoolCost at 340 ada.
  • Increase k to 1000 and halve minPoolCost to 170 ada.
  • I would prefer to abstain.
  • None of the above.

As a way of foreshadowing future polls about critical aspects of mainnet governance, we picked an often debated theme within the ecosystem: the k parameter and its interaction with the absolute ada value for minimum pool cost.

If a small handful of stake pools were to concentrate most delegated stake, they would effectively control the system, turning it into a centralized network. To ensure genuine decentralization, it becomes essential to discourage a situation where a few pools aggregate most funds. So a mechanism was put in place to automatically diminish a given pool’s rewards when stake delegation to that pool exceeds a certain amount. The k parameter activates this mechanism. In this equation, k represents the desirable number of equal size pools giving their stake delegators the same amount of rewards. It currently sits at 500 pools. The minPoolCost, on the other hand, has a present value of 340 ada and corresponds to the amount of pool rewards deducted each epoch from each stake pool’s rewards before distribution to stake delegators.

Focusing the question on the k and minPoolCost parameters allows us to better perceive the ecosystem stance on fundamental issues that directly affect the decentralization of the network. Likewise, offering options with two concrete yet different values for both k and minPoolCost deters the wide, potentially unrepresentative variation of open-ended questions while still creating an informative survey that can help to understand not only if the ecosystem wishes to change the values of these parameters but, if so, by how much. Finally, introducing an option to depict abstention plus an additional one for those who do not wish to abstain but also disagree with the proposed values, accounts for the limitations of the other four possibilities.

The on-chain poll will go live on mainnet following the Monday 15 May 2023 start of a new epoch.

A frequent remark by SPOs during the testnet phase highlighted the need to extend the voting period. The Foundation has therefore adapted the schedule of the second phase. After the question gets published, SPOs will have until the end of the next epoch to vote. A period of two additional epochs will then give stake delegators the time to consult the dashboards, see how SPOs voted, examine the results, and decide whether or not to redelegate their stake to another SPO. Afterwards, the Cardano Foundation will snapshot the results and draft a report.

The on-chain poll was specifically designed to address the entire Cardano community, and only with wide involvement from various parties can it lead to significant conclusions. The Foundation hopes that everyone will take part in it: the SPOs by voting, the other ada holders by considering the action of the stake pool operator responsible for the pool they delegate to and rethinking their delegation if they disagree with the SPO’s attitude.

In addition, the Cardano Foundation would like this experiment, now live on mainnet, to trigger new debates, contributions, and collaborations. Voltaire means active as well as informed and conscious participation at multiple levels. In the road towards a true self-sustaining, genuinely decentralized network, we need the voices of all.

5 Likes

According to a comment on reddit by @OystrPool , the upcoming vote on mainnet will have implications for parameter settings. Is this true?

Seems to be a lot of confusion as to the implications of this vote as a test-run or the real-deal prime time. Thanks in advance for any clarifications :pray:

The Cardano Foundation cannot decide this on its own. In the workshops, we discussed presenting the result of the on-chain poll as input to the Parameter Committee and then trying to get other genesis keyholders on board.

What Oyster Pool writes is true: “…This is not a test. The poll will happen, results will be taken back to a committee where they will be discussed and possibly implemented…”

Worth to mention also this way longer thread:

2 Likes

Thanks @adatainment for your response to my question, very much appreciated!

Seems the mainnet poll is out, hopefully I’ve voted correctly:

Without providing an option for a minimum variable fee, and offering to extend the protocol to support that new parameter, this vote doesn’t cover all the available options and might as well not be taken at all.

A manual vote review including the metadata (see @ChrisSTR8 posting here) will reveal a candidacy for slashing the minimum fixed fee & replacing it with a scaled minimum variable fee as outlined below.

For the sake of sincerity, I hope poll takers are inclined to recognise that the test was conceived with a bias against this historically valid option by not explaining and offering minVariableFee (as per CIP-0023) as one of the multiple choices.

A lot of SPOs have entered the market since February 2021 when this was first proposed and favourably received, so therefore don’t know about it. For transparency they should have been told about this historical option before considering how to vote and the poll should have included it as an option.

This is great polling mechanism and I applaud the designers, but it’s improper to base a community “mandate” upon it if the answers are biased according to the only answers that the institution is interested in hearing, forcing the unwanted options down into the fragmented “None of the Above” category.

The phrasing of put in place from Q3 2023 onwards suggest that IOG will use the pool result as a mandate to provide a simple parameter change to conclude the debate on the subject: which would be a shame without having polled all the options.

One way to avoid this conclusion is to eventually re-do the poll, with this pair of options added symmetrically with the others (suggesting 5%, as others have, to have it scale roughly up to 340 ada for a mid-saturated pool):

  • Option X. Keep k at 500 and replace minPoolCost with a minVariableFee of 5%.
  • Option Y. Increase k to 1000 and replace minPoolCost with a minVariableFee of 5%.

See:

cc @adatainment @Nicolas @werkof @ktorz
cc @Frederik_Gregaard in appreciation of his comment here: Entering Voltaire: on-chain poll for SPOs - #8 by Frederik_Gregaard

4 Likes

Can you share with me the command to sign tx with stake pool cold key and payment key -(step 4. Sign the transaction in this document - GitHub - cardano-foundation/CIP-0094-polls ). Thank you

Sign with both keys in one go (on your air-gapped machine):

cardano-cli transaction sign \
  --mainnet \
  --tx-body-file tx.raw \
  --signing-key-file payment.skey \
  --signing-key-file cold.skey \
  --out-file tx.signed
1 Like

I didn’t test this but you can create separate signed witnesses. This allows you to have different people separately sign the transaction even with a hardware wallet.

First plug in hardware wallet and generate hardware signing files:

cardano-hw-cli address key-gen \
  --path 1852H/1815H/0H/0/0 \
  --verification-key-file hw-payment.vkey \
  --hw-signing-file hw-payment.hwsfile

cardano-hw-cli address key-gen \
  --path 1852H/1815H/0H/2/0 \
  --verification-key-file hw-stake.vkey \
  --hw-signing-file hw-stake.hwsfile

cardano-cli address build \
  --payment-verification-key-file hw-payment.vkey \
  --stake-verification-key-file hw-stake.vkey \
  --out-file hw-payment.addr \
  --mainnet

Eg: Sign with the payment key on the hardware wallet

cardano-hw-cli transaction witness \
  --tx-body-file tx.raw \
  --hw-signing-file hw-payment.hwsfile \
  --mainnet \
  --out-file hw-payment.witness

Sign with the pool cold key

cardano-cli transaction witness \
  --tx-body-file tx.raw \
  --signing-key-file cold.skey \
  --mainnet \
  --out-file pool.witness

Combine the witnesses and create the signed transaction:

cardano-cli transaction assemble \
  --tx-body-file tx.raw \
  --witness-file hw-payment.witness \
  --witness-file pool.witness \
  --out-file tx.signed

Especially for a poll with impoverished options, it’s constructive to add a Tx metadata message, particularly when voting “none of the above” to explain why and/or what missing choice one would have selected. I’ve also seen cases where this would make sense even with the canonical options (when not fitting the voter’s real desire), or to explain why the voter is abstaining.

Submitting the additional metadata with the voting transaction according to CIP-0020 will produce a readable message along with the vote. For our pool it looks like this: https://adastat.net/transactions/1bae9602d83afed055697105d3489ea84aa9cad32670e3d0b00b8eefa1aa4928

This was produced by using a metadata structure like this for our vote transaction (to submit without using the --json-metadata-detailed-schema option):

{
  "94": {
    "2": "0x96861fe7da8d45ba5db95071ed3889ed1412929f33610636c072a4b5ab550211",
    "3": 5
  },
  "674": {
    "msg": [
"The results of this poll can't be actionable as suggested for",
"Q3 2023 because all contemporary parameter options weren't",
"offered as choices. See CIP-0023 and Minimum VARIABLE Fee.",
"There need to be two more options like the following:",
"",
"X. K=500 and replace minPoolCost with minVariableFee of 5%.",
"Y. K=1000 and replace minPoolCost with minVariableFee of 5%.",
"",
"I would prefer Option Y, but the most important feature",
"is minVariableFee if you really want to run a fair poll.",
"Protocol support of Minimum VARIABLE Fee is 2 years overdue.",
"There is no point squabbling over big vs. small pool agendas",
"until this deficiency is fixed, which will decentralise stake",
"and future-proof the protocol against asset value fluctuations.",
"",
"For more details and discussion online:",
"https://forum.cardano.org/t/",
"entering-voltaire-poll-experiment-live-on-mainnet/117879/6"
    ]
  }
}
3 Likes

Chuffed to have voted on the mainnet, hopefully more SPO’s join in before the end of this epoch.
It’s fascinating to see all the different perspectives

2 Likes

Great i always interested in about ADA. I very glad to be here with our community. Good job & keep going.

Thanks Robert @COSDpool for bringing up this important issue!

A fair marketplace for stake pools can only be achieved by having a minimum variable fee and eliminating the minimum fixed fee or severely reducing the minimum fixed fee and periodically adjusting it based on ADA value.

My original proposal in CIP23 was min fixed of 50 and min variable of 0.5% but I think the actual values can be debated once you accept the necessity of replacing of offsetting the min fixed fee with a min variable fee.

I think that increasing k without considering the min variable fee will make no difference in stake decentralization and will only limit the potential growth of single pool operators.

2 Likes

I 100% agree, minPoolCost didn’t really achieve what it was designed to do in practice, and has been abused in the past, eg: 840₳ on 0% Pools because an 8 can be mistaken as a 3.

Removing it in favor of minVariableFee is a much better option. The current design of minPoolCost makes smaller pools have far less return, thus less competitive, because of the minPoolCost fixed amount.