Open brenzi opened 1 year ago
This issue has been mentioned on Polkadot Forum. There might be relevant details there:
https://forum.polkadot.network/t/private-voting-on-referenda/3001/1
Correct me if I am wrong, but I think it is possible to delegate votes to different accounts with different convictions. So one way to achieve split conviction voting is delegating some vote with conviction to one account, and the rest to another account, and having those voting accounts to vote aye and nay accordingly.
@xlc I wasn't aware of this possibility, thank you. But that doesn't exactly solve the use case I'm facing: If you use delegation, then the delegatee can vote on ANY referendum with that conviction on your behalf. That is a quasi-static setup. What I'm looking for is a possiblity to define the conviction per referendum, dynamically.
Example: Alice and Bob shield their funds to a privacy sidechain but want to continue using their tokens' voting power on the relay chain Alice shields 10 DOT Bob shields 20 DOT
now, the sidechain's vault account on L1 owns 30 DOT (Alice now owns 10 pDOT on the sidechain and Bob 20 pDOT)
For referendum 1: Alice votes Aye with 5 pDOT and 3x conviction Bob votes Aye with 13 pDOT and 2x conviction
For referendum 2 Alice votes Nay with 5 pDOT and 2x conviction Bob votes Aye with 13 pDOT and 1x conviction
now, the sidechain needs to vote with its vault account on behalf of Alice and Bob. It will vote as follows: referendum 1 vault splits votes: Aye with 5x3 DOT and Aye with 13x2 referendum 2 vault splits votes: Nay with 5x2 and Aye with 13x1
So, we not only need to split Aye and Nay, we need to split into convictions as well. The biggest split possible is 3 (Aye, Nay, Abstain) x 7 (conviction levels) = 21 splits.
I realize this is quite complicated, but it would generalize to potentially interesting use cases
In the scenario where an account is controlled by a multitude of users with varying convictions and opinions, like parachains or off-chain collectives controlling a pure-proxy, it should be possible to commit with conviction and the split should allow different conviction for Aye and Nay. Otherwise such accounts have a disadvantage in the impact they can have on referenda
https://github.com/paritytech/substrate/blob/66ac9c4714e217c35be49d279f32e507bf55cd49/frame/conviction-voting/src/vote.rs#L74-L76