A cegueira é proposital. Todo nó precisa chegar à mesma resposta ao reexecutar uma transação, então contratos não têm permissão para chamar a internet aberta, onde dois nós poderiam receber duas respostas diferentes com um segundo de diferença. Um oráculo resolve isso escrevendo o dado on-chain primeiro, como uma transação comum, depois do que todo nó lê o mesmo valor idêntico.
Os desenhos diferem principalmente em quanta confiança exigem. O mais simples é um único publicador postando números do próprio servidor, o que é barato e rápido e depende inteiramente de esse publicador continuar honesto e online. Desenhos mais robustos coletam cotações de muitos relatores independentes e as combinam, frequentemente tirando uma mediana para que um envio ruim não vire o resultado, com penalidades para relatores que se desviam. Mercados de empréstimo, derivativos e qualquer ativo que mantenha uma paridade se apoiam constantemente nesses feeds, assim como a maior parte do DeFi.
A manipulação de oráculos é uma das formas mais confiáveis pelas quais protocolos já foram drenados. Se um contrato lê o seu preço de um único pool de liquidez on-chain, um atacante pode tomar emprestada uma soma grande, empurrar esse pool para longe do preço real de mercado por um bloco, tomar emprestado ou disparar liquidações contra o valor distorcido, e então desfazer a operação, às vezes em uma única transação. As defesas são bem conhecidas: múltiplas fontes independentes, médias ponderadas pelo tempo em vez de leituras instantâneas, limites de sanidade e disjuntores. Onde quer que um protocolo cote um preço, vale saber de onde esse número veio, porque o oráculo costuma ser o elo mais fraco da estrutura.
Pontos principais
- Blockchains são seladas por design, então todo fato externo que um contrato usa foi colocado ali por alguém em uma transação.
- A pergunta real não é se um oráculo funciona, mas quem pode influenciar o seu número e com que rapidez consegue fazer isso.
- Preços obtidos de um único pool on-chain são o alvo clássico de manipulação, enquanto feeds com média de múltiplas fontes são muito mais difíceis de distorcer.
Oráculo — perguntas frequentes
Por que um contrato inteligente não pode simplesmente buscar um preço em um site?
Porque todo nó valida a mesma transação de forma independente e precisa chegar a um resultado idêntico. Se cada nó buscasse a página por conta própria, poderia obter respostas diferentes com segundos de diferença, e a rede nunca chegaria a um acordo sobre o resultado. Publicar o valor on-chain primeiro o transforma em um dado fixo e compartilhado, que todo nó pode reexecutar e confirmar exatamente da mesma forma.
Como é um ataque de oráculo na prática?
Um atacante distorce deliberadamente a fonte que um protocolo lê. Normalmente isso significa usar fundos emprestados para mover por um instante um mercado on-chain raso, de modo que o protocolo avalie a garantia muito acima ou muito abaixo do valor real, e então tomar emprestado contra ela ou forçar liquidações no preço errado. O contrato se comportou corretamente o tempo todo; ele simplesmente recebeu um número falso.
Termos relacionados
Contrato inteligenteDeFiCorretora descentralizada (DEX)Pool de liquidezStablecoin Todos os termos →Novo em cripto ou preenchendo lacunas? Percorra o essencial em Learn, explore todos os termos A–Z ou veja os preços ao vivo das moedas que sustentam esses conceitos.