Autor | Ross Bulat
Uniswap V2 é a próxima iteração da troca em cadeia.
Uniswap é um protocolo de liquidez on-chain no blockchain Ethereum. Ele pode realizar trocas de tokens sem confiança, o que significa que todas as transações são executadas por contratos inteligentes sem a necessidade de intermediários ou partes confiáveis. Este método descentralizado de troca de tokens provou ser popular entre os detentores de tokens ERC20 para trocar seus tokens e fornecer liquidez para pares de tokens.
O Uniswap lançou a segunda versão na rede principal Ethereum em 19 de maio de 2020 para coincidir com o lançamento do contrato principal v1.0.1. Antes disso, o Uniswap foi testado na rede de teste Rinkeby por um período de tempo. No momento em que este artigo foi escrito, o protocolo já era usado na rede principal há mais de 2 meses. Até o momento, não houve nenhum dano ou problema importante relacionado à integridade do contrato inteligente.
Se você está interessado em manter e / ou negociar criptomoedas, desenvolvimento de Ethereum, tecnologia financeira ou tendências financeiras em geral, o Uniswap deve atrair sua atenção. Ela experimentou um rápido crescimento no terceiro trimestre de 2020 para corresponder ao campo de DeFi em expansão. O Uniswap existe como um serviço independente, mas também pode ser integrado a carteiras de terceiros ou Dapps. Além disso, outros contratos inteligentes também contam com o Uniswap como base de seus serviços.
Este artigo apresentará aos leitores as funções aprimoradas apresentadas com o Uniswap V2 de maneira neutra e apresentará as funções principais em detalhes.
A base fornecida pelo Uniswap V1
O Uniswap V1 estabelece a base para trocas de tokens em cadeia e pools de mineração de liquidez descentralizada, fornecendo aos usuários recompensas de liquidez e cobrando uma pequena taxa pelas trocas.
A taxa de câmbio simbólica não é uma oferta firme, mas é calculada usando a chamada “fórmula de produto constante”, que será brevemente revisada a seguir. Ele fornece essencialmente um mecanismo para manter o equilíbrio do valor do token em relação ao par de tokens relevante.
O par de tokens básico (como DAI para ETH ou DAI para USDC) tem um pool de mineração de liquidez independente associado a ele, e os usuários podem contribuir com liquidez depositando qualquer um desses tokens no pool de mineração correspondente. Então, sempre que houver uma transação, o provedor de liquidez receberá uma recompensa de ações de comissão de 0,3% – essa parcela é baseada na proporção dos tokens em seu pool de mineração para o fornecimento de todo o pool de mineração.
O que há de novo no Uniswap V2
O Uniswap V2 traz uma série de atualizações e aprimoramentos ao contrato, que são baseados nos mecanismos de troca e liquidez introduzidos na primeira iteração. As principais mudanças incluem
Troca de tokens ERC20 para ERC20, onde o ETH não precisa mais ser usado como um token intermediário para facilitar o processo de troca. Isso também é chamado de “ponte ETH”. Depois de remover esse requisito, o número de transações foi reduzido pela metade, economizando taxas de gás. Isso também permite que o Dapps encontre efetivamente uma “rota” de um token para outro sem configurar um pool de mineração de token de troca direta. Este artigo abordará essas mudanças em mais detalhes.
A função de oráculo de preço permite a determinação de preços médios ponderados no tempo com base nos tokens de cada bloco. Iremos interpretar o mecanismo por trás desse mecanismo em detalhes.
Lightning Exchange, ou a capacidade de “emprestar” tokens do pool de mineração Uniswap, conduzir algumas transações arbitrárias com serviços externos e reembolsar seus fundos emprestados iniciais em uma transação. A transação é atômica, o que significa que se a transação falhar em qualquer estágio, ela será totalmente restaurada. O caso de uso óbvio para esse recurso é usar pools de mineração de liquidez para realizar transações de arbitragem, mas existem outros casos de uso que fornecem benefícios, como a redução das taxas de gás para realizar certas operações DeFi, como fechar o Maker Vault.
Ao tratar os tipos de retorno inválidos de transferência e transferFrom como transferências bem-sucedidas, tokens ERC20 não padrão são suportados. Isso pode parecer trivial, mas os principais tokens como USDT (Tether) e BNB (Binance Coin) fazem exatamente isso em seus métodos de transferência. Incluindo os tokens amplamente adotados que não atendem totalmente ao padrão ERC20, fortalecendo a proposta do Uniswap de priorizar as trocas on-chain em termos de uso.
Um método prático adicional para evitar o estouro quando o número de tokens transferidos excede o suporte do Solidity.
Os tokens ERC20 não padrão devem suportar os métodos especificados na especificação EIP oficial, mas o tipo de retorno e a assinatura do método resultante podem ser diferentes daqueles descritos. Esse problema torna os tokens fora do padrão. O método necessário para renomear ou excluir também tornaria o token fora do padrão, mas essa prática é rara e, se um protocolo como o Uniswap quiser oferecer suporte a esse desvio da especificação finalizada, muitas soluções alternativas são necessárias .
O Uniswap V2 apresenta uma taxa de protocolo comutável de 0,05%, que consome a taxa padrão de 0,3%, mas atualmente está fechado – só pode ser aberto por meio de um mecanismo de governança descentralizado. Neste ponto, apresentaremos mais a seguir.
O Uniswap V2 foi lançado após extensos testes e auditoria.
Já há evidências suficientes de que, se houver um bug no contrato inteligente, a imutabilidade do contrato inteligente trará risco de perda / congelamento de token catastrófico. Se o contrato inteligente for mal escrito e contiver erros que causam o bloqueio de fundos, essas transações não podem ser restauradas (a menos que todo o blockchain seja forçado – considerando a escala de Ethereum e quantas partes dependem dele agora, este é o caso É improvável que aconteça).
É louvável que a equipe Uniswap tenha seguido as práticas padrão da indústria para garantir que os riscos de erros e erros lógicos em seus contratos sejam reduzidos ao mínimo.
De Uniswap V1 para V2, o contrato foi reescrito no Solidity a partir da primeira versão de Vyper. Isso supera com sucesso as limitações do Vyper e permite que os desenvolvedores do Uniswap aproveitem os novos opcodes introduzidos na última versão do Solidity para otimizar ainda mais os recursos da CPU usados na execução do contrato (e os custos de gás resultantes).
Os principais contratos que fazem o Uniswap funcionar são os seguintes:

