Emission curves are hard
Salute to our followers! Today, we are going to take a not-so-deep dive into… Tokenomics! Fundamentals, hardships, and actual implementation into blockchain networks.
As you might have already guessed, the word tokenomics is a contraction between token and economics, essentially trying to mix the knowledge of blockchain with the economy, aiming to deploy e-money economic systems with solid foundations. But enough for buzzwords, let us learn some basics about this exciting discipline.
The first well-known fundamental in any economic system is demand and supply. Data can be depicted as a good that you generate just by walking with your smartphone, and it probably comes as no surprise for you that it has become a valuable one. The GEO token aims to become a reflection of data and its value in a P2P marketplace, so it is necessary to carefully weigh the supply and demand mechanisms for GEO itself if we want to maintain a stable and fair market.
We understand this data generation as a close relative to Bitcoin or Ethereum mining, or in other words, if you generate meaningful data for the ecosystem, you should get an appropriate reward, just as if you successfully generated a block for the Bitcoin or Ethereum networks.
The primal mechanism to regulate demand and supply and one of the most important aspects of any cryptocurrency is its circulating supply and emission curve. GEO, like Bitcoin or Ethereum, has an emission curve of its own. GeoDB aims to tailor these two to make an attractive market for both data sellers and data buyers, achieving desirable network effects and motivating participants to enroll in the ecosystem, rising the demand for the token while at the same time providing the utility of a data trading asset. Ultimately, the GEO token would become the reference value when trading data.
Now, what is GEO’s emission curve? Let us focus our attention into its actual analytic expression:
But what does that really mean? Well, if you are familiarized with our white paper, then you surely already know that we will be emitting GEO in blocks (that’s where the data block thing comes from!). Blocks are emitted one after another, so intuitively we can say that we will begin with block 1, then block 2, and then block 3… like any other blockchain!
So, if for each block a certain amount of GEO is emitted and distributed to the people providing their data, then the circulating supply of GEO will increase with each block too. To know how many tokens have been emitted, you just have to check the most recent block… just replace the block number, b, in the expression above and you got it.
Or… in a more intuitive approach, we can check how many tokens will be emitted in the first 21 years of the token’s life.
Take a closer look at the graph, and some things become immediately obvious. GEO tokens are distributed with haste at the beginning and progressively, the emission rate diminishes. The intent of this is also clear: we think that it is fair to reward those who support us in our initial stages, but also in this way, we can compensate for lower token prices when trading data between the peers so that every network participant sees their interests protected.
From this expression, which we call cumulative reward, another more interesting one can be derived: GEO Tokens that will be emitted in each block! While the one depicted before is the sum of every block emission until a given moment, this one will give us how many new tokens will be distributed to the users in a given block number b.
But molly… Houston, we got a problem! If you are blockchain savvy, you can immediately spot something wrong in this formula. Ever heard of number e? Or, for that matter, of any irrational number, such as pi.
Computer systems suffer the infatuation of having access to a limited amount of resources. Blockchains, as computer networks, are no different. Irrational numbers have an infinite amount of information in them, so it is factually impossible to store them on your computer unless you have an infinite amount of memory. In our everyday world, we content our selves to displaying such values in good enough approximations. In the blockchain world, however, we need everything working exactly as it should, so no amount of uncertainty is allowed, and that’s why blockchain systems (or computers for that matter) are no friends of storing irrational numbers. So, how are we supposed to close this gap? Are we left here, sad and unable to implement our beautiful curve? No!
Enter linearization! Instead of using irrational numbers to get a perfectly smooth curve, take some points of the curve and plot a straight line between them, removing our dependence with these nasty elements of math. Let us show a dramatization of how this works:
This plot lets us appreciate how the curve can be linearized into 3 segments, or in other words: have a constant emission rate from year 0 to year 7, then another constant emission rate from year 7 to year 14, and another from year 14 to year 21 (end of the line for this first emission period).
If instead of changing the emission rate every 7 years, we did it every 3 years, the linearized curve would look like this:
Much more similar to our original, problematic cumulative curve, isn’t it? Let us do it once more, and change the emission rate every year:
It is almost like you would not be able to tell one from another, right? Do not be deceived, though: if we zoomed the linearized curve in the right spots, we would be able to see the sharpness in the indicated points. No such thing as analogic smoothness here.
You probably have already taken the wind of this method before, as you surely have heard of Bitcoin halvings. This is pretty much the same concept being applied.
Now, having removed irrational numbers from our equations, we are free to code the emission curve into the GeoDB smart contracts ecosystem, with perfectly finite, storable numbers in our favorite decentralized computing platform.
DISCLAIMER*: math and computer software can be hard, so that is why we simplify some of the related concepts in this issue. Floating points are perfectly doable in blockchain environments. It is all precision and the amount of bits available to operate your numbers.