WEB3DEV

Cover image for A Curva de Rendimento da Web3
Paulo Gio
Paulo Gio

Posted on

A Curva de Rendimento da Web3

Vi algumas pessoas compartilhando coisas no Twitter como "O ETH é o título financeiro da internet", o que não é verdade, mas poderia ser. Abaixo, descrevo:

(1) O que são curvas de rendimento e por que elas importam;

(2) Como poderíamos criar curvas de rendimento para economias cripto;

(3) Uma implementação rudimentar de um contrato inteligente para isso.

Sinta-se à vontade para pular para o que fizer sentido para você!

https://miro.medium.com/v2/resize:fit:1100/0*x86zFLMqcksBuQPn

O que são curvas de rendimento e por que elas importam?

Em uma economia tradicional, baseada em uma moeda gerenciada por um banco central, existe algo chamado curva de rendimento. Essa é a taxa de juros que você pode obter emprestando para o governo por 3 meses, 6 meses, um ano, cinco anos, etc. O que torna especial a curva de rendimento dos títulos do governo é o fato de ser o empréstimo mais seguro de toda a economia. O governo provavelmente será capaz de pagar de volta, porque o governo imprime o dinheiro.

https://miro.medium.com/v2/resize:fit:1100/0*nB7KK0DVufrtNAIa

As curvas de rendimento são super úteis e nos dizem muito sobre o que os pools de capital em uma economia esperam para o futuro. Elas funcionam ao representar, da forma mais precisa possível, qual é a taxa de câmbio entre o dinheiro de hoje e o dinheiro do futuro, sem qualquer consideração significativa do risco de não ser pago de volta.1

Para a maioria das pessoas, se eu emprestasse dinheiro a elas, eu poderia querer algum juro apenas para me compensar por não ter o dinheiro em mãos para fazer outras coisas no intervalo de tempo - mas também vou querer um pouco mais do que isso para me compensar pelo risco de não ser pago de volta. Se eu lhe emprestar $100 e pedir $105 de volta no próximo ano, uma parte desse preço provavelmente está me compensando pelo risco de eu nem mesmo receber meus $100 de volta. Talvez eu não confie em você, mas também posso confiar em você, e ainda assim reconheço que o futuro é incerto. Você pode morrer! Você pode se envolver injustamente em um processo que afeta suas finanças. Você pode ser roubado. Quem sabe?

Com o governo dos EUA, eu sei que vou receber meu dinheiro de volta - então talvez eu empreste para eles por uma taxa mais barata e peça apenas $103 de volta no próximo ano. Quero que eles me compensem por não ter meu dinheiro disponível e em mãos, mas não estou preocupado com o fato de eles não me pagarem de volta. Como sei que vou ser pago de volta? Bem, eles são os caras que fazem os dólares2. Eles gastaram demais? Ops. Sem problema. Imprima mais dinheiro.

Eu posso não saber o poder de compra dos dólares que receberei no futuro, mas tenho quase certeza de que receberei aqueles $103 no próximo ano.³

Agora, frequentemente ouvimos falar sobre o Fed (Federal Reserve Bank) definindo taxas de juros, mas o Fed não define as taxas dos títulos, em si (geralmente).⁴ Ele define as taxas de curto prazo. Isso significa que o que os títulos de 1, 2, 5, 10 anos, etc. estão fazendo é implicitamente precificar o que o mercado pensa sobre as taxas de curto prazo no futuro. Um título de dez anos é na verdade apenas a taxa média implícita de 10 rendimentos de 1 ano separados, ou de 40 rendimentos de 3 meses separados.

Ainda mais louco que isso, pelo fato de termos títulos expirando e sendo vendidos o tempo todo, você pode decompor a taxa precificada para cada um desses períodos individualmente. É possível calcular algo como a taxa esperada para um ano, daqui a três anos, de acordo com os preços de mercado.

Aqui está um exemplo simples de como isso funciona com um título de 1 ano e um título de 2 anos.

