Thanks to Brain Breslow, Wendy Ding for review, and ff, VegeBun for figuring out some numbers. Graphics credit: Zhengyu.
Arguably the two most important tasks for every blockchain are network security and ecosystem development. Currently, native incentives of major blockchains are entirely used to reward network security. The Bitcoin mining rewards go to miners and Ethereum 2.0 rewards go to proof-of-stake validators. None of the block incentives directly contribute to ecosystem development. Can block incentives be used to fund ecosystem development, and how? This article explores possibilities to move toward block incentive driven ecosystem funding.
In general, blockchain ecosystem funding means protocol R&D, public goods infrastructure & tooling development, application development, community building, and so on. The direct outcome of successful ecosystem building leads to the long-term growth of a protocol. Take a public blockchain for example:, ecosystem development ultimately leads to the sustainable growth of high-quality transactions, which means gas fee income and network revenue.
Although a blockchain foundation can raise funds for R&D and ecosystem grants via initial token sales and grow its assets via proper management (e.g., converting tokens to fiat money in a later stage), so that it can fund R&D work and give ecosystem grants, the amount of funding is often small compared to block incentives of the network, and not as sustainable. The Ethereum Foundation (EF) holds more than $1.5B in assets as of March 31, 2022 and a large portion of these assets are in ETH. In 2021, the EF allocated about $21M in grant funding, and ~$50M in total foundation spending. However, the ecosystem spending is negligible,compared to network security spending, which totals $20.08B (miner subsidy + transaction fees) in 2021.
External sources of funding
Another important source of ecosystem funding is external capital. During the past two cycles (2016-2019 and 2020-2022), venture capital funds made a significant amount of investments in the blockchain space. Their contribution greatly accelerated the growth of the whole industry. However, venture capital funding has several limits:
- It tends to fund more aggressively during bull markets when liquidity is flooding in, and shrink dramatically during bear markets, when developers and BUIDLers need funding the most.
- It tends to cluster around popular narratives. Small VCs tend to follow large VCs ,which are capable of creating narratives. Some narratives are based on solid technology and real demands, but many are overrated and draw much more funding than projects actually need, creating asset bubbles and massive dumps later.
- Communities are not involved in the funding process. Too often, people are blindly influenced by big narratives and rush into asset bubbles and later get rekt.
- Many builder teams working on public goods that are not profitable are excluded from VC funding.
Additionally, VC funding usually centers around large ecosystems.Most VC firms have mandates on major blockchain ecosystems, but there are far fewer firms that support nascent blockchain ecosystems. Therefore, for those in the long tail, an alternative, robust funding source is important.
The third category of ecosystem funding other than foundation grants and VC funding is community grants and hackathons. Many builders who are new or not favored (yet) by VCs can start with grants and hackathons. Community grants and hackathons give opportunities to many early-stage teams, including those who work on not-for-profit public goods. The sustainability of this category is always challenged, since donation funding is heavily subject to market cycles.
Can we fund blockchain ecosystems with block incentives?
Given all the constraints of non-native funding sources, if we could ever use block incentives to fund developers and communities, we might be able to achieve the following goals:
- Non-profitable public goods can receive sustainable funding;
- Engage the whole token community to participate;
- Avoid certain biases from large institutions and more opportunities for grassroot builders.
So can we now change the consensus source code and start moving some block incentives out to fund builders? It turns out to be more complicated than that.
The decentralization of a blockchain network lies in the principle that code is law. Blockchain consensus algorithms are “objective” in the sense that the security of protocols rely on cryptography, not human judgements. Ecosystem funding, on the other hand, cannot be completely based on cryptography - it is people building blockchain ecosystems after all, not machines. So simply giving block rewards to any non-community controlled party will lead to the centralization of power and bureaucracy.
Can we make the ecosystem funding process as autonomous and as objective as possible, so that we can be confident in reallocating some block incentives for this cause? I believe the answer is yes. But before we dive into how, we should review some of the previous attempts that lead us here.
What Have We Learned From The DAO?
Although it failed notoriously, The DAO’s original idea was plausible : establish a long-term mechanism to fund the Ethereum ecosystem and allow the community of The DAO to participate in ecosystem development funding.
However, The DAO made a few critical mistakes.
- It overestimated what smart contracts could do and underestimated the complexity of community governance – coding complex governance logic into smart contracts.
- User funds were pooled too aggressively. Ecosystem funding is a long-term effort, and a huge funding pool means big responsibilities in terms of investment return.
- Lastly, people discovered the problems before the hack, called for a temporary moratorium, but were ultimately ignored.
The lessons of The DAO were painful but valuable. After The DAO, there is a general consensus within the blockchain community that smart contracts should be as simple as possible, especially those holding user funds. Moreover, blockchain community governance is not just about pooling user funds into a smart contract. There remain many intriguing discussions around different aspects of governance, including limits of on-chain governance, coin voting, collusion, and more. As a result, building a governance protocol does not mean putting all governance logics into smart contracts. Rather, we can break a complex governance system into parts, and use the best tools available for each piece.
Breaking down block incentive governance
Assuming a blockchain uses some of its block rewards to fund the ecosystem, we can break the process down into three parts : (1) a mechanism that sends block rewards; (2) an entity that temporarily holds the funds; and (3) a protocol that distributes funds to ecosystem builders.
A modular design allows the system to avoid a complete crash due to single point failures. It also allows us to use different approaches and combine on-chain and off-chain tools to optimize the whole system.
There are two metrics here to evaluate this process : autonomy and effectiveness. Autonomy is achieved if the system can coordinate the community with minimum centralized intervention. Effectiveness can be measured retroactively by reviewing the sustainability of funded projects and the value they create.
Now let’s look into each part of the process.
Part-1: send block rewards to an open community grant autonomous organization
There are two ways to think about it. One way is to issue a small percentage more tokens every block and add them to the grant pool. The other way is to impose a block reward tax on validator income. The difference is — the former approach means governance of all token holders, the latter means governance of all node owners.
A blockchain sending 1% of its block rewards and transaction fees to fund ecosystem development will end up using 1% of its total inflation and/or network revenue to fund ecosystem projects. The Bitcoin network issued est. 328,500 BTC over the past year (not counting tx fees here), and a 1% miner tax will deposit 3,285 BTC into the grant pool, which is about $100 million (simply using a rough average price of $30,000 per BTC here). Assuming early-stage teams receive <= $100,000 each, such a funding pool could be enough to fund more than 1000 teams in the ecosystem.
It is both the easiest part and most difficult part. Adding a feature that taxes each block’s incentive is not difficult to code. However, for existing Layer1 and Layer2 blockchains, changing protocol is politically and logistically challenging. It could be much easier for new blockchains to incorporate such mechanisms during protocol design.
A fixed rate might not be the best way to recharge the funding pool because the need for funding itself could change over time. One way to reflect the changes in demand is to adjust the rate based on previous spending. Consider net spending of a blockchain’s ecosystem funding pool by quarter. If the net spending of a quarter is negative, it means that less funding is actually needed, the blockchain protocol then decreases block reward contributions into the funding pool. If the net spending is positive, the blockchain protocol can increase, so the rate so more tokens go into the funding pool. It is important to control the size of the funding pool so that it meets the real demand for funding. Excessive funding could be both a risk and a liability for the whole community. So to prevent unnecessary accumulation of funding, a cap can be set to prevent the funding pool from growing oversized.
Ideally, the funding pool should not have a big balance, and the funding pool should spend as efficiently as possible. However, it also depends on the blockchain protocol itself. A base -layer blockchain needs a relatively larger percentage of its revenue to fund network security, an application-layer protocol can work on a much higher rate on ecosystem funding. A large blockchain protocol only needs a small percentage of its inflation going into the ecosystem funding pool, whereas a smaller blockchain protocol needs to spend more on ecosystem funding.
Part-2: securely manage grant funding pool with an autonomous organization
There are many ways to manage the funding pool. Centralized options include regulated crypto custody services and multisig wallets. However, using a centralized solution risks undermining the governance itself, as people who actually control the funds can bypass decisions from the community.
Ideally, grant funding could be stored in a smart contract wallet which is controlled by a grant DAO smart contract. The grant DAO contract verifies and validates voting results, and passes the validated results (a list of “projects and funding amount”) to the smart contract wallet. The smart contract wallet verifies the signature and completes some necessary checks, then distributes funding to grant candidates' addresses.
Part-3: governance autonomy and fund distribution
How much can we make funding distribution look more like a protocol that can be as autonomous as possible? Said differently, how autonomous can governance be? This article about DeGov outlines several risks and potential improvements in different types of blockchain community governance - limited governance, non-token-voting governance, skin-in-the-game, and hybrid solutions. None of these solutions could totally be free of human involvement - ultimately, funding distribution is about governance, and governance is about people.
Fortunately, we are not dealing with governance in general here. Fund distribution is a recurring process. If block rewards are used to fund the ecosystem, funding happens periodically. The governance body’s task is to generate a list of funding results based on community opinion. Hence, unlike general governance, we only need to focus on one governance process - the open-community grant DAO governance problem, which we have extensively discussed previously in quadratic governance and vcDORA.
There are many ways a grant DAO governance system can be designed, and different modules can be assembled into a working system. On DoraHacks, there are several Grant DAOs funding builders in different ecosystems, and they work differently by picking up unique governance modules the platform provides.
One way to design this system is to separate on-chain and off-chain governance, then move all processes that involve centralized moderations to the off-chain part. In order to avoid attacks on the system, effective and permissionless identity verification methods should be deployed, and the process should be collusion - resistant. Mechanisms like vcDORA and MACI will be necessary to be used here.
In the process, votes are posted on-chain, encrypted. Community moderators then tally the votes and post the results. They also have to provide zero-knowledge proof so that the results can be validated. After this step, a smart contract needs to validate the proof and provide a signature recognizing the fund distribution list. Upon receipt of the list, the smart contract wallet validates the signature, and distributes the funds accordingly.
Lastly, the loop is closed by automatically starting a new cycle (round) after each tranche of distribution.
In the process, the on-chain part should be kept in simple, audited smart contracts. The off-chain part is in charge of tallying the votes, but they cannot cheat since they cant provide valid zero-knowledge proofs.
There is a glitch - although the off-chain moderators cannot cheat on the voting results, they can actually see the votes. If the moderators who tally the votes somehow leak information to people who want to bribe voters, they can sell information. Governance anonymity is important. There are several proposals related to MACI anonymization, but nothing has been implemented so far.
The above discussion is indeed a very rough outline of what could be done to block incentive - driven ecosystem funding. We have already created and experimented with many building blocks over the past three years at DoraHacks and other organizations from the Ethereum community. In order to create an autonomous system as described above, we have much work to do, such as protocol upgradability, smart contract wallet safety, and MACI anonymization. In addition to technical problems, we also need small-scale, proof-of-concept experiments.
If block incentives can be used to fund blockchain ecosystems, it would be a sustainable funding source to support builders. It will also be complementary to the existing funding sources, including foundation grants, external capital, and community grants.