Private Voting on Referenda

I’d like to follow up here because of the recent launch of Incognitee for DOT.

Once OpenGov has moved to Asset Hub we could make private voting a reality pretty quick along these rough lines:

Susie holds 100’000 DOT and she wants to use them to vote in OpenGov. However, she wants her vote to be private.

  1. Susie shields 1 DOT to Incognitee to have an account on L2
  2. Susie delegates her voting power to Incognitee vault account on L1 (controlled by the sidechain validateer enclaves via proxy)
  3. Susie casts her vote on incognitee instead of L1
  4. Incognitee tracks referenda and delegations and their voting power in order to count votes internally on L2 and cast a vote on behalf of the vault account by a deadline relative to the referendum progress

Assuming that 15 others have delegated 100’000 DOT to Incognitee, Susie would enjoy a k-anonymity of k=16 with her vote.

Advantages:

  • minimally invasive: no change to Polkadot runtimes.
  • no funds at risk as only small amounts must be shielded to L2. The stash stays on L1.
  • pretty low hanging fruit for Incognitee.
  • non-exclusive approach: Can coexist alongside other privacy enhancements (pluralism!) as long as some voters chose to use it