Oráculo: Os olhos do DeFi, mas também a sua fraqueza

robot
Geração do resumo em andamento

Autor: Zhang Qianwen

Em novembro de 2020, uma pessoa usou uma quantia emprestada para, em 15 segundos, desviar quase 1 milhão de dólares de um protocolo DeFi.

Em primeiro lugar, contraiu um grande empréstimo de ETH através de um flash loan e, depois, concentrou as compras de sETH num pool de liquidez extremamente baixa, empurrando o preço para cima de forma abrupta em poucos segundos.

Em seguida, depositou esses sETH como colateral no protocolo bZx. O que o protocolo «viu» foi o preço artificialmente inflacionado naquele instante; assim, considerou que esses sETH tinham um valor muito elevado e, de acordo com as regras, liberou empréstimos WBTC muito acima do valor real.

Depois de receber os WBTC, o atacante devolveu rapidamente o flash loan, levando consigo uma enorme diferença de preço e afastando-se.

Todo o processo não envolveu invasão por hacker, nem falhas de código, nem abuso de permissões. O contrato executou rigorosamente cada passo de acordo com as regras. O único problema estava em:

O «mundo» que ele «viu» estava errado.

Este é um dos limites mais fundamentais do DeFi — contratos on-chain, na essência, são um sistema que não consegue ver a realidade do mundo exterior.

01 Contratos on-chain são «cegos»

Contratos inteligentes vivem num mundo fechado.

Eles conseguem ver tudo o que acontece na cadeia — quem transferiu quanto para onde, quantos tokens cada endereço detém, em que momento cada transação foi empacotada num bloco — estas informações podem ser lidas e são absolutamente precisas.

Mas o mundo fora da cadeia, esse é completamente invisível para eles: qual é o preço do ETH hoje? O Bitcoin atingiu uma nova máxima? Algum stablecoin perdeu o peg? O mercado de ações de Nova Iorque subiu ou desceu hoje? O contrato não sabe de nada.

Num sistema de empréstimos DeFi, isto é uma contradição fatal.

A liquidação depende do preço atual dos ativos dados em garantia; mas o contrato não consegue ver o preço por si próprio e precisa que alguém lho informe.

É precisamente por isso que existem oráculos: são os «olhos» dos contratos on-chain, responsáveis por transportar para a cadeia as informações reais do mundo fora da cadeia, para que os contratos as possam ler e utilizar. Mas o problema aparece:

Quem garante que essa informação é verdadeira?

02 Oráculo: mensageiro do mundo on-chain

Um oráculo é, na essência, uma infraestrutura de transmissão de informação que escreve dados do mundo real (preços, taxas de juro, resultados de eventos, etc.) num formato legível por contratos na blockchain.

Este conceito parece simples, mas os desafios de engenharia residem no facto de que o princípio central de conceção de uma blockchain é «não confiar em nenhuma entrada externa»; vale tudo o que seja dados verificáveis na cadeia. E o que os oráculos trazem são precisamente dados provenientes de fora da cadeia — que, naturalmente, estão fora dos limites deste sistema de confiança.

Para resolver esta questão, o mercado formou duas soluções principais.

A primeira é o preço na cadeia, que lê diretamente os preços das transações numa exchange descentralizada (DEX). A mais típica é o preço médio ponderado no tempo (TWAP) do Uniswap — não se toma o preço instantâneo num determinado momento; em vez disso, toma-se a média de um período passado, diluindo as oscilações do preço a curto prazo através do tempo.

A segunda são redes de oráculos descentralizadas, representadas pela Chainlink. Vários nós independentes obtêm preços a partir de diferentes canais, agregam-nos e, depois, publicam a mediana na cadeia; nenhum nó consegue, por si só, determinar o resultado final.

Ambas as soluções têm os seus prós e contras, mas estão a tentar responder à mesma pergunta: como fazer com que os contratos on-chain acreditem num número que vem de fora da cadeia?

03 Por que não usar diretamente o preço em tempo real?

A maioria das pessoas, quando tem o primeiro contacto com oráculos, tem uma intuição: já que o preço vem do mercado, por que não ler diretamente o preço em tempo real da exchange?

O problema é que: o preço em tempo real não é igual ao preço real.

