Grainmaker Part 1

In this post we will present a few simple ideas around how grain might flow in SC orgs (scorgs). SC is many things: reputation system, compensation system, project management. This post will focus on SC as a compensation system.

Solvent Scorgs

We begin with an assumption and an observation. The assumption is that contributors prefer to receive a stable monthly payout rather than a volatile one. The observation is that for any org to be solvent (i.e. not go bankrupt), it must earn more than it spends over time. Let us then present two quantities: average monthly inflows (I_m), and average monthly outflows (O_m). I_m is the amount of grain that gets boosted into an org each month. O_m is the amount of grain that gets paid out to contributors each month. Clearly we must have O_m <= I_m or the org will eventually go bust. It is worth noting the difference in character between I_m and O_m. In particular, I_m is liable to be intrinsically volatile, at least until an org becomes very large. This is to say that the amount of grain that gets boosted into an org will vary significantly from month to month, depending on the particular needs and economic conditions of the scorg’s clients. This month clients may boost in 100k G, the next month 50k G, then 150k G. On the other hand, O_m needs to be kept stable, otherwise contributors will have unpredictable salaries, and scorgs will be less appealing than traditional orgs, at least on that dimension.

Let’s assume that monthly inflows of grain (I_m) have averaged 100k over the last six months for a given scorg. If the standard deviation (i.e. typical fluctuation) in I_m is 10k grain, then we can imagine setting O_m to 80k G for a comfortable margin of safety. This is to say that we set our monthly payouts to two standard deviations less than our monthly inflows, to ensure that we are consistently earning more than we spend. Sure, some months I_m may fluctuate down to 70k G or lower, but since on average O_m < I_m, we can make up the difference on these down months by pulling from the savings pool, and still payout to contributors the expected 80k G.

At this point some readers may have noted that if O_m < I_m, then on average there will be some leftover grain each month. We call this leftover grain the monthly savings (S_m). As suggested in the previous paragraph, this monthly savings might be added to a pool which buffers us during down months. We call this savings pool the scorg’s reservoir (R_s). Clearly, since the monthly savings is positive on average, the amount of grain in the reservoir will grow by S_m each month. This fact is worth dwelling on because it is not obvious how the excess grain in R_s will be allocated. We obviously don’t want the reservoir to grow infinitely large, since that’s just a waste. Instead, we want grain to make it back to the contributors somehow. We will now present what is perhaps the simplest mechanism for returning reservoir grain to the scorg’s contributors.

Grainy Season

Following the example above, we can see that on average the reservoir grows by 20k grain each month. Thus, after six months, R_s = 120k G. What to do with this excess grain? It’s just sitting there, not earning anyone interest, and it’s much more than we need to buffer I_m and ensure consistent O_m. We thus propose setting a maximum threshold for the reservoir (R_m). For example, we might set R_m = 120k G. What happens when the reservoir fills to the max threshold? You guessed it: it grains. This is to say that when R_s >= R_m, we “flush the reservoir”, and temporarily increase the monthly payout with the flushed grain. We don’t want to flush all the grain in the reservoir, since then we wouldn’t have any buffer for next month, perhaps just half of it. This would mean that during the grainy season, the excess 60k G would get added to the typical 80k G for a total monthly payout of 140k G (O_m_grainy = O_m_avg + Rm/2). Also note that given this setup, a grainy season would occur every 3 months, for a total of four grainy seasons a year (seasonal period = R_m / 2 / S_m).

Note that the “grainy season” mechanism described above is one of many possible variations. For example, the grainy season could be spread out over multiple payment periods. It is also possible to have an algorithm control O_m continuously to keep it at a target level. While these other mechanisms have definite merits, we will argue below that in order to best serve the population of contributors as a whole, the grain cycle must be simple enough for the median contributor to understand it and to participate meaningfully in the governance of the scorg. We also note that the tipping-point style flush mechanism described above is reminiscent of the action-potential mechanism in neurons, condensation-precipitation mechanism present in earth’s water cycle, as well as competitive-inhibition/cooperative-excitation voting mechanisms in the animal brain’s striatum.

Simplicity as a requirement for decentralized governance

In the discussions above we proposed various parameters including the monthly payout (O_m), the reservoir max threshold (R_m), and the flush amount (R_m/2). For our example, we set these parameters to values that might make sense, but how will these parameters be set in a real-live scorg? The contributors will decide. That is, we propose that these parameters be set via a simple and understandable governance voting process in which the vast majority of contributors can reasonably participate. For this to be possible, the mechanism must be kept simple enough for the majority to understand. Why? Because wealth follows power. If the wealth is to be widely and fairly circulated amongst the majority of contributors (a prerequisite, we believe, to unlocking the crowd intelligence of a scorg), then the power to steer the scorg must be widely circulated as well.

These assumptions aren’t right (ergo the downstream conclusions aren’t built on a good foundation).

Given that we’re maintaining a 1 Grain = 1 Dai peg, we have the following quantities:

  • Outstanding Grain (G)
  • Dollar/Dai reserve (D)

With the following flows:

  • Grain Issuance to contributors (+G)
  • Grain burn rate due to boosting (-G)
  • Grain Redemption for dollars (-G, -D)
  • Grain Minting from Dollars (+G, +D)

The project “goes bust” if D==0, since at that point we can no longer redeem Grain at peg.

The “reserve ratio” is what proportion of outstanding Grain is backed by dollars, i.e. D/G. When the reserve ratio is over 1, it’s impossible for the project to go bust, even if everyone decides to redeem. When the reserve ratio is below one, a “Grain run” is possible. When the reserve ratio is 0, we are busted.

Note the big difference from your construction, is that at the first-order level we aren’t worried about having long-run net Grain issuance, i.e. the total outstanding Grain can grow indefinitely without the org ever going bust. What we do care about is the redemption flows, and the reserve ratio.

I do agree that we want to reduce the volatility of contributors’ grain flows. Here’s a simple proposal for doing so: Grain Vesting

Ah yes, I am hoping that the system you described (I.e. fractional reserve banking) is temporary. This is how banks currently work, and it’s fragile. Basically it’s like the whole system is on leverage, which drastically increases the chances of going bust.

Some orgs may choose to have floating-price Grain rather than a peg reserved system, which does away with the fractional reserve issue.

In general, I don’t think that orgs should target net-zero Grain issuance… other examples of “project specific currencies” don’t target net-zero issuance either; companies don’t target 0 shares of stock issued, central banks don’t target 0 currency, etc.

Indeed, grain issuance model is not addressed in this post, saving that for part 2 most likely (spoiler, it is not net zero).

Really? It seems quite explicit:

Reading this, you’re saying that in the long run, the net grain issuance should be less than or equal to 0.

I think I see the confusion. I am assuming that the booster obtains grain elsewhere. Either an external market, or whatever issuance mechanism is in place. I am addressing a currency-generic case here. In other words, you could replace “grain” in this whole article with “dai”, “eth”, “btc” or whatever. If a scorg really values a dollar peg, they should just use dai. As I’ll make clear soon, I think all scorgs should use grain :slight_smile:

There’s a pretty huge difference between Grain & all the other currencies you mentioned: namely, Grain is a community-issued currency, so the community can issue an arbitrary amount of it (positive-sum), whereas all the other currencies are externally issued, so the community cannot issue any, and needs to balance the flows (zero-sum).

1 Like

Me agrees.

@LB @Bex could I get some feedback on the clarity / understand-ability of this post? Independent of whether you agree with the content, the question is: did you understand it? I need perspective from non-technical peeps so that I can iterate appropriately on the language / exposition. Thanks!

just passing by @DeltaFreq. My 2 cents, in terms of clarity it would be really nice to have your different sections with more spaces and bullet points. A more reader friendly example in this thread of responses was this passage

1 Like

Thanks @benoxmo! I appreciate the feedback. Funny thing, after writing this post, I realized that @decentralion’s Rosalind Franklin schpeel had set my target audience to future historians reviewing SC archives lol.

So, I mostly understood this. Though it took some real focus power to wade through the different concepts and make sure they landed in my brain as something meaningful. I have a tendency to glaze over when people talk about formulas.

That said, I did understand the basic set up of money flowing in and grain flowing out, the surplus of grain in the reservoir, and the extra distribution trigger. Also, “grainy season” made me laugh out loud. I fukkin’ love that.

I’d say where I got most lost was the second paragraph starting with “Let’s assume…” You seem to set up the idea that we need more money coming in than grain going out, so I’m confused why your example numbers are 10k going in and 80k going out. Is it because the 10k is in addition to an existing savings of 100k? That still doesn’t mean we have more coming in than going out, so the examples lost me there. However, the concepts and pattern you were communicating came through well enough.

Overall, I’d say this doc has an interesting point but makes it with language that is difficult for a layperson to parse. I don’t have many opinions about whether this is a good financial mechanism for our community, but it sounded like you mostly just wanted to know if I could pick up what you were putting down.

Glad you wrote it and shared!

1 Like

Thanks @LB for the detailed feedback! I’m glad I was able to provide you with some entertainment value as well :wink: Formulas could possibly be extracted to an appendix, or even better, introduced in conjunction with a diagram. That takes more time though, and I didn’t want to invest it without validating the underlying concepts first.

The 10k value in the second paragraph does not refer to the monthly inflows, but rather, to the “standard deviation” of the monthly inflows. Standard deviation is mathese for “typical fluctuation”. So while the average monthly inflows might be 100k, a standard deviation of 10k means that it typically fluctuates between 90k and 110k. That said, there is no reason for you to have known that! And I hear you loud and clear that the post generally took too much effort to parse, I am very sympathetic to that pain point!

Again, muchas gracias!

1 Like

Sorry I’m just seeing this! Here’s my take: I’m with LB when it comes to formulas - After getting to different paragraphs I needed to go back and find what each thing meant, which definitely took up a few of my spoons. You could list your conclusions and then have a section just for the formulas, perhaps, so it’s all in one place.

I’d say what would help most for readability in the non-formula areas is making it a bit more concise and having some simpler word choice. There weren’t any words that were difficult to understand, but having a lot of technical words in one sentence where you’re also trying to relay what the math solutions confirmed and what that means for SourceCred, it makes it hard to find the kernel of your sentence.

Overall, the data seems pretty legit, and you gave clear examples with Grain estimates. It seems like some solid content and novel ideas. If you’re interested, give @s_ben’s post on SourceCred Voice a look. If you mixed this into your post, I think it would be easier for a majority of readers to come away from your post with the understanding you intended.

Happy to talk about this more if you want! (I’ve changed my email notifications so I’ll actually know when I’m tagged on Discourse now)