Distinctive feature is that a significant number of people benefit from their use, and limiting their use is impossible or inappropriate. Examples include public roads, security, research and open source software. The production of such goods, as a rule, is not profitable for individuals, which often leads to their insufficient production (). In some cases, governments and other organizations (such as philanthropic foundations) take over the production, but the lack of complete information about the preferences of consumers of public goods and other problems associated with centralized decision-making lead to inefficient spending of funds. In such cases, it would be more appropriate to create a system where consumers of public goods would have the opportunity to directly vote for certain options for their provision. However, when voting on the principle of "one person - one vote", the votes of all participants are equal and they cannot show how important this or that option is for them, which can also lead to suboptimal production of public goods.
(or CLR funding) was proposed in 2018 in a paper as a possible solution to the above problems of financing public goods. This approach combines the advantages of market mechanisms and democratic governance, but is less prone to their shortcomings. It is based on the idea (co-financing), in which people make direct donations to various projects that they consider to be of social benefit, and some large donor (for example, a charitable foundation) undertakes to add a proportional amount to each donation (for example, double it). This creates an additional incentive to participate and allows the sponsor to effectively allocate funds without having expertise in the area being funded.
The peculiarity of quadratic financing is that the calculation of the added amounts is carried out similarly to the calculation of the results when . This type of voting implies that participants can buy votes and allocate them to various decision options, and the cost of the purchase increases in proportion to the square of the number of purchased votes:

This allows participants to express the strength of their preferences, which is not possible with one-person-one-vote voting. At the same time, this approach does not give undue influence to participants with significant resources, as happens with proportional voting (which is often applied in ).
With quadratic funding, each individual donation by a member to a project is considered a purchase of votes for the distribution of funds in favor of this project from the general match fund. Let's assume that the member
made a donation to the project
at the rate of
. Then the weight of his voice
will be equal to the square root of the size of his individual contribution:

Amount of matching financing
, which the project will receive
, then calculated based on the sum of votes for this project among all participants:

If, as a result of the vote count, the total amount of funding exceeds the fixed budget
, then the amount of matching funding for each project is adjusted in accordance with its share among all projects:

The authors of the work show that such a mechanism provides optimal financing of public goods. Even small donations, if made by a large number of people, result in a significant amount of matching funding (such a result is typical for public goods), while large contributions from a small number of donors result in a smaller amount of matching funding (such a result indicates that that the good is likely to be private).
To get acquainted with the operation of the mechanism, you can use the calculator: .
Bitcoin
The quadratic funding mechanism was first tested in early 2019 under the on the Gitcoin platform, which specializes in supporting open source projects. IN funding 132 donors made donations in cryptocurrencies for the development of 26 ecosystem infrastructure projects . The total donations amounted to $13242, in addition to which $25000 was allocated from a matching fund created by several major donors. In the future, participation in the program was open to everyone, and the criteria for projects falling under the definition of public goods of the Ethereum ecosystem were expanded, a division into categories such as “technology” and “media” appeared. As of July 2020, there have already been , during which more than 700 projects received a total of more than $ 2 million in funding, and the donation was $4.7.
The Gitcoin Grants program has shown that the quadratic funding mechanism works in accordance with the theoretical framework and provides funding for public goods according to the preferences of community members. However, this mechanism, like many electronic voting systems, is vulnerable to some attacks that platform developers had to deal with. during the experiments:
- . To carry out this attack, an attacker can register many accounts and, by voting with each of them, redistribute funds from the matching fund in his favor.
- Bribe. To bribe users, it is necessary to be able to monitor their compliance with the agreement, which becomes possible due to the openness of all transactions in the public Ethereum blockchain. Just like the Sybil attack, user bribery can be used to reallocate funds from the general fund to the attacker, provided that the benefit of the redistribution exceeds the cost of the bribery.
To prevent a Sibyl attack, a GitHub account is required during user registration, and the introduction of phone number verification via SMS was also considered. Bribery attempts were tracked through vote buying announcements on social media and blockchain transactions (groups of donors who were paid from the same source were identified). However, these measures do not guarantee complete protection, and with sufficient economic incentives, attackers can bypass them, so developers are looking for other possible solutions.
In addition, there was the problem of curating the list of projects receiving funding. In some cases, funding applications came from projects that were not public goods or did not fit into eligible project categories. There have also been cases when fraudsters placed applications on behalf of other projects. The method of manual verification of funding recipients worked well with a small number of applications, but its effectiveness decreases with the growing popularity of the Gitcoin Grants program. Another problem of the Gitcoin platform is centralization, which implies the need to trust its administrators in terms of the correctness of their vote count.
clr.fund
Project objective under development is the creation of a secure and scalable quadratic funding fund, drawing on the experience of the Gitcoin Grants program. The fund will operate with minimal trust in its administrators and will be managed in a decentralized manner. To do this, the accounting of donations, the calculation of the amounts of matching funding and the distribution of funds must be carried out using . Vote buying will be hindered by the use of secret ballots with the possibility of voice substitution, user registration will be through a social verification system, and a community-driven funder registry with a built-in dispute resolution mechanism.
Secret ballot
The secrecy of the vote in voting using a public blockchain can be preserved using protocols , which allows checking the correctness of mathematical operations on encrypted data without disclosing this data. In clr.fund, the size of individual donations will be hidden and the system will be used to calculate the amount of matching funding called (Minimum Anti-Collusion Infrastructure, the minimum infrastructure to counter collusion). It allows for secret quadratic voting and protects voters from bribery and coercion, provided that the processing of votes and the tabulation of results is carried out by a trusted person called a coordinator. The system is designed so that the coordinator can facilitate bribery because he has the ability to transcribe votes, but he cannot eliminate or substitute votes, and cannot falsify the results of the vote count.
The process starts with users generating a pair keys and register in the MACI smart contract, recording their public key. Then voting begins, during which users can write two types of encrypted messages to the smart contract: messages containing a vote and messages that change the key. Messages are signed with the user's key and then encrypted using another key generated by the protocol. from the user's special one-time key and the public key of the coordinator in such a way that only the coordinator or the user himself can decrypt them. If the attacker is trying to bribe the user, then he can ask him to send a message with a voice and provide the contents of the message along with a one-time key, with which the attacker will restore the encrypted message and make sure, by verifying the transactions in the blockchain, that it was really sent. However, before sending the vote, the user can secretly send a message that changes the EdDSA key and then sign the message with the vote with the old key, invalidating it. Since the user cannot prove that the key has not been replaced, the attacker will not be sure that the vote in his favor will be counted, and this makes bribery pointless.
After voting is completed, the coordinator decrypts the messages, counts the votes, and verifies two zero-knowledge proofs through the smart contract: the proof of correct message processing and the proof of correct vote counting. At the end of the procedure, the results of the vote are published, but the individual votes are kept secret.
Social verification
Although the reliable identification of users in distributed networks remains an unsolved problem, in order to prevent a Sybil attack, it is enough to complicate this attack so that the cost of its implementation becomes greater than the potential benefit. One such solution is a decentralized identification system. , which works like a social network where users can create profiles and connect with each other by choosing the level of trust. In this system, each user is assigned a unique identifier, information about the relationship of which with other identifiers is recorded in , which is stored at the computing nodes of the BrightID network and synchronized between them. No personal data is stored in the database, but only transferred between users when establishing contacts, so the system can be used anonymously. Computing nodes of the BrightID network analyze the social graph and, using various techniques, try to distinguish real users from fake ones. The standard configuration uses the algorithm , which for each identifier calculates a score indicating the probability that a unique user corresponds to it. However, identification techniques may vary, and if necessary, application developers can combine the results obtained from different nodes, or run their own node, which will use algorithms that are optimal for their user base.
Dispute resolution
Participation in quadratic funding will be open, but for this, projects will be required to register in a special register. To be added to it, representatives of the project will have to pay a deposit, which they can pick up after a certain period. If the project does not meet the registry criteria, any user will be able to challenge its addition. The removal of the project from the registry will be considered by arbitrators in a decentralized and in the case of a positive decision, the user who reported the violation will receive a part of the deposit as a reward. Such a mechanism would make the registry of public goods self-regulating.
The system will be used to resolve disputes. built using smart contracts. In it, anyone can become an arbitrator, and the justice of the decisions made is achieved with the help of economic incentives. When a dispute is initiated, the system automatically selects several arbitrators by drawing lots. The arbitrators consider the evidence provided and vote in favor of one of the parties using : votes are cast in encrypted form and are revealed only after voting ends. Arbitrators who are in the majority receive a reward, and those who are in the minority pay a fine. Due to the unpredictability of the composition of the jury and the concealment of votes, coordination between arbitrators is difficult and they are forced to anticipate each other's actions and choose the option that others are most likely to choose, otherwise they risk losing money. It is assumed that such an option () will be the most fair decision, since in the absence of information, the rational choice will be to make a decision based on well-known ideas about fairness. If one of the parties to the dispute does not agree with the decision, then appeals are scheduled, during which more and more arbitrators are successively selected.
Autonomous Ecosystems
The listed technological solutions should make the mechanism less dependent on administrators and guarantee its reliable operation with small amounts of distributed funds. As technology advances, some components may be replaced to provide better protection against vote buying and other attacks, with the ultimate goal being a fully autonomous quadratic funding fund.
In existing implementations such as Gitcoin Grants, the production of public goods is subsidized by large donors, but the funds may come from other sources instead. In some cryptocurrencies, for example и , inflationary financing is used: part of the reward for sent to the development team to support their further work to improve the infrastructure. If a quadratic funding mechanism is created that works reliably and does not require centralized administration, then part of the block reward can be sent to it for subsequent distribution with the participation of the community. Thus, an autonomous ecosystem will be formed, where the production of public goods will be a completely self-sustaining process and will not depend on the will of sponsors and managing organizations.
Source: habr.com
