Por trás do boom do dYdX V4, análise aprofundada da classificação de alavancagem DeFi, aplicação e práticas de segurança

intermediário12/13/2023, 2:12:46 PM
Este artigo explora a diversidade e cenários de aplicação da alavancagem DeFi através do dYdX V4, analisa vulnerabilidades ao nível do código e apresenta os principais pontos de segurança do protocolo de alavancagem.

Uma introdução à alavancagem DeFi

O recente lançamento do dYdX V4 atraiu muita atenção e participação na troca de contratos perpétuos. O dYdX aplicou com sucesso exemplos de negociação alavancada, e não devemos apenas esperar pelo grande potencial do dYdX V4, mas também prestar mais atenção à segurança dos acordos alavancados. Em seguida, usaremos análises e exemplos de código específicos para orientá-lo através das diferentes estratégias de alavancagem e considerações de segurança.

O que é alavancagem

Em finanças, alavancagem é uma estratégia que depende de empréstimos de dinheiro para aumentar o retorno potencial de um investimento. Simplificando, investidores ou traders pegam dinheiro emprestado para ampliar sua exposição a tipos específicos de ativos, projetos ou instrumentos muito mais do que podem alcançar contando apenas com seu próprio capital. Frequentemente, por meio do uso da alavancagem, investidores são capazes de ampliar seu poder de compra no mercado.

Alavancagem na negociação DeFi

O uso de alavancagem é uma das características mais importantes e comuns da negociação de ativos criptográficos. Logo após o estabelecimento de exchanges descentralizadas, a negociação com alavancagem tornou-se cada vez mais popular, mesmo que o mercado criptográfico já estivesse mostrando alta volatilidade.

Assim como na finança tradicional, os traders utilizam alavancagem seja simplesmente para emprestar capital e aumentar seu poder de compra, ou para aproveitar vários derivativos financeiros, como futuros e opções.

A taxa de alavancagem também aumentou de 3x e 5x para mais de 100x. Maior alavancagem significa maior risco, mas, como visto na maioria das exchanges centralizadas, essa é uma aposta que os traders agressivos estão dispostos a fazer à medida que o volume de negociação alavancada cresce, buscando retornos mais altos.

Explicação detalhada da classificação de alavancagem

No que diz respeito ao DeFi, os produtos alavancados são principalmente divididos em quatro tipos, e os mecanismos para gerar alavancagem são diferentes: empréstimo alavancado, alavancagem de negociação com margem, alavancagem de contrato perpétuo e tokens alavancados.

Empréstimo alavancado

Empréstimo e empréstimo DeFi é uma das aplicações DeFi mais antigas e maiores. Gigantes como MakerDAO, Compound, AAVE e Venus já estão operando no mercado. A lógica para obter alavancagem através do empréstimo de ativos cripto é simples.

Por exemplo, se você tiver $10.000 em Ether (ETH) e for otimista, você pode depositar seu ETH como garantia no Compound, emprestar $5.000 em USDC e depois usar esse acordo de $5.000 USDC em troca de mais $5.000 em ETH. Dessa forma, você terá alavancagem de 1,5 vezes em ETH e, comparado ao seu capital inicial de $10.000, você terá $1,5 milhão em exposição a ETH.

Da mesma forma, se você for pessimista, pode optar por depositar stablecoins e emprestar ETH. Se o preço do ETH cair, você pode comprar ETH no mercado a um preço mais baixo e pagar suas dívidas.

Note que, como você estará pegando emprestado de um protocolo descentralizado, você pode ser liquidado se o valor da garantia cair ou se o valor do ativo que você está pegando emprestado exceder um certo limite.

Negociação de margem alavancada

Com empréstimos DeFi, você pode fazer o que quiser com esses ativos digitais. A negociação de margem DeFi foca mais em aumentar o tamanho da posição (aumentando o poder de compra) e é considerada uma verdadeira "posição alavancada". No entanto, há uma diferença importante - enquanto as posições de margem ainda estão abertas, os ativos dos traders atuam como garantia para os fundos emprestados.

dYdX é uma plataforma de negociação de margem descentralizada bem conhecida que permite alavancagem de até 5x. Na negociação de margem da dYdX, os traders usam seus próprios fundos como garantia, ampliam seu principal original por várias vezes e usam esses fundos ampliados para investir em maior escala.

Os traders são obrigados a pagar taxas de juros e taxas associadas à transação. Essa posição não é fictícia; envolve empréstimos reais e compra/venda.

Se o mercado se mover em uma direção desfavorável, os ativos do trader podem não ser capazes de pagar totalmente o empréstimo. Para evitar que isso aconteça, o acordo liquidará suas posições antes que uma determinada taxa de liquidação seja atingida.

Como a alavancagem muda na negociação de margem——

Digamos que você seja otimista em relação ao ETH 3 vezes na negociação de margem, mas não queira ajustar sua exposição o tempo todo.

Você possui $100 em USDC e empresta mais $200 em USDC para negociar $300 em ETH e estabelecer a posição longa de ETH necessária. O nível de alavancagem é $300/$100 = 3x.

Se o preço do ETH subir 20%, o seu lucro seria 300 (1 +20%) -300 = $60. O risco de ser liquidado é menor, enquanto o nível de alavancagem real é reduzido para 360/ (360-200) = 2.25x. Em outras palavras, você reduzirá automaticamente sua alavancagem quando o preço do ETH subir.

Se o preço do ETH cair 20%, a sua perda seria de 300 (1-20%) -300 = -60 dólares. Quando se trata de liquidação, você está em uma posição mais perigosa, e o nível real de alavancagem é automaticamente aumentado para 240/ (240-200) = 6x. Em outras palavras, você reequilibra sua alavancagem quando o preço do ETH cai, o que indica que você está em uma posição de risco mais elevado do que antes.

Portanto, embora você possa pensar que pode manter uma alavancagem constante ao negociar com uma margem fixa de 3x, a alavancagem em tempo real está em constante mudança.Por favor, verifique o gráfico abaixo para ver como a alavancagem irá mudar dependendo das mudanças de preço [1].

Alavancagem de contrato perpétuo

Contratos perpétuos são semelhantes aos contratos futuros tradicionais, mas não têm uma data de vencimento. Os contratos perpétuos imitam um mercado à vista baseado em margem, de modo que a negociação está próxima do preço do índice de referência subjacente.

Existem muitos projetos DeFi que oferecem contratos perpétuos para traders, como dYdX, MCDEX, Perpetual Protocol, Incomplete, etc. Muitos traders podem achar difícil distinguir entre negociação com margem e contratos perpétuos — na verdade, todos envolvem alavancagem do usuário.

No entanto, existem algumas diferenças nos mecanismos de alavancagem, taxas e níveis de alavancagem.

Um contrato perpétuo é um produto derivado que negocia ativos sintéticos e tem a característica de negociar com margem. O preço do ativo subjacente é rastreado de forma sintética, sem a necessidade de negociar o ativo subjacente real. No entanto, a negociação de margem envolve empréstimo e negociação reais de ativos criptográficos reais.

Com o surgimento de contratos perpétuos, o conceito de taxas de financiamento surgiu. O objetivo é manter o preço da transação de um contrato perpétuo consistente com o preço de referência subjacente. Se o preço do contrato for maior do que o preço à vista, então os touros pagarão aos shorts. Em outras palavras, os traders precisam constantemente pagar taxas para empréstimos.

A alavancagem em contratos perpétuos é geralmente maior do que em negociações de margem e pode chegar a 100x. Os mecanismos de liquidação e alavancagem real são os mesmos das negociações de margem.

Tokens Alavancados

Tokens alavancados são derivativos que fornecem aos detentores exposição alavancada ao mercado de criptomoedas sem precisar se preocupar em gerenciar ativamente posições alavancadas. Embora forneçam aos detentores exposição alavancada, não é necessário lidar com margem, liquidação, garantia ou taxas de financiamento.

A maior diferença entre tokens alavancados e negociação de margem/contratos perpétuos é que os tokens alavancados serão reequilibrados periodicamente ou quando um certo limite for atingido para manter um nível específico de alavancagem.

Isso é claramente diferente da negociação de margem e contratos perpétuos — a alavancagem real desses produtos está constantemente mudando de acordo com as flutuações de preço, mesmo que o trader possa inicialmente especificar um nível de alavancagem.

Vamos dar uma olhada em como o reequilíbrio funciona no exemplo de 3x ETH acima:

Você possui $100 em USDC e compra um token alavancado ETHBULL (3x). O protocolo automaticamente vai pegar emprestado $200 em USDC e negociar $200 em ETH.

Suponha que o preço da ETH tenha subido 20%, enquanto o preço do token ETHBULL (3x) sobe para 300* (1 +20%) -200 = $160 antes do reequilíbrio. Sua alavancagem real agora é de 2,25 (360/160), abaixo de sua alavancagem alvo.

Como parte do processo de reequilíbrio, o protocolo irá pegar mais dólares do pool de stablecoins e comprar tokens ETH adicionais para trazer a alavancagem de volta para 3x. Em nosso exemplo, o protocolo pegaria emprestado mais $120 e o trocaria por ETH. Assim, a alavancagem total novamente se torna (360+120) /160 = 3 vezes.

Suponha que o preço do ETH tenha caído 20%, enquanto o preço do token ETHBULL (3x) cai para 300* (1-20%) -200 = $40 antes do reequilíbrio. Sua alavancagem real agora será de 6 (240/40), acima de sua alavancagem alvo.

Neste caso, o acordo venderia tokens de ETH e pagaria as dívidas pendentes para reduzir a alavancagem. Neste exemplo, o protocolo venderia $120 em ETH para pagar o pool. A dívida se tornará $80, e a alavancagem total será mais uma vez (240-120) /40 = 3x.

Em outras palavras, os tokens alavancados serão automaticamente realavancados nos lucros e desalavancados nas perdas para restaurar seu nível alvo de alavancagem. Se esse mecanismo funcionar bem, mesmo em tendências de mercado adversas, os detentores de tokens alavancados não serão liquidados porque o mecanismo de desalavancagem continuará reduzindo continuamente o nível de alavancagem efetivo dos usuários.

Como resultado, o pool de empréstimos no modelo de token alavancado estará isento do risco de liquidação e é mais seguro do que o pool de empréstimos na negociação de margem.

Exemplos de aplicação de alavancagem

Agora que aprendemos sobre alguns tipos comuns de alavancagem de protocolos DeFi, vamos discutir a aplicação da alavancagem em detalhes em relação a protocolos DeFi específicos.

GMX

GMX [2]é uma troca descentralizada de spot e perpétua que oferece aos traders a capacidade de negociar ativos com alavancagem de até 50 vezes. O acordo atualmente funciona na Arbitrum e Avalanche. Na GMX, os traders estão completamente cientes da situação de sua contraparte, o que é completamente diferente de negociar na CEX. Ao contrário de outros acordos de contrato perpétuo, como dYdX, a GMX opera inteiramente on-chain e usa a funcionalidade AMM para permitir negociações alavancadas.

O que diferencia a GMX de outros serviços é que se trata de uma exchange descentralizada que oferece serviços de negociação alavancada. Nesse sentido, ela combina uma experiência semelhante a outras exchanges DeFi, como Uniswap, com serviços de negociação alavancada oferecidos pela Binance e outros.

GMX possui um pool de liquidez GLP, que é um pool multiativo que fornece liquidez para negociações com margem: os usuários podem abrir posições longas/curtas e executar negociações emitindo e destruindo tokens GLP. O pool recebe taxas de LP de negociações e negociações alavancadas, que são distribuídas para os detentores de GMX e GLP.

Para negociar com alavancagem, os negociantes depositam garantias em um acordo. Os negociantes podem escolher alavancagem de até 50x. Quanto maior a alavancagem, maior o preço de liquidação, que aumentará gradualmente à medida que os custos de empréstimo aumentam.

Por exemplo, ao apostar na alta do ETH, os traders estão 'alugando' o espaço ascendente do ETH a partir do pool GLP; ao apostar na baixa do ETH, os traders estão 'alugando' o espaço ascendente de stablecoins em relação ao ETH a partir do pool GLP. No entanto, os ativos no pool GLP não são realmente alugados.

Ao fechar uma posição, se o trader apostar certo, os lucros serão pagos na forma de aumento de tokens do pool GLP; caso contrário, as perdas serão deduzidas do colateral e pagas ao pool. GLP lucra com as perdas dos traders e com os lucros dos traders.

No processo, os traders pagam taxas de transação, taxas de abertura/fechamento e taxas de empréstimo em troca de espaço para long/short de tokens especificados (BTC, ETH, AVAX, UNI e LINK) contra o dólar dos EUA.

Negociação de Merkle

Negociação de Merkle[3]é uma plataforma de negociação descentralizada que oferece negociação de criptomoedas, forex e commodities com alavancagem de até 1.000x e recursos avançados de negociação centrados no usuário. A Merkle Trade é impulsionada pela blockchain Aptos e possui desempenho e escalabilidade de primeira classe. Comparada à Gains Network, que oferece a mesma alta alavancagem, tem menores atrasos e taxas de transação.

Ao contrário da maioria das exchanges, não há livro de ordens na Merkle Trade. Em vez disso, a Merkle LP atua como contraparte de todas as negociações e, quando os traders perdem dinheiro, ela toma garantias e paga lucros nas negociações fechadas com retornos positivos.

  • Negocie criptomoedas, forex e commodities com alavancagem de até 1.000x

O Merkle Trade foi projetado desde o início para oferecer uma ampla variedade de pares de negociação, incluindo criptomoedas, forex e commodities, e algumas das alavancagens mais altas do mercado; até 150x em criptomoedas e até 1.000x em forex.

  • Execução de ordens a preço justo, latência em milissegundos, deslizamento mínimo

Gerar blockchain com Aptos, que possui a menor latência até o momento, pode fornecer a experiência de transação on-chain mais rápida. Para os traders, isso significa uma experiência de negociação mais rápida e menos deslizamento de preço devido a atrasos na execução.

  • Transações descentralizadas e não custodiais sem risco de contraparte

Os traders negociam com um pool de liquidez (Merkle LP), que atua como contraparte de cada transação no acordo. Todas as transações e liquidações são executadas por contratos inteligentes, e não há hospedagem de fundos do usuário em nenhum momento.

  • Taxa de processamento mais baixa

Merkle Trade afirma ter uma das taxas mais baixas do mercado até o momento. No lançamento, as taxas para pares de negociação de criptomoedas eram tão baixas quanto 0,05%, e as taxas para pares de negociação forex eram tão baixas quanto 0,0075%.

DYDX

DYDX

dYdX[4]é uma bolsa descentralizada (DEX) que capacita os usuários a negociar contratos perpétuos de forma eficiente, mantendo controle total sobre os ativos. Desde o seu lançamento em 2021, o dYdX V3 adotou uma solução exclusiva de escalonamento de segunda camada não custodial para implementar sua bolsa, mas seu livro de ordens e mecanismo de correspondência ainda são gerenciados centralmente.

Agora, com o dYdX V4, o protocolo está crescendo para sua própria cadeia, e todo o protocolo está sendo completamente reestruturado para alcançar completa descentralização, ao mesmo tempo que aumenta a throughput. O dYdX também inclui três funções: empréstimos, negociação alavancada e contratos perpétuos. A negociação alavancada vem com uma função de empréstimo. Os fundos depositados pelos usuários formam automaticamente um pool de fundos. Se houver capital insuficiente durante a negociação, o juro é automaticamente emprestado e pago.

Análise de segurança de alavancagem

Apresentamos os tipos comuns e aplicações de alavancagem em DeFi. Além disso, ainda existem muitos problemas de segurança no design da alavancagem que merecem nossa atenção. Analisaremos os problemas de segurança e pontos de auditoria da alavancagem DeFi com base em casos específicos de auditoria.

Distinguir entre ordens limitadas e ordens de mercado

Na maioria das aplicações de trocas alavancadas, existem ordens limitadas e ordens de mercado. A diferenciação estrita e verificação de ordens limitadas e ordens de mercado é muito necessária.A seguir, faremos uma análise detalhada dos problemas que encontramos na auditoria do Merkle Trade [5].

deixe agora = timestamp: :now_seconds (); se (agora - order.created_timestamp > 30) { cancel_order_internal(_order_id, order, T_CANCEL_ORDER_EXPIRED); return };

Esta parte do código realiza as verificações na função de ordem, onde verifica se passaram mais de 30 segundos desde que a ordem foi criada. Se as condições forem atendidas, chame cancel_order_internal () para cancelar a ordem. No entanto, se a ordem for uma ordem de limite, significa que a ordem tem um preço específico definido pelo trader e eles estão dispostos a comprar ou vender o ativo a esse preço. Não deve haver tal julgamento ao executar ordens de limite; isso pode fazer com que a maioria das ordens de limite não seja executada. Portanto, é importante diferenciar estritamente a lógica de negociação entre ordens de limite e ordens de mercado.

Erro de cálculo de alavancagem

Erros de cálculo sempre foram um problema muito comum no DeFi, e também são particularmente comuns na alavancagem. Usaremos os problemas descobertos pelo protocolo Unstoppable [6] em auditorias de terceiros para examinar minuciosamente os problemas de cálculo da alavancagem.

Vamos dar uma olhada no código para calcular a alavancagem no Unstoppable:

def _calculate_calculation ( _position_value: uint256, _debt_value: uint256, _margin_value: uint256) - > uint256: if _position_value < = _debt_value: #bad debt Return max_value (uint256) Return ( precision * (_debt_value + _margin_value) /(_position_value - _debt_value) /PRECISION )

A função _calculate_margin causou a alavancagem a ser calculada incorretamente ao usar _debt_value + _margin_value como numerador em vez do _position_value. Os três parâmetros de entrada da função _position_value, _debt_value e _margin_value são todos determinados pelas informações de preço fornecidas pelos oráculos on-chain da Chainlink. Aqui, _debt_value indica o valor da conversão da parcela da dívida da posição em um montante de dívida em dólares. _margin_value indica o valor atual do montante de margem inicial da posição (em dólares americanos). _position_value indica o valor atual (em dólares americanos) do montante de posição inicial da posição.

O problema com o cálculo acima é que _debt_value + _margin_value não representa o valor da posição. A alavancagem é a relação entre o valor da posição atual e o valor da margem atual. _position_value - _debt_value está correto. Indica o valor da margem atual, mas _debt_value + _margin_value não representa o valor atual da posição, porque não há garantia de que os tokens de dívida e os tokens de posição tenham flutuações de preço relacionadas.

Por exemplo, o token de dívida é ETH, e o token de posição é BTC.

Alice usa 1 ETH como margem, empresta 14 ETH ($2.000 cada) e obtém 1 BTC ($30.000 cada) em tokens de posição. A alavancagem é 14.

No dia seguinte, o preço do ETH permaneceu em $2,000/ETH, mas o preço do BTC caiu de $30,000/BTC para $29,000/BTC. Neste ponto, a alavancagem deve ser (_valor_posição == 29,000)/(_valor_posição == 29,000 - _valor_dívida == 28,000) = 29, não o valor calculado no contrato: (_valor_dívida == 28,000 + _valor_margem == 2,000)/(_valor_posição == 29,000 - _valor_dívida == 28,000) = 30.

Portanto, para corrigir isso, a fórmula correta mencionada acima deve ser usada para calcular a alavancagem em contratos inteligentes. Um cálculo errado de alavancagem pode levar a liquidações injustas ou posições excessivamente alavancadas diante de flutuações de preços.

Em contratos inteligentes, garantir o cálculo adequado da alavancagem é fundamental para manter a robustez do sistema e os interesses dos usuários. O cálculo correto da alavancagem deve ser baseado na proporção entre o valor atual da posição e o valor atual da margem. Se a fórmula de cálculo errada for usada, pode fazer com que o sistema reaja de forma inadequada às mudanças de preço, liquidar posições que não deveriam ser liquidadas ou permitir que posições excessivamente alavancadas continuem a existir, aumentando assim o risco do sistema e dos usuários.

Erros lógicos

Erro de lógica

Erros lógicos requerem atenção especial em auditorias de contratos inteligentes, especialmente em lógicas complexas como negociações alavancadas DeFi.

Vamos discutir as questões lógicas a serem observadas na alavancagem DeFi usando os problemas descobertos pela Tigris[7](Tigris, uma plataforma descentralizada de negociação alavancada sintética com base em Arbitrum e Polygon) em uma auditoria de terceiros.

Vamos dar uma olhada na lógica da função de fechamento do limite de preço em Tigris:

Function limitClose ( uint _id, bool _tp, priceData calldata _priceData, Bytes calldata _signature) external{ _checkDelay(_id, false);   (uint _limitPrice, endereço _tigAsset) = tradingExtension._limitClose(_id, _tp, _priceData, _signature);   _closePosition(_id, DIVISION_CONSTANT, _limitPrice, endereço(0), _tigAsset, verdadeiro);}função _limitClose ( uint _id, bool _tp, priceData calldata _priceData, Bytes calldata _signature) external view returns (uint _limitPrice, address _TIGAsset) { _checkGas (); iPosition.trade memory _trade = position.trades (_id);   _tigAsset = _trade.tigAsset;   getVerifiedPrice (_trade.asset, _priceData, _signature, 0); uint256 _price = _priceData.price;   if (_trade.orderType! = 0) reverter (" 4 "); isLimit if (_tp) { if (_trade.tpPrice == 0) reverter (" 7 "); limitNotSet if (_trade.direction) { if (_trade.tpPrice > _price) revert("6"); //LimitNotMet } else { if (_trade.tpPrice < _price) revert("6"); //LimitNotMet } _limitPrice = _trade.tpPrice;   } else { if (_trade.slprice == 0) reverter (" 7 "); limitNotSet if (_trade.direction) { if (_trade.slPrice < _price) revert("6"); //LimitNotMet } else { if (_trade.slPrice > _price) revert("6"); //LimitNotMet } //@audit stop loss é fechado ao preço especificado pelo usuário NÃO preço de mercado _limitPrice = _trade.slprice;   }}

Ao usar o stop-loss para fechar uma posição, o preço de fechamento do usuário é o preço de stop-loss definido pelo usuário, não o preço atual do ativo. No caso de mercados direcionais e alta alavancagem, os usuários podem abusar disso para alcançar negociações quase sem risco. Os usuários podem abrir uma posição longa e definir um preço de stop-loss que é $0,01 mais baixo do que o preço atual.

Se o preço cair imediatamente na próxima atualização, eles fecharão sua posição a preço de entrada e pagarão apenas as taxas de abertura e fechamento. Se os preços subirem, é provável que ganhem muito dinheiro. Como resultado, os usuários podem usar métodos de precificação de stop-loss de forma inadequada para abrir negociações com alta alavancagem, alto potencial de ganhos e baixo risco de queda.

Flutuações de preços

Preço Tubs

O impacto das flutuações de preços na alavancagem DeFi é muito importante. Apenas considerando sempre as flutuações de preços podemos garantir a segurança dos acordos de alavancagem. Vamos usar o DeFiner [8]protocol como exemplo para uma análise aprofundada dos problemas descobertos em uma auditoria de terceiros:

O protocolo DeFiner passa por duas verificações antes de processar retiradas.

Primeiro, o método verifica se o valor solicitado pelo usuário para sacar excede o saldo desse ativo:

função autorização (endereço _accountAddr, endereço _token, uint256 _amount) externo apenasAutorizado retorna (uint256) { //Verifique se o valor é menor que o saldo do usuário requer (_amount < = getDepositBalanceCurrent (_token, _accountAddr), "Saldo ganho."); uint256 borrowLtv = globalConfig.tokenInfoLogistry().getBorrowLtv(_token);

Em segundo lugar, o método verifica se os saques farão com que a taxa de alavancagem do usuário seja muito alta. O valor sacado será subtraído do 'poder de empréstimo' do preço atual do usuário. Se o valor total emprestado pelo usuário exceder o novo poder de empréstimo, o método falhará porque o usuário não terá mais colateral suficiente para sustentar sua posição de empréstimo. No entanto, esse requisito só será verificado se o usuário não estiver excessivamente alavancado:

se (getBorrowEth (_accountAddr) <= getBorrowPower (_accountAddr)) exigir (getBorrowEth (_accountAddr) <= getBorrowPower (_accountAddr) .sub (_amount.mul (globalConfig.tokenInfoRegistry().priceFromAddress(_token)).mul(borrowLtv).div(utils.getDivisor(address(globalConfig), _token)).div(100)), " Colloquium Collège when ");

Se os usuários tiverem emprestado mais do que seu "poder de empréstimo" permite, eles podem sacar dinheiro independentemente. Isso pode acontecer em várias situações, sendo a mais comum as flutuações de preço. O acordo não considerou o impacto das flutuações de preço no contrato, o que causou esse problema.

Outros

Além dos efeitos de não distinguir entre ordens limitadas e ordens de mercado, erros de cálculo, erros lógicos e flutuações de preços mencionados acima, existem muitos pontos de segurança relacionados aos acordos de alavancagem que requerem nossa atenção. Isso inclui, mas não se limita a, questões como ataques de empréstimos instantâneos, manipulação de preços, segurança de profetas, controle de autoridade, verificações de alavancagem insuficientes ou falta de verificações. Esses fatores devem ser cuidadosamente considerados ao projetar e implementar acordos de alavancagem para garantir a robustez do acordo e a segurança dos ativos do usuário. Medidas preventivas, monitoramento em tempo real e planos de resposta de emergência também são essenciais para reduzir os riscos potenciais e proteger os interesses do usuário.

somado

Conclusão

A introdução da negociação alavancada nos protocolos DeFi de fato proporcionou ao mercado uma maior manobrabilidade, ao mesmo tempo em que trouxe mecanismos de negociação mais complexos. Embora a negociação alavancada forneça aos usuários mais oportunidades de investimento, seus riscos potenciais e desafios para a segurança do protocolo também se tornaram mais significativos.

À medida que a alavancagem aumenta, a operação dos acordos torna-se mais flexível, mas, como resultado, tornam-se mais vulneráveis e suscetíveis a várias ameaças de segurança. Isso inclui a possibilidade de falha em fazer uma distinção rigorosa entre ordens de limite e ordens de mercado, erros de cálculo, erros lógicos e extrema sensibilidade a fatores como flutuações de preços. Neste caso, devemos prestar mais atenção à segurança do protocolo para garantir que os ativos dos usuários sejam efetivamente protegidos.

Como uma equipe líder de segurança blockchain no campo Web3, a ScaleBit está distribuída no Vale do Silício, Singapura, Hong Kong, Taiwan, etc. Nós fornecemos soluções de segurança blockchain para mais de 200 instituições e projetos no setor global de Web3, acumulamos mais de 180.000 linhas de código de auditoria e protegemos mais de $8 bilhões em ativos de usuários. Tornar a Segurança Acessível a Todos! Se você tiver alguma necessidade de auditoria de segurança, sinta-se à vontade para entrar em contato conosco. Iremos fornecer soluções de segurança detalhadas, abrangentes e profissionais para protegê-lo e ao campo Web3 com segurança!

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [ScaleBit]e os direitos autorais pertencem ao autor original [PolarisSe você tiver alguma objeção à reimpressão, entre em contato com a equipe Gate Learn, e a equipe lidará com isso o mais rápido possível de acordo com os procedimentos relevantes.

  2. Aviso Legal: As visões e opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem nenhum conselho de investimento.

  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Por trás do boom do dYdX V4, análise aprofundada da classificação de alavancagem DeFi, aplicação e práticas de segurança

intermediário12/13/2023, 2:12:46 PM
Este artigo explora a diversidade e cenários de aplicação da alavancagem DeFi através do dYdX V4, analisa vulnerabilidades ao nível do código e apresenta os principais pontos de segurança do protocolo de alavancagem.

Uma introdução à alavancagem DeFi

O recente lançamento do dYdX V4 atraiu muita atenção e participação na troca de contratos perpétuos. O dYdX aplicou com sucesso exemplos de negociação alavancada, e não devemos apenas esperar pelo grande potencial do dYdX V4, mas também prestar mais atenção à segurança dos acordos alavancados. Em seguida, usaremos análises e exemplos de código específicos para orientá-lo através das diferentes estratégias de alavancagem e considerações de segurança.

O que é alavancagem

Em finanças, alavancagem é uma estratégia que depende de empréstimos de dinheiro para aumentar o retorno potencial de um investimento. Simplificando, investidores ou traders pegam dinheiro emprestado para ampliar sua exposição a tipos específicos de ativos, projetos ou instrumentos muito mais do que podem alcançar contando apenas com seu próprio capital. Frequentemente, por meio do uso da alavancagem, investidores são capazes de ampliar seu poder de compra no mercado.

Alavancagem na negociação DeFi

O uso de alavancagem é uma das características mais importantes e comuns da negociação de ativos criptográficos. Logo após o estabelecimento de exchanges descentralizadas, a negociação com alavancagem tornou-se cada vez mais popular, mesmo que o mercado criptográfico já estivesse mostrando alta volatilidade.

Assim como na finança tradicional, os traders utilizam alavancagem seja simplesmente para emprestar capital e aumentar seu poder de compra, ou para aproveitar vários derivativos financeiros, como futuros e opções.

A taxa de alavancagem também aumentou de 3x e 5x para mais de 100x. Maior alavancagem significa maior risco, mas, como visto na maioria das exchanges centralizadas, essa é uma aposta que os traders agressivos estão dispostos a fazer à medida que o volume de negociação alavancada cresce, buscando retornos mais altos.

Explicação detalhada da classificação de alavancagem

No que diz respeito ao DeFi, os produtos alavancados são principalmente divididos em quatro tipos, e os mecanismos para gerar alavancagem são diferentes: empréstimo alavancado, alavancagem de negociação com margem, alavancagem de contrato perpétuo e tokens alavancados.

Empréstimo alavancado

Empréstimo e empréstimo DeFi é uma das aplicações DeFi mais antigas e maiores. Gigantes como MakerDAO, Compound, AAVE e Venus já estão operando no mercado. A lógica para obter alavancagem através do empréstimo de ativos cripto é simples.

Por exemplo, se você tiver $10.000 em Ether (ETH) e for otimista, você pode depositar seu ETH como garantia no Compound, emprestar $5.000 em USDC e depois usar esse acordo de $5.000 USDC em troca de mais $5.000 em ETH. Dessa forma, você terá alavancagem de 1,5 vezes em ETH e, comparado ao seu capital inicial de $10.000, você terá $1,5 milhão em exposição a ETH.

Da mesma forma, se você for pessimista, pode optar por depositar stablecoins e emprestar ETH. Se o preço do ETH cair, você pode comprar ETH no mercado a um preço mais baixo e pagar suas dívidas.

Note que, como você estará pegando emprestado de um protocolo descentralizado, você pode ser liquidado se o valor da garantia cair ou se o valor do ativo que você está pegando emprestado exceder um certo limite.

Negociação de margem alavancada

Com empréstimos DeFi, você pode fazer o que quiser com esses ativos digitais. A negociação de margem DeFi foca mais em aumentar o tamanho da posição (aumentando o poder de compra) e é considerada uma verdadeira "posição alavancada". No entanto, há uma diferença importante - enquanto as posições de margem ainda estão abertas, os ativos dos traders atuam como garantia para os fundos emprestados.

dYdX é uma plataforma de negociação de margem descentralizada bem conhecida que permite alavancagem de até 5x. Na negociação de margem da dYdX, os traders usam seus próprios fundos como garantia, ampliam seu principal original por várias vezes e usam esses fundos ampliados para investir em maior escala.

Os traders são obrigados a pagar taxas de juros e taxas associadas à transação. Essa posição não é fictícia; envolve empréstimos reais e compra/venda.

Se o mercado se mover em uma direção desfavorável, os ativos do trader podem não ser capazes de pagar totalmente o empréstimo. Para evitar que isso aconteça, o acordo liquidará suas posições antes que uma determinada taxa de liquidação seja atingida.

Como a alavancagem muda na negociação de margem——

Digamos que você seja otimista em relação ao ETH 3 vezes na negociação de margem, mas não queira ajustar sua exposição o tempo todo.

Você possui $100 em USDC e empresta mais $200 em USDC para negociar $300 em ETH e estabelecer a posição longa de ETH necessária. O nível de alavancagem é $300/$100 = 3x.

Se o preço do ETH subir 20%, o seu lucro seria 300 (1 +20%) -300 = $60. O risco de ser liquidado é menor, enquanto o nível de alavancagem real é reduzido para 360/ (360-200) = 2.25x. Em outras palavras, você reduzirá automaticamente sua alavancagem quando o preço do ETH subir.

Se o preço do ETH cair 20%, a sua perda seria de 300 (1-20%) -300 = -60 dólares. Quando se trata de liquidação, você está em uma posição mais perigosa, e o nível real de alavancagem é automaticamente aumentado para 240/ (240-200) = 6x. Em outras palavras, você reequilibra sua alavancagem quando o preço do ETH cai, o que indica que você está em uma posição de risco mais elevado do que antes.

Portanto, embora você possa pensar que pode manter uma alavancagem constante ao negociar com uma margem fixa de 3x, a alavancagem em tempo real está em constante mudança.Por favor, verifique o gráfico abaixo para ver como a alavancagem irá mudar dependendo das mudanças de preço [1].

Alavancagem de contrato perpétuo

Contratos perpétuos são semelhantes aos contratos futuros tradicionais, mas não têm uma data de vencimento. Os contratos perpétuos imitam um mercado à vista baseado em margem, de modo que a negociação está próxima do preço do índice de referência subjacente.

Existem muitos projetos DeFi que oferecem contratos perpétuos para traders, como dYdX, MCDEX, Perpetual Protocol, Incomplete, etc. Muitos traders podem achar difícil distinguir entre negociação com margem e contratos perpétuos — na verdade, todos envolvem alavancagem do usuário.

No entanto, existem algumas diferenças nos mecanismos de alavancagem, taxas e níveis de alavancagem.

Um contrato perpétuo é um produto derivado que negocia ativos sintéticos e tem a característica de negociar com margem. O preço do ativo subjacente é rastreado de forma sintética, sem a necessidade de negociar o ativo subjacente real. No entanto, a negociação de margem envolve empréstimo e negociação reais de ativos criptográficos reais.

Com o surgimento de contratos perpétuos, o conceito de taxas de financiamento surgiu. O objetivo é manter o preço da transação de um contrato perpétuo consistente com o preço de referência subjacente. Se o preço do contrato for maior do que o preço à vista, então os touros pagarão aos shorts. Em outras palavras, os traders precisam constantemente pagar taxas para empréstimos.

A alavancagem em contratos perpétuos é geralmente maior do que em negociações de margem e pode chegar a 100x. Os mecanismos de liquidação e alavancagem real são os mesmos das negociações de margem.

Tokens Alavancados

Tokens alavancados são derivativos que fornecem aos detentores exposição alavancada ao mercado de criptomoedas sem precisar se preocupar em gerenciar ativamente posições alavancadas. Embora forneçam aos detentores exposição alavancada, não é necessário lidar com margem, liquidação, garantia ou taxas de financiamento.

A maior diferença entre tokens alavancados e negociação de margem/contratos perpétuos é que os tokens alavancados serão reequilibrados periodicamente ou quando um certo limite for atingido para manter um nível específico de alavancagem.

Isso é claramente diferente da negociação de margem e contratos perpétuos — a alavancagem real desses produtos está constantemente mudando de acordo com as flutuações de preço, mesmo que o trader possa inicialmente especificar um nível de alavancagem.

Vamos dar uma olhada em como o reequilíbrio funciona no exemplo de 3x ETH acima:

Você possui $100 em USDC e compra um token alavancado ETHBULL (3x). O protocolo automaticamente vai pegar emprestado $200 em USDC e negociar $200 em ETH.

Suponha que o preço da ETH tenha subido 20%, enquanto o preço do token ETHBULL (3x) sobe para 300* (1 +20%) -200 = $160 antes do reequilíbrio. Sua alavancagem real agora é de 2,25 (360/160), abaixo de sua alavancagem alvo.

Como parte do processo de reequilíbrio, o protocolo irá pegar mais dólares do pool de stablecoins e comprar tokens ETH adicionais para trazer a alavancagem de volta para 3x. Em nosso exemplo, o protocolo pegaria emprestado mais $120 e o trocaria por ETH. Assim, a alavancagem total novamente se torna (360+120) /160 = 3 vezes.

Suponha que o preço do ETH tenha caído 20%, enquanto o preço do token ETHBULL (3x) cai para 300* (1-20%) -200 = $40 antes do reequilíbrio. Sua alavancagem real agora será de 6 (240/40), acima de sua alavancagem alvo.

Neste caso, o acordo venderia tokens de ETH e pagaria as dívidas pendentes para reduzir a alavancagem. Neste exemplo, o protocolo venderia $120 em ETH para pagar o pool. A dívida se tornará $80, e a alavancagem total será mais uma vez (240-120) /40 = 3x.

Em outras palavras, os tokens alavancados serão automaticamente realavancados nos lucros e desalavancados nas perdas para restaurar seu nível alvo de alavancagem. Se esse mecanismo funcionar bem, mesmo em tendências de mercado adversas, os detentores de tokens alavancados não serão liquidados porque o mecanismo de desalavancagem continuará reduzindo continuamente o nível de alavancagem efetivo dos usuários.

Como resultado, o pool de empréstimos no modelo de token alavancado estará isento do risco de liquidação e é mais seguro do que o pool de empréstimos na negociação de margem.

Exemplos de aplicação de alavancagem

Agora que aprendemos sobre alguns tipos comuns de alavancagem de protocolos DeFi, vamos discutir a aplicação da alavancagem em detalhes em relação a protocolos DeFi específicos.

GMX

GMX [2]é uma troca descentralizada de spot e perpétua que oferece aos traders a capacidade de negociar ativos com alavancagem de até 50 vezes. O acordo atualmente funciona na Arbitrum e Avalanche. Na GMX, os traders estão completamente cientes da situação de sua contraparte, o que é completamente diferente de negociar na CEX. Ao contrário de outros acordos de contrato perpétuo, como dYdX, a GMX opera inteiramente on-chain e usa a funcionalidade AMM para permitir negociações alavancadas.

O que diferencia a GMX de outros serviços é que se trata de uma exchange descentralizada que oferece serviços de negociação alavancada. Nesse sentido, ela combina uma experiência semelhante a outras exchanges DeFi, como Uniswap, com serviços de negociação alavancada oferecidos pela Binance e outros.

GMX possui um pool de liquidez GLP, que é um pool multiativo que fornece liquidez para negociações com margem: os usuários podem abrir posições longas/curtas e executar negociações emitindo e destruindo tokens GLP. O pool recebe taxas de LP de negociações e negociações alavancadas, que são distribuídas para os detentores de GMX e GLP.

Para negociar com alavancagem, os negociantes depositam garantias em um acordo. Os negociantes podem escolher alavancagem de até 50x. Quanto maior a alavancagem, maior o preço de liquidação, que aumentará gradualmente à medida que os custos de empréstimo aumentam.

Por exemplo, ao apostar na alta do ETH, os traders estão 'alugando' o espaço ascendente do ETH a partir do pool GLP; ao apostar na baixa do ETH, os traders estão 'alugando' o espaço ascendente de stablecoins em relação ao ETH a partir do pool GLP. No entanto, os ativos no pool GLP não são realmente alugados.

Ao fechar uma posição, se o trader apostar certo, os lucros serão pagos na forma de aumento de tokens do pool GLP; caso contrário, as perdas serão deduzidas do colateral e pagas ao pool. GLP lucra com as perdas dos traders e com os lucros dos traders.

No processo, os traders pagam taxas de transação, taxas de abertura/fechamento e taxas de empréstimo em troca de espaço para long/short de tokens especificados (BTC, ETH, AVAX, UNI e LINK) contra o dólar dos EUA.

Negociação de Merkle

Negociação de Merkle[3]é uma plataforma de negociação descentralizada que oferece negociação de criptomoedas, forex e commodities com alavancagem de até 1.000x e recursos avançados de negociação centrados no usuário. A Merkle Trade é impulsionada pela blockchain Aptos e possui desempenho e escalabilidade de primeira classe. Comparada à Gains Network, que oferece a mesma alta alavancagem, tem menores atrasos e taxas de transação.

Ao contrário da maioria das exchanges, não há livro de ordens na Merkle Trade. Em vez disso, a Merkle LP atua como contraparte de todas as negociações e, quando os traders perdem dinheiro, ela toma garantias e paga lucros nas negociações fechadas com retornos positivos.

  • Negocie criptomoedas, forex e commodities com alavancagem de até 1.000x

O Merkle Trade foi projetado desde o início para oferecer uma ampla variedade de pares de negociação, incluindo criptomoedas, forex e commodities, e algumas das alavancagens mais altas do mercado; até 150x em criptomoedas e até 1.000x em forex.

  • Execução de ordens a preço justo, latência em milissegundos, deslizamento mínimo

Gerar blockchain com Aptos, que possui a menor latência até o momento, pode fornecer a experiência de transação on-chain mais rápida. Para os traders, isso significa uma experiência de negociação mais rápida e menos deslizamento de preço devido a atrasos na execução.

  • Transações descentralizadas e não custodiais sem risco de contraparte

Os traders negociam com um pool de liquidez (Merkle LP), que atua como contraparte de cada transação no acordo. Todas as transações e liquidações são executadas por contratos inteligentes, e não há hospedagem de fundos do usuário em nenhum momento.

  • Taxa de processamento mais baixa

Merkle Trade afirma ter uma das taxas mais baixas do mercado até o momento. No lançamento, as taxas para pares de negociação de criptomoedas eram tão baixas quanto 0,05%, e as taxas para pares de negociação forex eram tão baixas quanto 0,0075%.

DYDX

DYDX

dYdX[4]é uma bolsa descentralizada (DEX) que capacita os usuários a negociar contratos perpétuos de forma eficiente, mantendo controle total sobre os ativos. Desde o seu lançamento em 2021, o dYdX V3 adotou uma solução exclusiva de escalonamento de segunda camada não custodial para implementar sua bolsa, mas seu livro de ordens e mecanismo de correspondência ainda são gerenciados centralmente.

Agora, com o dYdX V4, o protocolo está crescendo para sua própria cadeia, e todo o protocolo está sendo completamente reestruturado para alcançar completa descentralização, ao mesmo tempo que aumenta a throughput. O dYdX também inclui três funções: empréstimos, negociação alavancada e contratos perpétuos. A negociação alavancada vem com uma função de empréstimo. Os fundos depositados pelos usuários formam automaticamente um pool de fundos. Se houver capital insuficiente durante a negociação, o juro é automaticamente emprestado e pago.

Análise de segurança de alavancagem

Apresentamos os tipos comuns e aplicações de alavancagem em DeFi. Além disso, ainda existem muitos problemas de segurança no design da alavancagem que merecem nossa atenção. Analisaremos os problemas de segurança e pontos de auditoria da alavancagem DeFi com base em casos específicos de auditoria.

Distinguir entre ordens limitadas e ordens de mercado

Na maioria das aplicações de trocas alavancadas, existem ordens limitadas e ordens de mercado. A diferenciação estrita e verificação de ordens limitadas e ordens de mercado é muito necessária.A seguir, faremos uma análise detalhada dos problemas que encontramos na auditoria do Merkle Trade [5].

deixe agora = timestamp: :now_seconds (); se (agora - order.created_timestamp > 30) { cancel_order_internal(_order_id, order, T_CANCEL_ORDER_EXPIRED); return };

Esta parte do código realiza as verificações na função de ordem, onde verifica se passaram mais de 30 segundos desde que a ordem foi criada. Se as condições forem atendidas, chame cancel_order_internal () para cancelar a ordem. No entanto, se a ordem for uma ordem de limite, significa que a ordem tem um preço específico definido pelo trader e eles estão dispostos a comprar ou vender o ativo a esse preço. Não deve haver tal julgamento ao executar ordens de limite; isso pode fazer com que a maioria das ordens de limite não seja executada. Portanto, é importante diferenciar estritamente a lógica de negociação entre ordens de limite e ordens de mercado.

Erro de cálculo de alavancagem

Erros de cálculo sempre foram um problema muito comum no DeFi, e também são particularmente comuns na alavancagem. Usaremos os problemas descobertos pelo protocolo Unstoppable [6] em auditorias de terceiros para examinar minuciosamente os problemas de cálculo da alavancagem.

Vamos dar uma olhada no código para calcular a alavancagem no Unstoppable:

def _calculate_calculation ( _position_value: uint256, _debt_value: uint256, _margin_value: uint256) - > uint256: if _position_value < = _debt_value: #bad debt Return max_value (uint256) Return ( precision * (_debt_value + _margin_value) /(_position_value - _debt_value) /PRECISION )

A função _calculate_margin causou a alavancagem a ser calculada incorretamente ao usar _debt_value + _margin_value como numerador em vez do _position_value. Os três parâmetros de entrada da função _position_value, _debt_value e _margin_value são todos determinados pelas informações de preço fornecidas pelos oráculos on-chain da Chainlink. Aqui, _debt_value indica o valor da conversão da parcela da dívida da posição em um montante de dívida em dólares. _margin_value indica o valor atual do montante de margem inicial da posição (em dólares americanos). _position_value indica o valor atual (em dólares americanos) do montante de posição inicial da posição.

O problema com o cálculo acima é que _debt_value + _margin_value não representa o valor da posição. A alavancagem é a relação entre o valor da posição atual e o valor da margem atual. _position_value - _debt_value está correto. Indica o valor da margem atual, mas _debt_value + _margin_value não representa o valor atual da posição, porque não há garantia de que os tokens de dívida e os tokens de posição tenham flutuações de preço relacionadas.

Por exemplo, o token de dívida é ETH, e o token de posição é BTC.

Alice usa 1 ETH como margem, empresta 14 ETH ($2.000 cada) e obtém 1 BTC ($30.000 cada) em tokens de posição. A alavancagem é 14.

No dia seguinte, o preço do ETH permaneceu em $2,000/ETH, mas o preço do BTC caiu de $30,000/BTC para $29,000/BTC. Neste ponto, a alavancagem deve ser (_valor_posição == 29,000)/(_valor_posição == 29,000 - _valor_dívida == 28,000) = 29, não o valor calculado no contrato: (_valor_dívida == 28,000 + _valor_margem == 2,000)/(_valor_posição == 29,000 - _valor_dívida == 28,000) = 30.

Portanto, para corrigir isso, a fórmula correta mencionada acima deve ser usada para calcular a alavancagem em contratos inteligentes. Um cálculo errado de alavancagem pode levar a liquidações injustas ou posições excessivamente alavancadas diante de flutuações de preços.

Em contratos inteligentes, garantir o cálculo adequado da alavancagem é fundamental para manter a robustez do sistema e os interesses dos usuários. O cálculo correto da alavancagem deve ser baseado na proporção entre o valor atual da posição e o valor atual da margem. Se a fórmula de cálculo errada for usada, pode fazer com que o sistema reaja de forma inadequada às mudanças de preço, liquidar posições que não deveriam ser liquidadas ou permitir que posições excessivamente alavancadas continuem a existir, aumentando assim o risco do sistema e dos usuários.

Erros lógicos

Erro de lógica

Erros lógicos requerem atenção especial em auditorias de contratos inteligentes, especialmente em lógicas complexas como negociações alavancadas DeFi.

Vamos discutir as questões lógicas a serem observadas na alavancagem DeFi usando os problemas descobertos pela Tigris[7](Tigris, uma plataforma descentralizada de negociação alavancada sintética com base em Arbitrum e Polygon) em uma auditoria de terceiros.

Vamos dar uma olhada na lógica da função de fechamento do limite de preço em Tigris:

Function limitClose ( uint _id, bool _tp, priceData calldata _priceData, Bytes calldata _signature) external{ _checkDelay(_id, false);   (uint _limitPrice, endereço _tigAsset) = tradingExtension._limitClose(_id, _tp, _priceData, _signature);   _closePosition(_id, DIVISION_CONSTANT, _limitPrice, endereço(0), _tigAsset, verdadeiro);}função _limitClose ( uint _id, bool _tp, priceData calldata _priceData, Bytes calldata _signature) external view returns (uint _limitPrice, address _TIGAsset) { _checkGas (); iPosition.trade memory _trade = position.trades (_id);   _tigAsset = _trade.tigAsset;   getVerifiedPrice (_trade.asset, _priceData, _signature, 0); uint256 _price = _priceData.price;   if (_trade.orderType! = 0) reverter (" 4 "); isLimit if (_tp) { if (_trade.tpPrice == 0) reverter (" 7 "); limitNotSet if (_trade.direction) { if (_trade.tpPrice > _price) revert("6"); //LimitNotMet } else { if (_trade.tpPrice < _price) revert("6"); //LimitNotMet } _limitPrice = _trade.tpPrice;   } else { if (_trade.slprice == 0) reverter (" 7 "); limitNotSet if (_trade.direction) { if (_trade.slPrice < _price) revert("6"); //LimitNotMet } else { if (_trade.slPrice > _price) revert("6"); //LimitNotMet } //@audit stop loss é fechado ao preço especificado pelo usuário NÃO preço de mercado _limitPrice = _trade.slprice;   }}

Ao usar o stop-loss para fechar uma posição, o preço de fechamento do usuário é o preço de stop-loss definido pelo usuário, não o preço atual do ativo. No caso de mercados direcionais e alta alavancagem, os usuários podem abusar disso para alcançar negociações quase sem risco. Os usuários podem abrir uma posição longa e definir um preço de stop-loss que é $0,01 mais baixo do que o preço atual.

Se o preço cair imediatamente na próxima atualização, eles fecharão sua posição a preço de entrada e pagarão apenas as taxas de abertura e fechamento. Se os preços subirem, é provável que ganhem muito dinheiro. Como resultado, os usuários podem usar métodos de precificação de stop-loss de forma inadequada para abrir negociações com alta alavancagem, alto potencial de ganhos e baixo risco de queda.

Flutuações de preços

Preço Tubs

O impacto das flutuações de preços na alavancagem DeFi é muito importante. Apenas considerando sempre as flutuações de preços podemos garantir a segurança dos acordos de alavancagem. Vamos usar o DeFiner [8]protocol como exemplo para uma análise aprofundada dos problemas descobertos em uma auditoria de terceiros:

O protocolo DeFiner passa por duas verificações antes de processar retiradas.

Primeiro, o método verifica se o valor solicitado pelo usuário para sacar excede o saldo desse ativo:

função autorização (endereço _accountAddr, endereço _token, uint256 _amount) externo apenasAutorizado retorna (uint256) { //Verifique se o valor é menor que o saldo do usuário requer (_amount < = getDepositBalanceCurrent (_token, _accountAddr), "Saldo ganho."); uint256 borrowLtv = globalConfig.tokenInfoLogistry().getBorrowLtv(_token);

Em segundo lugar, o método verifica se os saques farão com que a taxa de alavancagem do usuário seja muito alta. O valor sacado será subtraído do 'poder de empréstimo' do preço atual do usuário. Se o valor total emprestado pelo usuário exceder o novo poder de empréstimo, o método falhará porque o usuário não terá mais colateral suficiente para sustentar sua posição de empréstimo. No entanto, esse requisito só será verificado se o usuário não estiver excessivamente alavancado:

se (getBorrowEth (_accountAddr) <= getBorrowPower (_accountAddr)) exigir (getBorrowEth (_accountAddr) <= getBorrowPower (_accountAddr) .sub (_amount.mul (globalConfig.tokenInfoRegistry().priceFromAddress(_token)).mul(borrowLtv).div(utils.getDivisor(address(globalConfig), _token)).div(100)), " Colloquium Collège when ");

Se os usuários tiverem emprestado mais do que seu "poder de empréstimo" permite, eles podem sacar dinheiro independentemente. Isso pode acontecer em várias situações, sendo a mais comum as flutuações de preço. O acordo não considerou o impacto das flutuações de preço no contrato, o que causou esse problema.

Outros

Além dos efeitos de não distinguir entre ordens limitadas e ordens de mercado, erros de cálculo, erros lógicos e flutuações de preços mencionados acima, existem muitos pontos de segurança relacionados aos acordos de alavancagem que requerem nossa atenção. Isso inclui, mas não se limita a, questões como ataques de empréstimos instantâneos, manipulação de preços, segurança de profetas, controle de autoridade, verificações de alavancagem insuficientes ou falta de verificações. Esses fatores devem ser cuidadosamente considerados ao projetar e implementar acordos de alavancagem para garantir a robustez do acordo e a segurança dos ativos do usuário. Medidas preventivas, monitoramento em tempo real e planos de resposta de emergência também são essenciais para reduzir os riscos potenciais e proteger os interesses do usuário.

somado

Conclusão

A introdução da negociação alavancada nos protocolos DeFi de fato proporcionou ao mercado uma maior manobrabilidade, ao mesmo tempo em que trouxe mecanismos de negociação mais complexos. Embora a negociação alavancada forneça aos usuários mais oportunidades de investimento, seus riscos potenciais e desafios para a segurança do protocolo também se tornaram mais significativos.

À medida que a alavancagem aumenta, a operação dos acordos torna-se mais flexível, mas, como resultado, tornam-se mais vulneráveis e suscetíveis a várias ameaças de segurança. Isso inclui a possibilidade de falha em fazer uma distinção rigorosa entre ordens de limite e ordens de mercado, erros de cálculo, erros lógicos e extrema sensibilidade a fatores como flutuações de preços. Neste caso, devemos prestar mais atenção à segurança do protocolo para garantir que os ativos dos usuários sejam efetivamente protegidos.

Como uma equipe líder de segurança blockchain no campo Web3, a ScaleBit está distribuída no Vale do Silício, Singapura, Hong Kong, Taiwan, etc. Nós fornecemos soluções de segurança blockchain para mais de 200 instituições e projetos no setor global de Web3, acumulamos mais de 180.000 linhas de código de auditoria e protegemos mais de $8 bilhões em ativos de usuários. Tornar a Segurança Acessível a Todos! Se você tiver alguma necessidade de auditoria de segurança, sinta-se à vontade para entrar em contato conosco. Iremos fornecer soluções de segurança detalhadas, abrangentes e profissionais para protegê-lo e ao campo Web3 com segurança!

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [ScaleBit]e os direitos autorais pertencem ao autor original [PolarisSe você tiver alguma objeção à reimpressão, entre em contato com a equipe Gate Learn, e a equipe lidará com isso o mais rápido possível de acordo com os procedimentos relevantes.

  2. Aviso Legal: As visões e opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem nenhum conselho de investimento.

  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Начните торговать сейчас
Зарегистрируйтесь сейчас и получите ваучер на
$100
!