Back to Blog

Análise Profunda e Reflexões sobre o Incidente de Ataque ao Protocolo Resupply

Phalcon Security
6 de julho de 2025
11 min read

Em 26 de junho de 2025, o protocolo de stablecoin Resupply implantado na mainnet da Ethereum foi atacado, resultando na perda de aproximadamente $10 milhões em ativos. Devido a um problema na implementação do oráculo de preços do contrato relevante, para Markets recém-criados com baixa liquidez, o atacante conseguiu manipular o preço relativo (ou seja, a taxa de câmbio entre o ativo emprestado e o ativo de garantia) do ativo emprestado (reUSD emitido pela Resupply) por meio de um ataque de doação, tornando-o 0. Isso permitiu que o atacante contornasse a verificação de saúde do ativo e emprestasse uma grande quantidade de reUSD para obter lucro.

Depois que a BlockSec foi a primeira na rede a emitir publicamente um alerta antecipado e fornecer uma análise preliminar (Tweet1, Tweet2), a Resupply posteriormente também publicou um anúncio oficial, mas não detalhou muitos aspectos técnicos. Este artigo fornecerá uma análise mais detalhada. Por outro lado, após o ataque, também houve intensa controvérsia na comunidade entre a equipe do projeto e seus stakeholders. Este artigo se aprofundará e discutirá as complexas relações ecológicas por trás do protocolo, para referência dos leitores.


1. Contexto

1.1 Sobre o protocolo Resupply

Resupply é um protocolo de stablecoin descentralizado que pertence ao ecossistema Curve. A stablecoin emitida pela Resupply é chamada reUSD. Trata-se de uma stablecoin descentralizada respaldada por posições de dívida colateralizada (CDPs), apoiada por outras stablecoins — incluindo crvUSD e frxUSD — que geram juros em mercados de empréstimo em plataformas externas. Os usuários podem fornecer crvUSD e frxUSD para emprestar reUSD, alcançando o refinanciamento de ativos em stablecoin.

Especificamente, os usuários podem realizar operações relacionadas a empréstimos em um Market da Resupply implantado on-chain. A criação e o comportamento dos Markets são gerenciados pela DAO. Cada Market especifica um Vault ERC-4626 como o ativo de garantia (collateral) e usa o ativo correspondente a esse Vault como o subjacente. Os usuários depositam garantia (o Vault ou o ativo do Vault) no Market para emprestar reUSD.

Tomando como exemplo o Market 0x6e90 e o Vault 0x0114 envolvidos neste ataque, os ativos (tokens) relevantes são os seguintes:

  • Market 0x6e90

    • underlying: crvUSD
    • collateral: cvcrvUSD (ou seja, Vault 0x0114)
    • borrowed: reUSD
  • Vault 0x0114

    • asset: crvUSD (na verdade armazenado no Curve LlamaLend Controller, que também é um Market)
    • collateral: wstUSR
    • borrowed: crvUSD
    • share: cvcrvUSD (o token ERC-4626 emitido pelo Vault)

Em outras palavras, os usuários podem dar em garantia uma certa quantidade de cvcrvUSD (ou crvUSD, que na prática será convertido em cvcrvUSD por meio do Vault) neste Market para emprestar reUSD.


1.2 Como o sistema determina se um usuário está elegível para emprestar um ativo?

Semelhante a protocolos de empréstimo em geral, o Resupply Market também realizará uma verificação de saúde do ativo na posição de um usuário (por meio do modifier isSolvent).

O isSolvent acaba chamando a função _isSolvent, que verifica o LTV (Loan-to-Value ratio), exigindo que a proporção entre o ativo emprestado e o ativo de garantia não exceda o valor máximo definido pelo sistema (_ltv <= maxLTV).

Pode-se observar que o cálculo do LTV depende da taxa de câmbio (_exchangeRate), ou seja, o preço (proporção de câmbio) do ativo emprestado em relação ao ativo de garantia.


2. Análise do Ataque

2.1 Análise da Causa Raiz

Do ponto de vista do código do contrato, a causa principal do ataque foi que a implementação do oráculo de preços do Resupply Market apresentava um problema. Para Markets recém-criados com baixa liquidez, o atacante podia manipular a taxa de câmbio por meio de um ataque de doação, contornando assim a verificação de saúde e emprestando uma grande quantidade de reUSD para obter lucro.

Como calcular a exchange rate?

A fórmula é a seguinte:

Obviamente, se getPrices retornar um preço maior que 1e36, o arredondamento para baixo da divisão de inteiros resultará em _exchangeRate = 0.

Como manipular o preço?

De acordo com o código, o preço pode ser calculado da seguinte forma:

Como o código define precision = 1, DEAD_SHARES = 1000, e shares = 1e18.

Por fim, após substituir as variáveis, a fórmula de cálculo do preço é a seguinte:

Pode-se observar que, para amplificar o valor do price, a chave é ampliar a diferença entre total_assets e totalSupply, tornando total_assets extremamente grande enquanto totalSupply permanece muito pequeno. Na implementação real do protocolo Resupply, total_assets na fórmula depende do underlying (crvUSD), e totalSupply depende das shares (cvcrvUSD) correspondentes à liquidez geral no Market. Este é precisamente o cenário clássico de ataque de doação.

2.2 Análise da Transação de Ataque

De acordo com a transação de ataque [4], pode-se analisar que o atacante executou os seguintes passos principais:

  1. Emprestou 4.000 USDC via flash loan e os trocou por 3.999 crvUSD.

  2. Doou 2.000 crvUSD para o Controller 0x8970. Antes da doação, o Controller 0x8970 detinha 0 crvUSD. Após a doação, o valor registrado de crvUSD se tornou 2000000000000000000000 (com 18 decimais).

  3. Depositou aproximadamente 2 crvUSD no Vault 0x0114 e recebeu 1 share (cvcrvUSD). Nesse momento, o valor registrado de crvUSD era 2002000000000000000001 (com 18 decimais).

  4. Adicionou 1 unidade (ou seja, 1 share do Vault 0x0114) de garantia ao Market 0x6e90.

  5. Emprestou 10.000.000 reUSD do Market 0x6e90. Nesse momento, _exchangeRate = 0, resultando em _ltv = 0, então a verificação _isSolvent foi aprovada.

Por que _exchangeRate era igual a 0? Porque, por meio dos passos anteriores, o atacante manipulou o contrato para chegar ao seguinte estado:

Recordando o método de cálculo da exchange rate:

Como price > 1e36, _exchangeRate = 0.

  1. Trocou o reUSD emprestado por lucro.

3. Lições Aprendidas

O Market atacado na Resupply usava uma implementação de oráculo de preços semelhante ao contrato modelo da Curve.

No entanto, a documentação oficial da Curve já havia indicado o escopo de aplicação dessa implementação — infelizmente, a Resupply parece não ter levado em consideração esse aviso de aplicabilidade em sua implantação.

4. Relações e Controvérsia na Comunidade

4.1 Rede Complexa de Relações entre Cinco Grandes Projetos no Ecossistema Curve

Para entender o impacto mais profundo do incidente da Resupply, primeiro precisamos observar as relações complexas entre os cinco protocolos centrais dentro do ecossistema Curve.

A Curve Finance é o núcleo de todo o ecossistema, fornecendo pools de liquidez, crvUSD e o protocolo LlamaLend, que sustentam as operações da Resupply, Prisma, Convex e Yearn. A Convex otimiza os rendimentos da Curve por meio de staking e governança e fornece mecanismos de recompensa adicionais para Prisma e Resupply. A Prisma depende dos tokens LP da Curve e das funções de aumento de rendimento da Convex, enquanto a Resupply se baseia diretamente no LlamaLend da Curve para emitir reUSD e foi desenvolvida em conjunto pela Convex e pela Yearn. A Yearn não apenas otimiza os rendimentos dos pools da Curve, mas também impulsionou o desenvolvimento da Resupply por meio da colaboração com a Convex.

