简化分类:指数函数,对数函数;凸函数,凹函数。
根据代数公式,可以分为指数函数/对数函数;根据几何形态,可以分为凸函数/凹函数
这是最常见的类型,当然,可以有别的函数,正弦余弦函数也没问题,可以,但是没必要。
BondingCurve是一个价格与数量的函数,即,
价格=数量的变化的结果
y=f(x)
探究的数量的增加和价格变化之间的关系。
指数函数:比较简单
Price=f(s)=C*SK + P
http://Friend.tech 就是采用这个凹函数曲线,C=1/16000;k=2,P=0
对数函数:也不难

上面的公式解释为:
当token数量变成c倍(2倍)时候,价格增加a(50%),即数量翻倍,价格涨50%
注意:很多文章有如下表述:“其中a与c代表在通证数量每翻c倍时,通证价格增长a%。m和b作为线性函数参数调节截距和斜率。以上面的公式为例,这条特定的函数曲线代表了通证数量每次翻倍时,价格增长25%。”
很多文章互相借鉴(或者照抄),并未表达清楚。
这里面的“通证数量每翻c倍”正确的表达应该是token数量变成C倍时候。
纸上推导过程

另外一点经常在文章中的错误是,函数的凹凸性,并不是指数函数是凸函数和对数函数是凹函数,指数函数可以做出来凸函数可以做出来凹函数,对数函数也一样。
凸函数和凹函数 手绘示意图

通俗解释(不列公式了):凸函数(向上凸出来)是数量变化时候,价格变化不剧烈的;
凹函数(向下凸,或者叫做凹)是数量变化的时候,价格变化趋于温和的。
那么,如何设计,看你的需求了,如果你需要的是,token数量翻1倍(数量增加1倍或者数量涨到2倍, c),价格就会变成3倍(或者增长200%, a),那么,公式就是:

a和c两个约束条件,定一个就成。
C>(1+a)则为凸函数,价格增长速度,慢于数量增长速度;
C< (1+a)则为凹函数,价格增长速度,快于数量增长速度;
C=(1+a)则相等,几何图形直接变成斜线(直线):y=mx+b;
如果C设置为2,则,a和1的大小关系,就决定了凹凸性。
对比:凹凸性在指数函数中更容易理解,指数大于1则为凹函数,小于1则为凸函数
备注:国内外的凹凸叫法可能是相反的,所以还有叫法:向上凸和向下凸,
举例:在英文中convex翻译为凸函数,但是向下凹的。心里明白即可。

原文链接