Oracle e Front-Running Transactions - Série de Pesquisa Angle Parte 1

intermediário2/20/2025, 5:32:13 AM
Este artigo fornece uma análise aprofundada do design do oráculo do Angle Protocol e de seus mecanismos de defesa contra transações de front-running. Ao combinar Chainlink e Uniswap V3 TWAP, o Angle oferece uma solução inovadora destinada a proteger o protocolo de ataques de front-running, garantindo que os usuários recebam preços de transação justos.

Introdução

Angle permite aos usuários criar e queimar agTokens (stablecoins) em troca de outros tokens. Os traders também podem abrir posições longas em pares de garantia/stablecoin disponíveis. Estes não são contratos perpétuos tradicionais, pois o equilíbrio não depende das taxas de financiamento, e os preços de execução vêm diretamente do oráculo. Dadas essas situações de uso, o protocolo requer um método confiável para precificar os ativos disponíveis a fim de oferecer aos usuários cotações justas enquanto se protege de transações de front-running. No FAQ deste artigo, Samcszun explica por que isso não é tão simples quanto usar preços à vista.

A frente-corrida tem sido um problema de longa data no mercado. Ela se resume a certos participantes ganhando acesso à informação mais cedo do que outros, permitindo-lhes aproveitar essa vantagem para extrair lucros livres de risco às custas da contraparte. Historicamente, prevenir esse fenômeno on-chain tem sido extremamente desafiador. Os altos custos e baixa velocidade das transações Ethereum dificultam a atualização rápida e frequente dos preços pelos oráculos. Isso introduz atrasos entre os preços off-chain e on-chain, criando oportunidades para os frente-corridas explorarem.

Nem todos os protocolos de stablecoin estão preocupados com os riscos de front-running decorrentes de atrasos de oráculos. No caso do DAI da Maker, os atrasos de oráculo frequentemente beneficiam o protocolo. Por exemplo, se um usuário percebe que sua posição será liquidada na próxima atualização do oráculo devido a uma queda de preço, ela é incentivada a depositar mais fundos na vault, melhorando a saúde do protocolo e a relação de garantia.

Synthetix, que permite trocas de valor baseadas em oráculos entre ativos sintéticos e garantias, é um exemplo perfeito de um protocolo de stablecoin enfrentando desafios de front-running. Seu post no blog esboça a longa história do protocolo com front-running, incluindo alguns ataques passados que eles sofreram.

Similar ao Synthetix, o Angle permite trocas de ativos no valor do oráculo sem derrapagem de preço. Como resultado, o Angle enfrenta o mesmo problema de front-running. A equipe central do Angle fez esforços significativos para mitigar o front-running. Duas melhorias principais foram implementadas: um design de oráculo específico e uma estrutura de taxas dinâmicas. Neste artigo, explicaremos o design do oráculo do Angle e a lógica por trás dele.

Uma Atualização do Oracle de Front-Running: Um Exemplo

Antes de mergulhar na solução da Angle, vamos primeiro tentar entender como a frente de execução pode prejudicar o protocolo. Vamos considerar um exemplo em que o ETH é aceito como garantia para apoiar a stablecoin da Angle.

Sem taxas de transação

Suponha que um atacante esteja monitorando o preço do ETH off-chain e veja que o oráculo da Chainlink está prestes a atualizar os dados on-chain para um preço mais alto (de p0 para p1, onde p0 < p1). Esse atacante pode enviar uma transação para queimar x stablecoins pelo preço de p0 em troca de x/p0 valor de ETH. Em seguida, após a atualização do preço para p1, o atacante pode vendê-lo de volta ao protocolo, obtendo lucro:

Devido a esta transação de front-running na atualização do oráculo, esta parte do lucro é retirada das reservas do protocolo. Se definirmos x = 100 ETH e p1 = 1,01 * p0 (um aumento de preço de 1%), isso significa que o atacante retirou 1 ETH das reservas do protocolo.

Com Taxas de Transação

Felizmente, o aumento das taxas de transação pode mitigar esse problema, pois elas erodem os lucros dos front-runners e reduzem as oportunidades.

Por exemplo, se as taxas de transação de cunhagem e queima forem constantes e iguais a f, um atacante que queima x stablecoins em p0 e depois as revende ao protocolo por ETH em p1 terá o seguinte lucro final:

Comparado com o cenário anterior, as taxas reduzem o lucro:

Quando a taxa de transação é f = 0.3% e seguindo o exemplo acima, o lucro do atacante agora é apenas 0.39 ETH.

