恒定乘积听着听拗口的,说人话就是两个变量相乘得到一个固定常数。这样一个简单的乘法公式怎么完成“做市”这种深奥的金融业务?
AMM是Automated Market Maker的缩写,中文名字叫自动做市商。往简单了说,就是由一个算法代替传统中心化交易所的位置,为市场上的交易提供流动性的平台。
市场上的交易者因为对市场的预期不同,手里持有资产的不同,每个交易者都有不同的交易需求。我们都知道要成为传统的做市商需要具备非常雄厚的资金,才能不断通过成为市场上交易对的卖方和买方,整合交易,从而让散户不用在交易时不断等待对手盘的出现。
区块链各种虚拟币的交易最初也靠中心化交易所起家。这一切的平静被UNISWAP打破,而且UNISWAP运用的方法简单到令人大跌眼镜——恒定乘积原理。
x * y = k
恒定乘积听着听拗口的,说人话就是两个变量相乘得到一个固定常数。这样一个简单的乘法公式怎么完成“做市”这种深奥的金融业务?
这一机制正常运转的背后由三种角色,分别是:
1交易者:用一种资产交换另一种资产
2流动性提供者(LP) :愿意将自己的资产组合贡献出来,帮助他人进行交易,获得一定费用
3套利者:发现价值凹地,比如从UNISWAP中低价买入到市场上去卖出,以赚取一定利润
UNISWAP官网中用一张图详细地描述了三者的关系:
当然图中是没有套利者的,因为从平台的角度看,两者产生的都属于交易行为。
我们假设UNISWAP一个交易池中是ETH-DAI,第一个流动性提供者放进去了a个ETH和bb个DAI。
这时候这个交易对,对应的初始值是 x=a, y=b;那K的初始值=a*b;
此时ETH的价格就是b/a,DAI的价格=a/b;
在K不变的情况下,如果这个交易池有trader T进来,想用w个EHT换DAI。他会以什么样的价格拿到多少DAI呢?
在恒定乘积下,这个运算过程是这样的:
y’=K/(x+w)
其中y’等于此次交易后,交易池中的DAI的个数。由此可知,T得到的DAI的个数=y-y’;这些DAI的价格=w/(y-y’).
所以你发现了吗?在交易者告诉平台自己要兑换的数量之前,他能拿到什么价格是不确定的。这就让UNISWAP的价格获取跟中心化交易所和利用价格预言机的交易所完全区分开了。
还有别忘了,我们假定的前提条件是K不变,那哪些情况下K值是要改变的?答案有二,一是交易费,二是流动性。
交易费
用户每一次的交易,需要交0.3%的手续费。拿上面交易举例,我们为了简化计算忽略了手续费,真实的情况是uniswap平台在计算出y’后会扣除0.3%y’的手续费,完成交易后,这0.3%dy会被添加到流动性池里,此时K值就变成了 xy+x0.3%y’=x*(y+0.3%y).
所以,你发现了吗?K值变大了。反之亦然,减少流动性,会减少K值。换言之,恒定乘积算法的K值并不恒定,每一笔交易都会影响K值。
流动性
流动性是怎么改变K值的呢?当第二个人在一个交易对中按照比例增加了ETH和DAI的数量,X和Y就同时增加了,很显然,K的值就是增加的;如果第一个人取走自己的交易对,K值就减少,非常简单。
总之呢,“恒定”乘积针对的是总体流动性不变的情况下,也假设没有手续费的时候,K是不变的,就像计算物理题的时候假设某个状态下不存在摩擦力一样。通过简化前提,让这样一个简单的乘法就实现了价格与供应量成反比的经济学原理,真可谓是天才设计了。
但是习惯了传统做市商模式的你可能会不习惯,这种对两种资产进行定价的方式,不仅少见还显得过于独断。让两种代币的库存数相乘所得的积维持固定,为什么就能确保正确的报价呢?因为设计者相信市场中始终存在聪明的套利者,会反复交易,直到平台价格与真实价格相符无利可图。
诚然,恒定成绩做市商模式因为缺乏与外界的联动显得略微被动和孤立,总是需要套利者去抹平平台上价格与真实价格之间的差;而且被大家诟病的交易滑点和LP(流动性提供者)无偿损失也阻碍着更加保守的交易者进入这个领域。
但它的优点也是显而易见的,高效、透明、维护成本低,降低了做市门槛等都让它的缺点显得不那么重要了。
用一句话总结就是——“一切交给市场”。
自从UNISWAP开创了AMM自动做市商模式,仿佛给区块链大佬们开了脑洞一般,越来越精细化的项目进来做市商的赛道。虽然去中心化金融产生的时间不长,但是这其中爆发的创造力十分惊人,而来会有哪些四两拨千斤的金融项目?我们拭目以待。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!