浅谈自动做市商 (AMMs) 机制:从 Uniswap 理解 Balancer_比特币:区块链

译者:洁sir

在去中心化金融(DeFi)的世界中,去中心化交易所(DEX)为最重要且最核心的一环。其中最具代表性的为Uniswap,以一行简洁且优美的数学公式作为模型核心,建构出一个全自动的交易市场。Balancer则可看作广义的Uniswap,赋予Uniswap更大的弹性,让任何人都能在以太坊上打造自己专属的资产配置组合,且还具备自动再平衡的功能!相对的,Balancer的数学模型会复杂些,但本质与Uniswap无太大的差异。

本篇文将从Uniswap出发,用图解搭配四则运算介绍交易如何发生,再以简化的方式将其推广至Balancer的做市机制。

Uniswap恒定乘积做市商模型简介

一切从这行简单的公式出发:

池中USD总量

X,池中ALT总量,K常数

在没人增加或移除流动性的前提下,池中两边代币总量的乘积为常数

然而上面那句话的叙述其实是错误的,每次只要有人进行交易贡献手续费,k值就随之改变,但改变的幅度极小。因此,为简化讨论以下的计算都先暂时忽略手续费的影响。

交易如何发生?

任何交易的发生都离不开上面那条等式,假设预期买入Δx个ALT,那会需要花费多少个USD?

买入及卖出会改变池内代币的数量

买入ALT会让池中ALT的数量减少;付出USD会让池中的USD数量增加。无论如何改变x或y,池内tokens数量必须满足前述等式,将其画成图如下,蓝线为双曲线的一支。

在蓝线的限制条件下,给定Δx就自动决定Δy,反之亦然。

所以只要有交易发生,该点就会在蓝线上移动。

成交价格如何决定?

观点:贝莱德CEO态度转变可能将该行业推向错误的方向:金色财经报道,贝莱德CEO Larry Fink对BTC的态度转变,可能会让华尔街更容易接受加密货币,但一些专家警告说,他所青睐的交易所交易基金(ETF),是一种与数字资产的最初理想截然不同的投资工具,并可能将该行业推向错误的方向。

关键的区别在于,ETF只是一种传统的投资工具,以比特币为资产,但通过受监管的经纪商在受监管的证券交易所进行交易。这种结构可能与比特币格格不入,比特币是由一位匿名创建者于2009年设计并推出的,部分原因是对2008年引发全球金融危机的华尔街过度行为的强烈抵制。[2023/7/8 22:25:17]

有了Δx及Δy后就能算出此笔交易的成交价格:

单位:USD/ALT

例如:买50ALT(Δx)花了100USD(Δy),成交价格就是100/50=2USD/ALT

由图可观察出,成交价格即为两点相连之直线斜率。

不同买入量对成交价格的影响

不同的买入量Δx会对应不同的Δy,而产生不一样的价格。一次买入越多,成交价格就越高,此即为滑价的成因。BlackHoleSwap以及Curve皆以神奇的数学或DeFi乐高的堆叠,很巧妙的减少了稳定币互换的滑价问题。

现价(SpotPrice)及总资产价值

所谓交易深度够好,不容易滑价,在DEX中代表流动性佳,正常人一次交易不会改变价格太多,以数学来表示即为Δxx和Δyy。所以在Uniswap中我们指的现价就是Δx非常小时的成交价。

看起来可能有点像是废话,但证明会用到微分

所以我们只要知道池内USD及ALT的数量就能算出现价,有了现价就可以算出池内总资产:

美国银行调查:大多数专业投资者在通胀问题上同意美联储的观点:美国银行6月份全球基金经理人调查显示,专业投资者认为通胀可能是暂时的,围绕长期通胀建立的交易是最为过度的。指标显示,华尔街的看法与美联储的看法一致,即最近的通胀压力将随着时间的推移而减轻,并最终回落至正常水平。约73%的受访者表示,他们认为通胀是暂时的,而只有23%的人认为通胀是永久性的。此外,投资者认为大宗商品是最拥挤的交易,取代了上个月的领头羊比特币。[2021/6/16 23:39:58]

简单证明了在Uniswap的流动池中,两种资产永远会保持1:1,各占50%。由上可知,在此类自动做市商模型中,价格是在交易中产生,这点跟挂单搓合式交易有极大的差别。以股票为例,若市场预期大好,开盘即涨停(+10%),则唯一能成交的价格就只有涨停价。卖方能一次获得10%的利润,不会有任何中间的价格成交。但在Uniswap中,兼顾买方及卖方的流动性提供者会被方程式所限制,必须沿着线一路往上卖,此时无法将利润最大化。但相反来说,若市场大跌也会一路向下买,不用直接面对-10%的卖单。

Balancer简介

Balancer的数学模型看似复杂,但其实能看作一个广义的Uniswap,只需经过几个步骤的简化就能更直观地去理解其运作的机制。

做市模型

为Balancer白皮书的定义:t为tokens的种类数;V为常数:W为权重,其总和为1

先将其改写为较为亲民样,这里先假设这个池子内只有3种资产

x,y,z分别为三种资产在池内的数量,k为常数

次方上的权重W即为该资产在池子内的比例,其总和为1(100%)。若将其设为1/3、1/3、1/3,则可再简化方程式:

观点:OCC宣布银行可用稳定币支付可能会挤占本土加密公司的市场:1月12日消息,怀俄明区块链委员会创始人、加密银行Avanti创始人Caitlin Long表示,美国货币监理署(OCC)上周发布的最新规定对加密行业来说是一把双刃剑。Caitlin Long称,该规定可能会让大型银行排挤加密货币新入行者,因为一家全国性银行在进入稳定币市场之前可能不需要获得联邦监管机构的批准。但申请银行特许状的较小的银行和加密货币公司需要事先获得批准才能进入。这个系统本质上有利于大型银行,实际上,我们明天就会看到美国最大的银行进入稳定币市场,并比小型银行和本土加密公司更快地构建网络。(Decrypt)[2021/1/12 15:57:50]

有没有发现长得越来越像Uniswap!由于k跟k’都为常数,后面所有常数都统一以k来表示。

池中有三种资产,这样怎么交易?

先把其中一种遮起来,留下要交易的那两种即可。

所谓交易就是拿A币换B币。

假设x、y、z分别为ALT、USD、SHIT三种的数量,若今天打算用USD买入ALT,那整个过程其实跟SHIT的数量没有关系,因此可以将z当成常数合并到k之中,如此一来方程式就变得跟Uniswap完全一样了!

借图像再次说明这件事情:

三维曲面为函数xyz=k所绘制的图形,绿色为z=const.的平面,两者相交即为双曲线将z视为常数之后,剩下由x和y两个自由度所构成的二维曲线与前述之Uniswap数学模型完全相同。

可以说Balancer内其实藏着Uniswap!

再复杂些:加入更多币种,任意调整权重

实际上Balancer的运作可以更复杂,例如HakaaFinance的流动性挖矿Pool2,用的就是2%HAKKA+4%DAI+4%USDC+90%BHSc$这个配置。但从前面的说明可以了解到,无论池内有几种币,在做价格计算时仅会用到2种,其他皆可看作常数。

观点:抵押借贷的最佳意义是“雪中送碳”:据币格BigONE官方消息,币格 BigONE 于 5 月 15 日 14:00 举办了主题为“币格 BigONE 与您一起创造 2020”的新品线上发布会。

?发布会第二个圆桌论坛主题为“创优——借贷为谁而生?”,本圆桌由哔哔 News、小龟说创始人小龟主持,币印矿池联合创始人朱砝、火星云矿总裁商思林、贝宝金融 CEO 杨舟、嘉楠区块链首席分析师 Kube Wu 担任嘉宾参与了讨论。

几位嘉宾为大家解读了数字资产抵押借贷功能的利弊,认为抵押借贷的背后是负债和杠杆,大家应该合理利用抵押借贷这个工具,所以不管是用户还是交易所,都要做好对杠杆的把控,降低风险。除此之外,几位嘉宾还针对挖矿现状做了分析,火星云矿总裁商思林认为,未来一到两年都处于丰水/电期,挖矿进入门槛相对较低,而挖矿也是学习和认识比特币的好方式。

币格 BigONE 已经上线 B2C 借贷功能,按日计息,随借随还,提前还款不收取手续费。币格 BigONE 不只有数字资产安全。[2020/5/15]

这边以20/60/10/10比例的ALT/USD/SHIT1/SHIT2池来进一步的说明:

若每个币种的配置比例不均等的话,那无法将方程式化简成Uniswap的形式,会多出一个次方项。此时可再多做一次转换,重新定义变数,再次化简方程式:

重新定义变数

将y的3次方重新定义成Y之后,最熟悉的Uniswap又出现了!这时就能回头套用最初Uniswap的图:

经过座标转换后,Balancer跟Uniswap的数学式相同

接着就能按照前述定义计算成交价:

声音 | 学者观点:任何关于区块链的讨论都必须首先区分许可或无许可:香港城市大学法学院教授Kelvin F.K. Low与新加坡管理大学外部研究员Eliza Mik联合发表了一篇区块链技术在法律领域应用的论文“暂停区块链法律革命”(Pause the Blockchain Legal Revolution)。论文开篇提到:“区块链在推动法律变革方面具有革命性的潜力,这一点早就得到了承诺,但交付速度却很缓慢。我们即将发表的论文指出,承诺与现实之间的不匹配部分源于一系列误解,包括某些术语的法律和技术含义的混淆。我们强调了将区块链部署为资产注册技术的陷阱,并打破了‘智能合约’随时可能扰乱法律行业的神话。任何关于区块链的讨论都必须首先区分无许可区块链(如比特币)和许可区块链(如Corda)。在比特币中成立的论点在Corda中不适用,反之亦然。”(牛津大学法学院)[2019/11/12]

注:计算价格是以实际付出的token数量去计算,因此分子是Δy而非ΔY

资产配置比例如何影响价格?

有了上述概念后,接着将权重的数字以符号替代,重新再整理一次:

两个币种权重的比值决定价格变化的程度

比较Balancer与Uniswap的成交价公式

由上比较可看出,在成交价的计算中Uniswap与Balancer的形式基本相同,唯一的区别只在次方项,且该数值由权重决定。

现价(SpotPrice)及总资产价值

如前所述,知道成交价的计算方式后,只要让Δxx即可求得现价:

有了现价就能计算出池内各个币种的价值:

池中ALT的资产价值

以上计算可证明个别资产=总资产×权重这个基本的事实。

代表无论池内资产数量如何变化,每个币种的价值都会维持在最初设定的比例。

在Balancer中打造自己专属的资产配置

如前所述,Balancer内部的每种资产会固定于初始设定的比例,我想这也是为什么要叫做“Balancer”的原因。因此我们可以利用此性质,在Balancer中打造自己专属,且全自动的投资组合!

假设举例来说:我希望自己加密货币的资产配置能固定为10%DAI+45%PERP+45%HAKKA。

状况1:单纯持有现货,将其放于钱包/交易所。当其中一个币种的价格产生了变化,整体的比例就会失衡,需自行在三个币种之间买卖以调整比例,此动作称为再平衡。要想一直维持比例必须频繁的执行,且还须精算每个币种要买卖的数量,既麻烦又花时间,还要花额外的手续费。

状况2:利用Balancer打造自己专属的流动池。若想将上述的流程自动化,则可直接在Balancer上增加自己专属的流动池。建好池后,当其中任一种币的价格产生变化,就会有人前来套利以平衡价格,相当于有人替我执行了再平衡的操作,如此不仅不需花手续费,还会有手续费的收入(Swapfee)。

备注:Balancer的router会自动在现有的池中挑选价格最好的交易,所以套利者不需逐池检查最优价格在哪。值得特别注意的是,以上说明必须在资金量体足够大时才能被妥善执行,因为要是流动池太浅,会非常容易滑价,滑价代表价格差,则router就会优先让其他深度好的池先被交易,此状况在比例不均的池尤其严重。

深度不足解决方式有二种:

1.多准备一些钱,让流动池变深。2.让别人加入你的池(SharedPool),或找现成的池去去增加流动性。

构建自己的ETFs

固定资产比例+再平衡即为市面上大部分ETF的运作模式。所以其实任何人都可以很容易用Balancer发行自己专属且指数成分自定义的ETF,LP代币即为该ETF的代币。此基金不仅不会有内扣的管理费用,且还会有额外的手续费收入!因为不需主动执行再平衡,会有套利者送钱来帮你做。

滑价(Slippage)分析

当有人建立了流动池后,任何人就能对其进行交易(Swap),而身为交易者最关心的就是价格。本节将简单探讨池子的权重如何影响交易深度。

先来个小测验:假设有三种BalancerPool,流动性都是100M(USD+HAKKA)权重分别为:(1)20/80(2)50/50(3)80/20