Com taxas de transação e duas soluções de oráculo

Para reduzir ainda mais essa oportunidade, podemos depender de um oráculo secundário para fornecer duas fontes de preço potenciais: pC (preço Chainlink) e pU (preço Uniswap). O protocolo pode usar o preço mais favorável (o preço mais baixo na cunhagem, ao comprar os tokens do usuário, e o preço mais alto na queima, ao vender ETH para o usuário), tornando a oportunidade de front-running menos atraente.

Imagine um trader tentando lucrar com a mesma oportunidade acima, assumindo que pC0 < pC1.

Por outro lado, podemos considerar que pU é constante e mais próxima de pC0. Portanto, como veremos mais tarde, devido ao design do preço médio ponderado no tempo (TWAP) da Uniswap, pU tende a ficar atrás de pC.

Neste caso, um atacante que tente lucrar com a oportunidade potencial compraria tokens do protocolo em pC0 (queimando stablecoins) e receberia x(1-f)/pC0 em ETH. Em seguida, eles venderiam novamente em pU1 a um preço mais alto. Isso resultaria em uma perda para o atacante:

Se mantivermos os números do exemplo, o atacante acabaria perdendo 0.6 ETH nesta transação.

Solução do Angle

O design da Angle é especificamente direcionado para eliminar o risco de transações de front-running. Portanto, o protocolo implementará um mecanismo muito semelhante ao exemplo discutido acima. Nesta seção, exploraremos as opções existentes potenciais com mais detalhes, focando nos detalhes do design que planejamos implementar e analisando nossa escolha da janela de tempo TWAP.

Opções

As principais soluções de oráculo que poderiam se encaixar no caso de uso da Angle são:

  • Chain link
  • Uniswap V3 TWAP
  • Feeds do Maker

Chainlink é a escolha óbvia: é uma solução de oráculo descentralizada amplamente utilizada que fornece múltiplas fontes de dados que abrangem vários ativos. Os preços vêm de várias fontes e são transmitidos por meio de uma rede descentralizada, garantindo que os dados sejam confiáveis, acessíveis e difíceis de manipular. No entanto, algumas fontes de dados geralmente se atualizam apenas após mudanças de preço “significativas” (como uma mudança de 0,5% em ETH/USD) ou após um período de tempo, o que significa que os preços do Chainlink estão sempre atrasados em comparação com o preço de mercado real. Portanto, as atualizações de preço do Chainlink podem ser antecipadas verificando os preços off-chain ou o mempool.

O Preço Médio Ponderado no Tempo (TWAP) do Uniswap V3 é outra solução de oráculo óbvia e amplamente utilizada. O TWAP pode ser consultado no contrato do Uniswap para obter o preço médio ponderado no tempo dos tokens em um pool ao longo de um período de tempo específico, que varia de alguns segundos a 9 dias. O preço é calculado com base no preço médio dos dois tokens no pool durante o período especificado. Isso faz com que a manipulação do TWAP exija uma grande quantidade de capital e um período de tempo mais longo, o que é ineficiente na maioria dos casos.

No entanto, uma vez que o TWAP é o preço médio ao longo dos blocos anteriores, geralmente estão atrasados em comparação com os preços off-chain em tempo real ou até mesmo com as fontes de preço do Chainlink. Se usados sozinhos, não seriam suficientes para proteger o protocolo de transações de front-running.

Além disso, uma vez que o TWAP apenas relata o preço dos pares de tokens on-chain, eles não conseguem atender ao objetivo do protocolo de fornecer acesso a ativos que não estão representados on-chain (e, portanto, não estão nas pools da Uniswap), como stablecoins com lastro em forex.

Usar Oráculos Maker poderia ter sido outra opção para Angle, mas isso significaria confiar na MakerDAO e passar por um processo de governança para obter acesso aos dados de preços. As fontes de preço também seriam limitadas às usadas pela Maker, o que é insuficiente para nós, já que nosso objetivo é acessar as taxas de câmbio do forex.

Design do Ângulo: Chainlink + UniV3 TWAP = 💪

Com isso em mente, decidiu-se combinar o oráculo Chainlink do Protocolo Angle com um TWAP Uni V3 de 10 minutos. Isso permite o preço mais justo possível a qualquer momento, protegendo o protocolo de ataques de front-running.

