做市商为整个市场提供了流动性(Liquidity)。流动性是指资产可以在市场买卖而不会遭受大额的损失或者溢价,即市场上有大量的订单,使得人们可以在市场价格快速的买入或卖出资产。所以,做市商又称作流动性提供者。做市商需要有大量的代币,才能形成大量的订单,并在市场价格波动的时候,确保自己的某一种代币不会消耗完。 AMM (Automated Market Maker,自动化做市商)则是用算法代替了传统做市商的人工报价,将一个代币池作为用户的交易对象。代币池包含了两种或多种交易对,它们本身有一个算法,这个算法为用户提供实时的代币汇率。传统做市商仍然能参与其中,即将他们手中的大量代币添加进代币池。这个代币池因为汇聚了做市商的流动性,所以 AMM 也被称作流动性池(LP,Liquidity Pool)。 AMM 的算法能提供市场价格的原因,在于市场上套利者(Arbitrager)的存在。AMM 提供的价格高于或低于市场,都有套利者到这里进行交易,获得偏离市场价格的差价作为回报,同时将 AMM 池子的价格带回到市场价格。 算法 Acala 网络中的 DEX 采用恒定乘积做市商模型,模型非常简洁,公式为 х×у=к x、y 代表不同加密货币的数量,两者乘积为 k,k 是恒定常数,k 值由第一笔注入的流动性决定:1)任何人都可以创建新的交易对;2)无论 k 值初始设定为什么,由于市场上存在套利者,使得 k 的值最终适应市场价格。 以 DOT-aUSD 为例,来说明 DEX 交易流程,设初始价格为 1 DOT=30 aUSD,交易池 DOT 储备量为 10,aUSD 为 300,则 k 值为 3,000。用户用 1 个 DOT 购买 aUSD 的流程为(在忽略交易手续费的情况下):
恒定常数 k 的存在是为了计算出兑换率,即需要给用户多少 aUSD,也就是当 x*y=k,其中 x 变时,只有 k 不变才能求出 y,在一笔交易发生前就会计算出这个恒定常数,根据新注入不同数量的代币才能去计算能够换出的代币数量。每次兑换之后,会产生新的流动池(新的 x、y),同时也会产生新的恒定常数。 AMM 的问题在于,当流动性小的代币池面对大额订单时,会产生滑点(Slippage)。滑点是指下单的价格和最终成交的价格之间的差距。滑点取决于算法、订单金额和流动性大小。订单金额越大滑点越大,流动性越大滑点越小。算法越好,同等订单金额和流动性池大小的情况下,滑点越小。Acala 中当前选择为用户设置滑点限制, (责任编辑:admin) |