AMMs机制:从Uniswap看平衡器
AMMs机制:从Uniswap看分散金融世界中的平衡器
分散式交换机(DEX)是最重要、最核心的部分。
最有代表性的是Uniswap。 以简单美观的数学公式为模型核心,构建全自动交易市场。平衡器可以看作是一个通用的Uniswap,它赋予了Uniswap更大的灵活性。
,让任何人都可以在以太坊创建自己专属的资产配置组合,而且它还具有自动再平衡的功能!
相对平衡器的数学模型会更复杂,但本质和Uniswap没有太大区别。
本文将从Uniswap开始。 本文用图表和四则运算介绍了交易是如何发生的,然后以简化的方式将其扩展到平衡器的做市机制。
Uniswap恒定乘积做市商模型简介
一切都从这个简单的公式开始:(以ALT/USD对为例)
在没有人增加或去除流动性的前提下,池两边的代币总量的乘积是常数。但是,上面这句话的说法其实是错误的。每当有人进行一笔交易,贡献出一笔手续费,K的值就会发生相应的变化。
但是,变化很小。因此,为了简化讨论,下面的计算暂时忽略。
交易如何发生?
任何交易都可以';没有上面的等式就不会发生。假设您希望购买xALTs,价格是多少美元?
购买和出售将改变池中代币的数量。购买ALT会减少池中ALT的数量。支付美元将增加资金池中的美元金额。
无论如何改变X或Y,池中的代币数都必须满足上述等式,如下图所示,蓝线为双曲线。
在蓝线的限制下,给定x,y自动确定,反之亦然,所以只要有交易,点就会在蓝线上移动。
成交价格如何决定?
有了x和y,就可以计算出交易价格:
单位:美元/ALT。比如,花100美元(y)买50alt(x),成交价是100/50=2美元/ALT。
从图中可以看出,交易价格是连接两点的直线的斜率(绝对值)。 不同买入金额对交易价格的影响
不同的买入量x会对应不同的y,从而产生不同的价格。一次买的越多,成交价格越高(对角线越斜),这就是价格滑动的原因。
[XY002]黑洞WAP和Curve都是用神奇的数学或者DeFi乐高堆叠,巧妙地降低了稳定货币互换的滑动价格问题。
。
现价(SpotPrice)及总资产价值
所谓交易深度足够好,不容易滑价。在DEX中,代表着良好的流动性,正常人一次交易不会对价格有太大的改变。
,数学上表示为xxyyy.所以在Uniswap中,我们所指的现价是x很小时的成交价格。 这可能看起来有点像废话,但需要微分来证明。因此,我们只需要知道池中USD和ALT的数量就可以计算出出现价格,而有了当前价格,就可以计算出池中的总资产:
简单证明了在Uniswap的流量池中,两种资产永远是1:1,各占50%。
从上面可以看出,在这种自动做市商模式中,价格是在交易中产生的,与挂单摩擦交易有很大区别。
以台股为例,如果市场预期良好,打开涨停(10%),唯一可以交易的价格就是涨停。卖家一次可以获得10%的利润。
那里赢了';这不是中间价格。
但在Uniswap中,既是买方又是卖方的流动性提供者将受到等式的限制。 ,必须沿线一路上涨卖出,此时无法实现利润最大化。但相反,如果大盘暴跌,就会一路向下买入,而不用直接面对-10%的卖单。
Balancer简介
平衡器的数学模型看似复杂,但实际上可以看作是广义的Uniswap。
经过几个步骤的简化,我们可以更直观地理解它的运行机制。
做市模型 这是平衡器白皮书的定义:t是令牌的类别数;v是常数;w是一个权重,它的和是1。首先,把它重写为一个更友好的外观。让';s假设这个池中只有三种资产(即t=3)
。x,y,z是池中三个资产的个数,K是常数幂,权重W是池中资产的比例。
,其总和为1(100%)。如果设为1/3,1/3,1/3,方程还可以再简化一遍: 有没有发现越来越像Uniswap了!既然k和k'都是常数,所有后面的常数都统一用k表示。
池中有三种资产,这样怎么交易?
Ans:先掩盖其中一个,留下两个进行交易。
所谓交易,就是把A币换成B币。假设X,Y,Z分别是ALT,USD,SHIT的量。如果我今天计划用美元购买ALT,
其实整个过程和屎的个数无关,所以z可以作为常数组合成k,所以方程就变成和Uniswap一模一样了! 平衡器=UniswapQED(?让';s用一个图像再解释一下这个:
三维曲面是用函数xyz=k画出的图形,绿色是z=const的平面。z被视为常数后,两者的交点就是一条双曲线。
剩下的由x和y自由度组成的二维曲线与上面提到的Uniswap数学模型完全相同。可以说Uniswap其实就藏在平衡器里!
再更复杂些:加入更多币种,任意调整权重
其实平衡器的操作可以更复杂,比如HakaaFinance's流动性挖掘池2。
,采用2%客家话4%傣语4%USDC话90%BHSc话的配置。但是从前面的解释可以看出,无论池中有多少种币,在价格计算中只会用到两种,其他的都可以视为常数。
这里用比率为20/60/10/10的ALT/USD/SHIT1/SHIT2池做进一步说明:
如果每种货币的配置比例不相等,方程就不能简化为Uniswap,就会多一个幂项。
此时可以再做一次变换,重新定义变量,再次简化方程:
重新定义变量。把y的三次方重新定义为y之后,最熟悉的Uniswap又出现了!
这时可以把原来的Uniswap图应用回来:
坐标变换后,平衡器的数学公式与Uniswap相同。那么就可以根据上面的定义计算出交易价格:
注意:计算出的价格是根据实际支付的代币数量计算出来的,所以分子是y而不是y。
资产配置比例如何影响价格?
有了上面的概念,然后把加权的数字换成符号,重新排列一遍:
两种货币的权重之比决定了价格变动的程度。比较Balancer和uniWAP的交易价格公式(让Uniswap'sy=Y进行比较)。从上面的对比可以看出,Uniswap和Balancer在交易价格的计算上形式基本相同,唯一的区别就是幂项。
,其值由重量决定。
现价(SpotPrice)及总资产价值
如上所述,知道了交易价格的计算方法后,我们只要xx(即x0)就可以得到当前价格:
将y和x微分一次就可以得到当前价格。单位:USD/ALT根据当前价格,可以计算出资金池中每种货币的价值:
资产池中ALT的资产价值(美元)资产池中的总资产价值(美元)上面的计算可以证明一个基本事实:单项资产=总资产权重。
意味着无论池中的资产数量如何变化,每种货币的价值都将保持原来设定的比例。
在Balancer中打造自己专属的资产配置!
如上所述,平衡器中的每项资产都将固定在初始设定的比率,这就是为什么它被称为"平衡器"。
因此,我们可以使用该属性在Balancer中创建我们自己的专属全自动投资组合!
比如假设:我希望我的加密资产配置可以固定在10%戴45%PERP45%客家。
情况一:简单持有现货,放入钱包/兑换。当一种货币的价格发生变化时,整体比例就会不平衡。 ,你需要在三种货币之间进行买卖来调整比例。这个动作叫做重新平衡。为了维持比例,必须频繁进行,每种货币的买卖数量都要精算,麻烦,费时,还要额外收费。
情况2:使用平衡器构建自己的流动池。如果您想自动化上述过程,
,您可以直接在平衡器上添加自己的专用流池。操作界面如下: 解锁的话,可以随意输入想要存入的金额,也就是自己给池中的资产定价。一旦与池外产生价格差异,可能会有一大群机器人前来套利以平衡价格。,会白白损失一些资产。池子建好之后,任何一种货币的价格变动,都会有人来套利,平衡价格。
相当于有人给我做了一个再平衡的操作,这样我不仅不需要花费用,还会有一笔互换费。注意:平衡器的路由器会自动选择现有池中的最优价格交易,因此套利者不需要逐池检查最优价格池。
值得注意的是,只有在资金量足够大的情况下,才能适当执行上述指令,因为如果流量池太浅,将非常容易出现价格下滑。 如果滑动价格代表价格差,路由器会优先选择其他深度好的池先进行交易,这种情况在比例不均的池中尤为严重(这一点下一节会分析)。
深度不够有两种解决方法:
多准备一些钱,让流量池更深。让其他人加入您的共享池。或者找一个现成的池子增加流动性(那当然会是互相之间的配置比例)。
BuildYourOwnETFs
"重新平衡固定资产的比例"是市面上大部分ETF的操作方式。
所以其实任何人都可以很容易的使用Balancer发行自己的ETF,自定义指数构成。
LP令牌是ETF的令牌。
这个基金不仅会有管理费扣除,还会有额外的手续费收入。!(因为不需要主动进行再平衡,所以会有套利者送钱来帮你做。)
滑价(Slippage)分析
当有人建立了移动池,任何人都可以交换,交易者最关心的是价格。
本节将简要讨论池的权重如何影响事务的深度。
让';让我们先来做个小测验
假设有三种平衡器池。
,流动性为100M(美元客家),权重分别为:(1)20/80(2)50/50(3)80/20 。问题:假设我有1000万美元入市买客家,池滑价比例会最小?
答:(2)50/50-20%溢价;另外两个是:(1)20/80-29.67%溢价;(3)80/20-33.08%溢价。在这种类似Uniswap的DEX中,只要任何一方的资产数量发生较大变化,都会对价格产生严重影响。
1000万美元入市收购客家。
在20/80池中,相当于一次性增加池中美元总量的50%;80/20池,相当于一次性买了池中37.57%的客家。所以50/50会是两边影响最小的比值*,所以滑移点最小。这是1000万美元入市买客家时的幻灯片。从图中可以看出,以美元为横坐标的权重,比值越极端,滑点越高。
这也是在发掘出戴/后人气暴涨的主要原因之一';s98:2泳池。当时很多人没有经过充分的研究就直接片面的添加流动性。,甚至直接在Balancer买YFI。从上图可以看出,这种买入方式会疯狂抬高币价,疯狂翻倍YFI。注*事实上,理论上,最小滑动价格并不完全是50/50,而是略低于50%(美元)。有兴趣了解计算细节的可以找我聊聊!
提醒:在实际交易中,滑点的大小会用"价格单"在平衡器里。 ,inUniswap,itiswrittenas"priceimpact"
但是,如果我们用不同的单位(美元/客家或者客家/美元)计算滑动价格,就会得到不同的值。
所以交易时建议不要看Uniswap或者平衡器上的滑数,直接看它的预估成交价。
损益(ProfitandLoss)及无常损失(ImpermanentLoss)分析
无常损失不等于币价下跌后总资产的损失。
假设一种情况:
看好客家未来上涨,想买入持有,有1000USDC
的基金可以投资。取决于个人';s风险承受能力,每个人会做的不一样。
可能的情况如下:
100%梭哈买入,承担所有波动风险。98%接近Stud,只留2%现金。 。80%部分购买,小幅降低波动风险。各买50%,预留一半现金,保守投资。这个时候,手里就会有一些客家和一些USDC。这时候除了简单的持有现货,还可以选择将所有资产放入当前池中。
池内总资产的变化如下:
在平衡器中,各种比例的流动池内总资产的变化。明显的 一次买的客家越多,资产变动越剧烈。如果储备现金,涨的时候赚的少,跌的时候亏的少。一旦被放入移动池,任何人都可以来交易。好处是他们可以拿到手续费,坏处是会有一种无法挽回的损失,相比不入池。
可能会有额外的损失。 与持有现货相比,入池后价格变化带来的额外损失。50/50池会有最大的无常损失,价格变动越多,额外损失越大。
但对于流动性提供者来说,只要交易费收益大于无常损失,就会比池外的霍德勒夫妇有更高的收益。
所以到底要用什么比例啦!
让';let’s简单梳理一下以上信息,取两个极端为例:
50/50基本上是最不滑的价格比,可以提供最稳定的交易,这也是Uniswap用起来很香的原因。
,可以有最大的交易量,最大的手续费收入,但也会有最大的无常亏损。
98/2几乎没有无常损失。 但是,这种交易非常容易滑动,价格非常不稳定,而且它可以';吸引不了人来交易,所以交易量必然小,手续费也因此少。这是天秤的两端,我们需要在两者之间做出选择:无常损失越大,滑价越小;无常损失越小,价格滑动越大。
流动性的增加对一个项目的发展非常重要,一个好的交易深度可以让更多的人参与到二级市场。
因此,各种激励机制应运而生,吸引人们主动增加流动性。
80/20是一个折中的选择,没有太多的无常损失。 同时还具有良好的价格稳定性,这也是永久协议选择这个比例作为奖励池的原因。另一方面,也可以降低投资者的风险,不需要StudPERP,手里留一些现金,降低整体资产的波动性,覆盖方方面面。,两全其美。
结论
我个人认为Uniswap和Balancer等AMM的出现是去中心化世界的一个重大里程碑。
用一个简单的方程就可以构建一个全自动的完整的交易系统,用奖励机制(比如UNI或者BAL)吸引更多的人来投资,这样整个生态就可以得到良性循环的改善(不包括两天内破灭的各种产量养殖钱泡沫)。。如果你有兴趣参与这个市场,除了关注商业模式,多了解一些运营原理也可以避免一不小心掉进陷阱。
后记
一开始希望用更直观的方式解释平衡器的运行原理,然后从与数学最基本的关系一步步来。
下面的结果都是推导出来的,但是实际写完之后发现把所有内容都列出来会太复杂,而且因为Medium不支持LaTeX,方程排版真的很难。更重要的是,应该没人想看。所以后半部分只呈现图表和结果。,省略了计算过程和数学公式,如果你真的对过程感兴趣欢迎和我讨论,如果发现错误也告诉我!(但其实只要你有前半段的数学基础和一些四则运算,就能推导出后面所有的结果。有兴趣的可以试试!)