在去中心化金融 (DeFi) 的世界中,去中心化交易所 (DEX) 为最重要且最核心的一环。其中最具代表性的为 Uniswap,以一行简洁且优美的数学公式作为模型核心,建构出一个全自动的交易市场。Balancer 则可看作广义的 Uniswap,赋予 Uniswap 更大的弹性,让任何人都能在以太坊上打造自己专属的资产配置组合,且还具备自动再平衡的功能!相对的,Balancer 的数学模型会复杂些,但本质与 Uniswap 无太大的差异。 本篇文将从 Uniswap 出发,用图解搭配四则运算介绍交易如何发生,再以简化的方式将其推广至 Balancer 的做市机制。 Uniswap 恒定乘积做市商模型简介 一切从这行简单的公式出发:(以 ALT/USD pair 为例)池中USD总量 X,池中ALT总量,K常数 在没人增加或移除流动性的前提下,池中两边代币总量的乘积为常数 然而上面那句话的叙述其实是错误的,每次只要有人进行交易贡献手续费, k 值就随之改变,但改变的幅度极小。因此,为简化讨论以下的计算都先暂时忽略手续费的影响。 交易如何发生? 任何交易的发生都离不开上面那条等式,假设预期买入 Δx 个 ALT,那会需要花费多少个 USD?买入及卖出会改变池内代币的数量 买入 ALT 会让池中 ALT 的数量减少;付出 USD 会让池中的 USD 数量增加。无论如何改变 x 或 y,池内 tokens 数量必须满足前述等式,将其画成图如下,蓝线为双曲线的一支。 在蓝线的限制条件下,给定 Δx 就自动决定 Δy,反之亦然。 所以只要有交易发生,该点就会在蓝线上移动。 成交价格如何决定? 有了 Δx 及 Δy 后就能算出此笔交易的成交价格:单位:USD/ALT 例如:买 50 ALT (Δx) 花了 100 USD (Δy),成交价格就是 100/50 = 2 USD/ALT 不同买入量对成交价格的影响 不同的买入量 Δx 会对应不同的 Δy,而产生不一样的价格。一次买入越多,成交价格就越高(斜线越斜),此即为滑价的成因。BlackHoleSwap 以及 Curve 皆以神奇的数学或 DeFi 乐高的堆叠,很巧妙的减少了稳定币互换的滑价问题。 现价 (Spot Price) 及总资产价值 所谓交易深度够好,不容易滑价,在 DEX 中代表流动性佳,正常人一次交易不会改变价格太多,以数学来表示即为 Δx x和Δy y。所以在 Uniswap 中我们指的现价就是 Δx 非常小时的成交价。看起来可能有点像是废话,但证明会用到微分 所以我们只要知道池内 USD 及 ALT 的数量就能算出现价,有了现价就可以算出池内总资产: 简单证明了在 Uniswap 的流动池中,两种资产永远会保持 1:1 ,各占 50%。由上可知,在此类自动做市商模型中,价格是在交易中产生,这点跟挂单搓合式交易有极大的差别。以股票为例,若市场预期大好,开盘即涨停 (+10%),则唯一能成交的价格就只有涨停价。卖方能一次获得 10% 的利润,不会有任何中间的价格成交。但在 Uniswap 中,兼顾买方及卖方的流动性提供者会被方程式所限制,必须沿着线一路往上卖,此时无法将利润最大化。但相反来说,若市场大跌也会一路向下买,不用直接面对 -10% 的卖单。 Balancer 简介 Balancer 的数学模型看似复杂,但其实能看作一个广义的 Uniswap,只需经过几个步骤的简化就能更直观地去理解其运作的机制。
为Balancer 白皮书的定义:t 为 tokens 的种类数;V 为常数:W 为权重,其总和为 1 先将其改写为较为亲民样,这里先假设这个池子内只有 3 种资产(即 t = 3)x, y, z 分别为三种资产在池内的数量,k 为常数 次方上的权重 W 即为该资产在池子内的比例,其总和为 1 (100%)。若将其设为 1/3、1/3、1/3,则可再简化方程式: 有没有发现长得越来越像 Uniswap!由于 k 跟 k’ 都为常数,后面所有常数都统一以 k 来表示。 池中有三种资产,这样怎么交易? 先把其中一种遮起来,留下要交易的那两种即可。所谓交易就是拿 A 币换 B 币。 假设x、y、z 分别为ALT、USD、SHIT 三种的数量,若今天打算用USD 买入ALT,那整个过程其实跟SHIT 的数量没有关系,因此可以将z 当成常数合并到k 之中,如此一来方程式就变得跟Uniswap 完全一样了! 借图像再次说明这件事情: 三维曲面为函数 x y z = k 所绘制的图形,绿色为 z = const. 的平面,两者相交即为双曲线(的一支)将 z 视为常数之后,剩下由 x 和 y 两个自由度所构成的二维曲线与前述之 Uniswap 数学模型完全相同。
再复杂些:加入更多币种,任意调整权重 实际上 Balancer 的运作可以更复杂,例如 Hakaa Finance 的流动性挖矿 Pool 2,用的就是 2% HAKKA + 4% DAI + 4% USDC + 90% BHSc$ 这个配置。但从前面的说明可以了解到,无论池内有几种币,在做价格计算时仅会用到 2 种,其他皆可看作常数。
若每个币种的配置比例不均等的话,那无法将方程式化简成 Uniswap 的形式,会多出一个次方项。此时可再多做一次转换,重新定义变数,再次化简方程式: 重新定义变数 将 y 的 3 次方重新定义成 Y 之后,最熟悉的 Uniswap 又出现了!这时就能回头套用最初 Uniswap 的图:经过座标转换后,Balancer 跟 Uniswap 的数学式相同 接着就能按照前述定义计算成交价: 注:计算价格是以实际付出的 token 数量去计算,因此分子是 Δy 而非 ΔY 资产配置比例如何影响价格? 有了上述概念后,接着将权重的数字以符号替代,重新再整理一次:两个币种权重的比值决定价格变化的程度 比较 Balancer 与 Uniswap 的成交价公式(下式设 Uniswap 的 y = Y 以便比较) 由上比较可看出,在成交价的计算中 Uniswap 与 Balancer 的形式基本相同,唯一的区别只在次方项,且该数值由权重决定。现价 (Spot Price) 及总资产价值 如前所述,知道成交价的计算方式后,只要让 Δx x(即 Δx ? 0)即可求得现价:有了现价就能计算出池内各个币种的价值: 池中 ALT 的资产价值(单位:USD) 以上计算可证明个别资产 = 总资产 × 权重 这个基本的事实。
在 Balancer 中打造自己专属的资产配置 如前所述, Balancer 内部的每种资产会固定于初始设定的比例,我想这也是为什么要叫做 “Balancer” 的原因。因此我们可以利用此性质,在 Balancer 中打造自己专属,且全自动的投资组合!假设举例来说:我希望自己加密货币的资产配置能固定为 10% DAI + 45% PERP + 45% HAKKA。
备注:Balancer 的 router 会自动在现有的池中挑选价格最好的交易,所以套利者不需逐池检查最优价格在哪。值得特别注意的是,以上说明必须在资金量体足够大时才能被妥善执行,因为要是流动池太浅,会非常容易滑价,滑价代表价格差,则router 就会优先让其他深度好的池先被交易,此状况在比例不均的池尤其严重。
构建自己的ETFs 固定资产比例+再平衡即为市面上大部分 ETF 的运作模式。所以其实任何人都可以很容易用 Balancer 发行自己专属且指数成分自定义的 ETF,LP代币即为该 ETF 的代币。此基金不仅不会有内扣的管理费用,且还会有额外的手续费收入!因为不需主动执行再平衡,会有套利者送钱来帮你做。滑价 (Slippage) 分析 当有人建立了流动池后,任何人就能对其进行交易 (Swap),而身为交易者最关心的就是价格。本节将简单探讨池子的权重如何影响交易深度。先来个小测验:假设有三种 Balancer Pool,流动性都是 100M (USD + HAKKA) 权重分别为:
答案: 在这类 Uniswap-like 的 DEX 中,只要任一边的资产数量被大幅度改变,就会对价格造成严重影响。
此为 10M USD 入场买 HAKKA 时的滑点图。横坐标为 USD 的权重 由图可观察出,比例越极端,滑点越高,这也是为什么当初DAI/YFI 的98:2 池开挖之后YFI 会暴涨的主要原因之一,那时很多人在没研究透彻的情况下直接单边增加流动性,或者直接在Balancer 买入YFI,从上图可以看出这种买法会疯狂的拉抬币价,使YFI 疯狂的翻倍。
提醒:实际交易时,滑点的大小在 Balancer 中会以 “Price Slippage” 来表示,在 Uniswap 中则是写 “Price Impact”。但若以不同的单位(USD/HAKKA 或HAKKA/USD)去计算滑价会得到不一样的数值,所以建议在交易时不要看Uniswap 或Balancer 上Slippage 的数字,请直接看它预估的成交价格。 损益 (Profit and Loss) 及无常损失 (Impermanent Loss) 分析 无常损失不等于币价下跌后总资产的亏损。假设一个状况:我看好 HAKKA 将来会涨,所以想买入持有,且手上有一笔能拿来投资的资金 1,000 USDC。依据个人风险承受能力的不同,每个人的做法会不同。
在 Balancer 中,各种比例的流动池内的总资产变化。 显而易见的,一次买入越多 HAKKA,资产变化得越剧烈。若有预留现金,虽然涨的时候会少赚些,但跌时也会少赔点。一旦投入流动池之后任何人都能前来交易,好处是能获得手续费,但坏处是会有无常损失,相较于不进池,可能会有额外的损失。相较于拿着现货,进池后因价格发生变化而产生的额外损失 50/50 的池会有最大的无常损失,价格变化越多,额外损失越大。但对于流动性提供者而言,只要交易手续费的收入大于无常损失,那就会比在池外的 HODLers 有更高的收益。到底要用什么比例 先简单整理一下以上资讯,以两个极端来举例:
80/20是个折衷的选项,有不太大的无常损失,同时也具有不错的价格稳定性,此即为 Perpetual Protocol 选择此以比例作为奖励池的原因。另一方面还能降低投资者的风险,不用梭哈 PERP,手中能保有一些现金,降低整体资产的波动率,面面俱到,两全其美。 结论 个人认为Uniswap 及Balancer 等AMMs 的出现是去中心化世界的一大里程碑,能以一条简单的方程式建构出一个全自动且完整的交易系统,再搭配奖励机制(如UNI 或BAL)吸引更多人投入,以正向的循环让整个生态更加完善(两天就破的各种Yield Farming 圈钱泡沫不在此列)。若有兴趣参与这个市场,除了关注商业模式外,多了解运作原理也能避免自己不小心落入陷阱——至少要知道自己如何归零的。原文链接:Automatic Market Makers (AMMs) Mechanism: Understanding Balancer from Uniswap —- 编译者/作者:洁sir 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
浅谈自动做市商 (AMMs) 机制:从 Uniswap 理解 Balancer
2020-10-01 洁sir 来源:区块链网络
LOADING...
相关阅读:
- 比特币SV,IOTA,狗狗币价格分析:9月30日2020-10-01
- 持有还是Ho积:数据显示,几年来惊人的比特币供应量没有变化2020-10-01
- 多方面解析defi流动性做市的合理利率是多少2020-09-30
- 牛熊指标:猴市。关键词:市场不再恐慌2020-09-30
- 顶级比特币交易所Coinbase震惊了硅谷—Industry Execs React2020-09-30