Curve Finance: Como plataforma central, os pools de liquidez da Curve (como o pool de crvUSD) e o protocolo LlamaLend são usados diretamente pela Resupply para emitir reUSD, pela Prisma para fazer staking de tokens LP, pela Yearn para otimização de rendimento e pela Convex para votação de governança.

Convex: A Convex é o protocolo de aumento de rendimento da Curve. Os usuários podem fazer staking de tokens LP da Curve para ganhar recompensas mais altas em CRV, além dos tokens CVX da Convex. A Convex controla quase 50% do poder de voto de governança da Curve e fornece mecanismos de aumento de rendimento para Prisma e Resupply.

Prisma: A Prisma faz staking dos tokens LP da Curve, e os usuários obtêm recompensas aumentadas (cvxPRISMA) por meio da Convex. A Prisma depende da liquidez da Curve e dos mecanismos de rendimento da Convex.

Yearn: A Yearn é um agregador de rendimento que oferece aos usuários retornos elevados ao otimizar os rendimentos dos tokens LP da Curve (aumentados via Convex). A Yearn colaborou com a Convex para desenvolver a Resupply e utiliza amplamente os pools da Curve em suas estratégias de rendimento.

Resupply: Desenvolvida em conjunto pela Convex e pela Yearn, ela permite que os usuários emprestem reUSD dando em garantia stablecoins como o crvUSD e faz staking automático de tokens na Convex para ganhar recompensas em CRV e CVX, formando um ciclo de otimização de rendimento.

4.2 Controvérsia e Impacto

No entanto, quando a Resupply foi atacada, essa complexa rede de relações imediatamente se tornou o foco da controvérsia. O fundador da Curve, Michael Egorov, rapidamente se distanciou da Resupply, enfatizando:

“There is no single person from Curve working on that project… don’t generalize to Curve please.”

Essa declaração de dissociação refletiu como as intrincadas relações de cooperação dentro do ecossistema DeFi podem ser frágeis em tempos de crise.

Esses projetos interrelacionados formam juntos um ecossistema altamente acoplado — em tal sistema, qualquer problema em um elo pode desencadear uma reação em cadeia. Portanto, não é surpresa que o incidente de ataque à Resupply tenha gerado uma ampla discussão na comunidade sobre a interdependência e a segurança dos protocolos.


5. Reflexões Adicionais

5.1 Linha do Tempo

  • 17 de maio de 2025: O endereço oficial da Resupply 0x1f84 implantou um novo Market LlamaLend através do Curve’s OneWay Lending Factory.

    • O Market usava crvUSD como ativo de empréstimo e wstUSR como token de garantia.
    • O contrato Vault ERC-4626 era 0x0114, e o Controller correspondente era 0x8970.
  • 31 de maio de 2025: Uma nova proposta wstUSR-long LlamaLend Market foi publicada na página de governança da Resupply. Esta proposta visava permitir que os usuários mintassem reUSD por meio do LlamaLend Market.

  • 11 de junho de 2025: A proposta foi publicada on-chain.

  • 26 de junho de 2025, 00:18:47 (UTC): A proposta foi aprovada, e o endereço oficial da Resupply 0x0417 implantou um novo ResupplyPair (ou seja, o Market Resupply crvUSD/wstUSR) 0x6e90, vinculando o Vault 0x0114 e o Controller 0x8970.

    • Vinculou o Vault 0x0114 e o Controller 0x8970.
    • Usou a posição de dívida colateralizada do Vault (ou seja, cvcrvUSD, com crvUSD como subjacente) como garantia.
  • 26 de junho de 2025, 01:53:59 (UTC): Cerca de 1,5 hora após a implantação do Market 0x6e90, o atacante executou com sucesso o exploit. No mesmo momento, a BlockSec detectou o ataque e tentou contatar a equipe do projeto.

  • 26 de junho de 2025, 02:26 (UTC): Após não conseguir contatar a equipe e confirmar que não havia mais perdas, a BlockSec emitiu um alerta público.

  • 26 de junho de 2025, 02:53:23 (UTC): A equipe do projeto pausou o protocolo.