A estrutura de contratos inteligentes faz o Uniswap V2 funcionar
O Roteador2 é uma versão mais otimizada do Roteador1, mas todos executam a mesma tarefa. O Uniswap recomenda que todos os desenvolvedores mudem para o Router2 agora.
A revisão abrangente do Uniswap requer uma revisão de terceiros, que é revisada por um estúdio de desenvolvimento conhecido, e um grande número de testes são conduzidos no testnet para simular o uso no mundo real. Isso tudo aconteceu – Consensys Diligence é uma das partes que fornece um relatório abrangente sobre o código-fonte do Uniswap V2.
Antes do lançamento da mainnet, o Uniswap V2 parece ter passado por extensas auditorias e análises. Realizar a devida diligência nessa tarefa crítica no código-fonte provavelmente garantirá que nenhum erro grave seja descoberto no futuro. Mas o Uniswap ainda tem um programa de recompensa por bug, se algum defeito importante for encontrado, uma recompensa será concedida.
A segurança é uma preocupação constante no campo do blockchain, o que é compreensível considerando a quantidade de valor da transação neste campo. Ataques aos mecanismos de blockchain subjacentes que envolvem consenso, criação de bloco e verificação de transação são o foco de muitas pesquisas na comunidade acadêmica, mas pode-se dizer que a integridade dos contratos inteligentes é igualmente importante no Ethereum. Os tokens bloqueados dependem de contratos inteligentes. Integridade lógica para mantê-los seguros e acessíveis.
Agora vamos aprender mais sobre alguns mecanismos do Uniswap V2 e entender melhor as funções do protocolo.
Como funciona o Uniswap V2
Cada par de tokens tem seu próprio pool de mineração de capital, que é inicializado por meio do contrato e deposita os fundos iniciais no pool de mineração para fornecer liquidez.
A taxa de câmbio do token é calculada com base na oferta e demanda dos dois tokens no pool de mineração, usando uma função chamada de constante. Usando a fórmula de produto constante, calcule o valor de um par de tokens com base na relação de oferta e demanda, onde o valor se move ao longo da curva da fórmula.

