DeFi流动性有差异,即便是同一协议不同货币市场或代币池之间的收益也存在很大的差异。
流动性挖矿可以获得什么收益?
流动性挖矿的收益包括治理代币、交易费等。
如今DeFi的大部分高收益是由股权(加密资产)的增长所驱动的。例如,当你在Compound上进行挖矿时,你实际上是把钱借给该协议,并获得免费股权(免费的COMP代币)。因此你可以从贷款资产中获得基本收益(来自自然的借款需求),另外还赚到了COMP代币升值的「收益」。
流动性挖矿的收益取决于很多因素,主要取决于奖励代币的价格、流动性本身的权重(影响因子决定)以及占流动性总量的比例等。
举例来说,Compound代币价格的不同直接影响挖矿收益率的大小;同时,随着不同货币市场总存款量和总借款量的增加,挖矿收益也被越来越多的流动性所稀释;Compound原来将不同货币市场的借贷利率作为其重要的分配依据,而现在已将这一因素去除。这对货币市场的资产流向具有很大的引流作用。之前BAT的借贷利率最高,导致Compound上BAT的流动性最高,而在改变规则之后,极大刺激了对稳定币DAI的需求。
总的来说,流动性挖矿系统本质上是激励用户直接为平台扩大业务量,提供超高回报作为奖励,而这种奖励分配过程也是新币生成和发行的一种机制。流动性挖矿系统的主要好处是治理代币和交易费用。
struct AddLiquidityParams{
address token0;//token0的地址
address token1;//token1的地址
uint24 fee;//交易费率
address recipient;//流动性的所属人地址
int24 tickLower;//流动性的价格下限(以token0计价),这里传入的是tick index
int24 tickUpper;//流动性的价格上线(以token0计价),这里传入的是tick index
uint128 amount;//流动性L的值
uint256 amount0Max;//提供的token0上限数
uint256 amount1Max;//提供的token1上限数
}
function addLiquidity(AddLiquidityParams memory params)
internal
returns(
uint256 amount0,
uint256 amount1,
IUniswapV3Pool pool
)
{
PoolAddress.PoolKey memory poolKey=
PoolAddress.PoolKey({token0:params.token0,token1:params.token1,fee:params.fee});
//这里不需要访问factory合约,可以通过token0,token1,fee三个参数计算出pool的合约地址
pool=IUniswapV3Pool(PoolAddress.computeAddress(factory,poolKey));
(amount0,amount1)=pool.mint(
params.recipient,
params.tickLower,
params.tickUpper,
params.amount,
//这里是pool合约回调所使用的参数
abi.encode(MintCallbackData({poolKey:poolKey,payer:msg.sender}))
);
require(amount0<=params.amount0Max);
require(amount1<=params.amount1Max);
}
温馨提示:仅提供区块链&数字货币平台信息分享服务,所有产品及展示信息均来源于发行方或者互联网。炒币属于投资行为,不等同于银行存款。市场有风险,投资需谨慎。投资虚拟货币有极大的风险,本网站提供的任何信息都不构成投资建议、财务咨询、交易咨询,或任何其他建议的依据,领域OK并不推荐您购买、售出或持有任何虚拟货币。在做出任何投资决定前,请先充分衡量风险。如有损失,请自行承担后果。