前言
Acala 内置去中心化交易所 (下文由“DeX”代指) 是 Acala 网络中的核心模块之一,旨在为 Acala 网络中的用户提供币币自动兑换交易的服务以及降低用户参与 Honzon 协议中的清算门槛。该交易所完全是部署在链上的,并由 Runtime 层控制,任何用户都可以在 Acala 网络的操作平台上使用该 DeX ,用户向 DeX 注入资金,就能获得 DeX 产生的交易费收益,另外 DeX 作为 Honzon 协议中的清算人,会为用户带来清算收益,剔除了用户成为清算人的繁杂的步骤,可以非常简单地捕获清算所带来的收益。
为什么需要 DeX
每一个新兴市场中都需要有多样化的交易选择,也要有交易场所可以帮助用户快速进行交易。Polkadot 作为下一代的区块链网络,其生态发展已初现成色。未来 Polkadot 将不断桥接比特币、以太坊等优质资产,让投资者拥有更多的资产可以选择,所以资产之间的相互交易市场不可或缺, 除了中心化交易外,去中心化交易所(DeX)在引领 DeFi 爆发后也成为了用户主要的交易方式之一。
如何理解 DeX 运作机制
大部分交易所都使用限价订单的方式为用户提供交易服务,基本都是由做市商提供流动性并设定价格,因为很多做市商都不希望自己的订单跟其他人的订单混在一起,所以交易所都不会把所有人的订单都集中到两个大型的池中,用户交易通常需要交易对手。做市商会设置买入价和卖出价,目的除了为市场提供流动性外,主要是为了获得交易的利差,但是这种限价订单方式也让部分订单可能成交,也可能不会成交。
Acala 网络的 DeX 中,任何想要提供流动性的用户只需提供代币资金,就能通过恒定函数做市商的机制来为交易者提供兑换的服务。简单来说就是将代币混在一起,同时做市商无须指定其希望买入和卖出的价格,且可以提供无限的流动性,允许有很大的订单规模,并不用担心流动池很小。
而这个恒定函数做市商机制的公式非常简单,在忽略交易费的情况下,我们可以列出以下几个公式(以 DOT 与 aUSD 为例):
流动性池中 DOT 的数量 X * 流动性池中 aUSD 的数量 Y = 恒定常数 K
这里我介绍为什么有这个恒定常数的存在,因为当用户想把手中的 DOT 换成 aUSD ,那么就需要把自己的 DOT 注入该流动性池,为了能够算出需要给用户多少 aUSD 时,就需要设置了一个恒定常数(也就是当 x*y = k ,其中 x 变时,只有 k 不变才能求出 y )。这个恒定常数的值是在用户发起交易前根据当前要换的两个币种的数量相乘得出的,所以要注意该恒定常数不是指之后每次交易都不变,而是在一笔交易发生前计算出这个恒定常数,根据新注入不同数量的代币时去计算能够换出的代币数量,也就是每次兑换之后,会产生新的流动池(新的 X、Y),同时也会产生新的恒定常数 K 。
由该图我们可知,目前流动性池(Pool)中 DOT 数量约为 384 个,以及 aUSD 的数量约为113,637 个(为了好计算,我把小数点后面的数字省略),那么我们就能知道:
目前的恒定常数 K = 384 * 113,637 = 43,636,608
因为恒定常数(两个流动性池的乘积)在单笔交易前后始终保持不变,所以交易者拿多少 DOT 能换出多少 aUSD 数量是根据上面的公式计算出来的。而在兑换框的下方有一个 exchange rate 指的是当前两个币种之间的兑换比率,我们用下面的公式来表示:
DOT 价格 = 流动性池中 aUSD 的数量 Y / 流动性池中 DOT 的数量 X
DOT 价格 = 113,637 / 384 = 295
假设之后没有人注入流动性,即总流动性恒定的情况下,我们同样可以结合当前 DOT 的兑换比率,以及恒定常数 K 计算出特定价格下每个流动性池中各种代币的数量:
流动性池中 DOT 的数量 X = (恒定常数 K / DOT 价格)^ (1/2)
384 = (43,636,608 / 295 )^(1/2)
流动性池中 aUSD 的数量 Y = (恒定常数 K * DOT 价格)^ (1/2)
113,637 = (43,636,608 * 295) ^ (1/2)
由上述内容可知,那么现在想从该去中心化交易所中把 DOT 换成 aUSD ,价格是如何变化的呢?
目前 1 个 DOT 与 aUSD 的兑换比率为 1 : 295 ,流动性池(Pool)中 DOT 数量约为 384 个,以及 aUSD 的数量约为 113,637 个,恒定常数为 43,636,608,我们看看不同数量下的价格图表(不计算交易费,且省略小数点):
通过该图表可以看出,当我们想要将越多的 DOT 换成 aUSD ,所得到的 aUSD 的数量会越来越少,DOT 卖出的单价也越来越低。另外,在兑换的过程中,我们在兑换框下面为用户设置了滑点限制(Limit addtion price slippage)
这个滑点的意思是指用户在兑换时,最终的单价与兑换前的单价之间的差值,也就是当兑换 5 个 DOT 时,DOT 的单价为 288 ,较未兑换时的 295 之间的滑点为 (295 -288)/295 = 0.023 也就是 2% 。因为该 DeX 中会有不断的人注入流动性所以滑点也会根据流动性池的变化而变化,简单来说就是滑点你设置的越小,你能够换出来的币就少,但是成本最低,反之滑点越大,能换出来的币也就越多,但成本也就越高。
DeX 所带来的套利机会
Acala 网络作为 Polkadot 生态中的 DeFi 基础设施,将为投资者提供更多选择。投资者可以在 Acala 中选择执行流动性协议 Homa 来获取 LDOT。流动性协议 Homa 可以帮助投资者将 DOT 质押到 Polkadot 网络上来获得收益,还能够给投资者一个累计收益的链上凭证 LDOT 用于流通交易。利用 Homa 流动性协议,用户无需等待 Polkadot 的解绑期限,便可以直接使用 LDOT 来交易。本质上来说,DOT 与 LDOT 之间的实际价格与抵押池给出的汇率会存在偏差,因为各方对于 DOT 未来价格的预期不同,故 LDOT 同 DOT 现货交易对的价格与 LDOT 可赎回的 DOT是存在套利空间的。
以最新测试网为例,5月11日,1 枚 DOT 在 Homa 协议中可最多可生成 9.8 枚 LDOT, 在 Acala 内置去中心化交易所进行置换后可换回 1.2 枚 DOT,通过这样一笔简单的操作,投资者将额外获得 0.2 枚 DOT。
*测试网 DOT 与 LDOT 初始比率为:1:10
由下图我们可以通过 Acala 网络的预言机提供商为 BTC 所报的价格为 8805 美金一枚。
而在我们的 DeX 中,只需要用 8,692 枚 aUSD 就可以换出 1 枚比特币,若是有人从 DeX 中以 8,692 的价格获得了一个 BTC ,再到别的交易所中以 8,805 的价格卖出去,这之间就会有 113 美金的套利空间。
当然只要是内置交易所中能够兑换的币种都能存在这样的套利机会,但套利机会并不是一直存在的,两个市场之间的价格差值会随着套利者的不断套利慢慢消失,所以想要套利的用户,可以时刻关注各个市场之间的价格变化,善于发现套利机会。
DeX 产生的收益都有哪些?
在 Acala 网络中凡是能够将等值的 aUSD 和其他区块链网络的代币(如 BTC 、DOT、LDOT)注入 DeX 的人都可以是流动性提供者。作为赎回流动性的凭证,流动性提供者能够获得股份(Pool share),可以在任何时候将自己在流动性池中的份额取出来。但凡有交易者在 DeX 进行交易,都要往流动性池中注入 0.3% 的交易费。由于不会生成新的股份(Pool share),所以这些交易费会按比例分配给所有流动性提供者。
小型的做市商也可以通过提供流动性,赚取费用,且不论收益多少,哪怕你只有 1 个 DOT 和 295 个 aUSD 也可以成为流动性提供者,只不过收益大小跟贡献的额度比例相关。
除此之外,为了激励更多用户为 DeX 提供流动性,在交易费奖励的基础上,将 Acala 网络的转账手续费作为给用户的奖励。
最后,DeX 作为 Honzon 稳定币协议的清算人,将能够在清算违约的 CDP 中捕获收益。
我怎样能够获得收益?
通过存币生息模块(Deposit & Earn)注入流动性的用户将会被奖励由 DeX 产生的兑换手续费以及 Acala 网络中的其他收益(诸如网络转账手续费、稳定费以及清算收入等),因为流动性提供者所存入的币种不仅仅为币币兑换而服务,还将参与 Honzon 稳定币协议中的清算。
存入流动性界面
提取流动性界面
(注:Pool Tokens 类似于流动性提供者的存款凭证,Balance 指的是流动性提供者的持有的凭证数量,提取的流动性包括本金和收益)
提取收益界面
币币兑换所产生的手续费收益是在流动性提取的时候一并提取,而参与 Honzon 稳定币协议所产生的收益是在这个页面中提取,奖励形式币种为 aUSD 。
总结
以上就是目前关于 Acala DeX 基本科普,如果你还有相关问题可关注Acala公众号后台留言或在社区直接提问,后期也会最严谨的态度和最易懂的方式进行持续更新,可以直接在 Acala Mandala TC3 测试网上进行操作,会让你更加理解我们 Acala 网络,未来随着先行网与主网的上线,通过之前对产品的熟悉与操作,从而有机会捕获更大价值。