Como funciona por dentro
Curva de cunhagem de BACK
Como as perdas realizadas viram oferta do token. A oferta começa em zero numa curva fixa e depois decrescente; quando o dono faz a troca, cada dólar de perda cunha uma fração fixa da oferta atual.
Duas fases
A oferta do token começa em zero, então não pode começar como uma fração de si mesma. Por isso a cunhagem acontece em duas fases:
- A curva de lançamento (abaixo): uma taxa fixa e depois uma cauda decrescente.
- A regra de fração da oferta, a partir do momento em que o dono a ativa pelo timelock. A troca acontece uma única vez e não pode ser desfeita; nesse momento, a constante da nova regra é definida para que a cunhagem marginal por dólar continue a mesma.
A curva de lançamento
A curva tem duas regiões e três parâmetros no contrato Tokenomics: o limite fixo F = $500,000, a taxa fixa R = 100 BACK por dólar e a escala da cauda S = $120,000,000. Ela acompanha duas variáveis de estado:
T, o LP contábil (Solvência e fila), que pode ser negativo;H, o avanço da cauda: a base de cunhagem total precificada na cauda até agora. Ele só cresce.
rate = R while T < F (the flat region, including any negative T)
rate = R · (S / (S + H))² otherwise (the tail)
A base de cunhagem é a parte elegível da sua perda realizada (veja abaixo), que nem sempre é o valor creditado no LP contábil. Um acerto divide a base entre as regiões e cunha a integral da taxa, então dividir uma perda em pedaços não consegue cunhar mais do que alguns wei de arredondamento:
T −= wins paid in the batch
flat = T < F ? min(basis, F − T) : 0 (a negative T leaves more flat room)
tail = basis − flat
r1 = S · 1e18 / (S + H)
r2 = S · 1e18 / (S + H + tail)
minted = flat · R / 1e18 + ((R · r1 / 1e18) · r2 / 1e18) · tail / 1e18
H += tail
T += what the LP received
Avanço da cauda num só sentido
H é uma marca máxima que nunca cai. Quando as distribuições repassam aos stakers o valor do LP acima de $500,000, T recua, mas H fica onde está. Depois que a cauda avançou, a taxa fica mais baixa nessa medida para sempre: depois de perdas na cauda iguais a S, a taxa é um quarto de R, não importa quantas vezes o LP tenha sido repassado aos stakers nesse meio-tempo. É por isso que a curva acima é desenhada em função de H, e não do LP.
Os primeiros traders, portanto, cunham a taxas muito mais altas do que os que chegam depois. Isso é proposital.
Depois da troca: uma fração da oferta
Depois da troca, toda perda elegível cunha uma fração fixa da oferta do token por dólar de base de cunhagem, qualquer que seja o LP contábil:
c36 = R_now · 1e36 / supply_at_switch fixed once (R_now: the curve's marginal rate)
x = c36 · g / 1e36 g: the effective basis, below
minted = supply · (e^x / (1 + 1e−15) − 1) supply: the token supply before this mint
e^x é calculado como um wad (18 casas decimais), e o resultado é reduzido por uma margem de 1000 wei de um wad, cerca de uma parte em 1e15. H para de crescer. Como cada dólar cunha a mesma fração da oferta que existir, a oferta não tem teto: ela cresce com as perdas acumuladas, e as posições existentes são diluídas na mesma proporção.
Bônus de insolvência
Depois da troca, uma perda que recompõe um LP contábil abaixo de zero conta mais:
g_below0 = min(credit, −T) the part of what the loss adds to T that lands below zero
m = 1 + 4u(2 − u), u = min(1, t / 3 days)
g = basis + (m − 1) · g_below0
t é o tempo desde que o LP contábil ficou abaixo de zero. m sobe de um até 5× ao longo de 3 dias e depois fica nesse valor enquanto T continuar abaixo de zero. O relógio começa quando um acerto deixa T abaixo de zero e zera quando um acerto o deixa em zero ou acima, então na próxima vez que T ficar abaixo de zero o bônus recomeça de um. O restante da perda conta uma única vez.
O que conta como “perda”
- Fechamento com perda, posição financiada pelo seu saldo, fila vazia: a perda menos a taxa sobre perda de 2%, e menos a taxa de builder quando a chave que fecha indica um builder aprovado, ambas tiradas do que o LP recebe. O LP contábil sobe no mesmo valor.
- Fechamento com perda, créditos na fila: nenhuma taxa é cobrada e a perda vai para a reserva separada; a base é a perda inteira, e o LP contábil sobe pela perda inteira. A reserva separada só determina que esse caixa pague primeiro os ganhadores na fila.
- Liquidação: a margem perdida inteira, qualquer que seja o estado da fila. O LP contábil sobe pela margem menos a taxa de liquidação, quando ela é cobrada. Um fechamento executado no preço de falência ou além dele é acertado como liquidação, com a mesma base.
- Posições financiadas por créditos na fila: um fechamento com perda cunha sobre a parte destruída do crédito, menos a taxa sobre perda quando ela é cobrada; uma liquidação destrói o crédito inteiro, não cobra taxa e cunha sobre tudo. O LP contábil se move nos mesmos valores.
Lotes e cunhagens adiadas
Um fechamento de várias posições cunha uma única vez para o lote; o valor cunhado é repartido entre as posições na proporção da base de cada uma, pelo método do maior resto, com empates indo para a posição anterior. Uma liquidação cunha por posição.
O Exchange chama o Tokenomics com uma cota fixa de gas. Se essa chamada falhar, o fechamento se completa mesmo assim, as entradas da cunhagem são guardadas e toda cunhagem seguinte espera atrás dela, de modo que reexecutá-las na ordem original cunha exatamente o que o caminho direto teria cunhado. Qualquer pessoa pode disparar a reexecução, e o nosso keeper faz isso.