试问:假设我手上有10M的USD要入场买HAKKA,哪个比例的池滑价会最小?

答案:(2)50/50-溢价20%其他两个分别为:(1)20/80-溢价29.67%(3)80/20-溢价33.08%

在这类Uniswap-like的DEX中,只要任一边的资产数量被大幅度改变,就会对价格造成严重影响。

10MUSD入场购买HAKKA,在20/80池中相当于一次增加池内50%的USD总量;在80/20池中则等同于于一次买走池内37.57%的HAKKA。所以50/50会是对两边影响皆最小的比例*,因而滑点最小。

此为10MUSD入场买HAKKA时的滑点图。横坐标为USD的权重

由图可观察出,比例越极端,滑点越高,这也是为什么当初DAI/YFI的98:2池开挖之后YFI会暴涨的主要原因之一,那时很多人在没研究透彻的情况下直接单边增加流动性,或者直接在Balancer买入YFI,从上图可以看出这种买法会疯狂的拉抬币价,使YFI疯狂的翻倍。

注*其实理论上滑价最小的比例非刚好50/50,而是会略小于50%(USD)。

提醒:实际交易时,滑点的大小在Balancer中会以“PriceSlippage”来表示,在Uniswap中则是写“PriceImpact”。但若以不同的单位去计算滑价会得到不一样的数值,所以建议在交易时不要看Uniswap或Balancer上Slippage的数字,请直接看它预估的成交价格。

损益(ProfitandLoss)及无常损失(ImpermanentLoss)分析

无常损失不等于币价下跌后总资产的亏损。假设一个状况:我看好HAKKA将来会涨,所以想买入持有,且手上有一笔能拿来投资的资金1,000USDC。依据个人风险承受能力的不同,每个人的做法会不同。

可能出现的状况如下:

1.100%梭哈买入,承担所有大起大落的波动风险。2.98%近乎梭哈买入,仅保留2%现金。3.80%部分买入,稍微降低些波动风险。4.50%一半买入,预留一半现金,保守投资。

此时手上会有部分HAKKA及部分USDC,这时除了单纯握着现货之外,还能选择将所有资产都投入流动池,池内总资产变化如下图:

在Balancer中,各种比例的流动池内的总资产变化。

显而易见的,一次买入越多HAKKA,资产变化得越剧烈。若有预留现金,虽然涨的时候会少赚些,但跌时也会少赔点。一旦投入流动池之后任何人都能前来交易,好处是能获得手续费,但坏处是会有无常损失,相较于不进池,可能会有额外的损失。

相较于拿着现货,进池后因价格发生变化而产生的额外损失

50/50的池会有最大的无常损失,价格变化越多,额外损失越大。但对于流动性提供者而言,只要交易手续费的收入大于无常损失,那就会比在池外的HODLers有更高的收益。

到底要用什么比例

先简单整理一下以上资讯,以两个极端来举例:

50/50:基本上是最不易滑价格的比例,能提供最稳定的交易,这也是为什么Uniswap使用起来很香的原因,能有最大的交易量及最多的手续费收入,但是会有最大的无常损失。

98/2:几乎没有无常损失,但此交易对非常容易滑价,价格十分不稳定,无法吸引人前来交易,因此交易量势必较小,手续费也因此较少。

这是天秤的两端,需要在两者中做取舍:无常损失越大,滑价越小;无常损失越小,滑价越大。

流动性的增加对于一个项目的发展来说是很重要的,好的交易深度能让更多人参与二级市场,因此出现了各种奖励机制吸引大家主动增加流动性。

80/20是个折衷的选项,有不太大的无常损失,同时也具有不错的价格稳定性,此即为PerpetualProtocol选择此以比例作为奖励池的原因。另一方面还能降低投资者的风险,不用梭哈PERP,手中能保有一些现金,降低整体资产的波动率,面面俱到,两全其美。

结论

个人认为Uniswap及Balancer等AMMs的出现是去中心化世界的一大里程碑,能以一条简单的方程式建构出一个全自动且完整的交易系统,再搭配奖励机制吸引更多人投入,以正向的循环让整个生态更加完善。若有兴趣参与这个市场,除了关注商业模式外,多了解运作原理也能避免自己不小心落入陷阱——至少要知道自己如何归零的。

原文链接:AutomaticMarketMakers(AMMs)Mechanism:UnderstandingBalancerfromUniswap

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-7:843ms