We think an active community is a key to make a successful project. However, generally speaking, many public blockchains and projects do not have a decentralized and sustainable way to incentivize their community. In addition to that, developers are definitely contributing to the ecosystem. However, what they are doing is paying an expensive cost a.k.a gas when they make a DApp. This doesn't make sense for us. We aim to solve these problems through Community Rewards, which we will talk about in detail.
What it does
To make the long story short. We invented a new decentralized and sustainable way to incentivize ecosystem members that acts as a grant called Community Rewards.
The Community Rewards feature is focused on incentivizing early community members which created a project that contributes to a Parachain's ecosystem. Simply put, we incentivize these people by providing constant tokens to the community members with projects that are meaningful to the platform. We aim to allow this system to act as a basic form of income for the project owner (or team) and a decentralized and sustainable grant. So, who evaluates the performance of a project, and how? And this is a very good question to ask. To simply put, the performance of a project is evaluated by the token holders through a nomination. Here is the high-level process.
- A project owner makes a single smart contract and deploys it on a Parachain.
- All smart contracts can be founded in the Community Rewards section of the Polkadot.js app.
- Token holders nominate their tokens to the project based on its performance.
- Both the nominator and the project owner will receive tokens which comes for a portion of the block validation reward. The reword is proportional to the project owner's performance.
How we built it
We built this on the Substrate. It means that any Substrate chain can support this mechanism. We divide the block reward into 3 parts.
- 50% of the block reward goes to the validators.
- 25% of the block reward goes to the community member who starts a project on the Parachain.
- 25% of the block reward goes to nominators who select a good project. ※ The project can be technical or non-technical.
Since we can think about some malicious attacks, we made some formulas (written below) to prevent them.
Challenges we ran into
The toughest things were the incentive design and thinking about how to prevent malicious behaviors. The native design has some vulnerabilities that you may notice. For example, you can nominate yourself to get a high reward and your nomination can be biased. To prevent participants from nominating themselves etc, we made incentive designs based on math. You can check all formulas from here: https://docs.plasmnet.io/learn/community-rewards
And these formulas have been already implemented. Please check out the GitHub repo :)
Accomplishments that we're proud of
We know that Polkadot has a treasury that incentivizes the community. However, the distribution process is still centralized since the council decides who to distribute. Our mechanism improves the existing grant mechanisms because the grantee is 100% decided by the community and this grant is sustainable as long as blocks are mined.
What we learned
We learn that the notable advantages of Substrate are upgradability and customizability. Since the Substrate is customizable, you could change the logic of the block rewards. And through this hackathon, we learned the incentive designs of Polkadot and other blockchains.
What's next for Plasm Network Plus Ultra
We are going to implement this mechanism on the Plasm Network within a month. And start a PoC to incentivize the community members to work on the network.