A fórmula do produto constante que determina a taxa de câmbio no Uniswap V2
A taxa de câmbio é calculada automaticamente de acordo com uma fórmula simples. x * y = k A curva correspondente representa todos os valores de token possíveis.Cada par de tokens tem sua própria curva para ajustar o status da taxa de câmbio atual.
Se a demanda por tokens B for enorme e a quantidade secar, o preço aumentará exponencialmente e, portanto, se moverá para a esquerda da curva. Por outro lado, se os tokens B tiverem uma oferta suficiente e não houver demanda para os tokens A, o preço se estabilizará no lado direito da curva. Observe que esse equilíbrio de oferta e demanda é baseado no token A, portanto, o mesmo token B e diferentes tokens A representarão diferentes proporções de quantidade e preço.
Por causa desses mecanismos, o Uniswap (e outras bolsas descentralizadas que dependem de fórmulas de produtos constantes) dependem da negociação de arbitragem para manter o valor do token em linha com o resto do mercado. Essencialmente, esses acordos ainda exigem um ecossistema de transações externas para controlar o valor dos tokens. A taxa de câmbio de cada par de tokens será constantemente atualizada para corresponder ao preço de mercado – isso oferece uma grande oportunidade para os comerciantes.
Quando você troca pares de tokens no Uniswap.exchange, a taxa de câmbio é aplicada em tempo real. O JavaScript SDK (que veremos abaixo) fornece APIs para outros aplicativos para fornecer sua própria interface para obter pares de tokens e suas taxas de câmbio. Além dos tokens ERC20, a taxa de câmbio também se aplica ao ETH nativo.

A taxa de câmbio aplicada ao par de negociação ETH | DAI na interface de usuário do Uniswap V2.
Agora vamos apresentar os tipos de trocas disponíveis no Uniswap V2. A atual escolha de troca expandida se deve ao fato de que a ETH não é usada como um token intermediário como no Uniswap V1, ou seja, “ponte ETH”.
Opções de troca Uniswap V2
Conforme mencionado acima, no Uniswap VI, toda troca de tokens usa ETH. Na troca do token A para o token B, o token A deve primeiro ser trocado pelo ETH e, em seguida, o token ETH será trocado pelo token B. Isso resulta em taxas de transação duplas e taxas de gás em dobro.
O documento Uniswap mencionou que a primeira iteração foi o “protótipo” da ideia de uma troca automática descentralizada. Isso provavelmente ocorre porque os desenvolvedores descobriram métodos de execução de transações mais eficientes, e esses métodos foram aplicados na V2. Omitir ETH como um token intermediário é uma dessas otimizações.
Remova o ETH como token de utilitário e realize a troca direta de pares de tokens, conforme mostrado na figura abaixo.

Troca direta entre dois tokens ERC20.
Isso parece razoável e intuitivo e pode ser a maneira como V1 deve funcionar. Os métodos swapExactTokensForTokens e swapTokensForExactTokens no contrato do roteador podem ser chamados para realizar tais transações.
O termo exato usado nesses nomes de método representa o token que você deseja negociar. Na transação de DAI para ETH, se você precisar de uma quantidade específica de ETH em troca, você usará swapTokensForExactTokens. Por outro lado, se você quiser trocar o valor exato de DAI pelo valor ETH correspondente, você usará swapExactTokensForTokens. Este acordo é executado por meio do contrato inteligente do Uniswap V2.
Além da troca direta, os usuários ainda podem escolher trocar entre dois tokens, com ETH como o token intermediário. Isso se torna útil quando não há um pool de mineração de capital para tokens de entrada e saída, mas há um pool de mineração de capital entre ETH e os dois tokens.
No caso de troca ETH DAI e LINK, o processo de troca resultante é o seguinte.
 Troca indireta com ETH como um token intermediário (semelhante ao Uniswap V1).
Os métodos Solidity correspondentes que permitem essa transação são swapExactETHForTokens e swapETHForExactTokens, e swapTokensForExactETH e swapExactTokensForETH.
O último método de troca de tokens é rotear a troca para vários tokens ERC20, ou “qualquer par de tokens ERC20” conforme mencionado no white paper, e então alcançar o token de saída desejado. É claro que os tokens ETH nativos também podem existir em qualquer par.
Considere a ilustração a seguir para mover o valor DAI por meio de uma série de tokens antes de atingir o token de saída LINK necessário.

