BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Interview with the founder of DoraHacks: How to build a fairer quadratic donation platform?

区块律动BlockBeats
特邀专栏作者
2022-02-17 03:04
This article is about 7065 words, reading the full article takes about 11 minutes
How the new version of the quadratic voting system, which will be adopted in ETHDenver in 2022, will bring a fairer voting experience to the community.
AI Summary
Expand
How the new version of the quadratic voting system, which will be adopted in ETHDenver in 2022, will bring a fairer voting experience to the community.

Governance of large organizations and the fair distribution of funds have long been haunting themes. In the encryption community, which often has a huge treasury, how to ensure the fairness and fairness of the distribution of funds is particularly important. So how can the crypto community prevent collusion problems that are common in off-chain governance, and what are the disadvantages of traditional quadratic donations?

Rhythm BlockBeats interviewed Zhang Jiannan, the founder of DoraHacks who provided the quadratic voting system for this year's ETHDenver 2022. Let us hear his latest understanding of governance issues and the latest interpretation of the new version of the quadratic voting system for ETHDenver.

Governance conundrums in the public domain

Rhythm BlockBeats: Considering that many readers may not be particularly familiar with related concepts, so before we start discussing today's real topic, let's start with a few more basic concepts. So the first question is, how did you start to pay attention to governance issues, and what are the shortcomings of the current traditional governance voting mechanism?

Zhang Jiannan:is the governance of the real world. Many times I feel very strongly when I see governance failures because governance failures often result in lost productivity and prevent human progress.

For example, even in some developed countries with democratic governance, during the election process, people often question the authenticity and transparency of votes. For example, vote harvesting, buying other people’s votes through money or other interest promises, and then voting for specific people. This type of problem is a problem of "collusion".

Another category is the tragedy of the commons problem. In the field of public governance, there are often things that are relevant to everyone, but not so relevant to everyone, and eventually no one cares about this matter. Governance and financing of public goods are most affected by the tragedy of the commons problem.

These problems not only appear in national governance, but also in regional governance or in the field of organizational governance. If these problems can be solved to some extent, we can build more equitable and efficient societies and organizations.

In the field of cryptocurrency, the effectiveness of governance often determines whether a project can achieve value in the long run. Many infrastructure projects, or DAOs have large treasury. This treasury will face community governance issues, such as how to manage procurement, or fund its own ecology. On the one hand, it is able to do some very effective things that promote the value growth of the entire organization. On the other hand, it hopes to allow more community members to participate in governance according to their token ratio or contribution level, forming a decentralized community.

In on-chain governance, sybil attacks tend to be a particular concern because it is often easy to forge identities in an on-chain environment. However, compared to the collusion problem, we have more solutions to prevent Sybil attacks, such as whitelisting is always a good solution. Through data analysis, we can also reduce the impact of Sybil attacks afterwards.

Whether it is off-chain or on-chain voting mechanisms, there will be many technical problems. We can divide these problems into two types, one is the Sybil attack, which is the problem of forging identities. The other is the collusion problem, that is, in a governance system, some small groups will cooperate with each other.

The problems of collusion, tragedy of the commons, and Sybil attacks exist both on-chain and in real-world governance. After seeing some problems, some people will immediately say that blockchain governance is not good, but in fact these governance problems also exist in the real world, and may even be more serious. So this is not a problem with the blockchain, but a problem that governance activities generally face. Instead, blockchain gives us the infrastructure and testing ground to solve these problems.

To sum up, we have the tragedy of the commons problem in the governance process, and in terms of governance technology, we usually have to solve the problem of Sybil attacks and collusion.

Rhythm BlockBeats: We know that quadratic funding is often used in the field of public project funding in the encryption industry. Therefore, can you first explain quadratic voting and quadratic funding in layman's terms, and how it differs from traditional decision-making mechanisms?

Zhang Jiannan:Before Glen et al. invented quadratic voting, the governance system was either one person one vote, or voting with money. In the social governance system, in most cases, one person one vote. But in many other places, such as the PoS blockchain or the company's equity governance, it is basically one dollar per vote. These two types of voting have their own applicable scenarios.

For one person one vote, the biggest advantage is that everyone can participate. Since everyone has only one vote, this avoids the problem that giant whales can completely control the entire voting result. This is useful in many social types of governance, but the disadvantages are also obvious. If I pay more attention to an issue, I don't have any way to vote more on issues that I care more about.

