例如,让我们假设Rob想要为一个池子增加一对ETH:DAI的流动性。他想增加1个ETH,但他需要提供多少DAI代币?当前的池子余额是95个ETH和10,529.49个DAI。按照公式5,他需要提供的代币数量 = 1 * (10,529 / 95) = 110.87 DAI 提供流动性后,新的资金池余额为: 95 + 1 ETH = 96 ETH10,529 DAI + 110.87 DAI = 10,640.36 DAI新的k = 96 * 10,640.36 = 1,021,169.85流动性提供者收益 要理解Uniswap的AMM,以及进入池子时代币的初始价格和撤出流动性时代币的价格之间的区别,还有一个重要的概念是LP代币。 LP代币转化为每个流动性提供者在池子里有多少钱,进而每个LP将从池子里产生的总费用中获得对应收益。 无常损失 既然介绍了关键概念,我们来分析一下流动性提供者遇到无常损失的场景。 Babi通过增加20k的总流动性(100ETH和10000DAI)来创建一个ETH:DAI池。作为第一个流动性提供者,根据公式6,她共获得1000LP。 LP_tokens_amount = sqrt (100 * 10,000) - 0.00000000000000001 = 1,000LP份额。 假设在创建池子后,有9笔交易发生,如下所示--n指的是池子创建后的每个时期。 考虑以下交易类型: exact_output_x: 当用户想以任何价格购买1个ETH时。 exact_output_y: 当用户想用任意数量的ETH购买1个DAI时。 exact_input_x: 当用户想花一个准确的ETH数量来购买等值的DAI时。 exact_input_y: 当用户想花一个准确的DAI数量来购买等值的ETH时。 1,000,000的产品常数(k)是上述交易定价机制的主要指导。它计算的是对资金池每一方的影响应该是什么,从而使这笔交易能够发生,并且在忽略费用的情况下仍然保持产品常数。现在我们来计算一下交易发生后,对池子每一方的影响是什么。 让我们来挖掘一下n=1时发生的交易 初始资金池余额=100 ETH和10,000 DAIConstant_product = 100 * 10,000 = 1,000,000交易类型:exact_output_x → 交易者想准确地买入1个ETH(所以他将从eth_liquidity_pool中删除1个ETH)。 新的eth_liquidity_pool = 100 - 1 = 99 ETH → 现在我们有了这个新的ETH池余额,那么新的DAI池余额是多少,因为池中会有大量的DAI代币涌入? 新的DAI_liquidity_pool = constant_product / new eth_pool_balance = 1,000,000 / 99 = 10,101.01。 由池中DAI的流入,我们可以假设如下公式。 (责任编辑:admin) |