One of the showstoppers for implementing Boosting has been the lack of good nodes as targets for boosting. If we tried to implement Boosting right now, sponsors would need to choose individual pull requests, individual forum posts, etc, as targets for boosting. This is just way too fine-grained; most sponsors will not have the time or inclination to read individual commit messages to find out which work was important.
In principle, Initiatives will be really good targets for Boosting. However, Initiatives are still in an early prototyping stage, and I expect it will be months (at least) until we have a durable design for them. I don’t want to enable Boosting until we feel confident in the design, because once we enable people to tie real $ value to existing initiatives, it will be harder to re-organize them.
However, it would be great if we could implement Boosting much sooner; ideally by the end of 2020. This would allow us to go into 2021 with some real confidence that we have ways to onboard capital, and to pay our contributors.
Therefore, I propose we add the concept of “contribution crops”. A contribution crop is a sort of “wrapper” around all of the contributions over a given time period. To start with, suppose we have one “crop” for every week of the project’s history. The Cred of each crop will be roughly proportional to the Cred of all the contributions made during that week.
A sponsor can then boost the Crop itself, thus getting a share of all the contributions made during that Crop. By boosting, they are buying and burning Grain, which gives the project DAI which can be used to pay Contributors.
This encourages a “subscription model” for sponsors, where they commit a fixed DAI amount to boosting every week’s crop. This corresponds to consistent cash flow for the project, which allows us to start budgeting the project’s cash flows with some confidence.
From an implementation standpoint, we would implement this on top of CredRank. In particular, we would create a new “Crop Node” for every week of the project’s history. All “seed” cred for that week would emanate from the “Crop Node”, and then flow to all of that week’s contributions which receive flows from seed. It would then accumulate at “Contributor Epoch” nodes from that week and previous weeks. To be precise, letting i, j
be week indexes with i <= j
, Cred from a Crop node in week j
flows to an Epoch Node in week i
. From there, it Flows to the Crop Node in week i
.
This has the following consequences:
- Boosting mints more Cred. If we mint more Cred at a particular Crop node, it will flow out according to that week’s seed structure, basically amplifying all of the Cred earned in that week.
- If future Contributions depend on Contributions from a past week
i
, that means more Cred will accumulate at Crop nodei
, meaning that the Boosters of that Crop Node will benefit.
I believe this is a very tidy approach that lets us leverage “natural structure” of reality (i.e. that Time is semantically significant) to speed up the deployment of Boosting dramatically, while building economically meaningful structure.
In the future, we may add some superstructure Crop nodes, e.g. a “month” node which connects to four weekly crop nodes, a “quarter” node which connects to three month nodes, “year” nodes, and so forth. This would coincide well with a longer-term organizational planning structure. For example, we could have a quarterly planning process with a review of what was accomplished in the last quarter, and a plan on what we aim to do in the next quarter. Sponsors could review these and then decide how much to Boost the last quarter and the upcoming quarter, thus providing realtime feedback on how well the org is planning and executing.
Thanks to @alive and @s_ben for conversations which helped inspire this idea.