And one dollar for one vote can reflect your attention to one thing. For example, if I pay special attention to a certain proposal, I can spend a lot of money to buy a lot of votes. Of course, the disadvantage is that the giant whale can completely control the voting results. Quadratic voting is an improvement on these two mechanisms.

This idea first appeared in the book "Radical Markets", which has a very good example. It was in a remote mountain village in Japan that a child's relatives were killed by thieves. Later, someone introduced a bill in Parliament to allow residents in remote areas to carry guns.

Then if this proposal is in the voting system of a democratic society, you will find that most people don't care about this matter, so there is a high probability that this proposal will not pass. But this matter is a very important matter for families in remote mountainous areas. In a one-person-one-vote system, the interests of these minority groups can easily be ignored.

So one idea is to assume that we are not one person one vote, but everyone has something called voice credit, for example, each person has 20 voting points, and then you can use this point to vote.

Maybe this year each person will have 20 points, and there are 20 proposals in total. You can vote for each of the 20 proposals, or you can vote all your points for the same proposal. At this time, it seems that only one vote per person has been changed to 20 votes per person, so what is the difference?

We can increase the cost of continuing to vote. For example, families in remote mountainous areas may be very interested in the motion to carry guns in remote mountainous areas. At this time, I can vote all 20 votes for this motion. But there is a difference from ordinary voting. When you vote for the first vote, you need to spend one point. To cast the second vote, you need two points. By analogy, you need 4 points for the fourth vote, and 20 points at most. Only 5 votes can be exchanged, because 6 votes require at least 21 points. Therefore, the number of votes and the number of points are actually roughly a square root relationship, which is why we call this thing quadratic voting.

Quadratic funding is an algorithm extended by Vitalik on the basis of quadratic voting. The process is the same as quadratic voting, the difference is that the results of quadratic voting are used to allocate a funding pool.

We can imagine a community of public goods (such as a community in a city, or a blockchain infrastructure) with some public goods in its own ecology. These public goods may lack the support of venture capital, because they may not have actual investment value at the earliest stage, so how do we fund it? Or think about it from another angle, if we want to allocate a fund to multiple public goods (or proposals), how do we do it?

We can set up a bonus pool and then use donations to vote for these public goods. The cost of voting when voting is constantly increasing. For example, one token can be exchanged for one vote, but you need to vote two more tokens in exchange for a second vote. If a giant whale has to vote a lot for a proposal it likes, the cost will increase at a quadratic rate, thus effectively limiting the whale's control over the capital pool. Finally, we complete the distribution of the entire bonus pool through the results of quadratic voting.

Therefore, the quadratic funding algorithm is essentially the same as quadratic voting, but their usage scenarios are different.

What are the shortcomings of the quadratic donation mechanism

Rhythm BlockBeats: At present, DoraHacks and Gitcoin, which are based on the quadratic donation mechanism, have been running for a period of time. Judging from the actual donation effect, what problems exist in the current quadratic donation system?

Zhang Jiannan:In fact, quadratic donations have proven to be extremely effective when applied on a small scale. Therefore, our main task is to consider what problems will be encountered in the process of large-scale application?

The first is the issue of identity, that is, the issue of witch attacks. Due to the quadratic funding, for example, if there are 20 people and everyone votes for one vote, the project can get more funds than if one person casts 20 votes. Because according to the algorithm, if you vote alone, the actual number of votes you get in the end is the square root of his. Therefore, it gives people a great incentive to forge more identities to participate in voting.

But in the past two years, we have had many ways to solve this problem. For example, a common method is to analyze the data after each round, and you can know who or which address may be forged. Or you can use a certain type of whitelist, such as a decentralized identity system, to prove that you are a real person, or that you are a user of a community. When these methods are combined, Sybil attacks can be prevented to a large extent.

The second, more complex issue is that of collusion. That is to say, different small groups in the system may form an alliance, and then use various means to win the preferred governance results.

For example, in elections in a democratic society, vote harvesting is an act of collusion. Contrary to sybil attacks, collusion is not very serious in small-scale applications, but when the bonus pool becomes hundreds of thousands of dollars or millions of dollars, it is very important at this time. Everyone may think about various methods, and then obtain more matching funds through collusion.

So in the long run, collusion is actually a more serious problem than Sybil attacks, and it is also a more complicated problem. Collusion is very difficult to prevent with normal means, because you have absolutely no way of knowing who is colluding with whom.

In the traditional world, we see few effective solutions to collusion. For example, insider trading, as a kind of conspiracy, is prohibited by law. But in fact most of the insider trading cannot be found and proved. On the blockchain, we have more cryptographic tools to solve the collusion problem.

