-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add public goods funding page #7732
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Hi - this seems to be a blank page - assume it is in progress? Please convert to draft so it doesn't ping us for review. |
✅ ethereum-org-website-dev deploy preview ready
|
Updates the index.md file with content for the public goods funding page.
I was trying to create a file in my fork of the repository earlier, which was why you saw a blank page (I've added the content now). I want to add a new file (a screenshot), so I can add a relative link to it in the article. Any idea how I can do that? |
I'd add the screenshot to |
Tried to add an image here; not sure if it worked
Alright, thanks. I just pushed a new commit to make the change. Let me know if it works. |
src/content/public goods funding.md
Outdated
|
||
2. `Park B`: Adding the square roots of each donor's contribution ($20) gives $40. Subtracting the total amount contributed ($800) from the square of $40 ($1,600) gives $800—the matched funds. | ||
|
||
#### Why is quadratic funding ideal? {#advantages-of-quadratic-funding} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"ideal" might be a bit generous - certainly it is favourable compared to traditional funding mechanisms but it is also inherently vulnerable to Sybils whose influence are quadratically scaled. I'd favour using the page-tag wording in the title (i.e. change title to "advantages of quadratic funding")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed this per your suggestion.
src/content/public goods funding.md
Outdated
|
||
2. **Bribery and collusion**: It is possible to bribe voters to donate to a particular project (even if they prefer another option), thereby artificially inflating perceived preference for the former. This defeats the purpose of voting since the votes cast by a bribed individual may not reflect their true preference. Hence, just like Sybil attacks, bribery and collusion reduce the effectiveness of quadratic funding mechanisms. | ||
|
||
Ethereum solves both problems in the following ways: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure this problem has been solved - it is still definitely an area of rapid development, but the arms race between Sybil attackers and defenders is real.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed it to "mitigates" since that connotes reducing the problem, not solving it.
src/content/public goods funding.md
Outdated
|
||
[Zero-knowledge proofs](/zero-knowledge-proofs/) enable anyone to prove the validity of a claim without exposing the underlying information. For example, Alice can prove her status as a United States citizen without having to provide her passport details. | ||
|
||
Zero-knowledge proofs are particularly useful for preventing bribery and collusion in public voting. This is achieved by obfuscating details about individual votes whilst preserving the integrity of voting results. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this actually implemented in-prod anywhere on Ethereum (genuinely don't know)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clr.fund is similar to Gitcoin and uses MACI. I've provided some more context concerning the tool in the new commit, though.
Cleaned up details related to preventing bribery and collusion with MACI
Hey @emmanuel-awosika. Just wanted to follow up and update you on where we are at. Last week (Feb 6) we discussed this at GitHub grooming, and decided we needed to workshop this content structure of this a bit. We had a workshopping call Feb 9 to workshop ideas for this page, and I'm working on taking our discussion on this and creating a new content structure. Once I have done that this week, ill follow up with this new structure. After that, the intent is to take as much of what you have written here and bring it into this new structure. I wanted to apologize for how long this PR has been sitting, but I hope this update will help provide some clarity on where we are at with this, and that we are working to get this across the finish line. |
Hey @corwintines, thanks for providing an update. Sure, I'll be happy to help rework the page once the new content structure is ready. |
Hey @corwintines & @wackerow. Any new information on how we might get this over line? I know a new ReFi page (which has some ideas related to public goods funding and regenerative cryptoeconomics) has been added to the website. But I'm wondering if we'd still benefit from a comprehensive resource on public goods funding. @corwintines mentioned wanting to make the page more reader-friendly, and I'm in support. For starters, we could have some more concrete info about the impact of retroactive public goods funding using stats from Optimism's RetroPGF. This is just an idea at the moment, but I'll leave it to the team to decide the best approach to revamping the content. |
@corwintines: Resurfacing this PR + sharing some of the newer ideas I have around the content:
|
✅ Deploy Preview for ethereumorg ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
|
||
### Regenerative cryptoeconomics and public goods markets {#regenerative-cryptoeconomics-and-public-goods-markets} | ||
|
||
"Regenerative cryptoeconomics" concerns using blockchain technology to design incentives and mechanisms that support regenerative economic systems. A regenerative economy is one that has positive environmental and social externalities that also generate more capital assets. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
poor sentence, remove
### 2. Poor resource-allocation mechanisms {#poor-resource-allocation-mechanisms} | ||
|
||
In funding public goods, it is necessary to have a mechanism for eliciting the preferences of individuals before allocating funds. Traditional public goods funding models are inefficient because they rely on poorly designed mechanisms for measuring public preferences, such as: | ||
|
||
#### Democratic voting {#democratic-voting} | ||
|
||
Funding models that apply democratic voting ("one person, one vote") rules rely on the majority opinion to allocate funding for public goods. In theory, using the collective opinion to guide funding is a great idea. In reality, however, this system has problems: | ||
|
||
1. **Rational indifference**: In a democratic voting scheme, the ability of each individual to influence the outcome is limited (you can only vote once). As such, those whom a public good benefits the most (for example, public healthcare for aged citizens) are unable to push for its production. This leads to individuals rationalizing nonparticipation ("Why bother voting when my vote matters little?"). | ||
|
||
2. **Voter ignorance**: Prioritizing the preferences of the majority may not necessarily lead to spending on the right public goods owing to widespread voter ignorance. In this case, informed voters are unable to push for the production of more beneficial public goods. | ||
|
||
3. **Negative externalities**: Another downside with democratic funding schemes is the cost borne by the minority. In democratic systems, those who may not necessarily need a public good are forced to pay the same as those who need it the most. Consider the case where Bob (an introvert who prefers staying indoors) is forced to pay taxes to subsidize the creation of public parks for people like Alice (an extrovert who enjoys staying outdoors), even though Bob himself might never get to use the park. This is a trivial example, but there are other real-world situations where the minority in society are (unfairly) required to pay for public goods on behalf of others who need the public good but aren't willing or able to pay for it. | ||
|
||
#### Plutocratic voting {#plutocratic-voting} | ||
|
||
Some funding models use a plutocratic mechanism in which an individual's financial power determines their influence on the process of providing public goods. These systems are typically described as "one dollar, one vote". In theory, plutocratic funding is ideal since it allows for expressing unequal preference for public goods—but it also has problems: | ||
|
||
1. **Serving the rich**: Plutocratic voting prioritizes the preferences of the wealthy (who are often the minority) to the detriment of average income-earners that comprise the majority. Thus, public goods that matter to the majority (and have bigger societal benefits) may never receive funding. | ||
|
||
2. **Cost burdens**: It is possible for middle-class citizens to leverage crowdfunding mechanisms in order to compete against wealthy indivdiduals and collectively express their preferences for a public good. But this is considerably unfair since they still have to bear unfavorably higher costs when expressing preferences. | ||
|
||
3. **Negative externalities**: Public goods created via plutocratic mechanisms often produce negative externalities, mostly because of the need to maximize returns on investment. A classic example is the Internet as it exists today: because Internet businesses (e.g., social media platforms) cannot charge consumers directly, they rely on advertising to recoup investment in infrastructure. This is even as reports of the [negative effects of targeted advertising on individuals](https://www.vox.com/platform/amp/the-goods/2020/4/9/21204425/targeted-ads-fertility-eating-disorder-coronavirus) continue to surface. | ||
|
||
## Improving public goods funding with blockchain technology {#blockchain-for-public-goods-funding} | ||
|
||
The problems explained in the previous section lead to "coordination failures" that stall the development of public goods. However, many believe the existence of decentralized blockchain networks, such as Ethereum, can help solve the problem of efficiently funding and developing public goods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i dont think this is important here and should be removed from this page
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @konopkja. I think it helps to show why a reader should see quadratic funding (or any crypto-based model of funding public goods) as an alternative to the more common approaches (e.g., government funding, private funding via venture capital, and popular crowdfunding schemes like KickStarter). The other part already addresses the incentive problems with some of these models, but the other section highlights more concrete ways in which incentives may be misaligned.
I do agree the text could be shorter and more direct to the point, which is why I rewrote most of the section and removed redundant parts. Let me know if this addresses your concerns.
As mentioned, public goods are defined as commodities or services made freely available to all members of a society. For a commodity or service to be classified as a public good, it must possess the folllowing characteristics: | ||
|
||
1. **Non-excludable**: A public good is _non-excludable_ in the sense that it is costly or impossible to exclude any individual from accessing it. A public road is one example of a public good, no one can prevent you from driving on it (provided you have a license). | ||
|
||
2. **Non-rivalrous**: A public good is _non-rivalrous_, meaning that one person consuming the goods or service doesn't prevent another person from doing the same. Going back to the previous example: if you drive on a public road, that doesn't prevent another person from driving on the same road. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove
Public goods are commodities and services provided to all members of a society (without the possibility of direct profit) usually by government or private organizations. While the creation of public goods is critical to societal progress and wellbeing, traditional models of coordinating to fund public goods suffer problems that limit their efficiency and effectiveness. This makes it difficult to build useful public goods and results in worse outcomes that affect everyone. | ||
|
||
But there might be a solution to the problems of funding public goods: blockchain technology. By applying cryptoeconomic incentives and mechanism designs, new blockchain-based projects are fixing the broken model of traditional public goods funding and solving coordination failures in modern markets. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make it shorter and add example
- Added a shorter, cleaner explanation of challenges facing traditional resource allocation mechanisms - Reworked introduction to section on improving public goods funding with blockchain technology
- Updated introduction - Rewrote regenerative cryptoeconomics section
Hey @emmanuel-awosika! Thanks for the work done on this. We have had a lot of discussion as a team on the public goods funding page, both in the content written here, and the concept/goal of the page. Where we landed is a need to reframe this page. We noticed a trend through reading and talking about this page that a lot of the discussion for the use case is around funding/voting. While these can be used for public goods funding, they are the core use case in this. I still think we can tie in how they can be used for public goods, but reframing this page around the use case, and then discussing an application like public goods seems like a better approach. A structure we agreed on, but would like input is something like:
I think there is certainly content written in the current state which will apply to this new structure, but a reframing here to be use cases first, and then an application like public goods funding would suit the content for ethereum.org better. Let me know if you are interested in working on this pivot. Apologies for the pivot as well, but I think reframing this page will go a long way. |
Hey @corwintines. The proposed content structure looks good to me. I'll reach out on Discord with details related to work on this page shortly. |
Important Auto Review SkippedDraft detected. Please check the settings in the CodeRabbit UI or the To trigger a single review, invoke the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
Noticed the build/preview was failing... updated this with latest from |
With the change of direction around the content of this page, im going to close this out in favor of a funding page in the future. I do appreciate all the work done here @emmanuel-awosika, and when it comes time to touch on public goods in content around the site I will certainly be coming back to this PR to pull from. It certainly will not go to waste! |
This use-case page explains how Ethereum can help improve public goods funding and reduce coordination failures.
Description
The page walks the reader through the following concepts:
Fixes: #6330