Se você não quiser se confundir com números específicos, a ideia básica é que se eu sei qual é a taxa para um empréstimo de 1 ano e qual é a taxa para um empréstimo de 2 anos, eu sei o que está precificado como a taxa de um empréstimo de 1 ano daqui a 1 ano - deveria ser mais ou menos igual a comprar um título de empréstimo de 1 ano agora e comprar outro título de empréstimo de 1 ano no próximo ano em vez de comprar um título de empréstimo de 2 anos agora. Apenas pule os números se quiser.

Digamos que um pagamento de $100 daqui a 1 ano custe $98 - então temos uma taxa de cerca de 2% no título de 1 ano (2,04%). Agora, digamos que um pagamento de $100 daqui a 2 anos custe $94, com um rendimento total de cerca de 6% (6,38%) e um rendimento anual de cerca de 3% ao ano (3,14%). Com isso, você pode descobrir qual é o preço do título de 1 ano daqui a 1 ano (“1 ano depois de 1 ano”).

Se você pegasse seus $94 dólares agora e comprasse um título de 1 ano em vez do título de 2 anos, você acabaria com $94 * (1 + 2,04%) = ~ $95,92 no próximo ano. O mercado acha que, se você continuar fazendo empréstimos sem risco, esses ~ $95,92 com mais um ano de juros devem ser iguais a $100. Então, cerca de 4% do rendimento está precificado como o rendimento de 1 ano daqui a 1 ano ((($100 - $95,92) / $95,92) = 4,26%)).

O mercado não está apenas dizendo que você obterá 1% a mais de rendimento por ano ao fazer empréstimos por 2 anos, ele está dizendo que as taxas do próximo ano serão o dobro do que são hoje! Uau. Muito esclarecedor.

A curva de rendimento precifica o que as pessoas acham que será a taxa estabelecida pelo Fed para cada período no futuro. Temos esse conjunto variável de taxas futuras livres de risco, que são precificadas em títulos de longa duração, e à medida que as expectativas em torno das condições macroeconômicas ou do comportamento do Fed mudam, esse preço muda.

Mas a curva de rendimento não é apenas um reflexo das expectativas sobre a economia - ela também afeta a própria economia. Quanto maior o rendimento que posso obter em empréstimos sem risco, menos provável é que eu empreste para outra pessoa. Para voltar ao exemplo acima - eu estava disposto a lhe emprestar R$100 dólares para receber $105 dólares de volta no próximo ano porque poderia receber somente $103 dólares de volta no próximo ano comprando títulos do governo. Negociar com você é mais arriscado, mas estou disposto a correr esse risco por mais $2.

Se de repente eu puder obter $106 dólares de volta no próximo ano de um título do governo, não há como eu lhe emprestar por $105 dólares e assumir esse risco desnecessário. De repente, fica muito mais caro para todos na economia pegarem empréstimos e muitas pessoas não poderão mais pegar empréstimos porque não poderiam realisticamente esperar pagar os juros em um empréstimo mais caro.

Essa taxa de câmbio sempre em mudança entre dinheiro do presente e dinheiro do futuro afeta outros preços de ativos da mesma forma que afeta a disposição das pessoas em emprestar. Se 1 dólar hoje, em vez de valer 1,03 dólares no próximo ano, valer 1,06 dólares, todas as coisas denominadas em dólares futuros perderam valor em relação aos dólares do presente. Então, se nada mais mudou, um investimento em ações que espero pagar $X em dividendos no futuro agora vale menos em termos de dólares do presente (ou seja, o valor diminui).

Esse tipo de curva de rendimento explícita existe em qualquer economia em que haja um credor livre de risco (geralmente o emissor da moeda da economia) para quem você possa emprestar (engajar em alguma troca de dinheiro do presente por dinheiro do futuro).

Em uma economia que não tem isso, ainda existe uma curva de rendimento não explícita - onde existe alguma relação pela qual as pessoas, em valor agregado, valorizam o dinheiro do presente mais do que o dinheiro do futuro - mas ninguém sabe o que é. Isso significa que algumas pessoas farão investimentos arriscados por uma taxa de retorno que poderiam ter obtido em investimentos muito menos arriscados. Ter uma curva de rendimento explícita (ou seja, um mercado de títulos com o emissor da moeda) cristaliza todas essas informações em um mercado e fornece um rendimento "livre de risco" explícito e disponível para todos que não estão tentando assumir qualquer risco adicional.

Eu acho que seria bem interessante se tivéssemos um desses para criptomoedas.

Criando a curva de rendimento da Web 3.0

No mundo cripto, não temos um banco central e um governo como emissores e financiadores centrais de uma moeda. Temos um protocolo (geralmente verificado de forma descentralizada) que opera como um emissor central e geralmente não tem motivo para fazer empréstimos da economia construída sobre ele.

Mas em alguns casos, esse protocolo exige o bloqueio de tokens para alinhar incentivos para verificação. E, como se constatou, as recompensas por staking na rede do protocolo são suficientemente semelhantes a uma taxa de risco livre de curto prazo variável definida pelo Fed que você pode construir um mercado de títulos (e, portanto, uma curva de rendimento) sobre ele.

Vou focar esta conversa no ETH (porque sou um entusiasta da rede principal da Ethereum desde 2017), mas a coisa que estou descrevendo pode ser abstraída para qualquer rede de camada 1 ou 2 que possua staking - os detalhes de implementação irão variar um pouco.

Por que o Staking é similar à taxa do Fed?

O staking oferece um retorno variável dependendo do número de pessoas que estão fazendo o staking, atividade na rede, etc. As taxas governamentais de curto prazo também são variáveis: elas dependem do que o Fed diz que elas são em qualquer momento dado. Assim como o governo dos Estados Unidos é a fonte dos dólares, a rede Ethereum é a criadora do ETH. Nenhum dos dois pode dar calote. Se algum deles desse calote, isso implicaria que a própria moeda teria entrado em colapso. Então, em termos da economia denominada nessa moeda, ambos são mutuários de empréstimos livres de risco.

O que não temos na rede Ethereum são títulos de 1 ano, 2 anos, 10 anos, etc. Você pode fazer staking e receber o que conseguir, mas não é possível receber um retorno fixo sem risco do mutuário durante um período específico de tempo. O que precisamos é de uma maneira de trocar um valor fixo de ETH hoje por um valor fixo de ETH no futuro com esse retorno de ETH garantido por empréstimos para o único mutuário (a rede), que nunca dará calote. Se tivéssemos isso, poderíamos realmente derivar disso o retorno de staking precificado para qualquer período futuro.5

Na verdade, podemos fazer isso completamente com um pouco de análise minuciosa das exposições de risco dos detentores de ETH.

O que são Strips?

Strips (Separate Trading of Registered Interest and Principal Securities, ou Negociação Separada de Juros Registrados e Valores Assegurados Principais) — nesse caso, significando "juros somente" e "valores principais somente" - são uma maneira de separar um título em (1) uma reivindicação do valor emprestado inicialmente e (2) uma reivindicação aos juros. Isso pode parecer estar vindo do nada, mas - confie em mim - isso nos levará de volta à criação de uma curva de rendimento com base no ETH em staking.

Para usar o exemplo que temos usado, eu poderia emprestar a você $100 e concordar que você vai me pagar $105 no próximo ano. Em seguida, eu vendo para outras duas pessoas duas exposições separadas:

(1) uma reivindicação ao valor inicial de $100 daqui a um ano;

(2) uma reivindicação aos $5 (os 5% de juros) daqui a um ano.

Se você me pagar os $100 de volta, a pessoa que detém a reivindicação ao valor principal de $100 receberá esse valor. Se você me pagar os 5% de juros, a pessoa que detém a reivindicação aos juros receberá esses $5.

Agora, digamos que você não concordou em me pagar $105 de volta, mas concordou em me pagar entre $105 e $110, dependendo de como as coisas estivessem para você. Agora eu vendo a outra pessoa a reivindicação dos juros mais arriscada, que agora vai pagar em qualquer lugar entre $5 e $10 dólares.

Se alguém estiver disposto a comprar esse ativo mais arriscado, eu posso garantir um retorno fixo. Se fizermos isso com ETH em staking, podemos ter uma curva de rendimento para a economia da Ethereum.

Usarei o stETH como exemplo para isso. Para contexto: stETH é uma reivindicação ERC-20 líquida e negociável para ETH em staking oferecido pela Lido.

Veja como funciona:

Nós projetamos um contrato no qual as pessoas podem depositar stETH e receber dois tokens ERC-20, um que representa a reivindicação aos juros (interest only = io) e outro que representa a reivindicação ao valor principal (principal only = po).

Qualquer pessoa pode depositar stETH no contrato. Para cada 1 stETH depositado, o contrato enviará para o depositante 1 io-stETH (que acumula quaisquer rendimentos obtidos com o stETH depositado) e 1 po-stETH (que pode ser usado para reivindicar 1 stETH no momento em que o contrato expira).

https://miro.medium.com/v2/resize:fit:1100/0*tR5mpiMzA1PEn7xc

E para tornar o exemplo mais ilustrativo, digamos que esse usuário (USUÁRIO 1) envia seu token io-stETH para um segundo proprietário de conta na Ethereum (USUÁRIO 2) - o que significa que o estado inicial, atualmente, é assim:

https://miro.medium.com/v2/resize:fit:1100/0*aJE9g4uSmaAkD6JD

Agora, vamos supor que fizemos o contrato para que ele expire daqui a 1 ano. E, digamos que o rendimento ao manter stETH tenha sido de 5%.

(Uma observação rápida aqui: é feito um rebalanceamento de stETH, o que significa que se você ganhou 5% de juros, seu saldo de stETH na sua carteira simplesmente aumentaria em 5% (você tinha 1 stETH no ano passado e agora tem 1,05 “automagicamente”).)

Vamos avançar um ano.

https://miro.medium.com/v2/resize:fit:1100/0*hNFr5s0VuROb1Ntz

O contrato manteve o 1 stETH de um ano atrás, portanto, agora possui 1,05 stETH em seu interior (que serão usados para pagar os usuários quando expirar).

O usuário que detém 1 io-stETH pode reivindicar os 5% de juros, que equivalem a 0,05 stETH (1 stETH de juros acumulados no ano anterior). O usuário que detém 1 po-stETH agora pode resgatá-lo por 1 stETH (o valor principal), já que o contrato expirou.

https://miro.medium.com/v2/resize:fit:1100/0*Ep5B4s5CgC7LHtql

Então, se você tiver emitido o token de juros e o token do valor principal e simplesmente os mantiver, você terá um retorno equivalente ao que teria por apenas manter o 1 stETH. E você sempre pode trocar 1 stETH por 1 ETH (pode emitir a qualquer momento, e embora os resgates ainda não estejam disponíveis, eles basicamente negociam alinhados entre si porque são essencialmente a mesma reivindicação). Isso significa que, a todo momento, o preço deve obedecer à seguinte identidade matemática:

(1 io-stETH + 1 po-stETH) = 1stETH = 1ETH

Ok, então eu sei que (1 io-stETH + 1 po-stETH) = 1 ETH, mas qual seria o valor de cada um dos dois tokens? É aí que entra o mercado - o mercado que precifica qual rendimento as pessoas estão dispostas a fixar pelo ano até o vencimento do contrato. Vamos caminhar por um exemplo e mostrar o que um preço específico implicaria e o que tornaria possível.

Digamos que os preços são negociados em 1 io-stETH = 0,05 ETH e 1 po-stETH = 0,95 ETH. Supondo que haja algum lugar para negociá-los, é possível imediatamente fazer uma cobertura do rendimento.

Hoje: uso 1 ETH para comprar ~1,05 po-stETH.

Próximo ano: queimo meus 1,05 po-stETH para reivindicar 1,05 stETH (equivalente a 1,05 ETH)

Caramba! Acabamos de bloquear um rendimento fixo de 5% para o ano.⁶ Isso foi fácil! Há até uma segunda maneira de fazer isso:

Hoje: uso 1 stETH para emitir 1 io-stETH e 1 po-stETH

Vendo 1 io-stETH por 0,05 po-stETH (total agora 1,05 po-stETH)

Próximo ano: queimo meus 1,05 po-stETH para reivindicar 1,05 stETH (equivalente a 1,05 ETH)

O ponto aqui é apenas que, desde que haja reivindicações líquidas e negociáveis ​​ao princípio separadas dos juros para o ether em stake, temos uma curva de rendimento! Isso dependeria de alguém estar disposto a comprar o token de juros.

Especulação sobre rendimentos de Staking e exposição eficiente a rendimentos

Mas por que alguém assumiria o outro lado da negociação? Bem, a precificação acima do mercado implica que o rendimento de 1 stETH será cerca de 5%. Se o mercado estiver certo, então o gasto de 0,05 ETH para comprar 1 io-stETH apenas me trará de volta essa mesma quantia em rendimento acumulado ao longo do ano. Mas, se eu acreditar que o mercado está errado, posso comprar o io-stETH para obter um retorno melhor do que aqueles que estão protegendo contra um rendimento fixo. Vamos supor que eu acredite que, nos próximos anos de staking, na verdade, o rendimento será de 10%. Então vamos supor que eu esteja certo! Posso fazer essa aposta de duas maneiras, como da última vez (negociando no mercado aberto ou cunhando e convertendo), mas vamos apenas percorrer o caminho do mercado aberto para manter as coisas simples.

Hoje:

Uso 1 ETH para comprar 20 io-stETH

Ano que vem:

Recebo 0,1 ETH de cada io-stETH devido ao rendimento de 10%

Agora, reivindico juros no valor de (20 * 0,1) = 2 stETH

Acabei de ter o prazer de ganhar dinheiro por estar certo, quando o mercado estava precificando apenas um rendimento de 5% para retornos fixos. Se você está pensando "ou você poderia simplesmente segurar o stETH" - você é uma pessoa muito inteligente. Mas, fazê-lo por meio do token io-stETH será muito, muito, MUITO mais eficiente em termos de capital. Se eu tivesse apenas mantido o stETH em vez de usar o io-stETH, eu teria acabado com 1,1 stETH (1 stETH + rendimento de 10%).

Isso ocorreu devido à eficiência de capital na negociação de exposição de juros isolada. Lembre-se de que manter 1 stETH é equivalente a manter os juros (io-stETH) e o valor principal (po-stETH). Se estou mantendo stETH como uma forma de "apostar contra" a taxa de juros precificada, apenas 5% do capital em stETH está realmente fazendo essa aposta. Se eu tiver alta convicção e quiser usar todo o capital no valor de 1 stETH para fazer essa aposta, agora posso fazê-lo de uma maneira que não poderia antes. Colocaria todo o stETH em io-stETH.

Além disso, as pessoas que usam esses ativos para cobrir o risco de rendimento devem sistematicamente precificar o rendimento abaixo do valor real. Em geral, os vendedores de risco pagam um prêmio e os compradores de risco coletam um prêmio.

Uma DAO que tem custos fixos para seus funcionários, por exemplo, pode ser capaz de usar 10% de seu tesouro, bloquear um rendimento de 5% para o próximo ano e saber que tem suas obrigações (custos) cobertas por esse período. Mesmo que eles acreditem que o rendimento provavelmente será de 6%, eles geralmente estariam dispostos a pagar esse extra de 1% apenas para ter a certeza de que seus custos são cobertos apenas pelos juros.

De qualquer forma, é assim que se cria uma curva de rendimento para a Web 3.0.

Breve observação, Strips de Emissão Única

Obviamente, ter um mercado generalizado e líquido para tokens de juros e de valor principal para futuros de ETH com uma variedade de prazos é um ecossistema difícil de iniciar. Eu acho que uma primeira aplicação real disso não será uma instalação aberta para que as pessoas venham e retirem seus tokens, mas sim emissão única de Strips IO e PO (que se tornam líquidas após a venda). Eu acho que a primeira aplicação disso não parecerá com o abaixo, mas seria uma oportunidade para uma DAO vender parte de seus lucros de juros de staking para sua comunidade em troca de retorno fixo. O DAO emitiria os tokens IO e PO, e venderia o IO para a comunidade a um preço que cobre seus custos e dá a vantagem do tesouro aos detentores da comunidade.

Implementação técnica

Eu fui em frente, criei um exemplo disso abaixo e irei apontar as áreas de melhoria.

Para contextualizar, eu não sou um desenvolvedor: este não é um bom código.

Na verdade, se você estiver interessado em me ajudar a melhorar este código e torná-lo pronto para produção, por favor entre em contato.

https://github.com/alanckeegan/iopostrips

//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./IOSteth.sol";
import "./POSteth.sol";
import "../custom_interfaces/ISTETH.sol";

contract Strip {
  uint expiry;
  IERC20 io;
  IERC20 po;
  ISTETH steth;
  mapping (address => IOStakerDeposit) public stakerDeposits;

  struct IOStakerDeposit {
    uint amount;
    uint trackerStartingValue;
  }

  constructor(address _steth, uint _expiry) {
    steth = ISTETH(_steth);
    expiry = _expiry;

    // isso limita o contrato a retirar 10k stETH, idealmente seria mexer com uma função mint em um erc-20 personalizado
    io = new IOSTeth(10000 * (10**18));
    po = new POSteth(10000 * (10**18));

  }

  function mint(uint _amount) external {
    // recebe steth
    require(steth.transferFrom(msg.sender, address(this), _amount), "Must approve stEth transfer prior to mint!");

    // cunha IOsteth e POsteth para o remetente
    io.transfer(msg.sender, _amount);
    po.transfer(msg.sender, _amount);
  }

  function redeem(uint _amount) external {

    // recebe IOsteth e POsteth 
    require(io.transferFrom(msg.sender, address(this), _amount), "Must approve ioSteth transfer prior to redeem!");
    require(po.transferFrom(msg.sender, address(this), _amount), "Must approve poSteth transfer prior to redeem!");

    //  envia steth ao remetente
    steth.transfer(msg.sender, _amount);
  }


  function claimPrincipal(uint _amount) external {
    // somente após o vencimento
    require(block.timestamp >= expiry, "No PO redemption before expiry");

    // recebe POsteth e 
    require(po.transferFrom(msg.sender, address(this), _amount), "Did not recieve PO tokens");

    // envia uma quantidade igual de steth para o remetente
    steth.transfer(msg.sender, _amount);
  }

  function stakeIO(uint _amount) external {
    // verifica se a chave de mapeamento já existe (depósito existente)
    require(stakerDeposits[msg.sender].amount == 0, "You have an existing deposit.  You must first claim and unstake to create a new staking deposit");

    // recebe IO 
    require(io.transferFrom(msg.sender, address(this), _amount), "Must approve ioSteth transfer prior to stake!");

    // cria um depósito com endereço do remetente e quantidade de steth no rastreador no momento do depósito
    stakerDeposits[msg.sender] = IOStakerDeposit(_amount, yieldTrackerCheck());

  }

  function claimYield() external {
    // verifica o rendimento acumulado
    uint yield = checkAccruedYield(msg.sender);

    // exige rendimento diferente de zero
    require(yield > 0, "No yield to claim, bucko, have your gas back");

    // redefine o valor do rastreador no depósito para o valor atual do rastreador steth
    stakerDeposits[msg.sender].trackerStartingValue = yieldTrackerCheck();

    // envie aquele steth
    steth.transfer(msg.sender, yield);
  }


  function unstakeIOAndClaim() external {
    // Certifica que eles tenham um depósito
    require(stakerDeposits[msg.sender].amount != 0, "You have no staked IO...awk");

    // verifica o valor do rendimento e o valor em stake
    uint yield = checkAccruedYield(msg.sender); 
    uint stakedIO = stakerDeposits[msg.sender].amount;

    // exclui seu depósito do mapeamento
    delete stakerDeposits[msg.sender];

    // envia IO para o usuário igual ao valor apostado e rendimento
    io.transfer(msg.sender, stakedIO);
    steth.transfer(msg.sender, yield);
  }

  function yieldTrackerCheck() internal view returns(uint) {

    // Verifica o #ETH por ações de stETH, que deve aumentar à medida que o rendimento aumenta
    return steth.getPooledEthByShares(10**18);
  }

  function checkAccruedYield(address _staker) public view returns(uint) {
    // Tive que reordenar a matemática aqui, vale a pena conferir
    // calcula o rendimento acumulado observando yieldTrackerBalance()
    uint startingValue = stakerDeposits[_staker].trackerStartingValue;
    uint stakedIO = stakerDeposits[_staker].amount;

    // o % de crescimento no número de ações eth/steth * o valor de IO depositado é o rendimento a reivindicar
    // tem que multiplicar por stakeIO antes de dividir porque o Solidity não executa frações, aparentemente
    uint stethYield = (yieldTrackerCheck() - startingValue) * stakedIO/startingValue;

    return stethYield;
  }

}
Enter fullscreen mode Exit fullscreen mode

Algumas melhorias definitivas que precisam ser feitas nisso:

  • Atualmente, os tokens IO e PO ERC-20 que estou emitindo possuem um suprimento fixo, o que limita o tamanho do contrato para 10K stETH. Isso é uma limitação desnecessária e poderia ser contornado personalizando os contratos ERC-20 para incluir uma função de criação controlada pelo contrato do emissor.
  • Atualmente, a verificação da acumulação de rendimento é feita por meio da solicitação da função pública getPooledEtherByShares() do contrato stETH, salvando o valor e verificando-o novamente em relação a valores passados. Isso requer que IO seja colocado em stake para acumular rendimento. Acredito que isso poderia ser contornado implementando uma substituição baseada em ações da função getBalance() dentro de IO (tornando-a também rebalanceada), semelhante ao stETH.
  • É necessário que o IO pare de acumular rendimento após o vencimento.

— — — — — — — — — — — — — — — — — — — — — — — — — — — -

Você gostou do artigo? Veja como você pode ajudar, se quiser:

  • Se você é um desenvolvedor Solidity e quer trabalhar comigo nisso, entre em contato comigo.
  • Se você é um desenvolvedor React e quer trabalhar comigo nisso, entre em contato comigo.
  • Se você está envolvido em uma DAO e quer tentar fazer uma versão personalizada disso para vender algum benefício para sua comunidade, entre em contato comigo.

— — — — — — — — — — — — — — — — — — — — — — — — — — — —

Observações Finais:

(1) Sim, eu sei, "bla bla bla, risco de duração, bla bla bla".

(2) Isso, obviamente, não se aplica à dívida do governo denominada em dólares para países que não imprimem dólares.

(3) Também sei que "bla bla bla, títulos protegidos contra inflação do tesouro, bla bla bla".

(4) Obviamente, programas de compra de ativos como QE (quantitative easing, ou flexibilização quantitativa) afetam os rendimentos de longo prazo (eles compram empréstimos de longa duração, reduzindo assim o rendimento deles), mas é raro o Fed definir os rendimentos de longo prazo. No entanto, durante a Grande Depressão, eles basicamente fizeram isso (dizendo "compraremos o quanto for necessário para manter os rendimentos de 10 anos a essa taxa"), e o BoJ (Bank of Japan) basicamente fez isso na última década para tentar combater a deflação.

(5) Acho que isso, de maneira interessante, sugará o capital do sistema de uma maneira que fechará (ou pelo menos diminuirá muito o TVL, em termos de ETH) vários protocolos de empréstimo existentes. Atualmente, as pessoas emprestam para muitos mutuários arriscados a taxas mais baixas do que poderiam estar emprestando para um mutuário livre de riscos (a rede).

(6) Sim, não é exato. Como exemplo, 0,05 / 0,95 na verdade resulta em 5,26%, mas acho que este artigo já é difícil o suficiente como está.

Artigo original escrito por Alan Keegan. Traduzido por Paulinho Giovannini.

Top comments (0)