Measure how different Retro Funding voting designs perform against a number of requirements aimed at optimizing different objectives. Achieved by simulating different types of voter behavior and applying formal reasoning.
Went over our definition of Quadratic Voting and calculation of Round1 results. Disclaimer: the sheet Jonas shared is not accessible anymore, I requested access again to verify what I have. For now:
- our definition of the mechanism is correct.
- to the implementation we have to consider 2 steps, I try to clarify below @Idrees535 so that you can check against your implementation:
Step 1/Calculate votes distribution
For any project, sum up the votes across all voters.
Note: in Quadratic Voting, the "vote" of a voter (number of tokens a voter distributes) to a project x(i,p) can never be equal to the total number of tokens available to this voter c because of the squared cost of the voting!
In our case, voters have a fixed maximum of token c (defined by OP), they can't "buy" additional tokens. Hence what we need, and what's not specified yet in our doc, is how to calculate the vote (output) based on the the voter input x(i,p) so that the QV condition (quadratic cost) is fullfilled.
The spreadsheet shared does not give the specification, if I remember correctly.
Step 2/ Calculate funding allocation Put the votes a project received (see Step 1) in relation to all votes cast, and distribute the available budget B accordingly.
I'll get back with more details once I had the chance to check the spreadsheet again, happy to jump on a call to discuss then @Idrees535
Step 1/Calculate votes distribution In the spreadsheet, we don’t see how the votes distribution per voter is calculated, that’s why I suggest we follow our own definition, see above, and I'll clarify with Jonas. For now, let’s call the output of Step 1 x’ (i,p).
Status:
✅ Our specification: correct, confirmed by Jonas
✅ Implemented in our model: https://github.com/GovXS/OP-Evaluating-Voting-Design-Tradeoffs-for-Retro-Funding-RESEARCH-/blob/main/model/VotingRules.py
✅ Verification Model Input/Output: https://github.com/GovXS/OP-Evaluating-Voting-Design-Tradeoffs-for-Retro-Funding-RESEARCH-/blob/main/voting_rule_verification/verification.ipynb
Formal Model
see: https://www.overleaf.com/project/667bebbdb70211dfcff39701
References
OP Spreadsheet with Round 1 results (copy for our project team): https://docs.google.com/spreadsheets/d/1h6R9Ycxmi7Z3BsBtDeOUCEuxHzxOmWyBgRsjqURpMIM/edit?usp=sharing
OP Official documentation
https://community.optimism.io/citizens-house/rounds/retropgf-1
Discord messages with logic #1 https://discord.com/channels/@me/1243490189884784693/1268516007178407987
2 https://discord.com/channels/@me/1243490189884784693/1268571083443929109
Round 1 review (incl extending badgeholders, sectret ballots etc.)
https://vitalik.eth.limo/general/2021/11/16/retro1.html
Notes:
Here's a copy of the notes made in Discord https://discord.com/channels/@me/1243490189884784693/1268516007178407987
Tasks
Notes: