This is my thought experiments about continuous token model especially about bonding curve model.
Background
We’re blockchain powered Amazon mechanical turk for AI datasets . We also develop affordable conversational AI with our datasets.
So being able to keep generating new dataset is very important for us and incentives for data contributors is similar to incentives for miners in Ethereum.
Anyway we want our token to have value as our datasets becomes larger and our AI becomes better.
Continuous token model
Fixed total supply is good for asset token because people appreciate scarcity but I think continuous token model is better for utility token. Our governments keep increasing monetary supply every year, isn’t it?
That’s why we kept discussing continuous token model. Actually, we’re thinking about adopting burn-and-mint model.
Burn-And-Mint Equilibrium model
Burn-and-mint model is simple. We keep minting token to incentivize contributors to generate new dataset. Once we successfully monetize the dataset, we burn tokens.
When we mint token, the value of token decrease because total supply increase. But when we burn our token, theoretically the value of token increase because total supply decrease.
There is good equilibrium theoretically.
I found that a project called Factom is adopting the burn-and-mint model according to this article.
The problem of burn-and-mint model is it’s difficult for ERC20 token.
To mint token automatically to reward contributors we need native coins like Ether because smart contract can not execute themselves.
This means we need to mint token manually and allocate that token on smart contracts. After that smart contracts could take care of token distribution.
The point is we need some kind of governance model like DAO.
Bonding curve model
Then I found the idea of bonding curve token model. The idea was proposed by Simon de la Rouviere last year.
With bonding curve model, the token price is calculated on a smart contract.
Everyone can see how price is set and even when there is just one user, user can buy and sell tokens, which mean you can have liquidity form day one.
The most famous integration seems to be Bancor protocol.
You can learn more at here and here.
Anyway I think the idea of bonding curve is very smart and attractive.
We don’t need ICO and even centralized exchanges. How beautiful!
No need for ICO and exchanges
Limitations of bonding curve model
Even though bonding curve model is beautiful, there are some problems for our use cases.
Token price calculation
If you want to specific amount of token, you need to pay a specific amount of Ether, which is the area of chart below in this example. Token price go up and down based on the total supply.
But problem is we can not mint token for free because we also have to follow the formula.
We want to keep minting token without depositing Ether
Ideally we should be able to keep minting token. But because token price go up as total supply increase, we have to deposit decent amount of Ether to mint enough tokens to keep our eco system working.
We may be able to make token revenue and re-use that tokens, but I think there is a better way.
How about making formula dynamic?
If formula and total supply define token price, we could use token price and total supply to define formula.
How about we re-define formula dynamically based on token price, total supply and deposited pool amount to make eco system consistent?
Let’s say, if original formula was
Formula: f(x) = 0.01 x² + 0.01x
f(100) = 100
Area(100) = 3383
If we mint 20 new tokens, we can re-define new formula like below
Formula: g(x) = a x² -b x
g(120) = 100
Area(120) = 3383
Then we can find
g(x) = 0.00926 x² -0.2696 x
Oops! Token price can not be negative. Not so easy!
So there are 2 or 3 more conditions…
g(120) = f(100)
Area of g(0) to g(120) = Area of f(0) to f(100)
g(0) = 0
g(x) > 0
g(x+Δx) > g(x)
Edited at 11/7/2018
Actually it was not so difficult.
We can define updated function easily if we adopt combined formula with conditions like Relu function.
Original formula
if x > 10: f(x) = 0.01(x-10)² + 10
else: f(x) = 10
if I assume g(x) = a(x-b)² + 10, we can find variable a and b which satisfy below conditions.
g(120) = f(100) = 91
Area of g(0) to g(120) = Area of f(0) to f(100)
g(0) = 10
g(x) > 0
g(x+Δx) > g(x)
I found a = 0.011874157933883298, b = 37.41.
Updated formula
if x > 37.41: g(x) = 0.011874157933883298(x-37.41)² + 10
else: g(x) = 10
Now we can
- mint token without deposit
- have liquidity from day one
- and create token economy without ICO or exchanges
Any feedback is welcomed.
Thanks for reading.