Cripto

Oráculos: como uma blockchain aprende um preço, e o que quebra então

Um contrato que liquida uma posição precisa conhecer um preço, e a cadeia em que ele roda não tem meio algum de encontrar um. Tudo o que deu errado nessa parte da pilha decorre dessa única limitação, e entendê-la explica uma família de perdas que de outro modo parecem um mercado se comportando de forma impossível.

· 10 min de leitura

Uma cadeia não vê nada fora de si mesma

Uma blockchain é determinística por projeto: cada participante que roda o software precisa chegar exatamente ao mesmo resultado a partir das mesmas entradas, ou o consenso falha. Essa exigência impede perguntar qualquer coisa ao mundo externo, porque dois participantes consultando uma fonte externa em momentos ligeiramente diferentes obteriam respostas diferentes e discordariam sobre o estado do registro.

Então um contrato que precisa saber quanto vale um ativo não consegue consultar. A informação precisa ser colocada na cadeia por alguém, numa transação, virando um dado do registro como qualquer outro. A partir desse instante o contrato pode lê-la de forma determinística, e todos concordam, porque todos leem o mesmo número registrado em vez de cada um perguntar ao mundo separadamente.

É tudo o que um oráculo é: um mecanismo para escrever informação externa numa cadeia para que contratos possam agir sobre ela. Não é uma janela mágica para a realidade. É alguém digitando um número, com regras sobre quem pode digitar e o que acontece se digitar o errado.

Contratos não leem o mercado. Eles leem um número que alguém escreveu, e toda pergunta sobre risco de oráculo é uma pergunta sobre quem o escreveu e como.

Os três desenhos, e em quem você está confiando

As diferenças se reduzem à mesma pergunta que rege as pontes: quantas partes teriam de errar ou mentir ao mesmo tempo para que o número registrado fosse falso.

Um publicador único

Uma parte observa os preços e os escreve. É barato, rápido, e a precisão dele é exatamente a daquela parte. Esse desenho ainda existe em produção e concentra a integridade inteira de tudo o que está a jusante na gestão de chaves de uma única entidade e no fluxo de dados de uma única entidade.

Uma rede de publicadores com agregação

Muitas partes independentes reportam cada uma, e o contrato pega uma mediana ou uma estatística robusta similar. Um reportador errado ou malicioso é descartado pela agregação, o que é uma melhora genuína, e a fraqueza do desenho se desloca para se os reportadores são de fato independentes. Publicadores que leem todos do mesmo punhado de fontes são um único publicador com vários casacos, e a agregação não consegue detectar isso.

Preços derivados de mercados na cadeia

Em vez de importar um preço externo, alguns sistemas calculam um a partir de negociações que aconteceram na própria cadeia, que são visíveis e não exigem reportador algum. Isso retira o humano por completo e substitui o problema por outro: o preço agora reflete um mercado específico em vez do mercado, e esse mercado pode ser pequeno o bastante para ser movido.

Por que o preço reportado nunca é o preço

Mesmo um oráculo bem construído reporta algo ligeiramente diferente do que você veria numa tela, e as diferenças são estruturais e não erros. Ele atualiza em intervalos em vez de continuamente, então entre atualizações o preço registrado está vencido por construção. Ele agrega várias fontes, então é um resumo de vários mercados e não o preço de nenhum. E normalmente aplica suavização, então um movimento brusco genuíno chega atenuado.

Cada uma dessas escolhas se defende e cada uma tem um custo. Atualizações frequentes custam taxas de transação a cada vez, então o intervalo é uma decisão econômica e não um limite técnico. A agregação protege contra uma fonte ruim e garante que o número nunca coincidirá exatamente com a praça que você está olhando. A suavização impede a manipulação por picos breves e, pelo mesmo mecanismo exatamente, atrasa o reconhecimento dos reais.

A consequência prática é que qualquer posição cujo destino depende de um oráculo está exposta à configuração desse oráculo tanto quanto ao mercado. Duas posições idênticas em duas plataformas podem sobreviver e ser liquidadas no mesmo dia, não porque o mercado se contradisse mas porque os dois oráculos estavam configurados de formas diferentes.

Os ataques que de fato funcionaram

