Hello All,
At the beginning of Term 4 the most daunting task was to ‘fix’ HIP voting, whereas we know it was incredibly difficult to reach quorum from the stake weight design. This was to only be exhausted by the uncertainties of wallet security leading to diminished validator voting. Furthermore, evaluating the Charter we have noticed a lot of out-of-date information that is not applicable to the VDAO. Such as: ‘5/5 members of the Validator DAO’, ‘proposal to a vote on Snapshot, ‘use of Validator DAO funds requires 6/9 members of the Validator DAO to agree’ and the list goes on with out-of-date information and inconsistency. Currently gov.harmony.one is not used any longer - leaving the VDAO in a deadlock on ratifying the Charter with a normal process. Same goes for the governance voting, we are in a deadlock on not being able to pass votes.
Noting the underlying text that gave the VDAO presence needed to be changed, public governance voting being at a standstill and wallet security needed to be addressed; we had to address these for ourselves, future terms and the community. We encourage feedback on the Charter, voting strategy and idea to maintain validator wallet security. Our hopes are to receive improvements and critique on these items so the VDAO may serve you better.
To gauge your support, we shall implement polls within this post as many validators do not wish to export their private key and vote on snapshot. Please vote here to show support.
The new VDAO Charter is linked here for your view and feedback. We have added more sections, roles, explanations, standard forms, processes, definitions and guidance that we found pertinent to serve as a reference for the VDAO in serving the community. All of us wanted to take the approach that this document, in the eyes of a new member, would serve as an all-in-one reference. This was not only applied to the VDAO but any member of the community who would like to put forth an HIP or a candidacy for the VDAO – we have standard layouts and recommendations. It is not meant to overwhelm but provide an all-encompassing view as to what we do. We have retained the verbiage of being ‘Governors’ but defined our role as to what we do – more than simply signing payment transactions. These are only a handful of changes and solicit your feedback on this document.
Poll to accept changes of the Charter
- Yes
- No
0 voters
Next, we would like to introduce Logarithmic Voting. We had the idea of Quadratic Voting only to be misinterpreted as this implies a ‘bank’ of votes that can only be used a finite number of times. Logarithmic is a more accurate representation and is as follows:
Looking at and evaluating logarithmic voting it is apparent that it poses a risk in gaining many voting tokens at minimal expense and effort to any party that wishes to act maliciously. However, a clever idea from @TrickLuhDaKidz is to combine logarithmic voting with traditional stake weight voting in 1 formula. This will require some steps to achieve but shows promising results. Keep in mind, the only visible token is ‘VDAOG’, being the chief governance token.
Firstly, stake weight will be mirrored and then run through a logarithmic function, giving us ‘lnVDAOG’ token. The formula is: ln(ValidatorStake/10000).
- 10,000 comes from the 10,000 required in self stake for a validator node as the minimum for declaring on-chain. This was originally thought to be effective in limiting actors with 10,000 ONE from creating nodes and using them to acquire voting tokens. With a total stake of 10,000, the natural log of 1 is 0. However, alone, this is trivial to game as we have seen.
Second, the ‘lnVDAOG’ token is now the ‘logarithmic’ portion of the equation and will then be used within the following:
Thirdly, there have been limits that are defined to prevent gaming/manipulation, sort of ‘caps’:
- ‘Upper Cap’: Max Elected Keys * 1.35 * EMS
- As of right now that cap is 6% per shard (225 slots), later to be 250 slots per shard. This gives us a max of 54 possible elected keys a validator may hold as of now.
- EMS = Effective median stake
- As of right now that cap is 6% per shard (225 slots), later to be 250 slots per shard. This gives us a max of 54 possible elected keys a validator may hold as of now.
- ‘Lower Cap’: EMS * 0.65
- This lower cap will work to discourage malicious actors in creating dummy nodes just to gain voting tokens.
- EMS = Effective median stake
- This lower cap will work to discourage malicious actors in creating dummy nodes just to gain voting tokens.
The above equation will hold the following logic to avoid gaming and manipulation and yield us an updated token ‘VDAOG’:
- If ValidatorStake is greater than the ‘Upper Cap’, then a validator’s VDAOG = UpperCap
- If ValidatorStake is less than the ‘Lower Cap’, then a validator’s VDAOG = ValidatorStake/2
- All stakes amount of ONE in between the proposed caps will then follow the equation above.
The above equation uses (ValidatorStake/2), this is the traditional stake weight portion. Note, the ‘lnVDAOG’ mirrors a validator’s total stake which is why it is being used in the formula.
What this also allows is the voting of nodes that wish to participate. Nodes that wish to take part within governance voting may request to be supplied with ‘VDAOG’, their stake being mirrored with ‘lnVDAOG’. This also will help circumvent the event where it is very challenging in achieving a 51% quorum in traditional stake weight.
We can take KuCoin as an example:
ValidatorStake = 277,552,416 ONE
TotallnVDAOG = 1165.71 VDAOG
TotalStakedONE = 5,450,921,215 ONE
Looking at the original equation: ln(277552416/10000) = 10.23 lnVDAOG This was the original intended logarithmic equation but it had no limits on lower or upper bounds and was susceptible to manipulation.
- Taking it further,= 0.00878 , this represents the decimal of the total tokens used in voting.
- 0.00878*5450921215=47841535.21
- 277552416/2 + 47841535.21=186617743.21 VDAOG
- The addition of (ValidatorStake/2) to the ‘logarithmic’ portion allows the larger nodes to retain voting power and security with their stake.
In this case, KuCoin gets their voting power decreased by approximately 32.76%
If we run a node with a stake of 4000000 ONE through this, that is approximately a 750.4% increase in voting power, yielding 30016402.84 VDAOG.
It is important to not forget the relationship – the more lnVDAOG increases, the larger the decrease in voting power for larger nodes and the smaller the increase in voting power for smaller nodes. As more ONE is staked, the voting power relative to other nodes approaches an equilibrium, if you will. In essence, the voting power becomes more similar to most nodes.
Using stake data from 16 MAY 2022 (epoch 984) we can take a look at an example vote, being HIP-25. As we know HIP-25 was unable to pass due to inability to reach quorum. The following simulation will take all current voting nodes (collected from HIP-16, 17 & 25) with the addition of ‘large’ non-voting nodes (Binance Staking, KuCoin, 三潭映月 (HIGH STABILITY 99.7%, LOW FEE RATE 5%), Honest Mining, Guarda Wallet, SNZ Pool, Stake DAO, InfStones, HarmonyNews.one, DACM.io 1, Animoca Brands, CypherMines Nodeasy, Matrix Stake, Stake DAO [Retail], Хинкали and others.)
As we see, HIP-25 would have passed with a fairly high margin. We had 1 node abstain from the HIP-25 vote per the report that is made available. Note: every node that voted, voted in favor aside from the 1 that abstained.
As we do not have the stake data from the closing of HIP-25 we will have to work with the data obtained. If we run this vote again using traditional stake weight, we receive the following result:
As we see, quorum would be reached with this data but the agreement threshold of 2/3 in favor would not pass. We had 1 node abstain from the HIP-25 vote per the report that is made available.
What this tells us is that logarithmic voting brings the voting power of larger nodes down and the voting power of smaller nodes significantly increases. The ‘half stake weight, half logarithmic’ idea came about to formulate a voting strategy in which would keep the security of our larger nodes but give voting power to the smaller ones.
We have yet to see any defined equation/formula/logic on how logarithmic voting may work. We have also not seen data presented that includes mainnet node stakes. We hope this fosters discussion, feedback, comments and critique.
All data was acquired from smartstake.io based on epoch 984. All voting node data was compiled from HIP-16, 17 & 25. Data is included within the supplied Excel file.
‘VDAOG’ name was retained as this was voted to be the best name for the token without being too complex. ‘lnVDAOG’ is a token that is in the background and will not be expressly shown as it is used in the final calculation of ‘VDAOG’. For the purposes of demonstration and development it has been explicitly shown for transparency.
Supplied is a repository of all compiled data and simulations used in developing ‘VDAOG’ which is found here You may need to reconstruct the graph if you choose to download this file and view with Excel. Google Sheets has a different format. Feel free to reach out for the file directly if you so choose.
Poll to accept changes of Logarithmic Public Voting
- Yes
- No
0 voters
Third, an idea to maintain validator wallet security and minimize exposure of private keys while voting may be accomplished via an alias wallet to vote. The idea is a validator creates a brand-new wallet (ie MetaMask) to vote with. A contract can be built to establish a proof that said wallet is controlled by a certain validator. This can be achieved by the validator sending ONE (via CLI) to that wallet address and sending the ONE back to the validator. Taking this a step further, validators that wish to participate in public voting may request voting tokens from the contract to their alias voting wallet. The security may be improved further within the contract to establish proof of ownership by requiring a specific value of ONE during a given timeframe (when tokens are requested).
Note that the voting strategy and alias wallet voting above have not been built and deployed as we wish to garner feedback to finalize any changes and then begin designing the contracts to handle these functions.
Poll to accept changes of alias wallet voting
- Yes
- No
0 voters
We appreciate all of your time,
Validator DAO Term 4