WEB3DEV

Cover image for Encontrando o criador de um contrato inteligente na Ethereum
Diogo Jorge
Diogo Jorge

Posted on

Encontrando o criador de um contrato inteligente na Ethereum

Image description

Neste post, veremos como usar algumas ferramentas gratuitas de blockchain para descobrir como um contrato foi criado. Estaremos analisando um contrato de pool de liquidez Uniswap V2. Aqui estão algumas ferramentas gratuitas que usaremos ao longo do caminho.

O objetivo é mostrar algumas ferramentas e técnicas que você pode usar para investigar as origens de um contrato e aprender sobre a Ethereum.

Muitas coisas podem acontecer sempre que você interage com um pool de liquidez. Por exemplo, ficando robusto.

Image description

https://dexscreener.com/ethereum/0x9b1ac0ef72e4a35a9d8c631f4c0017be49f5a697

Outra coisa a fazer com pools de liquidez é comprar na alta e vender na baixa. Esse é provavelmente o mais comum, honestamente... pelo menos para mim.

Uma boa pergunta que podemos nos fazer antes de ocultar nosso dinheiro é “como posso saber se esse pool faz parte da Uniswap?”

O que quero dizer? Considere o seguinte. Alguém poderia teoricamente:

  • Copiar e reimplantar o código no repositório oficial da v2 (mesmo pair.sol deve ser suficiente)
  • Crie um novo pool entre $$$SCAMDOGTOKEN e WETH
  • Implante e observe como exploradores de blockchain confusos detectam seus eventos PairCreated e Sync, pois as assinaturas dos eventos parecerão idênticas às oficiais

Esse último ponto dependerá do explorador de blockchain. Por exemplo, o Dexscreener não parece indexar pools não oficiais. A Uniswap V2 também não o mostrará em seu pool explorer. Por quê?

Internamente, o contrato de fábrica do Uniswap V2 mantém um mapeamento de todos os pools que já criou.

Vamos ver como poderíamos encontrar o pool oficial para um token como LINK.

Etapa 1: Encontre o endereço do LINK e, em seguida, encontre o endereço do pool (usarei o dexscreener para isso)

Agora que os tenho, quero saber quando e como o contrato de pool foi criado. Na V2, o pool será criado com o Contrato de fábrica Uniswap V2. Isso significa que o endereço desta fábrica deve aparecer em algum lugar da transação usada para criar o pool — provavelmente como uma transação interna.

Image description

https://docs.uniswap.org/contracts/v2/reference/smart-contracts/factory

Procuramos este endereço: \
0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f

Se olharmos para a página etherscan para o pool LINK/WETH, vemos uma área chamada “criador de contrato”. Isso nos indicará a transação que criou o pool.

Image description

https://etherscan.io/address/0xa2107fa5b38d9bbd2c461d6edf11b11a50f6b974

Clicar na tx (transação) nos leva à seguinte página de transação.

Image description

https://etherscan.io/tx/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba

Vemos interações com o V2 Router e o Migrador, mas não com a Factory. A chamada da fábrica deve fazer parte de um tx interno, então vá para a aba de transações internas:

Image description

https://etherscan.io/tx/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba#internal

Vemos o que procuramos - há uma chamada CREATE (opcode evm para criação de um contrato) do endereço de fábrica para o novo endereço do pool de liquidez. Isso é o que estávamos procurando.

Vá para a guia de logs, também vemos um evento PairCreated emitido pelo endereço da fábrica – conforme esperado.

Image description

https://etherscan.io/tx/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba#eventlog

Mais uma verificação; Uma das minhas ferramentas favoritas, Phalcon, nos mostra uma bela visualização dos fluxos de fundos, bem como as mudanças de estado no mapeamento do pool da fábrica que mencionei anteriormente:

Image description

Image description

https://explorer.phalcon.xyz/tx/eth/0x23af5f011ffd934e25f3714673081911364940e41d5da74f0d46e2b63a4c89ba

E isso basta. Você pode seguir esse processo para qualquer pool com o qual deseja interagir. Lembre-se de que você ainda pode:

  • ter seu tapete puxado (rugged) no pool
  • ser vítima de contratos de tokens maliciosos, como honeypots, altos impostos de compra/venda, whitelists (lista de permissões), listas negras, etc., etc.

Mas pelo menos você saberá que o pool foi criado por meio do contrato oficial de fábrica do Uniswap.

Até a próxima, obrigado pela leitura!

Este artigo foi escrito por Nate Lapinski e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.

Oldest comments (0)