Voting methods

How to map tokens into votes

A voting method in this context is a mathematical function F mapping the token or credit power of an individual, called T, to the voting power of the individual, called V:

V=F(T)V = F(T)

Two popular voting methods are:

  1. one-person-one-vote (also called democratic voting): each person can cast one vote, independently on their credit power. Hence V=F(T)=1V = F(T) = 1

  2. one-token-one-vote (also called linear voting): each person can cast a number of votes equal to the number of credits they have. Hence V=F(T)=TV = F(T) = T

Clearly, an advantage of one-person-one-vote is democracy: all people have the same voting power. The disadvantage is the flip side of democracy: since all have the same voting power, it totally ignores the differences among individuals.

Suppose, for instance, that the credit power is proportional to a feature of the individual, like the active contribution of an individual within an organization. In this case, the workaholics and the do-nothings have the same voting voice.

One-token-one-vote solves this inefficiency. However, it has the opposite problem in certain situations. Suppose that the individual credit follows a skewed distribution such as few individuals have most of the credit and the large majority of individuals have the minority of it. In such a case, since the relation between credit and voting is linear, the voting system degenerates to plutocracy in terms of credit and the vote might be dominated by the few whales that have most of the credit.

Unfortunately, it has been observed that most features related to human talent show a long-tailed skewed distribution, hence this case is not infrequent.

A compromise between these two extremes is Quadratic Voting (QV), also known as Plural Voting. According to QV, each voter can cast a number of votes equal to the square root of the number of credits they have. Hence:

V=F(T)=TV = F(T) = \sqrt{T}

In other terms, voting with VV votes costs V2V^2credits and the marginal cost of a vote is increasing:

  • 1 vote costs 1 credit

  • 2 votes costs 4 credits, hence the second vote has a marginal cost of 4 - 1 = 3 credits

  • 3 votes costs 9 credits, hence the third vote has a marginal cost of 9 - 4 = 5 credits

  • n votes costs n2n^2 credits, hence the n-th vote has a marginal cost of n2(n1)2=2n1n^2 - (n-1)^2 = 2n - 1credits, an increasing function in the number of votes

Here is an interesting simulation of Quadratic Voting by The Economist.

Let's make an example. Suppose there is a proposal with two options, A and B:

  • A is voted by one voter with 100 credits

  • B is voted by 5 voters with credits: 25, 25, 25, 16, 9

Notice that both A and B receives the same number of credits: 100. According to the QV method, however, the votes obtained by options A and B are starkly different:

VA=100=10VB=25+25+25+16+9=22\begin{array}{lcl} V_A & = & \sqrt{100} = 10 \\ V_B & = & \sqrt{25} + \sqrt{25} + \sqrt{25} + \sqrt{16} + \sqrt{9} = 22 \end{array}

Hence, option B gets more than the double of votes than option A, although both options are voted with the same number of credits. This happens because the number of voters for B is much larger than for A (5 against 1).

In general, if x=ixix = \sum_i x_i, we have that:

ixiixi\sqrt{\sum_i x_i} \leq \sum_i \sqrt{x_i}

Consider, for instance, the case in which xx is split in kk equal parts: x=i=1kxkx = \sum_{i=1}^{k} \frac{x}{k}. Then, as soon as k1k \geq 1, it holds that:

x=ixiixi=ixk=kxk=kx\sqrt{x} = \sqrt{\sum_i x_i} \leq \sum_i \sqrt{x_i} = \sum_i \sqrt{\frac{x}{k}} = k \cdot \sqrt{\frac{x}{k}} = \sqrt{k} \cdot \sqrt{x}

Hence, splitting the voting credit in kk equal parts has a boost of a factor k\sqrt{k} of the voting power. Clearly, the higher the number of splits kk, the higher the boost.

Let's see to extreme cases:

  1. if k=2k = 2, then kx1.41x\sqrt{k} \cdot \sqrt{x} \sim 1.41 \cdot \sqrt{x}; hence the binary split has boost factor is about 41%

  2. if k=xk = x, hence there are xx unitary contributions, then kx=xx=x\sqrt{k} \cdot \sqrt{x} = \sqrt{x} \cdot \sqrt{x} = x, hence the split has the effect of neutralizing the radical effect of quadratic voting, which boils down to linear voting

QV has some pros compared to linear voting:

  1. it mitigates the tyranny-of-the-majority problem: QV pushes power to the edges, away from whales (large holders) and other central power brokers

  2. wider voting participation: if voters know that their vote has a higher probability of influencing the election, they will be more likely to participate, even if they have small credit to spend

  3. greater diversification of votes among proposals: a single voter has an advantage to distribute their vote among different proposals

Here is a real example comparing the outcomes of SuperRare SpaceRace #4 - a contest for winning a gallery space within the digital art marketplace SuperRare - for both linear (one-token-one-vote) and quadratic voting:

Moreover, soulbound tokens along with quadratic voting can avoid plutocracy in DAO governance, as expressed is this viewpoint by Vitalik Buterin:

If you take the proverb that "those who most want to rule people are those least suited to do it" seriously, then you should be suspicious of transferability, precisely because transferability makes governance power flow away from the meek who are most likely to provide valuable input to governance and toward the power-hungry who are most likely to cause problems.

QV has also cons compared to linear voting:

  1. QV may be difficult to understand for some users, and as such some effort should be dedicated to creating or, at the very least, linking to, educational resources which explain the functionality and benefits of the new system

  2. in addition, QV may be vulnerable to sybil attacks in which a bad actor could distribute their credits across many wallets and make all wallets vote for the same proposal in order to increase their vote power

  3. finally, QV is sensible to pre-existing cooperation among individuals that might agree in advance to vote for the same proposals

To mitigate Sybil attacks, QV must rely heavily on the notion of verifiable and separate human identities. In practive, we need to check that for each voting address:

  1. the address owner is a human and not an artificial agent like a bot (a proof-of-personhood problem)

  2. the same human does not vote with different addresses

How can we build and verify digital reputation without sacrificing user privacy?

One solution adopted by the Gitcoin community is Gitcoin Passport. Passport is a decentralized identifier that allows anyone to own, manage and verify their digital identity without relying on a centralized database.

Finally, in the paper Decentralized Society: Finding Web3's Soul the authors propose several adjustments to QV to discount for pre-existing cooperation among individuals. Simply put, if the voting patterns of two (or more) individuals is highly positively correlated, they are assumed to be coordinated and act as a single agent, hence their voting contribution is discounted. On the other hand, if the voting patterns are statistically independent, the full voting contribution of each individual is counted.

Dig deeper: learn more about quadratic (plural) voting at RadicalxChange

Quadratic Funding

Quadratic Funding (QF) is a mathematically optimal way to fund public goods in a democratic community. Closely related to Quadratic Voting, Quadratic Funding was proposed by Vitalik Buterin, Zoe Hitzig, E. Glen Weyl in A Flexible Design for Funding Public Goods.

But, what are public goods?

All goods can be classified by their excludability and by their rivalry:

  1. a good is excludable if a person can be excluded from obtaining it, for instance because they do not pay for it or they do not belong to specific group of people

  2. a good is rivalrous if it is a scarce resource which can cause people to compete for it: one person’s use of it does reduce its usefulness for the others

  1. Let’s start with excludable and rivalrous goods. This intersection represents private goods such as food, clothes, cars and other consumer goods. Take the example of bread. A person will be excluded from obtaining bread if they are not willing to pay for it. Moreover, bread is a scarce resource which can cause people to compete for it.

  2. When it comes to goods that are excludable and non-rivalrous, we end up with club goods such as non-congested cinemas, private parks or subscription music or video streaming. Amazon prime video or Spotify music, for instance, exclude people who don’t want to pay for them, but they are not rival goods since one person’s use of them does not reduce their usefulness for the others

  3. So how about non-excludable goods that are rivalrous in nature? This intersection represents common goods such as fish, timber or coal. Everyone has access to these resources but there is an inherent competition when it comes to collecting them due to potential overuse or congestion

  4. Now for the non-excludable and non-rivalrous goods. This is where public goods come into play. Some of the examples are clean air, infrastructure and privacy. But also free software and free education (like DAE). We don’t have to compete for them and we cannot be excluded from them, either by being priced out or not belonging to a specific group of people

In a nutshell, there are three parties in a Quadratic Funding campaign:

  • the grantee, which is an individual or cause soliciting funding for their project

  • the everyday citizen or small donor, who can view all the grant proposals, and decide which ones they want to support by making a small contribution

  • the large donors, who contribute funds to a matching pool, which are used to match the funds donated by the small donors, or the crowd.

Quadratic Funding elevates the crowd’s favorite projects, by contributing more matching funds to the grants that receive the highest number of contributions, not the highest value of contributions.

More formally, let ci(p)c_i(p) the contribution of funder ii to project pp. Then the funding Q(p)Q(p)allocated to project pp by the QF method is proportional to:

Q(p)=(ici(p))2Q(p) = \left(\sum_i \sqrt{c_i(p)}\right)^2

More precisely, let Q=pQ(p)Q = \sum_p Q(p) be the sum of all contributions to all projects and MP\mathrm{MP} be the matching pool. Then the funding allocated to project pp, that is the share of the matching pool that the project receives, is computed as:

F(p)=MPQ(p)QF(p) = \mathrm{MP} \cdot \frac{Q(p)}{Q}

Let's make a toy example in which we compare:

  • democratic funding D (counting only the number of funders of a project)

  • linear funding L (counting only the amount of funds a project received)

  • quadratic funding Q (counting both the number and amount of funds for a project)

Imagine we have 3 funders called X, Y, and Z and 2 projects called A and B. Funder X donates 100 to project A, and funders Y and Z donate 25 each to project B. To simplify, imagine the matching pool is the sum of the donations, that is 100 + 25 + 25 = 150.

As you can see from the outcomes, the quadratic funding solution is a balance between democratic and linear funding.

