What is Quadratic Voting/Funding? How did we improve it?

DoraHacks
5 min readOct 23, 2021

--

What is Quadratic Funding? How does it work?

Quadratic Voting is a voting scheme introduced and often discussed in the Radical Markets community. It is often considered an innovative improvement of the traditional 1-person-1-vote or 1-dollar-1-vote voting schemes. The simplified formula on how quadratic voting functions is

cost to the voter = (number of votes)².

Individual community contributors can vote for their preferred projects to push them ahead in the funding round. The votes cost MATICs, which are directly donated to the respective projects after the round.

With a quadratic funding algorithm, the cost of each vote to a single project from a single contributor will increase, this encourages community contributors to donate to more projects.

Quadratic Funding was later introduced to the blockchain community by the Gitcoin team by Gitcoin quadratic funding grants. Community members can donate cryptos to new projects to appreciate their effort in building public goods for a specific community. In previous Gitcoin Grants, community members donate ETH to the Ethereum ecosystem projects as community Grants to help them continuously get funded.

To know more about quadratic voting, you can check the Quadratic Funding algorithm by Vitalik Buterin.

Quadratic Funding V2 — Where are we at now

HackerLink is the first product that implemented on-chain quadratic voting and funding and made it scalable. Over the past year, most of major ecosystems have been hosting quadratic funding grants on HackerLink, and 10 millions of dollars in crypto have been distributed to nearly 1,000 projects created by thousands of developers from all over the world.

Now we have three QF infrastructures.

  1. QF Grant in solidity works for all EVM-compatible chains
  2. QF Pallet on Substrate, available to deploy on all Substrate-based blockchains
  3. QF smart contract on Solana, contributed by Solana developer community

Developers from several other blockchains are creating their versions of quadratic funding grants and actively integrating with HackerLink, we are releasing these versions when they are ready.

Meanwhile, there are several pressing concerns about the current quadratic funding mechanism. These concerns can be classified into four mechanism-design problems: sybil attack, collusion, fraud, and inequality.

Fortunately, all of these problems have been studied and discussed for months in the Dora community and beyond. We also greatly appreciate the discussion between Gitcoin and Vitalik Buterin during Gitcoin GR9. All of these discussions and research contributed to the Quadratic Funding V2 Protocol.

The Quadratic Funding v2 protocol is built on HackerLink Quadratic Funding v1 protocol, with the following features.

  1. Anti-sybil Staking with DoraID

Sybil attack is a major concern of any voting system. In fact, most of the voting mechanisms require some identity system. As the HackerLink QF grant is happening on-chain (decentralized), an on-chain identity solution is needed.

In Quadratic Funding V2 Protocol, DoraID is integrated to verify voter identities based on staking (in this case we call it anti-sybil staking). DoraID is a general framework for staking. It allows users to stake DORA tokens with customized amounts and time. It was first proposed by Dora Factory developers in late March and now deployed on Ethereum and BSC.

Read the following article about DoraID if you are not familiar with it: https://dorafactory.medium.com/doraid-a-solution-for-did-and-staking-on-dora-factory-1fe2f4d942cf

In previous quadratic funding rounds, post-round analysis has played an important role to adjust final results and maintain fairness. With DoraID integration, the workload for post-round analysis can be largely relieved. Instead of checking each vote’s legitimacy as centralized solutions do, the principle of anti-sybil staking is to increase the cost to sybil attack by a big factor so that it’s practically infeasible to do so.

2. Anti-fraud

Although the QF protocol is permissionless, anti-fraud features can be added via a certain degree of smart contract admin control and frontend review. HackerLink already implemented a review mechanism to verify project identities. First, there are two functions that allow project owners to auto-verify their GitHub and Twitter ownerships. Also, it is allowed for admins to remove a project that is proved to be a fraud, and the matching fund will be automatically recalculated and redistributed to the rest of the community. This approach is highly effective to remove fraud so far. Critiques may argue that this is not decentralized, we would say it works efficiently for now.

The Anti-fraud features can be implemented in a DAO mechanism whenever necessary — allow the community to vote in order to list or remove a certain project. However, it will largely slow the process of decision, just like there is always a tradeoff between efficiency and decentralization.

3. Inequality mitigation with quadratic progressive taxation

Previously, we have discussed how inequality of matching fund distribution could discourage participation and potentially encourage more sybil attacks. To tackle this problem, we designed a quadratic funding progressive tax system.

Please refer to this post for details of the discussion and the algorithm: https://ethresear.ch/t/mitigate-quadratic-funding-inequality-with-a-progressive-tax-system/9859

The algorithm distributes tax after each vote() function call. In QF V2 protocol, we incorporated the progressive tax function into the voting process.

About Collusion

The QF V2 protocol does not address the problem of collusion. Vitalik has very in-depth discussions of collusion, and promotes MACI (Minimal Anti-Collusion Infrastructure). The infrastructure is not difficult to implement, but hard to be user-friendly. Furthermore, collusion is not an on-chain governance problem, it’s actually happening in all governance systems, including real-world elections in major democratic countries.

One general idea to prevent collusion in on-chain governance is to turn a voting process into a non-collaborative game theoretic situation. For example, MACI blocks vote verification between voters, therefore lack of trust will eliminate collusion. Although this solution is technically savvy, it is too strong and ignored some important social aspects of how individuals and organizations interact with each other. A real solution to the collusion problem in the future requires mechanism design that “regulates” certain cooperative behaviors with help of algorithms like MACI.

Conclusion

We would like to see these new mechanism designs to make quadratic voting and quadratic funding robust, fair, and secure. The new protocol will be used in future HackerLink QF rounds, and help scale quadratic funding to a new level so that we can grow the open-source funding to a new level.

As the mechanism design continuously improves, many drawbacks from traditional (off-chain) voting systems can be overcome. At some point, we might see wide adoption of QV and QF in DAOs as well as mainstream institutions for democratic decision making and funding distribution.

🛎 Follow us on Twitter |Telegram|Telegram

🛎 Follow DoraHacks on Twitter |Medium|Hackerlink|YouTube|Bilibili

--

--