Rhythm BlockBeats: In Gitcoin’s donation activities, we often encounter a project that retroactively airdrops its donors afterwards. Does this kind of behavior also belong to the issue of buying votes or collusion that you just mentioned?

Zhang Jiannan:Yes, attracting votes through airdrops is a common collusion.

Rhythm BlockBeats: You just mentioned that there are some new methods on the blockchain that can help solve the problem of collusion, so can you introduce how we achieve this improvement through some techniques of cryptography.

Zhang Jiannan:First we need to think about why there is a problem of collusion, and why the problem of collusion is so difficult to solve.

In fact, the entire governance process can be regarded as a game (game). In the most ideal situation, if everyone's information is not interoperable, then no one can conspire with anyone at this time. This is a perfect but unrealistic situation.

In reality, everyone's information can be exchanged, and the game becomes a cooperative game at this time. As different players and other players can cooperate, the outcome becomes unpredictable. In a governance system, this often results in a significant reduction in fairness. Usually, the cooperation itself can be extremely concealed, so it is almost impossible to discover the collusion itself.

To really solve this problem, we need to think from another angle: Is it possible to convert a cooperative game into a non-cooperative game in a specific scenario, such as quadratic voting?

That is, how to make it impossible for participants to communicate the results to each other, so that they cannot cooperate. But in fact, participants can communicate with each other. How can you make them virtually uncooperative in this situation? At this time, we need to adopt a cryptography solution that integrates zero-knowledge proofs. Although you can still communicate, you have no way to trust each other.

For example, I want to spend 10 yuan to buy the vote in your hand, but after you vote, I don’t know if you voted for me, and you can’t prove that you voted for me, so as long as the two parties cannot trust each other , the collusion problem can be solved. So can we design such a system? Actually it can.

A basic solution is MACI (Minimal Anti-Collusion Infrastructure). The specific approach is this. First, all of us pass an administrator when voting. Then the administrator will send a public key to the entire market. Of course, the private key is in the administrator. All information is encrypted by the public key, so you can only see the ciphertext of everyone’s information, but not clear text.

Users can vote, change keys, or perform other actions through this system. Since all of these operations are encrypted, you have no way of knowing whether the message is voting or doing something else.

So, if you want to bribe votes, for example, I will give you 100 yuan to vote for No. 3 candidate. Since all messages are encrypted, there is no way for you to prove that you actually voted. Through this simplest encryption mechanism, you have no way to prove that you have voted for me.

Finally, the administrator announces the results. But how to ensure that the final result is credible without publishing the details of the specific voting? At this time, we need to use zero-knowledge proof to prove this. When the administrator publishes the result, he also attaches a zero-knowledge proof of the result, so that we can still trust the result without anyone knowing what anyone voted for. This completes the closed loop of the entire voting mechanism.

In May 19, Vitalik proposed the framework idea of ​​MACI in the Ethereum research community. Later, several developers of the Ethereum Foundation and ConsenSys made MACI an experimental open source project. MACI will actually become a product in 2021, when clr.fund and DoraHacks will implement quadratic voting based on MACI. clr.fund was the first to be the product MVP at ETHDenver 2021. As an open source developer community of multi-chain ecology, DoraHacks realized MACI-based quadratic voting and quadratic funding infrastructure at the end of 21. During this process, the developers of the original appliedzkp team gave the DoraHacks team a lot of support and advice.

Another goal of ours is to make the process of MACI easy, to provide users with a very simple product, so that everyone can vote and support the developer community in an anti-collusion environment. At present, we have basically achieved this. MACI quadratic voting in DoraHacks is simpler than ordinary quadratic voting.

Rhythm BlockBeats: The concept of MACI (Minimal Anti-Collusion Infrastructure) sounds complicated. Can you explain the basic logic in more common terms? For example, can I understand that the role of MACI is to enable everyone to vote in secret?

Zhang Jiannan:It can be understood in this way. To put it simply, everyone encrypts their votes. Finally, we publish a result, and then use zero-knowledge to prove that this cryptographic method proves that the result is true without publishing any details and processes.

Rhythm BlockBeats: If you want to transform the current quadratic donation model into a MACI version of quadratic donation, what other necessary technologies do you need to use? In addition to the zero-knowledge proof you just introduced, are there any other additions?