Em termos gerais, os contratos da Angle compararão os preços de ambos os canais e usarão o preço mais favorável ao protocolo. Com esse design, a frente ao protocolo torna-se mais complexa, porque, para explorar a taxa de câmbio do protocolo, um atacante deve manipular ou estar à frente de ambos os oráculos.

Especificamente, nosso contrato buscará o melhor preço para todos os pares de ativos voláteis/stablecoin entre Chainlink e Uniswap e usará o oráculo forex da Chainlink para converter o preço para a moeda fiduciária necessária. Cada par de garantia/stablecoin terá um contrato de oráculo dedicado com sua própria fonte de preço independente.

Como funciona?

Por exemplo, suponha que um usuário queira negociar o par ETH/agEUR. Nosso contrato precisa buscar os preços para ETH/USD e USD/EUR. Ele manterá o melhor preço para ETH/USD do Chainlink e o TWAP de 10 minutos do pool ETH/USDC UniV3. Em seguida, buscará o preço do forex USD/EUR do Chainlink.

Exemplo: Uniswap ETH/USDC TWAP: 1900 USD (o protocolo assume que o USDC geralmente mantém sua paridade, ou seja, 1 USDC equivale a 1 USD) Preço do ETH Chainlink: 1850 USD Preço do USD Chainlink: 1.16 EUR

Se o usuário deseja criar agEUR neste caso, o protocolo usará o preço mais baixo de ETH/USD, ou seja, o preço da Chainlink de 1850 USD por ETH. Por outro lado, se o usuário deseja queimar agEUR por wETH na mesma situação, o protocolo usará o preço mais alto, ou seja, o TWAP ETH/USDC da Uni de 1900. Em ambos os casos, o protocolo usará a taxa de USD/EUR da Chainlink de 1,16 para converter ETH/USD em ETH/EUR.

Da mesma forma, o protocolo usará o preço mais alto para os usuários que desejam abrir um contrato perpétuo e o preço mais baixo para aqueles que desejam fechá-lo.

Mais geralmente:

  1. Contratos de usuários que precisam de preços chamarão o contrato de oráculo relevante.
  2. Dependendo do tipo de transação, o contrato do oráculo pode ler cotações do UniV3 TWAP e Chainlink, ou apenas do Chainlink (por exemplo, para trocas de stablecoin para stablecoin), e devolvê-lo ao contrato principal.
  3. Dependendo da operação sendo executada (criação, queima, abertura ou fechamento), o contrato relevante mantém o melhor preço para o protocolo e executa a transação.

Escolhendo a Janela de Tempo TWAP Uni V3

O contrato da Angle usará uma janela de tempo de 10 minutos para TWAP. Essa escolha foi feita após uma consideração cuidadosa, pois janelas de tempo diferentes podem resultar em estruturas de preços significativamente diferentes.

Diferenças Entre Janelas de Tempo

No caso do Angle, por um lado, a janela de tempo deve ser suficientemente longa para fornecer um intervalo suficiente entre o preço do protocolo e o preço spot. Isso permite uma maior diferença entre os preços de cunhagem e queima durante as flutuações de preço, especialmente quando o risco de front-running no Chainlink é dobrado. Além disso, quanto mais longa for a janela de tempo, mais difícil será manipular o preço TWAP, pois as observações recentes têm menos impacto sobre o preço.

Por outro lado, o protocolo ainda deve oferecer aos usuários cotações justas e atualizadas: usar uma janela de tempo muito ampla criará uma diferença de preço muito grande entre o protocolo e o preço de mercado atual, enquanto usar uma janela de tempo muito estreita não fornecerá a diferença de preço desejada.

Comparar TWAP de 10 minutos e 60 minutos com feeds de preço da Chainlink

Para lhe dar uma compreensão de por que finalmente escolhemos uma janela de tempo de 10 minutos, aqui está uma comparação entre os TWAPs de 10 minutos e 60 minutos ETH/USDC e o preço ETH/USD da Chainlink, bem como o preço de fechamento da Coinbase.

Você pode ver como as taxas superiores e inferiores usadas pelo protocolo quando os usuários criam/fecham e queimam/abrem se movem entre os preços mais favoráveis do Chainlink e do TWAP da Uniswap durante as transições de preço.


Embora o bloco TWAP de 60 minutos muitas vezes forneça preços que estão longe do mercado, o TWAP de 10 minutos fornece um buffer benéfico para a fonte de preços da Chainlink, mantendo o preço suficientemente próximo do mercado.

Vale a pena notar que, como visto no primeiro gráfico, quanto maior a volatilidade, maior a diferença de preço entre os preços Chainlink e Uniswap. Por outro lado, quando os preços permanecem relativamente estáveis ao longo do tempo, as fontes de preços da Uniswap e da Chainlink estão mais próximas uma da outra. Usar o TWAP como uma proteção adicional contra o front-running é essencialmente uma maneira de cobrar dinamicamente mais em taxas durante períodos de alta volatilidade, já que o risco de execução frontal é maior devido a atrasos em oráculos on-chain. O custo dessas taxas efetivas mais altas é que reduz a capacidade dos traders de arbitragem de reprecificar diretamente as stablecoins do protocolo. Na maioria dos casos, os preços do Uniswap e do Chainlink serão muito semelhantes, e os usuários dificilmente notarão o uso de duas soluções oracle. No entanto, durante períodos de alta volatilidade, quando o protocolo está em risco de execução antecipada devido a diferenças significativas de preço entre os preços atuais e futuros do Chainlink, o preço do protocolo será diferente, protegendo-o do front-running.

Concentre-se na Recuperação/Reembolso de Taxas da Synthetix

A pesquisa do oráculo da Angle é fortemente inspirada nas discussões de governança do Synthetix e nas postagens de blog relacionadas à frente de execução. Em nossa pesquisa, também encontramos outra opção que eles implementaram em fevereiro de 2020, a recuperação/reembolso de taxa, que eventualmente se tornou uma solução temporária.

O que eles fizeram foi adicionar um período de espera às transações, durante o qual os usuários não podiam manipular o Synth que desejavam usar. Durante esse período, os oráculos poderiam verificar se a transação foi afetada por inconsistências, especificamente se havia diferença de preço entre o momento da execução e o final do período de espera. Se existisse uma diferença de preço, a diferença teria que ser paga pelo usuário ou pelo protocolo à outra parte (protocolo ou usuário), ou seria liquidada na próxima transação com Synthetix.

Esta solução foi muito eficaz na redução do front-running, mas eles tiveram que estender o período de espera e aumentar as taxas, o que criou uma experiência de usuário muito ruim para todos os comerciantes. Isso também impediu que o Synth se integrasse a outros protocolos em muitos casos de uso. No SIP-120, eles substituíram essa solução por um plano que adiciona o uso de oráculos TWAP para grandes transações.

Conclusão

O design específico do oráculo da Angle tem dois impactos principais no protocolo:

Atacantes precisam manipular dois mercados para enganar o protocolo, reduzindo significativamente o risco de negociações de front-running bem-sucedidas.

Durante períodos de estresse no mercado, o protocolo é improvável de oferecer aos usuários o melhor preço possível.

O impacto deste último foi discutido no fórum de governança Fei. Uma vez que fornecer a melhor execução de negociação não é o objetivo principal do protocolo, acreditamos que a resistência à frente de mercado é mais importante para garantir a segurança do protocolo. Nos mercados secundários durante períodos de alta volatilidade, uma melhor execução de negociação será oferecida.

Nosso objetivo no projeto Angle é projetar um protocolo de stablecoin totalmente suportado e eficiente. Para alcançar isso, é necessário considerar muitos aspectos do protocolo para garantir que ele não possa ser enganado em uma posição desfavorável, um dos quais é a resistência à frente. Isso é particularmente importante porque a estabilidade de stablecoins descentralizadas on-chain que dependem de oráculos depende da qualidade de seus oráculos.

Adicionar feeds de preço secundários na forma de TWAP pode ajudar o protocolo a mitigar os potenciais impactos adversos da alta volatilidade do mercado e as oportunidades de front-running que surgem durante esses momentos.

Por último, é importante notar que esta solução oracle mantém flexibilidade e escalabilidade. Por um lado, a governança do Angle pode votar e atualizar seus contratos oracle a qualquer momento. Por outro lado, oráculos podem ser criados para qualquer feed de preço suportado pelo Chainlink. Este é o nível mínimo de suporte necessário para alcançar a visão do Angle de trazer ativos financeiros para a cadeia de forma eficiente em termos de capital!

Aviso Legal:

  1. Este artigo é reproduzido a partir de [Comunidade Denglink]. Todos os direitos autorais pertencem ao autor original [Ângulo]. Se houver objeções a esta reedição, entre em contato com o Gate Learnequipe e eles vão lidar com isso prontamente.
  2. Isenção de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Learn gate. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

Oracle e Front-Running Transactions - Série de Pesquisa Angle Parte 1

intermediário2/20/2025, 5:32:13 AM
Este artigo fornece uma análise aprofundada do design do oráculo do Angle Protocol e de seus mecanismos de defesa contra transações de front-running. Ao combinar Chainlink e Uniswap V3 TWAP, o Angle oferece uma solução inovadora destinada a proteger o protocolo de ataques de front-running, garantindo que os usuários recebam preços de transação justos.

Introdução

Angle permite aos usuários criar e queimar agTokens (stablecoins) em troca de outros tokens. Os traders também podem abrir posições longas em pares de garantia/stablecoin disponíveis. Estes não são contratos perpétuos tradicionais, pois o equilíbrio não depende das taxas de financiamento, e os preços de execução vêm diretamente do oráculo. Dadas essas situações de uso, o protocolo requer um método confiável para precificar os ativos disponíveis a fim de oferecer aos usuários cotações justas enquanto se protege de transações de front-running. No FAQ deste artigo, Samcszun explica por que isso não é tão simples quanto usar preços à vista.

A frente-corrida tem sido um problema de longa data no mercado. Ela se resume a certos participantes ganhando acesso à informação mais cedo do que outros, permitindo-lhes aproveitar essa vantagem para extrair lucros livres de risco às custas da contraparte. Historicamente, prevenir esse fenômeno on-chain tem sido extremamente desafiador. Os altos custos e baixa velocidade das transações Ethereum dificultam a atualização rápida e frequente dos preços pelos oráculos. Isso introduz atrasos entre os preços off-chain e on-chain, criando oportunidades para os frente-corridas explorarem.

Nem todos os protocolos de stablecoin estão preocupados com os riscos de front-running decorrentes de atrasos de oráculos. No caso do DAI da Maker, os atrasos de oráculo frequentemente beneficiam o protocolo. Por exemplo, se um usuário percebe que sua posição será liquidada na próxima atualização do oráculo devido a uma queda de preço, ela é incentivada a depositar mais fundos na vault, melhorando a saúde do protocolo e a relação de garantia.

Synthetix, que permite trocas de valor baseadas em oráculos entre ativos sintéticos e garantias, é um exemplo perfeito de um protocolo de stablecoin enfrentando desafios de front-running. Seu post no blog esboça a longa história do protocolo com front-running, incluindo alguns ataques passados que eles sofreram.

Similar ao Synthetix, o Angle permite trocas de ativos no valor do oráculo sem derrapagem de preço. Como resultado, o Angle enfrenta o mesmo problema de front-running. A equipe central do Angle fez esforços significativos para mitigar o front-running. Duas melhorias principais foram implementadas: um design de oráculo específico e uma estrutura de taxas dinâmicas. Neste artigo, explicaremos o design do oráculo do Angle e a lógica por trás dele.

Uma Atualização do Oracle de Front-Running: Um Exemplo

Antes de mergulhar na solução da Angle, vamos primeiro tentar entender como a frente de execução pode prejudicar o protocolo. Vamos considerar um exemplo em que o ETH é aceito como garantia para apoiar a stablecoin da Angle.

Sem taxas de transação

Suponha que um atacante esteja monitorando o preço do ETH off-chain e veja que o oráculo da Chainlink está prestes a atualizar os dados on-chain para um preço mais alto (de p0 para p1, onde p0 < p1). Esse atacante pode enviar uma transação para queimar x stablecoins pelo preço de p0 em troca de x/p0 valor de ETH. Em seguida, após a atualização do preço para p1, o atacante pode vendê-lo de volta ao protocolo, obtendo lucro:

Devido a esta transação de front-running na atualização do oráculo, esta parte do lucro é retirada das reservas do protocolo. Se definirmos x = 100 ETH e p1 = 1,01 * p0 (um aumento de preço de 1%), isso significa que o atacante retirou 1 ETH das reservas do protocolo.

Com Taxas de Transação

Felizmente, o aumento das taxas de transação pode mitigar esse problema, pois elas erodem os lucros dos front-runners e reduzem as oportunidades.

Por exemplo, se as taxas de transação de cunhagem e queima forem constantes e iguais a f, um atacante que queima x stablecoins em p0 e depois as revende ao protocolo por ETH em p1 terá o seguinte lucro final:

Comparado com o cenário anterior, as taxas reduzem o lucro:

Quando a taxa de transação é f = 0.3% e seguindo o exemplo acima, o lucro do atacante agora é apenas 0.39 ETH.

Com taxas de transação e duas soluções de oráculo

Para reduzir ainda mais essa oportunidade, podemos depender de um oráculo secundário para fornecer duas fontes de preço potenciais: pC (preço Chainlink) e pU (preço Uniswap). O protocolo pode usar o preço mais favorável (o preço mais baixo na cunhagem, ao comprar os tokens do usuário, e o preço mais alto na queima, ao vender ETH para o usuário), tornando a oportunidade de front-running menos atraente.

Imagine um trader tentando lucrar com a mesma oportunidade acima, assumindo que pC0 < pC1.

Por outro lado, podemos considerar que pU é constante e mais próxima de pC0. Portanto, como veremos mais tarde, devido ao design do preço médio ponderado no tempo (TWAP) da Uniswap, pU tende a ficar atrás de pC.

Neste caso, um atacante que tente lucrar com a oportunidade potencial compraria tokens do protocolo em pC0 (queimando stablecoins) e receberia x(1-f)/pC0 em ETH. Em seguida, eles venderiam novamente em pU1 a um preço mais alto. Isso resultaria em uma perda para o atacante:

Se mantivermos os números do exemplo, o atacante acabaria perdendo 0.6 ETH nesta transação.

Solução do Angle

O design da Angle é especificamente direcionado para eliminar o risco de transações de front-running. Portanto, o protocolo implementará um mecanismo muito semelhante ao exemplo discutido acima. Nesta seção, exploraremos as opções existentes potenciais com mais detalhes, focando nos detalhes do design que planejamos implementar e analisando nossa escolha da janela de tempo TWAP.

Opções

As principais soluções de oráculo que poderiam se encaixar no caso de uso da Angle são:

  • Chain link
  • Uniswap V3 TWAP
  • Feeds do Maker

Chainlink é a escolha óbvia: é uma solução de oráculo descentralizada amplamente utilizada que fornece múltiplas fontes de dados que abrangem vários ativos. Os preços vêm de várias fontes e são transmitidos por meio de uma rede descentralizada, garantindo que os dados sejam confiáveis, acessíveis e difíceis de manipular. No entanto, algumas fontes de dados geralmente se atualizam apenas após mudanças de preço “significativas” (como uma mudança de 0,5% em ETH/USD) ou após um período de tempo, o que significa que os preços do Chainlink estão sempre atrasados em comparação com o preço de mercado real. Portanto, as atualizações de preço do Chainlink podem ser antecipadas verificando os preços off-chain ou o mempool.

O Preço Médio Ponderado no Tempo (TWAP) do Uniswap V3 é outra solução de oráculo óbvia e amplamente utilizada. O TWAP pode ser consultado no contrato do Uniswap para obter o preço médio ponderado no tempo dos tokens em um pool ao longo de um período de tempo específico, que varia de alguns segundos a 9 dias. O preço é calculado com base no preço médio dos dois tokens no pool durante o período especificado. Isso faz com que a manipulação do TWAP exija uma grande quantidade de capital e um período de tempo mais longo, o que é ineficiente na maioria dos casos.

No entanto, uma vez que o TWAP é o preço médio ao longo dos blocos anteriores, geralmente estão atrasados em comparação com os preços off-chain em tempo real ou até mesmo com as fontes de preço do Chainlink. Se usados sozinhos, não seriam suficientes para proteger o protocolo de transações de front-running.

Além disso, uma vez que o TWAP apenas relata o preço dos pares de tokens on-chain, eles não conseguem atender ao objetivo do protocolo de fornecer acesso a ativos que não estão representados on-chain (e, portanto, não estão nas pools da Uniswap), como stablecoins com lastro em forex.

Usar Oráculos Maker poderia ter sido outra opção para Angle, mas isso significaria confiar na MakerDAO e passar por um processo de governança para obter acesso aos dados de preços. As fontes de preço também seriam limitadas às usadas pela Maker, o que é insuficiente para nós, já que nosso objetivo é acessar as taxas de câmbio do forex.

Design do Ângulo: Chainlink + UniV3 TWAP = 💪

Com isso em mente, decidiu-se combinar o oráculo Chainlink do Protocolo Angle com um TWAP Uni V3 de 10 minutos. Isso permite o preço mais justo possível a qualquer momento, protegendo o protocolo de ataques de front-running.

Em termos gerais, os contratos da Angle compararão os preços de ambos os canais e usarão o preço mais favorável ao protocolo. Com esse design, a frente ao protocolo torna-se mais complexa, porque, para explorar a taxa de câmbio do protocolo, um atacante deve manipular ou estar à frente de ambos os oráculos.

Especificamente, nosso contrato buscará o melhor preço para todos os pares de ativos voláteis/stablecoin entre Chainlink e Uniswap e usará o oráculo forex da Chainlink para converter o preço para a moeda fiduciária necessária. Cada par de garantia/stablecoin terá um contrato de oráculo dedicado com sua própria fonte de preço independente.

Como funciona?

Por exemplo, suponha que um usuário queira negociar o par ETH/agEUR. Nosso contrato precisa buscar os preços para ETH/USD e USD/EUR. Ele manterá o melhor preço para ETH/USD do Chainlink e o TWAP de 10 minutos do pool ETH/USDC UniV3. Em seguida, buscará o preço do forex USD/EUR do Chainlink.

Exemplo: Uniswap ETH/USDC TWAP: 1900 USD (o protocolo assume que o USDC geralmente mantém sua paridade, ou seja, 1 USDC equivale a 1 USD) Preço do ETH Chainlink: 1850 USD Preço do USD Chainlink: 1.16 EUR

Se o usuário deseja criar agEUR neste caso, o protocolo usará o preço mais baixo de ETH/USD, ou seja, o preço da Chainlink de 1850 USD por ETH. Por outro lado, se o usuário deseja queimar agEUR por wETH na mesma situação, o protocolo usará o preço mais alto, ou seja, o TWAP ETH/USDC da Uni de 1900. Em ambos os casos, o protocolo usará a taxa de USD/EUR da Chainlink de 1,16 para converter ETH/USD em ETH/EUR.

Da mesma forma, o protocolo usará o preço mais alto para os usuários que desejam abrir um contrato perpétuo e o preço mais baixo para aqueles que desejam fechá-lo.

Mais geralmente:

  1. Contratos de usuários que precisam de preços chamarão o contrato de oráculo relevante.
  2. Dependendo do tipo de transação, o contrato do oráculo pode ler cotações do UniV3 TWAP e Chainlink, ou apenas do Chainlink (por exemplo, para trocas de stablecoin para stablecoin), e devolvê-lo ao contrato principal.
  3. Dependendo da operação sendo executada (criação, queima, abertura ou fechamento), o contrato relevante mantém o melhor preço para o protocolo e executa a transação.

Escolhendo a Janela de Tempo TWAP Uni V3

O contrato da Angle usará uma janela de tempo de 10 minutos para TWAP. Essa escolha foi feita após uma consideração cuidadosa, pois janelas de tempo diferentes podem resultar em estruturas de preços significativamente diferentes.

Diferenças Entre Janelas de Tempo

No caso do Angle, por um lado, a janela de tempo deve ser suficientemente longa para fornecer um intervalo suficiente entre o preço do protocolo e o preço spot. Isso permite uma maior diferença entre os preços de cunhagem e queima durante as flutuações de preço, especialmente quando o risco de front-running no Chainlink é dobrado. Além disso, quanto mais longa for a janela de tempo, mais difícil será manipular o preço TWAP, pois as observações recentes têm menos impacto sobre o preço.

Por outro lado, o protocolo ainda deve oferecer aos usuários cotações justas e atualizadas: usar uma janela de tempo muito ampla criará uma diferença de preço muito grande entre o protocolo e o preço de mercado atual, enquanto usar uma janela de tempo muito estreita não fornecerá a diferença de preço desejada.

Comparar TWAP de 10 minutos e 60 minutos com feeds de preço da Chainlink

Para lhe dar uma compreensão de por que finalmente escolhemos uma janela de tempo de 10 minutos, aqui está uma comparação entre os TWAPs de 10 minutos e 60 minutos ETH/USDC e o preço ETH/USD da Chainlink, bem como o preço de fechamento da Coinbase.

Você pode ver como as taxas superiores e inferiores usadas pelo protocolo quando os usuários criam/fecham e queimam/abrem se movem entre os preços mais favoráveis do Chainlink e do TWAP da Uniswap durante as transições de preço.


Embora o bloco TWAP de 60 minutos muitas vezes forneça preços que estão longe do mercado, o TWAP de 10 minutos fornece um buffer benéfico para a fonte de preços da Chainlink, mantendo o preço suficientemente próximo do mercado.

Vale a pena notar que, como visto no primeiro gráfico, quanto maior a volatilidade, maior a diferença de preço entre os preços Chainlink e Uniswap. Por outro lado, quando os preços permanecem relativamente estáveis ao longo do tempo, as fontes de preços da Uniswap e da Chainlink estão mais próximas uma da outra. Usar o TWAP como uma proteção adicional contra o front-running é essencialmente uma maneira de cobrar dinamicamente mais em taxas durante períodos de alta volatilidade, já que o risco de execução frontal é maior devido a atrasos em oráculos on-chain. O custo dessas taxas efetivas mais altas é que reduz a capacidade dos traders de arbitragem de reprecificar diretamente as stablecoins do protocolo. Na maioria dos casos, os preços do Uniswap e do Chainlink serão muito semelhantes, e os usuários dificilmente notarão o uso de duas soluções oracle. No entanto, durante períodos de alta volatilidade, quando o protocolo está em risco de execução antecipada devido a diferenças significativas de preço entre os preços atuais e futuros do Chainlink, o preço do protocolo será diferente, protegendo-o do front-running.

Concentre-se na Recuperação/Reembolso de Taxas da Synthetix

A pesquisa do oráculo da Angle é fortemente inspirada nas discussões de governança do Synthetix e nas postagens de blog relacionadas à frente de execução. Em nossa pesquisa, também encontramos outra opção que eles implementaram em fevereiro de 2020, a recuperação/reembolso de taxa, que eventualmente se tornou uma solução temporária.

O que eles fizeram foi adicionar um período de espera às transações, durante o qual os usuários não podiam manipular o Synth que desejavam usar. Durante esse período, os oráculos poderiam verificar se a transação foi afetada por inconsistências, especificamente se havia diferença de preço entre o momento da execução e o final do período de espera. Se existisse uma diferença de preço, a diferença teria que ser paga pelo usuário ou pelo protocolo à outra parte (protocolo ou usuário), ou seria liquidada na próxima transação com Synthetix.

Esta solução foi muito eficaz na redução do front-running, mas eles tiveram que estender o período de espera e aumentar as taxas, o que criou uma experiência de usuário muito ruim para todos os comerciantes. Isso também impediu que o Synth se integrasse a outros protocolos em muitos casos de uso. No SIP-120, eles substituíram essa solução por um plano que adiciona o uso de oráculos TWAP para grandes transações.

Conclusão

O design específico do oráculo da Angle tem dois impactos principais no protocolo:

Atacantes precisam manipular dois mercados para enganar o protocolo, reduzindo significativamente o risco de negociações de front-running bem-sucedidas.

Durante períodos de estresse no mercado, o protocolo é improvável de oferecer aos usuários o melhor preço possível.

O impacto deste último foi discutido no fórum de governança Fei. Uma vez que fornecer a melhor execução de negociação não é o objetivo principal do protocolo, acreditamos que a resistência à frente de mercado é mais importante para garantir a segurança do protocolo. Nos mercados secundários durante períodos de alta volatilidade, uma melhor execução de negociação será oferecida.

Nosso objetivo no projeto Angle é projetar um protocolo de stablecoin totalmente suportado e eficiente. Para alcançar isso, é necessário considerar muitos aspectos do protocolo para garantir que ele não possa ser enganado em uma posição desfavorável, um dos quais é a resistência à frente. Isso é particularmente importante porque a estabilidade de stablecoins descentralizadas on-chain que dependem de oráculos depende da qualidade de seus oráculos.

Adicionar feeds de preço secundários na forma de TWAP pode ajudar o protocolo a mitigar os potenciais impactos adversos da alta volatilidade do mercado e as oportunidades de front-running que surgem durante esses momentos.

Por último, é importante notar que esta solução oracle mantém flexibilidade e escalabilidade. Por um lado, a governança do Angle pode votar e atualizar seus contratos oracle a qualquer momento. Por outro lado, oráculos podem ser criados para qualquer feed de preço suportado pelo Chainlink. Este é o nível mínimo de suporte necessário para alcançar a visão do Angle de trazer ativos financeiros para a cadeia de forma eficiente em termos de capital!

Aviso Legal:

  1. Este artigo é reproduzido a partir de [Comunidade Denglink]. Todos os direitos autorais pertencem ao autor original [Ângulo]. Se houver objeções a esta reedição, entre em contato com o Gate Learnequipe e eles vão lidar com isso prontamente.
  2. Isenção de responsabilidade: Os pontos de vista e opiniões expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Learn gate. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!