Agrupar os incidentes revela um punhado de formatos repetidos, e nenhum exigiu quebrar criptografia alguma.

Mover o mercado que o oráculo lê

Se um oráculo deriva o preço dele de um mercado fino em relação ao valor das posições que dependem dele, um atacante pode tomar capital emprestado, empurrar aquele mercado bem longe por alguns segundos, e lucrar com contratos que agem sobre o número distorcido. A manipulação é cara e é limitada pela profundidade do mercado empurrado, e por isso oráculos que leem mercados finos são os vulneráveis.

Explorar o intervalo

Entre duas atualizações o preço registrado é sabidamente vencido, e se o mercado real andou bastante nessa janela, qualquer um pode negociar contra o contrato ao preço antigo. Não é manipulação, é arbitragem contra um atraso conhecido, e já drenou valor substancial de sistemas cuja frequência de atualização foi definida por custo e não por segurança.

Derrubar uma fonte

Onde uma agregação tem poucas entradas realmente independentes, desativar ou degradar uma ou duas delas pode deslocar o agregado o bastante para importar, sem que nenhum dos reportadores restantes faça nada de errado.

Os preços médios no tempo, e o que eles trocam

A defesa padrão contra manipulação breve é reportar uma média sobre uma janela em vez do último valor. Empurrar um preço por alguns segundos então quase não move um número calculado sobre meia hora, e o custo de uma manipulação cresce com a duração exigida, o que torna o ataque inviável economicamente na maioria dos casos.

O custo é simétrico e nem sempre é mencionado. Um preço médio atrasa um movimento genuíno por construção, o que significa que o oráculo anuncia que um ativo vale mais do que vale durante uma queda real. Posições que deveriam ter sido liquidadas não são, elas continuam caindo, e o sistema pode acabar segurando colateral que vale menos que a dívida contra ele. A proteção contra movimentos falsos é exatamente o mesmo mecanismo que o atraso nos reais.

Qual falha um sistema prefere é uma escolha de projeto sem resposta correta. Uma janela curta resiste ao atraso e convida a manipulação; uma longa resiste à manipulação e convida a dívida incobrável durante colapsos reais. As duas já produziram perdas, e a escolha de um sistema costuma estar documentada, raramente lida, e é diretamente relevante para quem tem ali uma posição alavancada.

A média derrota um pico falso e atrasa um real, com o mesmo mecanismo. Não existe ajuste que os distinga.

Batimentos, limiares e os vãos entre atualizações

A maioria dos oráculos em produção atualiza por dois gatilhos. Um batimento força uma atualização depois de um intervalo máximo aconteça o que acontecer, garantindo que o preço nunca é mais velho que isso. Um limiar de desvio força uma antecipada quando o preço andou mais que um valor definido desde a anterior, de modo que mercados rápidos recebem mais atualizações que os calmos.

Os dois parâmetros são públicos e os dois valem ser conhecidos em qualquer plataforma onde você tenha alavancagem. Um batimento longo com um limiar de desvio largo significa que o preço registrado pode ficar inalterado durante um movimento substancial, e qualquer lógica de liquidação que o leia vai agir atrasada. Um batimento curto custa mais em taxas e costuma ser reservado aos ativos que carregam mais valor.

É também por isso que o mesmo ativo pode ter comportamento de oráculo diferente em plataformas diferentes mesmo quando o fluxo subjacente é o mesmo. O fluxo publica; a plataforma escolhe como o consome, e essa escolha determina o que a sua posição vive durante os minutos que importam.

Por que ocorrem liquidações em preços que você nunca viu

A reclamação confusa mais frequente na negociação alavancada é que uma posição foi fechada num nível que o gráfico nunca alcançou. O gráfico mostra uma praça; o oráculo reporta outro número derivado de várias, talvez médio, talvez vencido, e o motor de liquidação age sobre o oráculo e não sobre o gráfico que você olhava.

Há um segundo contribuinte menos óbvio. Muitas plataformas usam deliberadamente um preço suavizado ou de índice para liquidações em vez da última negociação do próprio livro, justamente para que um pico breve na própria praça não dispare uma onda de fechamentos. É uma escolha protetiva e produz a mesma experiência: a sua posição reagiu a um número do qual você não tinha exibição alguma.