Roteamento de fundos por meio de uma série de tokens, troque um token que não corresponda diretamente
Este método é útil se não houver pool de mineração de fundos entre seus tokens diretos e a ponte ETH descrita anteriormente foi omitida.
Embora esse método de troca seja possível, não existe um método de contrato inteligente que possa facilitar automaticamente a troca de muitos tokens. Ao contrário, o aplicativo front-end deve escrever códigos de função manualmente e fazer várias chamadas de transação para Uniswap.
Este caso de uso não pode ser usado muito – depois de passar o valor por 1 ou 2 tokens intermediários, o gás tornará as trocas adicionais não econômicas. Além disso, as trocas centralizadas podem ter trocas de tokens mais baratas. Dito isso, uma vez que as funções estendidas do Ethereum 2.0 e um consenso de prova de aposta mais eficiente sejam incorporados à rede principal, tais recursos podem se tornar mais extensos, tornando o swap multi-transação uma perspectiva mais viável.
Máquina de previsão de preços
O mecanismo de oráculo de preços do Uniswap permite que os desenvolvedores calculem o preço médio do token com base nas alterações de preço do token em alguns blocos, e esses blocos também representam um período de tempo por seus carimbos de data / hora.
O aumento neste período de tempo pode ser na última hora, 24 horas ou mais.
Embora o Uniswap forneça preços simbólicos, ele não armazena nenhum valor histórico na cadeia. Pelo contrário, é responsabilidade do desenvolvedor Dapp aumentar o preço ao longo de um período de tempo e calcular o preço médio durante esse período.
Esses preços são chamados de “preços médios ponderados no tempo” ou TWAPS.
A ideia é calcular o preço médio de um bloco dividindo o preço crescente (o preço do token de cada bloco dentro da duração) pela duração do registro de data e hora (o registro de data e hora de término da duração menos o registro de data e hora de início da duração).
O diagrama a seguir resume esse método de cálculo.

Os TWAPs são confiáveis. Eles refletem o valor dos tokens (não se esqueça, com base em um par de tokens específico) durante um período de tempo. Este método oferece proteção contra travamentos de flash ou mudanças absurdas de preço, que não são incomuns em transações de criptomoeda. No caso de volatilidade do mercado, o fornecimento de preços ponderados pelo tempo reflete o desempenho mais preciso dos tokens.
Os desenvolvedores são livres para usar a máquina oracle de preços. Se precisarem de seus serviços, eles podem recuperá-los por meio do SDK do Uniswap JavaScript e terão acesso posterior.
Troca de relâmpagos
O mapeamento Flash é uma transação que consiste em um processo de vários estágios de empréstimo de tokens do pool de tokens Uniswap, fazendo algo com esses tokens e reembolsando esses tokens, todos realizados nesta única transação. Se qualquer estágio da transação falhar, todas as mudanças de estado serão restauradas e os tokens permanecerão no pool de mineração Uniswap correspondente.
Considere a ilustração a seguir, mostrando que um comprador pode executar uma troca relâmpago sem segurar fichas. Isso ocorre porque o valor do token é garantido para retornar ao pool de mineração, ou a transação falha ou o comprador reembolsa o token emprestado na mesma transação.

