Perda impermanente¶
A perda impermanente é a diferença de valor entre o valor da posição retirada de um prestador de liquidez e o que teria valido a simples retenção dos mesmos símbolos originais, não agrupados. Este capítulo deriva o número diretamente da fórmula produto constante e trabalha através de vários cenários de preços verificados, em vez de citar o resultado padrão sem mostrar de onde vem.
Configurando a comparação¶
Deposite 100 ETH e 200.000 USDC em um pool quando ETH negocia em US $ 2.000, para um valor total de depósito de US $ 400.000 e k = 100 * 200,000 = 20,000,000 (ver Fórmula constante do produto). Duas coisas podem acontecer a partir daqui: o LP poderia apenas ter mantido esses 100 ETH e 200.000 USDC em uma carteira, ou eles depositado na pool, onde a negociação de arbitragem constantemente puxa o preço interno da pool para o preço de mercado externo (ver Criadores de Mercado Automatizados) à medida que o preço da ETH se move.
Perda impermanente compara estes dois resultados em algum ponto posterior onde o preço da ETH mudou, mantendo tudo o mais (tempo do depósito, montantes) fixo.
Derivando novas reservas da pool após uma mudança de preço¶
Se o preço externo da ETH se tornar newPrice, os árbitros negoceiam contra o agrupamento até ao seu preço interno (reserveUSDC / reserveETH) corresponde newPrice, enquanto k fica fixo em 20.000.000. Resolver as novas reservas:
function poolValueAfterPriceChange(
initialETH: number,
initialUSDC: number,
priceMultiplier: number
) {
const k = initialETH * initialUSDC;
const initialPrice = initialUSDC / initialETH;
const newPrice = initialPrice * priceMultiplier;
const newETH = Math.sqrt(k / newPrice);
const newUSDC = k / newETH;
const poolValue = newETH * newPrice + newUSDC;
const holdValue = initialETH * newPrice + initialUSDC;
const impermanentLossPercent = ((poolValue - holdValue) / holdValue) * 100;
return { newETH, newUSDC, poolValue, holdValue, impermanentLossPercent };
}
Resultados verificados através de movimentos de preços¶
Correndo isso para vários multiplicadores de preço contra o mesmo pool inicial:
| ETH variação de preços | Valor do conjunto | Manter o valor | Perda impermanente |
|---|---|---|---|
| Sem alteração (1x) | $400,000 | $400,000 | 0% |
| +25% (1,25x) | $447,213.60 | $450,000 | -0.62% |
| +50% (1,5x) | $489,897.95 | $500,000 | -2.02% |
| 2x | $565,685.42 | $600,000 | -5.72% |
| 3x | $692,820.32 | $800,000 | -13.40% |
| 4x | $800,000 | $1,000,000 | -20% |
| -50% (0,5x) | $282,842.71 | $300,000 | -5.72% |
| - 75% (0, 25x) | $200,000 | $250,000 | -20% |
A perda é simétrica no preço razão: um aumento de 2x e uma diminuição de 2x (0,5x) produzem a mesma -5,72% perda impermanente, uma vez que a fórmula depende de quão longe a relação de preços se moveu de 1, não na direção. Pequenos movimentos custam muito pouco (um 25% de custos de movimento abaixo de 1%), mas a perda cresce mais rápido do que a própria mudança de preço: dobrar o preço de 2x para 4x aproximadamente quadruplica a perda, de -5,72% para -20%.
Por que isso acontece: a pool é forçada a vender o bem apreciativo¶
O mecanismo é exatamente o que "produto constante" implica: à medida que o preço da ETH sobe, o reequilíbrio baseado em arbitragem da pool vende a ETH da pool e compra USDC para ela, para manter reserveETH * reserveUSDC fixo enquanto a relação corresponde ao novo preço externo. Um LP acaba por aguentar menos do ativo que subiu em valor e mais do ativo que não fez, comparado com o que eles teriam se eles simplesmente não tivessem feito nada. Esse é todo o mecanismo: não é uma taxa, uma penalidade, ou um hack, é a consequência direta, mecânica de uma fórmula que deve manter k Constante, trocando continuamente as reservas próprias da pool contra movimentos de preços.
Porque "impermanente" e quando deixa de ser impermanente¶
A perda é chamada impermanente porque não é realizada até que o LP realmente se retira. Se o preço da ETH retornar aos seus US$ 2 mil originais antes da retirada, as reservas da pool retornam aos seus 100 ETH / 200 mil USDC originais também, e a perda desaparece completamente, exatamente cancelando-se de volta a zero. A perda só se torna real e permanente se o LP retirar enquanto o rácio de preços permanece diferente do rácio no momento do depósito. É por isso que as perdas impermanentes devem ser sempre pesadas em relação ao rendimento acumulado das taxas obtidas durante o mesmo período (ver Prestadores de liquidez): o rendimento da taxa obtida durante o depósito é real e continua a crescer independentemente do que o preço faz a seguir, enquanto perda impermanente pode diminuir, crescer ou desaparecer dependendo de onde o preço termina em retirada.
Conceitos errôneos comuns¶
Perda impermanente não é uma taxa cobrada aos LPs, e ninguém a recolhe. É um custo de oportunidade relativo a um contrafatual específico (mantendo os mesmos símbolos unpooled), não uma transferência de valor para qualquer parte; o valor "falta" efetivamente foi para comerciantes que obtiveram melhores preços a partir do reequilíbrio do pool do que eles teriam a partir de uma atribuição estática.
Perda impermanente não é evitada escolhendo um pool com taxas mais baixas, ou eliminado uma vez que acontece. Depende inteiramente do movimento do rácio de preços entre o depósito e a retirada, que não está relacionado com o nível de taxas do pool; um pool de 0% e um pool de 1% experimentam perdas impermanentes idênticas para o movimento de preços idênticos, apenas o seu rendimento de taxas difere.
"Impermanente" não significa "pequeno" ou "raro". Como a figura -20% para uma movimentação de preço 4x mostra, a perda pode ser substancial para um par volátil, e movimentos de preço grandes são exatamente as condições em que a perda impermanente mais importa, não um caso de borda que pode ser ignorado.
Outras leituras¶
← Anterior: Fornecedores de liquidez · Voltar para DeFi · Próximo: Slippage →