Exploring alternatives to Liquid Democracy

I’ve long been a proponent of Liquid Democracy as means of scaling more direct governance by allowing the creating of a dynamic/bottom-up hierarchy. It is my first choice for allocating authority within a large organization that is faced with a wide range of decisions because it ensures that individuals always have the option to wield their authority directly or delegate it, and can switch between the two seamlessly. However, a persistent challenge we have identified as we have pursued development of an ethereum implementation of liquid democracy, is the computational costs associated with keeping track of delegation chains have proven challenging to overcome while ensuring a solution which is both secure and practical. For a summary of these issues I recommend reviewing the Open Challenges for on-chain Liquid Democracy. These costs must be paid in order to delegate or un-delegate, and in order to transfer the asset it must be un-delegated. If we want the asset to be used as currency/collateral as well as governance its important that transaction costs are minimized.

Due to these concerns about scalability and cost, its worth exploring some alternative approaches to delegative voting that might provide some of the same advantages of Liquid Democracy while minimizing the complexity and cost of tabulation. Hopefully in the future, things like secure off-chain computation oracles will make cost less of a concern.

Simple Proxy Voting

Allowing one-hop delegation removes the need to manage a delegation chain, this means that the costs to delegate or un-delegate for a given topic is both constant and relatively small. The cost O(N) where N is the number of topics that can be delegated on.

This offers many of the same benefits of Liquid Democracy, it allows users to delegate and un-delegate their authority to users they trust at any time. It does not allow for the formation of bottom up chains of trust. For example, If I don’t have a personal trusted relationship with someone I consider a direct authority, I cannot delegate to someone I trust to pick an authority on my behalf. Instead I must either vote directly on a topic I may not consider myself qualified to assess, or delegate directly to someone I know only loosely act on my behalf.

Council Voting

Another approach is to delegate topics based on elected councils. These councils can be used to represent passive participants in the process.

When an issue is presented for a vote, both the results of the council’s vote as well as the results of the general vote can be considered. This process can be used to represent the intent of passive participants, by biasing how “absentee” votes depending on the result of both the general vote and the council vote. The following diagram summarizes how this works for a given proposal:

The amount of bias can be absolute (eg all absentee votes are counted as ‘nay’ in a ‘nay’-bias vote, or can be a function of voter turnout, so the greater the turnout in the stakeholder vote, the less bias (and therefore power) the council has on the issue.

A specific approach following this pattern is being implemented for governance of the polkadot network.

Compared to Liquid Democracy, this voting procedure does not allow individuals to delegate their voting authority to an individual, but instead passive voters as a whole have their interests represented by a council. Unlike traditional representative democracy, all issues still must pass a vote consisting of all stakeholders, but the council has significant influence on how easily certain proposals pass, particularly in cases where proposals are either unpopular or broadly accepted among the council.

The big advantage over proxy voting and Liquid democracy is that from a cost perspective this allows users to vote for councils, and vote on any number of topics with the cost to un-stake remaining constant.

I’m really interested to understand what people thoughts are on the tradeoffs between these different approaches and their implementations should be prioritized.


Thanks for the write-up @lkngtn, very good summary.

I think the Council mechanism biases for passive voters could end up working really well. We need to come up with the specific formula for how the final vote result gets calculated. Also something I have been thinking about is whether the Council could also vote to veto a proposal directly, if a certain threshold vetos, the general token holder vote wouldn’t even happen. This can be used as an initial proposal vetting mechanism before we have the Court.

Little known fun fact, Aragon v0.3 had proxy voting, but it never made it to the UI.

1 Like

Yes, really good summary.
The Council Voting seems like a very interesting method to explore and experiment with.
About the Simple Proxy Voting, I think it can be a useful alternative to have too. Although it seems it will always be suboptimal compared to Liquid Democracy, it still an improvement in that direction, so it would be good to have it until we fix those LD cost issues (off-chain tabulation looks promising). Besides, some small improvements could be done to try to get a little bit closer to the initial idea of full delegation:

  • The front end could have some helpers so I can easily delegate to the same person as the person I know and trust (re: “I cannot delegate to someone I trust to pick an authority on my behalf”)
  • Also, I wonder if we could do something similar to token allowance for transferFrom. So I could “allow” the person I trust to delegate on my behalf, keeping the one level depth. Then that person could set my delegate on my behalf. It looks like less convenient and some problems arise here, like the trusted person having to pay for the gas of my delegation, but maybe I could stake some funds that will go to the trusted person if the on-behalf delegation is made effective (it could even include some incentive fee, although exercising the power could be enough incentive). I even wonder if this could be another application for the new multicall to come to avoid the trusted person to make a ton of transactions.

I think a strong ‘nay’ bias would mostly likely be effectively a veto.

In the polkadot proposal they allow each individual council member a veto, which prevents the proposal from going through for atleast a cool down period. It can still be pushed through directly immediately but with the strong nay bias. I think the cool down thing is nice because it allows time for the general voting to become more aware and continue to discuss.