Zhang Jiannan:Solve related engineering and security issues. In addition, the DoraHacks platform has already provided a lot of infrastructure, which also allows us to quickly implement the MACI quadratic voting system with a simple and smooth user experience.

The current problem is that the MACI quadratic voting system has not really been used on a large scale, so it will take a while to test. Later we have to solve some problems: how to further improve privacy, improve efficiency, and so on.

We have optimized the data structure of the state tree in the original MACI, and increased the upper limit of the number of participants and the number of votes. At the same time, some security-related bugs in the MACI codebase have been fixed.

In addition, the product needs to be more friendly, such as an effective and very friendly UI, so that when users use MACI quadratic voting, the experience is the same as when using ordinary quadratic voting. At present, we have basically achieved this, and many users have reported that the MACI voting experience is simpler.

Rhythm BlockBeats: Is there any obvious difficulty in realizing the quadratic contribution of the MACI version? For example, technically or socially.

Zhang JiannanTechnically, under the guarantee of a basic anti-collusion MACI-based anti-collusion governance system, privacy and efficiency are further improved.

At the social level, a collusion-resistant system is welcome in most cases because it makes the governance system fairer.

Because in large-scale governance, collusion will become a very unstable factor in the system, and the whole system will become very unfair, so that the whole system will become impossible for everyone to trust.

Therefore, anti-collusion is a necessary problem to be solved in the process of on-chain governance and quadratic funding scale-up, and it is a trend.

How the improved version of quadratic donation landed

Rhythm BlockBeats: You just mentioned that we actually need to introduce a node called an administrator to implement MACI. I don’t know if the introduction of this node will cause some new problems. For example, is it a centralized node? ? Or is there any way to make him relatively decentralized?

The administrator is a centralized node, but the extent to which this node can do evil is limited. First, administrators cannot publish wrong results, which is guaranteed by zero-knowledge proofs. But administrators can do other bad things, such as procrastinating, not publishing results, or disclosing private information in private.The administrator is a centralized node, but the extent to which this node can do evil is limited. First, administrators cannot publish wrong results, which is guaranteed by zero-knowledge proofs. But administrators can do other bad things, such as procrastinating, not publishing results, or disclosing private information in private.

It can be said that MACI has solved the main problem, but the issue of privacy is also very important. For this problem, we can introduce more cryptographic constructions to solve it, so that although the administrator publishes the results, he cannot see the votes of everyone in the middle, thus ensuring privacy.

Rhythm BlockBeats: We know that HackerLink.io, the developer platform of DoraHacks, can support early projects through quadratic donations. Will HackerLink.io combine the MACI mechanism in the future? When will we see the formal adoption of zero-knowledge quadratic voting? ?

Zhang Jiannan:The first round of official MACI Grants for DoraHacks is at this year's ETHDenver. This year's ETHDenver is the first community quadratic voting through the MACI infrastructure provided by DoraHacks. On February 20th, the jury of ETHDenver 22 selected 30 projects from hundreds of projects and voted for them by about 12,000 participating developers and participants.

All participants on site have the opportunity to experience the MACI voting process. So we can basically understand that this event of ETHDenver will be the first medium-scale use of MACI.

Rhythm BlockBeats: For many users, including developers who participated in these activities, it may be the first time they have encountered quadratic donations using MACI, so can you introduce this new organizational method and the previous tradition to us? Is there any difference in the quadratic contribution of ?

Zhang Jiannan:In fact, the whole process is not very different, except that in the second party donation, you can vote directly, that is to say, you cannot change the vote after you vote, but in MACI, you can vote again after you vote , the new vote will overwrite the original one.

What may be particularly different is that in fact, everyone cannot see the voting results before they are announced, because all votes are encrypted. When you need to verify the result, you need to verify the authenticity of the result through the published zero-knowledge proof. This means that we may find that there is no real-time vote-counting leaderboard in use.

In addition, the entire voting process is actually the same, and the user experience may be simpler.

Rhythm BlockBeats: Does the whole process require our participants to use certain tokens as a pledge or voting tool?

Zhang Jiannan:Actually no, this is also a very interesting place, he is simpler than before in a way.

Rhythm BlockBeats: One last question, after adopting the quadratic voting of zero-knowledge proof, is it unlikely that any project party will be able to issue airdrop rewards to supporters based on voting history?

Zhang Jiannan:Yes, you can basically understand it this way, that is to say, the project party is completely unable to do it. So maybe these project parties can give the same amount of airdrops to all project funders, or give no airdrops to all funders.

DoraHacks
founder
Welcome to Join Odaily Official Community