Clr.fund for Everyone: A Quadratic Funder for Every Wonder
EDCON 2021 · 28 Aug 2021 · 9:55
Spencer Graham explains how communities can run their own quadratic-funding programmes with clr.fund. He describes matching pools, recipient curation, Sybil resistance and MACI's anti-collusion voting, then introduces a deployment interface intended to help DAOs and protocols allocate resources to public goods within their own domains.
Speakers
Topics
From EDCON 2021, hosted by EDCON.
Transcript
hello i'm spencer graham i am a product manager at dao house a member of raid guild and a contribute contributor to a few other projects including save die and commit pool in my spare time i helped build a quadratic funding protocol called clearfund and today i'm going to talk about how and why dows communities and protocols can use quadratic funding to fund public goods within their own communities so first off for those who are not familiar i'll start with an overview of clear fund itself clear fund is a protocol for efficiently allocating funds to public goods it uses quadratic funding and strives to be credibly neutral decentralized
permissionless trustless and pseudonymous while also being resistant to collusion and bribery so a single instance of clear fund is made up of four key components first is a funding round factory which is responsible for holding the matching pool funds establishing parameters such as the round length and the native token and spinning up funding rounds second is the is macy which is a zero knowledge proof based system for collusion resistant voting essentially it allows users to contribute to the round and allocate their funds to recipients in such a way that they cannot prove how they voted to the outside world which means that if somebody is bribed for example then their optimal behavior is actually to
accept the bribe and then allocate the funds however they'd like since the briber cannot know how they ended up voting third we have recipient curation which is essentially a registry of eligible recipients for the main canonical instance of clear fund we use a claros tcr and that allows eligible projects to be added permissionlessly we've also built a more simple recipient registry where an owner address can add or remove recipients and developers can build their own as well to fit other needs finally we have civil resistance which is super important for quadratic funding because if users can split their contributions over multiple accounts they can gain a disproportionate voting weight and also influence over the
outcome of the round for the canonical instance of clear fund we use bright id for civil resistance so any bright id verified users user can add themselves to the registry and contribute to the round much like the recipient registry we also have a simpler version that lets an owner address pick and add and remove users from the registry and then once again developers can build their own to fit other needs okay so let's quickly move through how a funding round works so the first thing that happens is that the owner address which could be a multi-sig or an eoa or even a dao calls a function to deploy a new round now at any time any address can add
funds to the matching pool but once the once the round has started at any point users on the registry such as those that have a bright id uh verified account can sign up and contribute to the projects that they like they can also reallocate their funds at any time during the round in case they change their mind or maybe they've been bribed and they want to want to reallocate away from what the briber wants once the round ends the quadratic funding results are calculated which and this includes the the quadratic map the the matching which keeps most of the inputs secret but also produces a proof that verifies that the results were computed correctly
and once that proof has been produced then it is published on chain and the recipients can claim their share of the matching pool along with the direct contributions so that's clear fun before we move on i want to zoom out a bit we've been talking about funding public goods but who is the public in these public goods often when we think about public goods we think about things that have few incent that few have incentives to create and yet are beneficial to everybody and this is what many common examples of public goods like clean water over-the-air tv and national defense are meant to describe but if we think again about these examples it becomes clear that each of them is actually relevant only to a
specific population or in other words to a specific domain so the public in public goods is always referring even if implicitly to a particular domain and we see that within clearfund the canonical instance of clear fund was originally designed and currently still is focused on supporting public goods within the domain of experi of ethereum and our constitution defines that domain very very specifically the individual people organizations software and standards that create operate maintain use analyze or convene around the ethereum protocol or anything built with the ethereum protocol clear fund has been pretty successful so far in its early life at serving the
ethereum ecosystem last round over 500 over 500 people contributed greater than 6 000 die to ethereum public goods projects and that was matched by over 12 000 die from the matching pool and all told at this early stage the canonical instance of clear fund has distributed around 40 000 die to ethereum public goods projects that's that's really amazing we love ethereum um but is it the only domain that exists of course not there are many many domains out there and each of them have their own public goods needs and that is why we're building clear fund for everyone clear fund for everyone which starts
with the clear fund deployer is an easy way for dows protocols and communities to create their own version of clear fund so that they too can efficiently and effectively allocate resources towards the most valuable public goods in their domain so why should your community use quadratic funding well one common way to fund public public goods within communities is with a grants committee grants committees are simple to think about a group of people whose job it is to decide who gets grants however those grants committees place a lot of control and also a lot of responsibility in the hands of the committee members being on a committee is a hard job it's
a lot of work to review and debate the merits of applications and it's even more work and potentially impossible to gather enough information to be sure that you know what is fully best for the entire community another way to say this is that central planning is very difficult to do well if grants committees are like central planners then quadratic funding is the market-based form of public goods funding instead of decisions being made by a select handful of people who can't possibly know everything about the needs of the community in quadratic funding resource allocation decisions emerge from the preferences of individual members of the community so quadratic funding is or has low coordination overhead because
there's no committee needed it's credibly neutral because the protocol ensures that neither community leaders nor bribers can put their thumbs on the scale and it reflects the needs of the entire community because the resource allocation protocol quadratic funding gathers input from all contributors so if that sounds valuable to your dow or your community or your protocol we invite you to consider uh trying out clear fund for everyone so how does that work and what is the clear fund deployer well as awesome as clear fund is it takes a good amount of technical savvy to create a new instance so what we're trying to do with clear fund deployer is to greatly simplify that process and our goal is for anybody
to be able to use it to create their own instance of clear fund for their community or their domain with just a little bit of pointing and clicking and maybe some typing with clear fund deployer it's easy to deploy all of the things that you need for a clear fund instance and that includes the funding around contracts the macy contracts the ability to set parameters for your round duration and the token to use uh set up a way to curate the funding recipient such as with our clear host tcr registry set up a way to ensure that contributors are unique humans such as with our bright id registry and this is this part's really cool we're also working on a way on a no code way to customize and deploy an app for your community to use your your version
of clear fund clear fund deployer will be available across a lot of different uh a lot of different evm networks we've already uh deployed some of our initial libraries of contracts to some of the ethereum test nets to mainnet to polygon and xdi uh test net and soon once available to to optimism and probably many more as as more come online so it's still pretty early but we've made pretty good progress so far here is a sneak peek of the deployer app in wizard mode we're currently tweaking some some of our ux flows and also working on the app deployment side of things like i was talking about just a
second ago if you're interested in trying it out for your community we would love your input and to work with you on that all right so clear fund including clear fund for everyone is built by an open collective of contributors and we're funded by grants as well as our own matching rounds if you are interested in helping us interested in helping us build clear fund or want to use clear fund for your own project or just want to learn more you can find us on twitter or on our forum or on discord thank you very much