Um bom caso de aplicação do Lightning Exchange é a negociação de arbitragem, que garante o lucro do comprador e retorna o valor do token original para o pool de mineração Uniswap. Os compradores sempre podem obter lucros com transações de arbitragem.
Outro caso de uso é usar o pool de mineração Uniswap para liquidar o Maker Vault. Você pagará a dívida e retirará sua hipoteca ETH (ou outros tokens de hipoteca) do Vault para reembolsar o pool de mineração Uniswap. Isso é menos gás do que usar seus próprios fundos para realizar a mesma tarefa.
Lightning Exchange é um recurso relativamente novo do Uniswap, mas podemos esperar que mais Dapps integrem esse recurso em um futuro próximo.
No caso de uso de robôs de negociação, a negociação relâmpago também pode ser usada para automatizar transações de arbitragem. Os robôs não precisam de fundos para executar transações, apenas precisam identificar oportunidades de arbitragem e executar transações de swap flash.
Nova taxa de contrato de 0,05% e governança
O Uniswap V2 introduz taxas adicionais para o acordo na forma de “taxas de protocolo”. Quando aberto, 0,05% do valor da transação é encaminhado para um endereço de propriedade da Uniswap. Este 0,05% é deduzido da taxa padrão de 0,3% da bolsa, portanto, quando essa taxa for ativada, o provedor de liquidez se tornará a parte que perde.
A taxa de contrato está atualmente fechada e a Uniswap não anunciou publicamente que será aberta em um futuro próximo.
Este novo recurso parece ser uma decisão questionável, mas os desenvolvedores do Uniswap acreditam que é um recurso necessário para oferecer suporte ao desenvolvimento e à sustentabilidade de longo prazo do Uniswap. Fatos provaram que, se eles quiserem ativar essa taxa, haverá um mecanismo de gerenciamento, e a comunidade precisa votar para decidir se ativa o mecanismo.
Embora seja necessário consenso da comunidade para ativar esse recurso, isso dará à equipe do Uniswap uma grande vantagem financeira e, portanto, uma vantagem competitiva, porque as taxas serão transferidas para suas carteiras.
Pelo lado positivo, essas taxas fornecerão financiamento para protocolos aprimorados e para o ecossistema geral, o que levará a mais aplicações, portanto, mais taxas de transação beneficiarão os provedores de liquidez. Em teoria, isso pode compensar a perda inicialmente introduzida pela taxa. O diagrama a seguir resume essa ideia.

Em relação ao mecanismo de governança que determinará a abertura da taxa de protocolo, ainda não há muitos detalhes, mas pode-se supor que tokens ERC20 serão usados para enviar votos, semelhante ao protocolo de governança e votação da Maker.
Para gerenciar o mecanismo de cobrança do protocolo, o contrato Uniswap Factory inclui os métodos feeTo e feeToSetter para definir o endereço da carteira de cobrança do protocolo e a conta que pode definir o valor feeTo.
Resumindo
Este artigo é uma introdução abrangente ao Uniswap V2. Cobrimos a gama de avanços que ele oferece e como eles funcionam. Trocas de tokens mais eficientes, oráculos de preços ponderados no tempo e funções de troca relâmpago são as principais melhorias, bem como algumas melhorias subjacentes, como a mudança para contratos inteligentes baseados em Solidity, usando os opcodes mais recentes para uma execução mais eficiente.
O Uniswap V2 ainda é uma troca descentralizada e sem confiança. Ele é executado no blockchain Ethereum e não pode ser violado a menos que o Ethereum básico seja atacado com sucesso. Até o momento, essa situação não aconteceu e, com o número de máquinas de mineração e validadores atualmente em operação, é improvável que essa situação aconteça.
A rede de teste Medalla da ETH 2 tinha 20.000 validadores quando foi lançada – espero que esse número seja maior quando a rede principal for lançada e os validadores serão recompensados com o valor real.
Por outro lado, o Uniswap V2 ainda é uma implementação imperfeita de uma troca de tokens. As taxas de gás são atualmente as mais altas da história (no momento em que este artigo foi escrito), tornando cada transação Uniswap cara. O Uniswap não tem uma carteira de pedidos em tempo real, o que faz com que os traders ainda dependam de bolsas centralizadas para executar estratégias de negociação. Conforme mencionado anteriormente, o câmbio centralizado ainda desempenha um papel insubstituível no equilíbrio da taxa de câmbio Uniswap, pois depende da negociação de arbitragem para acompanhar o preço médio de mercado.
O Uniswap V2 é um passo positivo na direção certa, mas se as bolsas descentralizadas esperam substituir completamente as centrais centralizadas, ainda existem grandes desafios pela frente. Dito isso, o sentimento de toda a comunidade de criptomoedas, especialmente Ethereum, é muito positivo – pode-se prever com segurança que as capacidades técnicas e aplicações do campo DeFi não diminuirão no curto a médio prazo.
Ross Bulat Autor
Tradução Ziming
Edite eduardo
O conteúdo é apenas para referência, não como conselho de investimento por sua própria conta e risco
Todos os direitos reservados
☟☟☟
Link da fonte:mp.weixin.qq.com
Isenção de responsabilidade: O conteúdo acima é coletado da Internet e os direitos autorais da obra pertencem ao autor original. Todo o conteúdo tem a finalidade de transmitir informações. Isso não significa que este site concorde com suas opiniões e não serve como orientação de investimento. Existem riscos no círculo monetário, o investimento precisa ser cauteloso