A maioria das perdas em ativos do mundo real (RWA) não começa no imóvel subjacente, numa letra do tesouro ou num empréstimo. Começa quando um oráculo, o serviço que leva um preço off-chain para a cadeia, deixa de atualizar ou reporta um número que o mercado já não aceita. Enquanto o feed estiver ativo, os sistemas de empréstimos em DeFi (finanças descentralizadas) tratam alegremente um NAV (valor patrimonial líquido) desatualizado como se fosse verdade, permitindo que os mutuários levantem fundos contra garantias que já valem menos do que o empréstimo.
Pontos-chave
- O risco das RWA vive na camada do oráculo, e não na do ativo: um empréstimo tokenizado pode perder 40% off-chain enquanto os rácios de garantia on-chain parecem saudáveis.
- As explorações por preços desatualizados são a falha mais comum dos oráculos no crédito tokenizado, mais frequentes do que a manipulação direta ou ataques com flash loans.
- A Chainlink e a Pyth utilizam arquiteturas diferentes (feeds push agregados versus feeds pull de baixa latência), e cada uma tem um padrão de falha distinto em situações de stress.
- Os estudos de caso de eventos de crédito da Maple Finance e da Goldfinch mostram como os oráculos de NAV ficam atrasados em relação à realidade durante dias ou semanas enquanto as posições permanecem abertas e levantáveis.
- Os motores de liquidação on-chain confiam no último valor reportado pelo oráculo, pelo que "sem atualização recente" se torna silenciosamente "assumir que está tudo bem".
O que faz na verdade um oráculo de RWA, e porque é o ponto único de falha
Tokenizar um ativo do mundo real significa construir uma representação on-chain de algo que, falando estritamente, não vive on-chain: um conjunto de empréstimos de crédito privado, uma cesta de letras do tesouro dos EUA de curto prazo, uma participação em cotas tokenizadas de um fundo do mercado monetário ou uma nota garantida por imóveis. O contrato inteligente precisa de um número para impor regras de garantia, marcar a mercado as posições e acionar liquidações. Esse número vem de um oráculo.
Para ativos nativos de cripto, os oráculos são, em grande medida, um problema de engenharia resolvido. A Chainlink recolhe preços spot de dezenas de交易所, agrega-os com uma mediana ponderada pelo volume e envia atualizações a cada poucos minutos ou sempre que os preços ultrapassam um determinado limiar. A Pyth faz algo semelhante, mas com um modelo pull-based, em que o preço é assinado off-chain pelos market makers e só é enviado on-chain quando um protocolo DeFi o solicita. Ambas as arquiteturas partem do princípio de mercados contínuos e líquidos, com milhares de participantes independentes.
Os ativos do mundo real partem essas premissas. O NAV de um pool de crédito privado é calculado semanalmente por um administrador do fundo, a partir de dados ao nível do empréstimo que chegam de forma lenta. O NAV de um produto de tesouraria tokenizada move-se com preços de obrigações que se transacionam por marcação, e não ao segundo. O oráculo deixa de reportar um preço de mercado; passa a reportar um cálculo, frequentemente a partir de uma única fonte de verdade, numa cadência atrasada.
É aqui que os oráculos de NAV e os oráculos de preço começam a divergir de formas que são relevantes para o risco. Um oráculo de preço reporta quanto o mercado paga neste momento. Um oráculo de NAV reporta quanto o administrador do fundo acredita que os ativos valem, frequentemente com suavização, acréscimos e um atraso de reporte. Quando um evento de crédito atinge um pool de crédito privado, o oráculo de preço (quando existe) pode cair de imediato, enquanto o oráculo de NAV continua a reportar o último número válido durante dias, porque o administrador ainda não registou a descida da posição.
Como os oráculos de NAV e de preço divergem durante um evento de crédito
Num mercado saudável, a diferença é invisível. Ambos os feeds dizem, no essencial, a mesma coisa, e um contrato inteligente que use qualquer um dos dois toma decisões razoáveis. A divergência abre-se no instante em que um mutuário de um pool de crédito privado falha um pagamento, sofre uma descida de rating ou, no pior dos casos, entra em incumprimento.
Considere o que acontece a um pool sénior estilo Goldfinch quando um dos seus empréstimos subjacentes corre mal. O token do pool on-chain continua a declarar um NAV baseado na atualização mais recente do administrador, que assumia que o empréstimo seria reembolsado na íntegra. O valor de mercado off-chain dos créditos sobre esse pool, o preço que um comprador secundário pagaria de facto, cai de imediato assim que a notícia do incumprimento chega às mesas de crédito. Durante horas ou dias, o oráculo on-chain e o oráculo que existe na cabeça dos traders podem estar afastados em dezenas de pontos percentuais.
Esta diferença é toda a superfície de ataque. Um mutuário que repara na divergência pode usar o token do pool como garantia noutro lado da cadeia, levantar stablecoins contra o NAV artificialmente alto e desaparecer antes de o oráculo de NAV apanhar a realidade. Quando o administrador emite um novo NAV a refletir o incumprimento, a posição já foi levantada. Isto não é um cenário hipotético. É a forma estrutural de cada exploit de RWA em crédito privado nos últimos dois anos.
Os oráculos de preço comportam-se de forma diferente. Um oráculo de preço conduzido pelo mercado, do tipo que a Pyth ou a Chainlink agregam a partir de mercados ativos, reflete o evento de crédito em minutos, porque os traders reprecificam o token do pool de imediato. Nesse caso, o risco é o oposto: o oráculo pode tornar-se manipulável precisamente porque o mercado secundário é fino, e algumas transações de grande dimensão podem deslocar o preço reportado o suficiente para disparar liquidações indevidas.
Explorações de preços desatualizados: a falha mais comum no crédito tokenizado
Uma exploração de preço desatualizado não é um ataque no sentido tradicional. Nada é invadido, nenhuma chave privada é roubada, nenhuma votação de governança é sequestrada. O oráculo continua a funcionar como foi concebido. Simplesmente deixa de atualizar ou continua a reportar o último preço conhecido muito depois de esse preço ter deixado de ser verdadeiro.
Isto acontece rotineiramente nos mercados de RWA por razões operacionais mundanas. O administrador do fundo fecha para o fim de semana. O feed de dados que entrega os fluxos de caixa ao nível do empréstimo falha. A empresa de contabilidade que assina o relatório do NAV não cumpre o prazo. Nenhum destes eventos impede os empréstimos subjacentes de se deteriorarem. Apenas impedem o número on-chain de refletir essa deterioração.
Os mercados de empréstimo DeFi construídos sobre estes tokens, e já existem várias centenas de milhões de dólares neles, tratam o oráculo como verdade absoluta. Se o oráculo reportou pela última vez um NAV de $1,02 há dois dias e um mutuário depositou 150% de garantia, o protocolo de empréstimo considera a posição segura. Se o valor recuperável real caiu para $0,80, o protocolo não sabe. Vai permitir que o mutuário levante mais, porque o rácio de garantia continua a parecer adequado.
Os eventos de crédito da Maple Finance em 2023 ilustram isto de forma clara. Quando várias posições grandes de mutuários nas pools de caixa da Maple azedaram, os tokens das pools foram negociados com descontos significativos nos mercados secundários quase de imediato. O NAV on-chain, atualizado através da infraestrutura de oráculos da Maple com dados do administrador, não acompanhou durante dias. Durante essa janela, posições que já estavam profundamente underwater fora da cadeia continuavam a parecer devidamente garantidas on-chain, e várias integrações DeFi foram forçadas a pausar ou a marcar manualmente as posições em baixa.
O caso da Goldfinch seguiu um guião semelhante. Os NAVs da senior pool ficaram atrasados em relação aos eventos de crédito reportados durante dias ou semanas, e qualquer protocolo que integrasse o token da senior pool como garantia sem a sua própria verificação de preço no mercado secundário acabou por confiar num número com o qual nenhum participante off-chain teria concordado.
Arquiteturas da Chainlink e da Pyth, e o padrão de falha que cada uma esconde
A arquitetura da Chainlink é construída em torno da agregação e redundância. Os dados são obtidos a partir de muitos operadores de nós independentes, cada um a recolher de várias exchanges ou fornecedores de dados, e depois agregados on-chain. A vantagem é a resistência a uma única fonte estar errada ou ser maliciosa. A desvantagem é que a agregação só funciona quando existe um mercado real e líquido a partir do qual agregar. Quando o mercado subjacente é pouco líquido, um feed da Chainlink pode tornar-se um consenso de um pequeno número de fontes lentas, o que não é a mesma coisa que um verdadeiro preço de mercado.
Para pares de cripto de elevado volume, isto é aceitável. Para crédito tokenizado, imobiliário ou fundos privados, os feeds da Chainlink estão frequentemente configurados para atualizar num horário programado (a cada poucas horas, por exemplo) ou quando um limiar de desvio é ultrapassado. Se nenhuma destas condições for acionada, o preço simplesmente não atualiza. Não existe nenhuma verificação de atualidade integrada que diga "este preço tem três dias, algo está provavelmente errado." Essa responsabilidade recai sobre o protocolo que consome o feed, e muitas integrações de RWA simplesmente não a implementam.
A Pyth adota uma abordagem diferente. Os preços são assinados por um painel de market makers e publicadores, e depois disponibilizados on-chain através de um modelo pull. O consumidor paga por um preço novo cada vez que precisa de um, o que significa que, no sentido técnico, não existe um preço Pyth desatualizado: cada leitura é nova por definição. O risco desloca-se para os intervalos de confiança. A Pyth publica um valor de confiança juntamente com cada preço, e um mercado pouco líquido produzirá uma banda de confiança larga. Se o protocolo que consome o feed ignorar o valor de confiança e tratar o preço mediano como verdade absoluta, pode ser tão explorável quanto um feed da Chainlink desatualizado.
A conclusão prática para quem avalia uma integração de RWA: um feed da Chainlink sem verificação de atualidade é um candidato a explorações de preços desatualizados; um feed da Pyth sem verificação de confiança é um candidato a explorações em mercados pouco líquidos. Ambos são comuns.
Porque é que a lógica de liquidação on-chain confia nos dados de ontem
Os motores de liquidação em DeFi são concebidos para serem adversariais. Assumem que qualquer posição pode tornar-se insegura a qualquer momento e que um liquidatário externo a fechará com lucro se isso acontecer. Isto funciona de forma brilhante para garantias nativas de cripto, porque o oráculo de preços atualiza em quase tempo real e o liquidatário vê o mesmo número que o protocolo.
Para garantias de RWA, a mesma lógica de liquidação corre contra um número que pode estar desatualizado em horas ou dias. O protocolo não consegue distinguir entre "o preço não se mexeu" e "o feed de preços deixou de atualizar." As duas situações parecem idênticas on-chain. Do ponto de vista do protocolo, um mutuário que depositou um token de crédito privado com 150% de garantia há dois dias ainda está nos 150% hoje, e a posição está segura.
É por isto que o risco de oráculo em RWA é tão diferente do risco de oráculo em DeFi pura. Um feed de preço de ETH desatualizado é arbitrado em segundos por searchers profissionais que correm bots keeper. Um feed de NAV desatualizado para uma pool de crédito privado tokenizado não é arbitrável da mesma forma. A posição é ilíquida, o NAV vem de um processo humano, e não existe nenhum mecanismo on-chain para forçar uma atualização. O motor de liquidação não está a falhar; está a aplicar fielmente regras que foram escritas para um tipo diferente de ativo.
O resultado é uma espécie silenciosa de insolvência. Os livros do protocolo continuam a fechar. O rácio de garantia continua a ler-se corretamente. O mutuário pode continuar a levantar. E entretanto, o valor recuperável real dos empréstimos subjacentes caiu para metade.
Implicações práticas para quem está exposto a crédito tokenizado
Se detém um token de RWA diretamente, a questão é saber se o oráculo de NAV do emissor pode ficar atrasado em relação à realidade durante uma situação de stress. A resposta honesta é sim, por conceção. Os NAVs de crédito privado e imobiliário são reportados com atrasos porque os ativos subjacentes não negoceiam de forma contínua. Detter o token significa aceitar que o seu valor reportado e o seu valor de liquidação podem divergir acentuadamente durante um evento de crédito.
Se fornece liquidez a um protocolo DeFi que aceita tokens de RWA como garantia, a questão é mais complicada. Está agora exposto tanto ao oráculo de NAV do emissor como à própria lógica de verificação de preços do protocolo. Muitos protocolos implementam uma verificação de preço no mercado secundário, uma pool estilo Uniswap, uma agregação Pyth, uma referência Chainlink, para apanhar a divergência entre o NAV do emissor e o mercado ao vivo. Alguns não o fazem. A diferença frequentemente não é visível na documentação do protocolo.
Algumas coisas concretas a procurar: uma verificação de atualidade em cada leitura do oráculo, idealmente com um limite rígido a partir do qual a posição é pausada; uma comparação explícita entre o NAV do emissor e pelo menos uma fonte de preço independente; e uma política documentada para o que acontece quando os dois divergem. Se essas respostas não forem públicas, o protocolo está implicitamente a apostar que nunca serão necessárias.
Como seguir o risco dos oráculos de RWA de forma inteligente
O risco dos oráculos de RWA move-se de forma silenciosa, muitas vezes antes de qualquer notícia chegar aos média. Um evento de crédito num pool de private credit pode levar dias a aparecer no NAV oficial do emissor, e os sinais do mercado secundário são fáceis de ignorar a menos que saiba quais plataformas realmente negoceiam o token. Fazer este acompanhamento manualmente é uma batalha perdida. O Zippfeed agrega manchetes de RWA, atualizações de protocolos relacionadas com oráculos e discussões de governança on-chain dos principais emissores, classificadas por sentimento (bullish, neutral ou bearish) e etiquetadas com um nível de importância. Assim, consegue identificar a diferença entre o NAV reportado pelo emissor e a visão real do mercado sobre o crédito subjacente, antes que essa diferença se transforme numa perda concretizada.