Notice that, using quadratic funding, project A received 100 (from X) but was funded for only 75, while project B received 50 (from Y and Z) and was funded for 75. An invisible hand moved 25 funds from A to B rewarding the fact that B has more contributors than A. As Steven P. Lalley and E. Glen Weyl put it:

It is a voting rule under which voters who intend to pursue only their own self-interest are guided, as if by an invisible hand, to promote the interests of society

Lower and upper bounds

Let's prove lower and upper bounds of the quadratic funding function Q(x)Q(x) over contribution non-negative vectors x0x \geq 0 of length k1k \geq 1:

Q(x)=(i=1kxi)2Q(x) = \left(\sum_{i = 1}^{k} \sqrt{x_i}\right)^2

Let's fix the overall contribution sum:

i=1kxi=N\sum_{i = 1}^{k} x_i = N

The question is:

Over all contribution vectors with fixed sum, which is the vector that minimizes and the one that maximizes the QF function?

It holds that:

  1. NQ(x)kNN \leq Q(x) \leq k \cdot N

  2. the lower bound (NN) is achieved for a fully unbalanced contribution such that xj=Nx_j = N for some jj and xi=0x_i = 0 for all iji \neq j; notice that this base line equals to the output of the linear funding

  3. the upper bound (kNk \cdot N) is achieved for a perfectly balanced contribution such that xi=N/kx_i = N / k for all ii

  4. in general, the more evenly distributed is the contribution, the higher the QF function outcome, a behavior akin to Shannon information entropy

Intuitively, the above makes perfectly sense, since QF rewards contributions with public interests over those with private intentions. For instance, in the binary case in which that are two contributions (x1,x2)(x_1, x_2) such that x1+x2=100x_1 + x_2 = 100, an unbalanced contribution vector (90,10)(90, 10) contributes less to the QF than a balanced contribution vector (50,50)(50, 50).

We first show that NQ(x)N \leq Q(x):

Q(x)=(i=1kxi)2i=1kxi=NQ(x) = \left(\sum_{i = 1}^{k} \sqrt{x_i}\right)^2 \geq \sum_{i = 1}^{k} x_i = N

We next prove that Q(x)kNQ(x) \leq k \cdot N. Recall the Cauchy-Schwarz inequality:

(i=1kaibi)2i=1kai2i=1kbi2\left(\sum_{i = 1}^{k} a_i b_i \right)^2 \leq \sum_{i = 1}^{k} a_{i}^2 \cdot \sum_{i = 1}^{k} b_{i}^2

If we set ai=xia_i = \sqrt{x_i} and bi=1b_i = 1 we have:

Q(x)=(i=1kxi)2i=1kxii=1k1=kNQ(x) = \left(\sum_{i = 1}^{k} \sqrt{x_i}\right)^2 \leq \sum_{i = 1}^{k} x_i \cdot \sum_{i = 1}^{k} 1 = k \cdot N

Learn more about Quadratic Funding at RadicalxChange.

RadicalxChange (RxC) is a global movement for next-generation political economies.

It is is made up of a vibrant and diverse global community of forward-thinking technologists, social scientists, artists, activists, and entrepreneurs dedicated to a shared mission — to modernize and innovate the basic institutions of democracy and markets through a radically egalitarian and participatory vision for the future.

Both Quadratic Voting and Quadratic Funding are used by Gitcoin, an organization that started in 2017 with the goal of supporting the development of open source projects and monetizing open source software through bounties. The mission eventually solidified to building and sustaining digital public goods. GR1, in 2019, saw 200 contributors and $38k raised, with the most recent being GR15, which saw a total of $4.4M distributed to grantees. Across the first 15 grant rounds, $50.82M has been distributed in total.

Play - Quadratic funding

Imagine that we have $10,000 of matching pool we want to distribute, and we want a community to determine who should receive the funding.

Let’s say three projects participate in a funding round and they received the following contributions from small donors:

  1. Project A received $100 in total from 2 contributors ($50 each)

  2. Project B received $100 in total from 5 contributors ($20 each)

  3. Project C received $100 in total from 20 contributors ($5 each)

Write a script in R to compute the amount of the matching pool received by each project.

# computes funding using a matching function
# l: a list where each element is a vector of contributions to a project
# pool: the overall matching pool
# f: matching function (eg, quadratic funding)
funding = function(l, pool, f) {
  # apply f to each element of list l and returns a vector with the results
  m = sapply(l, f)
  pool * m / sum(m)
}

# example
# matching pool
pool = 10000

# contributed amounts to projects
a = rep(50, 2)
b = rep(20, 5)
c = rep(5, 20)
contribs = list(a, b, c)

# quadratic funding
qf = function(x) {
  sum(sqrt(x))^2
}
funding(contribs, pool, qf)

# democratic funding
df = function(x) {
  length(x)
}
funding(contribs, pool, df)

# linear funding
lf = function(x) {
  sum(x)
}
funding(contribs, pool, lf)
Play - Gitcoin passport

Create your Gitcoin passport associated with your Ethereum address.

How many points did you collect? The human threshold is 20.

Last updated