O remédio não é discutir com isso mas olhar o número certo. Toda plataforma que oferece alavancagem publica qual preço o motor de liquidação dela usa, e frequentemente o exibe ao lado da última negociação. O trader que ajusta o risco contra o preço negociado enquanto o motor lê outro está gerindo uma distância que não é a que está sendo medida.

O que um trader pode de fato conferir

Quatro coisas, todas documentadas e nenhuma exigindo habilidade técnica. Qual preço o motor de liquidação lê, e se ele é exibido em algum lugar que você possa ver. Como esse preço é construído, ou seja quantas fontes e se ele é médio sobre uma janela. Com que frequência ele atualiza, pelo batimento e pelo limiar de desvio. E nos ativos que você de fato negocia, quão profundos são os mercados que o alimentam, já que um oráculo que lê mercados finos é o exposto à manipulação.

Nada disso impede nada sozinho, e converte uma família inteira de surpresas num parâmetro conhecido. Um trader que sabe que a plataforma dele liquida sobre uma média de trinta minutos entende de antemão por que uma recuperação rápida não vai salvar uma posição, e consegue dimensionar de acordo. Um que não sabe vai viver o mesmo evento como um mercado se comportando de forma impossível.

Perguntas frequentes

Por que um contrato inteligente não consegue simplesmente consultar um preço?

Porque uma blockchain precisa ser determinística: cada participante tem de chegar ao mesmo resultado a partir das mesmas entradas. Dois participantes consultando uma fonte externa em momentos ligeiramente diferentes obteriam respostas diferentes e discordariam sobre o registro. Então o dado externo precisa ser escrito primeiro na cadeia, numa transação, antes de qualquer contrato poder lê-lo.

O que é exatamente um oráculo?

Um mecanismo para escrever informação externa numa cadeia para que contratos ajam sobre ela de forma determinística. Não é uma janela para a realidade; é uma regra sobre quem pode publicar um número e o que acontece se publicar um falso. Toda pergunta sobre risco de oráculo se reduz a essas duas coisas.

Por que fui liquidado a um preço que o gráfico nunca mostrou?

Porque o motor de liquidação lê o oráculo, não o gráfico. Esse preço costuma ser agregado entre várias praças, frequentemente médio sobre uma janela, e atualizado em intervalos. Muitas plataformas usam um índice suavizado de propósito, para que um pico breve no próprio livro não dispare uma onda de fechamentos.

O que é um preço médio no tempo e por que é usado?

Uma média sobre uma janela em vez do último valor. Ela torna a manipulação breve inviável, porque empurrar um preço por segundos quase não move uma média de meia hora. O custo é que ela atrasa movimentos genuínos pelo mesmo mecanismo exatamente, o que pode deixar posições sem liquidar durante uma queda real.

Como um oráculo pode ser manipulado?

Normalmente movendo o mercado que ele lê. Se o preço é derivado de uma praça fina em relação às posições que dependem dela, um atacante pode tomar capital emprestado, empurrar brevemente aquela praça, e lucrar com contratos que agem sobre o número distorcido. O ataque é limitado pela profundidade do mercado empurrado.

O que são batimento e limiar de desvio?

Os dois gatilhos que provocam uma atualização. O batimento força uma depois de um intervalo máximo seja qual for o movimento, então o preço nunca é mais velho que isso. O limiar de desvio força uma antecipada quando o preço andou mais que um valor definido. Os dois são públicos e os dois determinam com que atraso um motor de liquidação pode agir.

Todas as plataformas usam o mesmo oráculo para o mesmo ativo?

Não necessariamente, e mesmo onde o fluxo subjacente é compartilhado, cada plataforma escolhe como o consome. Duas posições idênticas em duas plataformas podem portanto se comportar de forma diferente no mesmo dia, porque foi a configuração e não o mercado que decidiu o resultado.

O que devo conferir antes de operar com alavancagem?

Qual preço o motor de liquidação lê e se ele é exibido, como esse preço é construído e se é médio, com que frequência ele atualiza, e quão profundos são os mercados que o alimentam. Os quatro são documentados, e conhecê-los converte uma família de surpresas num parâmetro contra o qual você pode dimensionar.

Abrir uma conta Todos os artigos