There are multiple steps in quadratic funding process.
- Matching fund creation
- Project submission
- Collection of donations
- Points calculation
- Funding allocation
- Payout
Matching fund creation
First step in QF is a decision on what will be funded and by how much money. For example, a city can decide to fund local cultural projects with €500.000 in the following year.
These funds are then committed in the annual budget and left on the account until the decision is made how to allocate it.
The allocation is decided within a grant process (call for proposals) which is done according to a set of rules specified in a grant Programme and Rulebook. These rules specify things like who can submit a project proposal, what kind of projects can be funded, how much money can be allocated per project, etc.
Project submission
Project submission is done through a specified interface. In the case of Quadratic Funding, Gitcoin is often used for this. It allows anyone with Ethereum account to create a project page. Public facing information is published on blockchain where everyone can
Collection of donations
Points calculation
- Individual Contributions:
- Suppose three people—Alice, Bob, and Carol—contribute to a project.
- Alice contributes $9, Bob $4, and Carol $1 to the project.
- Represent Contributions as Squares:
- Each person’s contribution is represented as a square where the area of the square is equal to the contribution.
- Alice’s contribution is a square with an area of 9 square units (because she contributed $9), Bob’s is 4 square units, and Carol’s is 1 square unit.
- Square Roots as Sides:
- The length of each side of the square is the square root of the contribution.
- For Alice, since she contributed $9, the side of her square would be 3 units (because 9=3).
- Similarly, Bob’s side would be 2 units and Carol’s would be 1 unit.
- Combine Contributions into a Larger Square:
- Now, we combine the sides to form a new, larger square. We add up the lengths of the sides: Alice's 3 units, Bob's 2 units, and Carol's 1 unit, to get a total side length of 6 units for the larger square.
- Area of the Larger Square:
- The area of this larger square represents the total potential impact of the contributions, which is the square of the total side length: 6×6=36 square units.
- Calculate the Subsidy:
- The actual total contributions add up to $14 ($9 from Alice, $4 from Bob, and $1 from Carol).
- The potential impact, represented by the area of the larger square, is 36 square units.
- To find the subsidy, we subtract the actual contributions from the potential impact: 36−14=22 square units.
- These 22 square units represent the subsidy.
- Visualizing the Subsidy as Rectangles:
- Each rectangle represents a unique pairing of contributors. For example, one rectangle would represent the interaction between Alice’s and Bob’s contributions.
- The size of the rectangle is calculated by multiplying the sides of the individual squares: Alice′scontribution×Bob′scontribution, which is 3×2=6 square units.
- This calculation is done for all possible pairs: Alice & Bob, Alice & Carol, and Bob & Carol.
- Pairing Rectangles Reflect Coordination:
- The subsidy model rewards the collective impact of multiple contributors. So, the larger the combined contributions from pairs, the larger the rectangles, and thus, the larger the subsidy.
- These rectangles, when added together, make up the subsidy area (the yellow area in your image).
9=3
6×6=36
36−14=22
�����′� ������������×���′� ������������
3×2=6
The math behind the Quadratic Funding
Quadratic funding uses a simple formula named CLR formula:
This represents the money given by a person (let's call them "Person j") to a specific community project (let's call it "Project p").
We're measuring each person's donation to a project in a special way. Think of it like turning the donation into "support points", where even small donations can have more "points" than you'd expect.
Here, we're adding together all the "support points" from everyone who donated to "Project p". This gives us a total "support score" for the project.
Next, we take the "support score" and multiply it by itself to boost it. This step ensures that projects with lots of supporters get a lot of bonus money.
This part tells us how much bonus money the project gets because of the donation from a specific person (let's call them "Person i"). But, it also subtracts that person's original donation to show the "extra" or "bonus" amount they've helped bring in.
To sum up, this formula calculates the bonus money each community project receives based on the support it gets from the townspeople. Projects with many supporters, even if they give a little, are highly valued and get a lot of the bonus funds.
Total Matching Pool = €10,000
Donated = €3,000
Total = €13,000
Project | A | B | C |
Donated amount | €1,000 | €1,000 | €1,000 |
Number of donors | 2 (€500 each) | 5 (€200 each) | 20 (€50 each) |
Matched amount | €740.74 | €1851.85 | €7407.41 |
Matched amount % | ~74% | ~185% | ~740% |
Total received | €1,740.74 | €2,851.85 | €8,407.41 |
Improvement: Pairwise coordination subsidies
There is a potential flaw in the CLR subsidy formula and in 2019, Vitalik Buterin proposed a solution to make it more robust. The CLR formula is used to determine funding for projects based on contributions from multiple agents. Each agent contributes a certain amount to a project, and the project receives a subsidy that is a function of these contributions, multiplied by a subsidy coefficient .
The challenge identified is that the CLR formula assumes that the contributing agents are completely uncoordinated, which is not always the case. This assumption can be exploited. For example, if two agents coordinate and contribute a large sum to a fraudulent project, they can extract a disproportionately large subsidy, undermining the fairness of the system.
To address this, a modification to the CLR formula is proposed in the paper:
Instead of a single global subsidy coefficient , it proposes using a distinct coefficient for each pair of agents. This coefficient would reflect the level of coordination between the two agents. The more funds two agents contribute to the same projects, the more coordinated they are presumed to be, and thus the lower their would be set.
This approach aims to reward genuine, uncoordinated contributions while limiting the subsidy for those who are coordinating their efforts.
Subsidy formula for a project p:
Subsidy calculation with two coordinating agents:
Pairwise coordination subsidy for agents and :
Adjustment of based on coordination level:
Subsidy calculation for coordinated agents:
- For k agents contributing W:
- Total subsidy limit: