As Finanças Descentralizadas (DeFi) são uma direção de crescimento crucial no atual campo da inovação financeira. No DeFi, é essencial ocultar as informações das transações e proteger a privacidade do usuário. À medida que o DeFi continua a se expandir e evoluir, vários projetos surgem indefinidamente, demonstrando grande vitalidade. E a tecnologia de prova de conhecimento zero (ZK) abriu novas possibilidades para proteção de privacidade em DeFi. A tecnologia ZK permite que uma parte prove a outra parte que conhece uma informação sem revelar quaisquer detalhes específicos sobre essa informação. Esta tecnologia é usada em aplicativos DeFi como ZigZag , unyfy e ZK DEX, o que melhorou muito os recursos de proteção de privacidade do DeFi, especialmente a proteção de informações de transações. É previsível que a aplicação generalizada da tecnologia ZK irá inovar a forma como o DeFi e todo o campo das criptomoedas são tratados, promovendo o crescimento futuro em todo o campo e fazendo grandes avanços.
Não há segredos no blockchain e a transparência dos dados do DeFi é incontestável. Tomemos como exemplo uma determinada negociação no Uniswap V3, podemos visualizar facilmente os detalhes da transação através do site Etherescan (mostrado na Figura 1). Por exemplo, o endereço [0 x 3A 4 D…a 6 f 2] trocou 2 WETH por 17.654, 123, 249, 375 Bonk no Uniswap V3, e a taxa de negociação foi de 0,0046 Ether. Informações importantes como remetente, destinatário, valor da transação (valor) e taxa de transação nessas transações estão todas disponíveis publicamente.
Figura 1 Detalhes da transação divulgados no etherescan
Também podemos visualizar todas as transações registradas no endereço [0 x 3A 4 D…a 6 f 2] (conforme mostrado na Figura 2). Se as condições permitirem, é possível inferir a verdadeira identidade deste endereço no mundo real.
Figura 2 Uma lista de todas as transações para um endereço específico é pública no etherescan
No entanto, a transparência dos dados do DeFi pode ter algumas desvantagens. Se você é uma baleia DeFi, cada transação que você fizer pode atrair a atenção do mercado. Por exemplo, quando uma baleia retira 11,24 milhões de WOO (aproximadamente US$ 4,2 milhões) da Binance, esta transação atrairá a atenção generalizada. Da mesma forma, quaisquer pagamentos de grande valor ou transações a nível institucional também podem suscitar grande preocupação pública.
Outros participantes do mercado podem tomar decisões de compra e venda com base nestes comportamentos de negociação, o que pode afetar negativamente a sua estratégia de investimento. Por exemplo, você investe uma grande quantia de dinheiro em um determinado projeto, mas assim que sua transação for percebida pelo mercado, outros investidores poderão seguir o exemplo, fazendo com que os preços dos ativos subam, aumentando assim seus custos de investimento. Além disso, sua operação de venda também pode desencadear pânico no mercado, fazendo com que os preços caiam e afetando o retorno do seu investimento.
Esta situação destaca a necessidade urgente de proteção da privacidade entre projetos e usuários DeFi. Se não quisermos que os detalhes de nossas transações sejam conhecidos pelo público, podemos optar por manter privadas certas informações sobre nossas transações DeFi.
A tecnologia ZK pode garantir a legitimidade das transações enquanto oculta os detalhes da transação. Os usuários precisam enviar dois tipos de informações: uma é uma transação (uma transação privada) que oculta parcialmente detalhes (como destinatário ou valor da transação) e a outra é um certificado ZK sobre essas informações ocultas. Verificar a legitimidade de uma transação privada é, na verdade, verificar o certificado ZK correspondente.
Suponha que você tenha a sorte de saber que uma grande empresa está prestes a comprar uma grande quantidade de um determinado ativo. Você pode optar por comprar esse ativo antes que a empresa o faça. Então, quando o preço do ativo sobe devido às compras pesadas daquela empresa, você o vende com lucro. Neste caso, a sua negociação perante os grandes jogadores é uma negociação de vanguarda.
Front-running é uma estratégia de investimento em negociações financeiras, normalmente ocorrendo em bolsas como a Uniswap. Isso ocorre porque as transações no blockchain são conhecidas do público e a confirmação da transação leva um certo tempo. Portanto, alguns comerciantes mal-intencionados podem aumentar a taxa de gás comercial para permitir que as suas transacções sejam exploradas e confirmadas antes das transacções de outras pessoas, de modo a atingir o objectivo de transacções front-running.
As negociações iniciais podem causar perdas a outros traders porque alteram o ambiente de negociação original, de modo que as negociações de outros jogadores podem não prosseguir conforme planejado originalmente. Por outro lado, os invasores iniciam transações antecipadas para obter lucros para si próprios. Eles podem obter lucros antes que o preço mude. Portanto, muitos projetos DeFi também estão tomando várias medidas para evitar transações antecipadas.
A tecnologia ZK desempenha um papel fundamental na resistência às transações iniciais. Abaixo, tomamos o ataque sanduíche, também um tipo comum de transação de front-running, em Exchange Descentralizada (DEX) como exemplo para análise de caso.
O que é um ataque sanduíche?
Suponha que em um DEX haja um pool de liquidez com uma reserva de 100 ETH/300.000 USDT. Alice faz um pedido de compra de USDT, trocando 20 ETH por USDT. Quando ela envia o pedido, o DEX retorna um resultado baseado na reserva atual do pool de liquidez, informando a Alice que aproximadamente 50.000 USDT estão disponíveis para compra. Mas, na verdade, Alice só conseguiu 45.714 USDT no final.
Aqui, vamos primeiro explicar brevemente por que Alice pode usar 20 ETH para comprar 50.000 USDT. Esta DEX adota o modelo de formador de mercado automatizado (AMM), que calcula automaticamente o preço de compra e venda por meio do algoritmo Constant Product Market Maker (CPMM). CPMM é um algoritmo de criador de mercado automatizado atualmente popular que mantém um produto constante de dois ativos no pool de negociação para obter liquidez e ajustar automaticamente os preços dos ativos. Neste exemplo, a quantidade de USDT que Alice pode comprar é calculada usando a fórmula [50.000 = 300.000-(100* 300.000)/(100+ 20) (assumindo que não há taxas de manuseio)].
Alice não comprou a quantia esperada de USDT porque sofreu um ataque sanduíche.
Os ataques sanduíche ocorrem principalmente em DEXs baseados em AMM. Neste ataque, o atacante coloca duas transações em torno das transações regulares da vítima para manipular os preços dos ativos e lucrar com as perdas da vítima. Essas duas transações são transações iniciais e transações de acompanhamento, respectivamente. A transação antes da transação regular é chamada de transação inicial, e a transação após a transação regular é chamada de transação de acompanhamento.
Então, como funcionou o ataque sanduíche de Alice? Conforme mostrado na Figura 3.
Figura 3 Como funciona o ataque sanduíche
O invasor inicia uma transação de front-running: Antes da transação iniciada por Alice para comprar USDT ser executada, o invasor também iniciou uma transação de compra de USDT (transação de front-running), ou seja, trocando 5 ETH por USDT. Além disso, a taxa de gás paga pelo invasor ao minerador por esta transação é maior do que a de Alice, portanto a transação do invasor será executada antes de Alice.
Depois que o invasor executou a transação para comprar USDT, ele obteve aproximadamente 14.286 USDT do pool de liquidez, ou seja, 14.286 ≈ 300.000-(100* 300.000)/(100+ 5). A reserva do pool de liquidez passou de 100 ETH/300.000 USDT para 105 ETH/285.714 USDT. No entanto, Alice não sabe que a reserva do pool de liquidez mudou entre o momento em que ela envia a transação e o momento em que sua transação é executada.
Execute a transação regular de Alice: Posteriormente, a transação regular de Alice começa a ser executada.
Após a execução da transação de compra de USDT de Alice, ela recebeu 45.714 USDT do pool de liquidez, ou seja, 45.714 ≈ 285, 714-( 105* 285, 714)/( 105+ 20) calculado de acordo com a função de produto constante . A reserva de liquidez passou de 105 ETH / 285.714 USDT para 125 ETH / 240.000 USDT. Portanto, Alice deveria ter conseguido comprar 50.000 USDT com 20 ETH, mas agora ela só pode comprar 45.714 USDT devido a alterações no pool de liquidez causadas pela transação do invasor. Alice perdeu aproximadamente 4.286 USDT (4.286 = 50.000-45.714).
Transação de acompanhamento do invasor: Por fim, o invasor iniciou uma transação (transação de acompanhamento) novamente, ou seja, trocando 14.286 USDT por ETH (os 14.286 USDT foram adquiridos agora há pouco).
Depois que a transação de acompanhamento do invasor foi executada, ele obteve 7 ETH do pool de liquidez, ou seja, 7 ≈ 125-(125* 240.000)/(240.000+ 14.286). A reserva do pool de liquidez passou de 125 ETH/240.000 USDT para 118 ETH/254.286 USDT. Portanto, o invasor gastou apenas 5 ETH no início, mas finalmente conseguiu 7 ETH e ganhou 2 ETH de lucro (2 = 7-5).
Durante todo o processo de ataque sanduíche, o invasor iniciou um total de duas transações, nomeadamente uma transação inicial e uma transação de acompanhamento. Por causa da negociação avançada, Alice perdeu aproximadamente 4.286 USDT. Ao combinar as negociações iniciais e de acompanhamento, o invasor obteve um lucro líquido de 2 ETH.
Nas DEXs, a visibilidade das transações é um fator chave que gera ataques sanduíche, principalmente em protocolos AMM. Esses protocolos tornam públicas as informações de transações em tempo real em DEXs. Esse alto nível de transparência permite que invasores observem e analisem fluxos de transações, visando encontrar oportunidades para realizar ataques sanduíche.
A aplicação da tecnologia ZK pode reduzir significativamente a possibilidade de ataques sanduíche. Ao usar a tecnologia ZK para ocultar o volume de transações, tipos de ativos, saldos de usuários ou pools de liquidez, identidades de usuários, instruções de transação e outras informações relacionadas ao protocolo, podemos efetivamente melhorar a privacidade dos dados de transações. Como resultado, é difícil para o invasor obter informações completas sobre a transação para implementar um ataque sanduíche.
Além disso, a tecnologia ZK não só pode resistir a ataques sanduíche, mas as transações privadas baseadas em ZK também podem tornar mais difícil julgar os modelos de comportamento do usuário. Qualquer terceiro que tente coletar dados de blockchain para analisar transações históricas de contas, inferir padrões comportamentais, explorar ciclos de atividades, frequências ou preferências de transações, etc., enfrentará desafios. Esse tipo de análise, conhecida como inferência de modelo comportamental, não apenas viola a privacidade do usuário, mas também pode abrir caminho para ataques honeypot e golpes de phishing.
A manipulação de liquidez e a negociação antecipada são métodos de ataque no DeFi. Ambos os métodos de ataque envolvem aproveitar informações de mercado e velocidade de transação para obter benefícios, mas suas estratégias e operações específicas são diferentes.
Front-running é aproveitar a informação, enquanto a manipulação da liquidez aproveita a atividade do mercado para enganar outros traders. O primeiro obtém lucros principalmente através da obtenção e utilização de informações importantes não divulgadas, enquanto o último engana outros investidores ao criar falsas atividades de mercado, levando-os a tomar decisões comerciais desfavoráveis.
A tecnologia ZK pode não só desempenhar um papel fundamental na resistência às negociações iniciais, mas também pode ajudar a prevenir a manipulação de liquidez.
Suponha que você esteja comprando maçãs em um movimentado mercado de frutas. Os preços de mercado normalmente flutuam com base nas mudanças na oferta e na demanda. Normalmente, você observa os preços durante um período de tempo e depois decide se compra com base no preço médio. Agora imagine que um comprador muito rico entra no mercado e quer muito comprar maçãs. Começou a comprar maçãs em grandes quantidades, independentemente do preço. Isso fará com que o preço da Apple dispare em um curto período de tempo. Se você ainda comprar a Apple com base nesse preço, provavelmente estará pagando mais do que realmente vale.
Este exemplo pode nos ajudar a entender melhor o princípio de funcionamento do oráculo TWAP (Preço Médio Ponderado pelo Tempo, Preço Médio Ponderado pelo Tempo) e o conceito de manipulação de liquidez. O ato de decidir comprar maçãs com base no preço médio é semelhante à operação do oráculo TWAP, e a grande compra de maçãs por empresários ricos que provocam a subida dos preços é semelhante à manipulação de liquidez.
O oráculo TWAP determina os preços dos ativos calculando o preço médio da transação durante um período de tempo. Quanto mais recente for a transação, maior será o impacto no preço médio. Se alguém faz um grande número de transações ou negocia com uma grande quantidade de dinheiro em um curto período de tempo, o que pode afetar significativamente o preço médio de um ativo, isso é manipulação de liquidez. A manipulação da liquidez pode aumentar ou diminuir artificialmente os preços dos ativos, resultando em informações de preços imprecisas. Se alguém quiser usar o oráculo TWAP para aumentar intencionalmente o preço de um ativo, poderá usar uma grande quantidade de dinheiro para comprar o ativo no curto prazo, fazendo com que o preço suba temporariamente. Se o preço do ativo disparar durante esse período, o oráculo TWAP poderá tratar esse preço mais alto como o preço do ativo.
A manipulação da liquidez dos oráculos TWAP pode ter um impacto significativo nos protocolos DeFi, especialmente nos tokens emergentes com baixa liquidez. Esses protocolos DeFi geralmente tomam decisões financeiras, como liquidação, empréstimo, etc., com base no preço do ativo. Se as informações de preços forem imprecisas ou não confiáveis, podem levar a decisões erradas, causando prejuízos aos usuários. Portanto, é crucial proteger os oráculos TWAP da manipulação de liquidez.
A tecnologia ZK pode ajudar a resistir à manipulação de liquidez no oráculo TWAP. Um contrato inteligente pode ser projetado para contar com um oráculo TWAP para obter o preço de um ativo. Se um invasor realizar manipulação de liquidez, o preço obtido do oráculo TWAP poderá ultrapassar a faixa aceitável predefinida. Neste caso, o contrato interromperá temporariamente suas operações. Em seguida, ele recalculará e confirmará o preço do ativo com base na tecnologia ZK.
Para usar a tecnologia ZK para calcular preços de ativos, primeiro você precisa adicionar um contrato wrapper ao oráculo TWAP. O contrato pode acessar diretamente uma série de N relatórios de preços ou registrar uma série de N valores de pontos de verificação do preço em intervalos arbitrários. Uma vez que estes N pontos de dados estejam disponíveis dentro de um determinado intervalo, uma prova ZK pode ser construída para provar a mediana da matriz não ordenada de preços. A matriz de preços não classificada é rotulada como um vetor coluna x, de comprimento N. A seguir está o processo de cálculo dos preços dos ativos com base na tecnologia ZK:
Existe uma matriz N x N A (matriz quadrada). Quando a matriz é multiplicada pelo vetor coluna x, um vetor coluna y é gerado. A é uma matriz de permutação invertível, mas como pode haver valores de preços duplicados, A não é necessariamente único e A contém apenas valores binários.
Os valores em y são ordenados. O que deve ser enfatizado é que < não pode ser usado porque pode haver valores de preços duplicados.
A saída pública do circuito m é o valor mediano de y. A prova mostra que N é um valor estático quando o circuito é compilado e deve ser um número ímpar.
De acordo com o processo acima, um preço médio m é produzido com base na tecnologia ZK, que é à prova de falsificação. A mediana m, até certo ponto, pode evitar a manipulação de liquidez. Para conseguir isso, precisamos limitar o valor de y para garantir que em cada bloco o valor de y seja inserido apenas uma vez, ou o número de inserções seja mantido dentro de um número aceitável.
Conforme mencionado acima, a tecnologia ZK é resistente ao front-running e à manipulação de liquidez em DEXs. Então, podemos explorar ainda mais as possibilidades de aplicação da tecnologia ZK em outros cenários DeFi? Por exemplo, a tecnologia ZK também pode desempenhar um papel fundamental nos empréstimos, uma parte importante dos projetos DeFi.
Nas plataformas de empréstimo tradicionais, o processo de solicitação de empréstimo geralmente abrange cinco etapas: envio do pedido, avaliação de crédito, aprovação do empréstimo, emissão e reembolso do empréstimo. Entre eles, a avaliação de crédito é crucial. Os mutuários devem provar que sua renda atende ao padrão e que têm capacidade de reembolso. Durante o processo de avaliação, a plataforma conduzirá uma investigação aprofundada do histórico de crédito do mutuário, incluindo rendimentos, passivos e registos de reembolsos anteriores, para garantir que o mutuário tem capacidade para reembolsar o empréstimo. Somente nesta base a plataforma considerará a aprovação do pedido de empréstimo.
No entanto, quando você recorrer a plataformas de empréstimo DeFi, como Ghost ou Compound, a situação será diferente. Devido à sua natureza descentralizada, a maioria das plataformas de empréstimo DeFi não possuem os procedimentos KYC (Conheça seu Cliente) e procedimentos de avaliação de risco dos bancos tradicionais, e não podem investigar a situação de crédito dos mutuários por meio de agências de crédito conjuntas. Nesse caso, você deve estar se perguntando: como será avaliado meu crédito?
Nas plataformas de empréstimo DeFi, você pode provar sua credibilidade por meio de prova de token de reputação. Token de reputação é um sistema de crédito baseado na tecnologia blockchain, que utiliza tokens digitais para representar e quantificar a reputação dos usuários. O número de tokens de reputação tornou-se um indicador chave para avaliar a qualidade de crédito de um usuário. Quanto maior o número de tokens, melhor será a reputação do usuário e correspondente melhoria na classificação de crédito, possibilitando a obtenção de mais linhas de empréstimo na plataforma de empréstimos DeFi.
No entanto, a geração de tokens de reputação depende do histórico de transações e das informações financeiras dos usuários, o que pode violar os direitos de privacidade dos usuários.
A tecnologia ZK protege a privacidade do usuário. A combinação da tecnologia ZK e tokens de reputação pode proteger a privacidade do usuário enquanto mantém e rastreia sua reputação na rede.
Os usuários podem usar a tecnologia ZK para gerar tokens de reputação sem divulgar transações históricas. Por um lado, os usuários podem gerar provas de transações históricas baseadas na tecnologia ZK; por outro lado, a prova é verificada por um contrato inteligente (frequentemente chamado de contrato de geração de token de reputação), e tokens de reputação podem ser gerados se a verificação for aprovada.
Além disso, em algumas plataformas de empréstimo DeFi que exigem garantia excessiva, os tokens de reputação podem reduzir os requisitos de garantia, resolvendo assim o problema da garantia excessiva e melhorando a liquidez do mercado. E a aplicação de tokens de reputação baseados na tecnologia ZK vai além das plataformas de empréstimo DeFi, sendo amplamente utilizados em seguros, subsídios médicos e outras áreas.
Este artigo explora os vários cenários de aplicação da tecnologia ZK para proteção de privacidade em DeFi, especialmente seu papel fundamental em empréstimos e seu grande potencial para resistir ao front-running e à manipulação de liquidez. À medida que exploramos o DeFi, enfrentamos vários desafios, especialmente questões relacionadas à privacidade e segurança. Os desafios de privacidade no ecossistema DeFi são um tema chave, e a tecnologia ZK fornece uma solução única que não apenas melhora a proteção da privacidade, mas também melhora a eficiência e a segurança das transações. Se você deseja introduzir a tecnologia ZK em seu DApp, não hesite em entrar em contato com Salus.
Olhando para o futuro, a tecnologia ZK pode ser aplicada em campos DeFi mais profundos, como staking de liquidez, protocolos de derivativos, ativos do mundo real, seguros, etc. Salus se concentra em pesquisar e explorar a aplicação da tecnologia ZK em DeFi e outras camadas de aplicação Ethereum projetos. Sinceramente, convidamos pesquisadores de blockchain, desenvolvedores de tecnologia e todos os profissionais da área web3 em todo o mundo para trabalhar conosco para promover o desenvolvimento aprofundado e a aplicação generalizada da tecnologia ZK, de modo a impulsionar o crescimento do DeFi e até mesmo da indústria como um todo.
As Finanças Descentralizadas (DeFi) são uma direção de crescimento crucial no atual campo da inovação financeira. No DeFi, é essencial ocultar as informações das transações e proteger a privacidade do usuário. À medida que o DeFi continua a se expandir e evoluir, vários projetos surgem indefinidamente, demonstrando grande vitalidade. E a tecnologia de prova de conhecimento zero (ZK) abriu novas possibilidades para proteção de privacidade em DeFi. A tecnologia ZK permite que uma parte prove a outra parte que conhece uma informação sem revelar quaisquer detalhes específicos sobre essa informação. Esta tecnologia é usada em aplicativos DeFi como ZigZag , unyfy e ZK DEX, o que melhorou muito os recursos de proteção de privacidade do DeFi, especialmente a proteção de informações de transações. É previsível que a aplicação generalizada da tecnologia ZK irá inovar a forma como o DeFi e todo o campo das criptomoedas são tratados, promovendo o crescimento futuro em todo o campo e fazendo grandes avanços.
Não há segredos no blockchain e a transparência dos dados do DeFi é incontestável. Tomemos como exemplo uma determinada negociação no Uniswap V3, podemos visualizar facilmente os detalhes da transação através do site Etherescan (mostrado na Figura 1). Por exemplo, o endereço [0 x 3A 4 D…a 6 f 2] trocou 2 WETH por 17.654, 123, 249, 375 Bonk no Uniswap V3, e a taxa de negociação foi de 0,0046 Ether. Informações importantes como remetente, destinatário, valor da transação (valor) e taxa de transação nessas transações estão todas disponíveis publicamente.
Figura 1 Detalhes da transação divulgados no etherescan
Também podemos visualizar todas as transações registradas no endereço [0 x 3A 4 D…a 6 f 2] (conforme mostrado na Figura 2). Se as condições permitirem, é possível inferir a verdadeira identidade deste endereço no mundo real.
Figura 2 Uma lista de todas as transações para um endereço específico é pública no etherescan
No entanto, a transparência dos dados do DeFi pode ter algumas desvantagens. Se você é uma baleia DeFi, cada transação que você fizer pode atrair a atenção do mercado. Por exemplo, quando uma baleia retira 11,24 milhões de WOO (aproximadamente US$ 4,2 milhões) da Binance, esta transação atrairá a atenção generalizada. Da mesma forma, quaisquer pagamentos de grande valor ou transações a nível institucional também podem suscitar grande preocupação pública.
Outros participantes do mercado podem tomar decisões de compra e venda com base nestes comportamentos de negociação, o que pode afetar negativamente a sua estratégia de investimento. Por exemplo, você investe uma grande quantia de dinheiro em um determinado projeto, mas assim que sua transação for percebida pelo mercado, outros investidores poderão seguir o exemplo, fazendo com que os preços dos ativos subam, aumentando assim seus custos de investimento. Além disso, sua operação de venda também pode desencadear pânico no mercado, fazendo com que os preços caiam e afetando o retorno do seu investimento.
Esta situação destaca a necessidade urgente de proteção da privacidade entre projetos e usuários DeFi. Se não quisermos que os detalhes de nossas transações sejam conhecidos pelo público, podemos optar por manter privadas certas informações sobre nossas transações DeFi.
A tecnologia ZK pode garantir a legitimidade das transações enquanto oculta os detalhes da transação. Os usuários precisam enviar dois tipos de informações: uma é uma transação (uma transação privada) que oculta parcialmente detalhes (como destinatário ou valor da transação) e a outra é um certificado ZK sobre essas informações ocultas. Verificar a legitimidade de uma transação privada é, na verdade, verificar o certificado ZK correspondente.
Suponha que você tenha a sorte de saber que uma grande empresa está prestes a comprar uma grande quantidade de um determinado ativo. Você pode optar por comprar esse ativo antes que a empresa o faça. Então, quando o preço do ativo sobe devido às compras pesadas daquela empresa, você o vende com lucro. Neste caso, a sua negociação perante os grandes jogadores é uma negociação de vanguarda.
Front-running é uma estratégia de investimento em negociações financeiras, normalmente ocorrendo em bolsas como a Uniswap. Isso ocorre porque as transações no blockchain são conhecidas do público e a confirmação da transação leva um certo tempo. Portanto, alguns comerciantes mal-intencionados podem aumentar a taxa de gás comercial para permitir que as suas transacções sejam exploradas e confirmadas antes das transacções de outras pessoas, de modo a atingir o objectivo de transacções front-running.
As negociações iniciais podem causar perdas a outros traders porque alteram o ambiente de negociação original, de modo que as negociações de outros jogadores podem não prosseguir conforme planejado originalmente. Por outro lado, os invasores iniciam transações antecipadas para obter lucros para si próprios. Eles podem obter lucros antes que o preço mude. Portanto, muitos projetos DeFi também estão tomando várias medidas para evitar transações antecipadas.
A tecnologia ZK desempenha um papel fundamental na resistência às transações iniciais. Abaixo, tomamos o ataque sanduíche, também um tipo comum de transação de front-running, em Exchange Descentralizada (DEX) como exemplo para análise de caso.
O que é um ataque sanduíche?
Suponha que em um DEX haja um pool de liquidez com uma reserva de 100 ETH/300.000 USDT. Alice faz um pedido de compra de USDT, trocando 20 ETH por USDT. Quando ela envia o pedido, o DEX retorna um resultado baseado na reserva atual do pool de liquidez, informando a Alice que aproximadamente 50.000 USDT estão disponíveis para compra. Mas, na verdade, Alice só conseguiu 45.714 USDT no final.
Aqui, vamos primeiro explicar brevemente por que Alice pode usar 20 ETH para comprar 50.000 USDT. Esta DEX adota o modelo de formador de mercado automatizado (AMM), que calcula automaticamente o preço de compra e venda por meio do algoritmo Constant Product Market Maker (CPMM). CPMM é um algoritmo de criador de mercado automatizado atualmente popular que mantém um produto constante de dois ativos no pool de negociação para obter liquidez e ajustar automaticamente os preços dos ativos. Neste exemplo, a quantidade de USDT que Alice pode comprar é calculada usando a fórmula [50.000 = 300.000-(100* 300.000)/(100+ 20) (assumindo que não há taxas de manuseio)].
Alice não comprou a quantia esperada de USDT porque sofreu um ataque sanduíche.
Os ataques sanduíche ocorrem principalmente em DEXs baseados em AMM. Neste ataque, o atacante coloca duas transações em torno das transações regulares da vítima para manipular os preços dos ativos e lucrar com as perdas da vítima. Essas duas transações são transações iniciais e transações de acompanhamento, respectivamente. A transação antes da transação regular é chamada de transação inicial, e a transação após a transação regular é chamada de transação de acompanhamento.
Então, como funcionou o ataque sanduíche de Alice? Conforme mostrado na Figura 3.
Figura 3 Como funciona o ataque sanduíche
O invasor inicia uma transação de front-running: Antes da transação iniciada por Alice para comprar USDT ser executada, o invasor também iniciou uma transação de compra de USDT (transação de front-running), ou seja, trocando 5 ETH por USDT. Além disso, a taxa de gás paga pelo invasor ao minerador por esta transação é maior do que a de Alice, portanto a transação do invasor será executada antes de Alice.
Depois que o invasor executou a transação para comprar USDT, ele obteve aproximadamente 14.286 USDT do pool de liquidez, ou seja, 14.286 ≈ 300.000-(100* 300.000)/(100+ 5). A reserva do pool de liquidez passou de 100 ETH/300.000 USDT para 105 ETH/285.714 USDT. No entanto, Alice não sabe que a reserva do pool de liquidez mudou entre o momento em que ela envia a transação e o momento em que sua transação é executada.
Execute a transação regular de Alice: Posteriormente, a transação regular de Alice começa a ser executada.
Após a execução da transação de compra de USDT de Alice, ela recebeu 45.714 USDT do pool de liquidez, ou seja, 45.714 ≈ 285, 714-( 105* 285, 714)/( 105+ 20) calculado de acordo com a função de produto constante . A reserva de liquidez passou de 105 ETH / 285.714 USDT para 125 ETH / 240.000 USDT. Portanto, Alice deveria ter conseguido comprar 50.000 USDT com 20 ETH, mas agora ela só pode comprar 45.714 USDT devido a alterações no pool de liquidez causadas pela transação do invasor. Alice perdeu aproximadamente 4.286 USDT (4.286 = 50.000-45.714).
Transação de acompanhamento do invasor: Por fim, o invasor iniciou uma transação (transação de acompanhamento) novamente, ou seja, trocando 14.286 USDT por ETH (os 14.286 USDT foram adquiridos agora há pouco).
Depois que a transação de acompanhamento do invasor foi executada, ele obteve 7 ETH do pool de liquidez, ou seja, 7 ≈ 125-(125* 240.000)/(240.000+ 14.286). A reserva do pool de liquidez passou de 125 ETH/240.000 USDT para 118 ETH/254.286 USDT. Portanto, o invasor gastou apenas 5 ETH no início, mas finalmente conseguiu 7 ETH e ganhou 2 ETH de lucro (2 = 7-5).
Durante todo o processo de ataque sanduíche, o invasor iniciou um total de duas transações, nomeadamente uma transação inicial e uma transação de acompanhamento. Por causa da negociação avançada, Alice perdeu aproximadamente 4.286 USDT. Ao combinar as negociações iniciais e de acompanhamento, o invasor obteve um lucro líquido de 2 ETH.
Nas DEXs, a visibilidade das transações é um fator chave que gera ataques sanduíche, principalmente em protocolos AMM. Esses protocolos tornam públicas as informações de transações em tempo real em DEXs. Esse alto nível de transparência permite que invasores observem e analisem fluxos de transações, visando encontrar oportunidades para realizar ataques sanduíche.
A aplicação da tecnologia ZK pode reduzir significativamente a possibilidade de ataques sanduíche. Ao usar a tecnologia ZK para ocultar o volume de transações, tipos de ativos, saldos de usuários ou pools de liquidez, identidades de usuários, instruções de transação e outras informações relacionadas ao protocolo, podemos efetivamente melhorar a privacidade dos dados de transações. Como resultado, é difícil para o invasor obter informações completas sobre a transação para implementar um ataque sanduíche.
Além disso, a tecnologia ZK não só pode resistir a ataques sanduíche, mas as transações privadas baseadas em ZK também podem tornar mais difícil julgar os modelos de comportamento do usuário. Qualquer terceiro que tente coletar dados de blockchain para analisar transações históricas de contas, inferir padrões comportamentais, explorar ciclos de atividades, frequências ou preferências de transações, etc., enfrentará desafios. Esse tipo de análise, conhecida como inferência de modelo comportamental, não apenas viola a privacidade do usuário, mas também pode abrir caminho para ataques honeypot e golpes de phishing.
A manipulação de liquidez e a negociação antecipada são métodos de ataque no DeFi. Ambos os métodos de ataque envolvem aproveitar informações de mercado e velocidade de transação para obter benefícios, mas suas estratégias e operações específicas são diferentes.
Front-running é aproveitar a informação, enquanto a manipulação da liquidez aproveita a atividade do mercado para enganar outros traders. O primeiro obtém lucros principalmente através da obtenção e utilização de informações importantes não divulgadas, enquanto o último engana outros investidores ao criar falsas atividades de mercado, levando-os a tomar decisões comerciais desfavoráveis.
A tecnologia ZK pode não só desempenhar um papel fundamental na resistência às negociações iniciais, mas também pode ajudar a prevenir a manipulação de liquidez.
Suponha que você esteja comprando maçãs em um movimentado mercado de frutas. Os preços de mercado normalmente flutuam com base nas mudanças na oferta e na demanda. Normalmente, você observa os preços durante um período de tempo e depois decide se compra com base no preço médio. Agora imagine que um comprador muito rico entra no mercado e quer muito comprar maçãs. Começou a comprar maçãs em grandes quantidades, independentemente do preço. Isso fará com que o preço da Apple dispare em um curto período de tempo. Se você ainda comprar a Apple com base nesse preço, provavelmente estará pagando mais do que realmente vale.
Este exemplo pode nos ajudar a entender melhor o princípio de funcionamento do oráculo TWAP (Preço Médio Ponderado pelo Tempo, Preço Médio Ponderado pelo Tempo) e o conceito de manipulação de liquidez. O ato de decidir comprar maçãs com base no preço médio é semelhante à operação do oráculo TWAP, e a grande compra de maçãs por empresários ricos que provocam a subida dos preços é semelhante à manipulação de liquidez.
O oráculo TWAP determina os preços dos ativos calculando o preço médio da transação durante um período de tempo. Quanto mais recente for a transação, maior será o impacto no preço médio. Se alguém faz um grande número de transações ou negocia com uma grande quantidade de dinheiro em um curto período de tempo, o que pode afetar significativamente o preço médio de um ativo, isso é manipulação de liquidez. A manipulação da liquidez pode aumentar ou diminuir artificialmente os preços dos ativos, resultando em informações de preços imprecisas. Se alguém quiser usar o oráculo TWAP para aumentar intencionalmente o preço de um ativo, poderá usar uma grande quantidade de dinheiro para comprar o ativo no curto prazo, fazendo com que o preço suba temporariamente. Se o preço do ativo disparar durante esse período, o oráculo TWAP poderá tratar esse preço mais alto como o preço do ativo.
A manipulação da liquidez dos oráculos TWAP pode ter um impacto significativo nos protocolos DeFi, especialmente nos tokens emergentes com baixa liquidez. Esses protocolos DeFi geralmente tomam decisões financeiras, como liquidação, empréstimo, etc., com base no preço do ativo. Se as informações de preços forem imprecisas ou não confiáveis, podem levar a decisões erradas, causando prejuízos aos usuários. Portanto, é crucial proteger os oráculos TWAP da manipulação de liquidez.
A tecnologia ZK pode ajudar a resistir à manipulação de liquidez no oráculo TWAP. Um contrato inteligente pode ser projetado para contar com um oráculo TWAP para obter o preço de um ativo. Se um invasor realizar manipulação de liquidez, o preço obtido do oráculo TWAP poderá ultrapassar a faixa aceitável predefinida. Neste caso, o contrato interromperá temporariamente suas operações. Em seguida, ele recalculará e confirmará o preço do ativo com base na tecnologia ZK.
Para usar a tecnologia ZK para calcular preços de ativos, primeiro você precisa adicionar um contrato wrapper ao oráculo TWAP. O contrato pode acessar diretamente uma série de N relatórios de preços ou registrar uma série de N valores de pontos de verificação do preço em intervalos arbitrários. Uma vez que estes N pontos de dados estejam disponíveis dentro de um determinado intervalo, uma prova ZK pode ser construída para provar a mediana da matriz não ordenada de preços. A matriz de preços não classificada é rotulada como um vetor coluna x, de comprimento N. A seguir está o processo de cálculo dos preços dos ativos com base na tecnologia ZK:
Existe uma matriz N x N A (matriz quadrada). Quando a matriz é multiplicada pelo vetor coluna x, um vetor coluna y é gerado. A é uma matriz de permutação invertível, mas como pode haver valores de preços duplicados, A não é necessariamente único e A contém apenas valores binários.
Os valores em y são ordenados. O que deve ser enfatizado é que < não pode ser usado porque pode haver valores de preços duplicados.
A saída pública do circuito m é o valor mediano de y. A prova mostra que N é um valor estático quando o circuito é compilado e deve ser um número ímpar.
De acordo com o processo acima, um preço médio m é produzido com base na tecnologia ZK, que é à prova de falsificação. A mediana m, até certo ponto, pode evitar a manipulação de liquidez. Para conseguir isso, precisamos limitar o valor de y para garantir que em cada bloco o valor de y seja inserido apenas uma vez, ou o número de inserções seja mantido dentro de um número aceitável.
Conforme mencionado acima, a tecnologia ZK é resistente ao front-running e à manipulação de liquidez em DEXs. Então, podemos explorar ainda mais as possibilidades de aplicação da tecnologia ZK em outros cenários DeFi? Por exemplo, a tecnologia ZK também pode desempenhar um papel fundamental nos empréstimos, uma parte importante dos projetos DeFi.
Nas plataformas de empréstimo tradicionais, o processo de solicitação de empréstimo geralmente abrange cinco etapas: envio do pedido, avaliação de crédito, aprovação do empréstimo, emissão e reembolso do empréstimo. Entre eles, a avaliação de crédito é crucial. Os mutuários devem provar que sua renda atende ao padrão e que têm capacidade de reembolso. Durante o processo de avaliação, a plataforma conduzirá uma investigação aprofundada do histórico de crédito do mutuário, incluindo rendimentos, passivos e registos de reembolsos anteriores, para garantir que o mutuário tem capacidade para reembolsar o empréstimo. Somente nesta base a plataforma considerará a aprovação do pedido de empréstimo.
No entanto, quando você recorrer a plataformas de empréstimo DeFi, como Ghost ou Compound, a situação será diferente. Devido à sua natureza descentralizada, a maioria das plataformas de empréstimo DeFi não possuem os procedimentos KYC (Conheça seu Cliente) e procedimentos de avaliação de risco dos bancos tradicionais, e não podem investigar a situação de crédito dos mutuários por meio de agências de crédito conjuntas. Nesse caso, você deve estar se perguntando: como será avaliado meu crédito?
Nas plataformas de empréstimo DeFi, você pode provar sua credibilidade por meio de prova de token de reputação. Token de reputação é um sistema de crédito baseado na tecnologia blockchain, que utiliza tokens digitais para representar e quantificar a reputação dos usuários. O número de tokens de reputação tornou-se um indicador chave para avaliar a qualidade de crédito de um usuário. Quanto maior o número de tokens, melhor será a reputação do usuário e correspondente melhoria na classificação de crédito, possibilitando a obtenção de mais linhas de empréstimo na plataforma de empréstimos DeFi.
No entanto, a geração de tokens de reputação depende do histórico de transações e das informações financeiras dos usuários, o que pode violar os direitos de privacidade dos usuários.
A tecnologia ZK protege a privacidade do usuário. A combinação da tecnologia ZK e tokens de reputação pode proteger a privacidade do usuário enquanto mantém e rastreia sua reputação na rede.
Os usuários podem usar a tecnologia ZK para gerar tokens de reputação sem divulgar transações históricas. Por um lado, os usuários podem gerar provas de transações históricas baseadas na tecnologia ZK; por outro lado, a prova é verificada por um contrato inteligente (frequentemente chamado de contrato de geração de token de reputação), e tokens de reputação podem ser gerados se a verificação for aprovada.
Além disso, em algumas plataformas de empréstimo DeFi que exigem garantia excessiva, os tokens de reputação podem reduzir os requisitos de garantia, resolvendo assim o problema da garantia excessiva e melhorando a liquidez do mercado. E a aplicação de tokens de reputação baseados na tecnologia ZK vai além das plataformas de empréstimo DeFi, sendo amplamente utilizados em seguros, subsídios médicos e outras áreas.
Este artigo explora os vários cenários de aplicação da tecnologia ZK para proteção de privacidade em DeFi, especialmente seu papel fundamental em empréstimos e seu grande potencial para resistir ao front-running e à manipulação de liquidez. À medida que exploramos o DeFi, enfrentamos vários desafios, especialmente questões relacionadas à privacidade e segurança. Os desafios de privacidade no ecossistema DeFi são um tema chave, e a tecnologia ZK fornece uma solução única que não apenas melhora a proteção da privacidade, mas também melhora a eficiência e a segurança das transações. Se você deseja introduzir a tecnologia ZK em seu DApp, não hesite em entrar em contato com Salus.
Olhando para o futuro, a tecnologia ZK pode ser aplicada em campos DeFi mais profundos, como staking de liquidez, protocolos de derivativos, ativos do mundo real, seguros, etc. Salus se concentra em pesquisar e explorar a aplicação da tecnologia ZK em DeFi e outras camadas de aplicação Ethereum projetos. Sinceramente, convidamos pesquisadores de blockchain, desenvolvedores de tecnologia e todos os profissionais da área web3 em todo o mundo para trabalhar conosco para promover o desenvolvimento aprofundado e a aplicação generalizada da tecnologia ZK, de modo a impulsionar o crescimento do DeFi e até mesmo da indústria como um todo.