5.2 Se Houvesse Phalcon Security, a Tragédia Poderia Ter Sido Evitada

BlockSec Phalcon Security representa o mais recente avanço na proteção de segurança DeFi. Ao monitorar transações na etapa do mempool, o Phalcon Security é capaz de identificar padrões anormais no instante em que uma transação de ataque entra no mempool.

O sistema, impulsionado por um mecanismo de análise inteligente, integra mais de 200 assinaturas de ataques típicos. Nos últimos seis meses, manteve uma taxa de falsos positivos ultrabaixa, inferior a 0,0001%, alcançando uma detecção de ameaças verdadeiramente precisa.

O sistema utiliza uma estratégia proprietária de lances de gas para garantir que a transação de defesa supere a transação de ataque, ao mesmo tempo em que aciona automaticamente a função de pausa de emergência do protocolo.

Todo o processo de resposta suporta múltiplos modos de controle de permissão — incluindo carteiras EOA e multisig — fornecendo soluções de segurança flexíveis para diferentes tipos de protocolos.

Se a Resupply tivesse integrado o sistema Phalcon Security ao implantar o Market, o ataque poderia ter sido completamente evitado

Dentro das 1,5 hora após a implantação do Market 0x6e90, o sistema Phalcon Security teria detectado automaticamente a nova implantação do Market, analisado de forma inteligente seus parâmetros de configuração e identificado o risco potencial de um ataque de doação.

O sistema teria enviado imediatamente um alerta de risco à equipe do projeto, sugerindo a adição de proteção de liquidez inicial ou o ajuste dos parâmetros relevantes.

Mesmo após a ocorrência do ataque, a implantação do Phalcon Security ainda traria um enorme valor para a Resupply e para todo o ecossistema Curve

Um sistema de monitoramento transparente e em tempo real demonstra aos usuários e à comunidade o firme compromisso da equipe do projeto com a segurança, e o mecanismo de proteção contínua 24/7 garante que incidentes semelhantes nunca mais aconteçam. Dados públicos de monitoramento de segurança aumentam a transparência do projeto e servem como um meio crítico para reconstruir a confiança da comunidade. Para os projetos afetados, adotar proativamente uma solução de segurança de ponta comprova seu senso de responsabilidade com a segurança dos fundos dos usuários, e a parceria com um líder do setor como a BlockSec também fornece um forte endosso para a reputação do projeto no campo da segurança.

Atualmente, mais de $50 bilhões em ativos escolheram confiar na proteção do Phalcon Security. Já conseguimos impedir com sucesso mais de 20 ataques hackers reais, economizando mais de $20 milhões em perdas de ativos. Nos últimos seis meses, o sistema manteve um registro perfeito de precisão de detecção e alcançou velocidades de resposta em nível de milissegundos, sempre à frente dos atacantes. O Phalcon Security atualmente suporta mais de 20 grandes redes blockchain, incluindo Ethereum, BSC e Arbitrum, fornecendo proteção de segurança abrangente e multichain para o ecossistema DeFi.

A perda de $10 milhões da Resupply e inúmeros outros incidentes de ataque nos dizem que, no mundo DeFi, a segurança não é uma opção — é uma necessidade para a sobrevivência.

Não espere pelo próximo ataque para se arrepender. Implante agora a proteção de segurança mais forte para o seu protocolo.

A equipe de especialistas da BlockSec está pronta para realizar uma avaliação de segurança completa para o seu projeto.

🔗 Phalcon Security:

https://blocksec.com/phalcon/security

🔗 Agende uma demonstração:

https://blocksec.com/book-demo


Get Real-Time Protection with Phalcon Security

Audits alone are not enough. Phalcon Security detects attacks in real time and blocks threats mid-flight.

phalcon security