Em mercados com liquidez suficiente e elevada atividade de negociação, ambos normalmente ficam relativamente próximos; mas em pools com menor liquidez e menor profundidade, basta haver capital suficiente para o preço ser inflacionado artificialmente num intervalo de tempo extremamente curto, chegando a muito acima do nível real do mercado.

E o contrato inteligente não consegue determinar se esse preço foi formado naturalmente ou se foi intencionalmente manipulado. Ele só consegue ler esse número e executar as regras com base nele — permitindo que mutuários peguem emprestado mais fundos. Quando o preço volta a cair, o valor real do colateral não chega sequer para cobrir o empréstimo e o protocolo acaba por registar créditos incobráveis.

É exatamente por isso que o evento de ataque do protocolo bZx mencionado no início do artigo se torna verdadeiro — e também qual é o custo de usar preços em tempo real: o oráculo trata «um número que pode ser manipulado temporariamente» como se fosse a própria realidade.

04 A solução da Chainlink: fazer o preço ser descentralizado

Se um sistema depende apenas de uma única fonte de dados, quando essa fonte falha ou é manipulada, todo o protocolo fica desviado. A forma mais direta de reduzir este risco não é confiar num indivíduo mais forte, mas sim fazer com que vários nós independentes reportem separadamente, e depois extrair um resultado relativamente mais robusto a partir deles.

A solução da Chainlink adota precisamente esta ideia: vários nós independentes obtêm preços a partir de diferentes fontes de dados, reportam cada um, e o sistema usa a mediana como resultado final. Assim, mesmo que um único nó esteja errado, ou seja influenciado por um atacante, não consegue sozinho determinar o preço final; e para um atacante controlar simultaneamente mais de metade dos nós, em termos económicos, é praticamente impossível.

Este mecanismo alivia eficazmente o problema da manipulação por ponto único.

Mas também introduz um novo custo: existe atraso na atualização.

O preço on-chain não é sincronizado em tempo real; os nós recolhem dados, chegam a consenso e os escrevem na blockchain — todo esse processo leva tempo. Quando o mercado oscila de forma normal, esse atraso não é relevante. Mas durante oscilações acentuadas, o preço do oráculo pode não acompanhar a alteração do preço real.

É precisamente por isso que, na secção «Por que é que os empréstimos DeFi têm de ser com sobrecolateralização?», se afirma que os protocolos de empréstimo DeFi precisam de definir um buffer de sobrecolateralização: não é apenas para lidar com a volatilidade do próprio preço, mas também para, durante o período em que o oráculo ainda não teve tempo de atualizar, o sistema continuar a ter margem de segurança suficiente para acionar a liquidação.

05 Ataque a oráculos: a crise de confiança mais cara

O problema dos oráculos não desapareceu completamente com o aparecimento da Chainlink.

Ao longo da história do DeFi, vulnerabilidades relacionadas com oráculos têm sido, em muitos casos, uma das categorias de ataques com perdas mais graves. Entre 2021 e 2023, apenas com ataques de manipulação de oráculos com registo verificável, as perdas acumuladas já ultrapassaram centenas de milhões de dólares.

Estas perdas têm uma característica em comum: os atacantes não precisam de encontrar falhas no código. Eles só precisam de encontrar a brecha entre o preço do oráculo e o preço real do mercado e, depois, usar fundos para alargar essa brecha, fazendo com que o contrato execute, com base num preço distorcido, uma operação que lhes seja favorável. É um tipo de risco mais difícil de defender do que uma falha de código — porque não é possível escrever no código uma regra para determinar «se este preço é real».

O problema dos oráculos, na essência, não é uma falha de um componente específico, mas sim um dilema:

Quando usa mais fontes de dados para combater a manipulação, tem de aceitar um atraso maior;

Quando procura um preço mais próximo do tempo real, tem de assumir o risco de ser manipulado temporariamente.

Não existe uma solução perfeita para este dilema.

E é precisamente por isso que a existência dos oráculos revela uma realidade mais profunda do DeFi: os contratos on-chain conseguem ser absolutamente transparentes e executar de forma absolutamente fiel, mas desde que a informação de entrada em que se baseiam seja verdadeira. Assim que a entrada for distorcida, mesmo um código perfeito só fará — de forma ainda mais eficiente — avaliações e execuções erradas.

ETH6,5%
WBTC4,22%
BTC4,32%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Repostar
  • Compartilhar
Comentário
Adicionar um comentário
Adicionar um comentário
Sem comentários
  • Marcar