Como Ler Exploradores de Bloquear e Entender Transações, Rastreios e Registros no Ethereum (EVM)

9/13/2024, 10:17:49 PM
Aprenda a ler exploradores como Etherscan e naviGate dados em três estruturas de dados principais e como encontrar as tabelas que você precisará consultar.

O que há em uma transação?

Se você já realizou uma transação no Ethereum (ou em qualquer blockchain habilitada para contratos inteligentes), então você provavelmente procurou isso em um explorador de blocos como o etherscan.io e viu esta montanha de informações:

Guia de Visão Geral de Transações

E se você tentou olhar os logs ou rastreamentos (transações internas), você pode ter visto essas páginas confusas:

Guia de registros (você tem sorte se estiverem bem decodificados assim)

Guia de rastreamentos (sim, parece um monte de bobagens)

Aprender a ler os detalhes de uma transação em exploradores de blocos será a base para toda a sua análise de dados e conhecimento do Ethereum, então vamos cobrir todas as partes e como trabalhar com elas em SQL.

Estou apenas passando por cima de como entender esses conceitos em um nível alto; se você quiser aprender a decodificá-los manualmente, então você precisará se familiarizar com comoos dados estão codificados(é o mesmo para transações/rastreios/logs) e como usarFunções bytearray/hex do Dunepara ir entre diferentes tipos.

Ao final deste guia, você será capaz de entender e navegar pelas tabelas de dados de qualquer contrato usando esta consulta de localizador de tabela de transações:

Link de consulta (Insira qualquer hash de transação, cadeia e número de bloco)

Depois de aprender os conceitos neste guia, você também deve aprender a usar o meu Painel de inicialização rápida do EVMpara começar a análise de qualquer contrato.

Como Analisar Qualquer Protocolo ou Produto Ethereum em Cinco Minutos

Andrew Hong

·

30 de dezembro de 2022

Leia a história completa

Transações

As transações são apenas a ponta do iceberg dos dados, todos os rastros e registros são invocados DEPOIS que os dados de entrada iniciais iniciam a função de nível superior. Vamos primeiro rotular todos os campos que você verá na página de transações do explorador de blocos:

Estes são os mesmos campos que você verá ao consultar "ethereum.transactions" no Dune. O item-chave a aprender a identificar aqui é se o "para" é um contrato ou não. Normalmente, os contratos serão claramente rotulados. Se for um contrato, deve haver "dados de entrada" que contenham uma chamada de função.

link de transação

De todos esses conceitos, o primeiro a aprender bem é um EOA versus um endereço de contrato. Contratos são implantados por EOAs e podem ser chamados no campo 'para' de uma transação. Se você clicar em um endereço, os exploradores mostrarão no canto superior esquerdo se é um contrato ou uma conta. No dune, você pode se juntar à tabela ethereum.creation_traces para verificar se é um contrato. Observe que apenas EOAs podem ser o signatário 'de' da tx.

É importante aprender de onde vêm os dados diretamente da cadeia em comparação com os dados que o explorador/frontend adicionou por cima. Tudo na blockchain é representado como hex (às vezes chamado de binário ou bytes), então uma chamada de troca de 1inch terá essa string de dados de entrada:

transação de exemplo

Os primeiros 4 bytes (8 caracteres) são a “assinatura da função”, que é a hash keccakdo nome da função e dos tipos de entrada. O Etherscan tem um botão de "decodificar" para alguns contratos, fornecendo esta forma legível:

exemplo de transação

Como você pode ver, existem muitas variáveis ​​empacotadas juntas naquela única sequência hexadecimal longa de antes. A maneira como elas são codificadas segue a especificação de interface binária de aplicativo (ABI) dos contratos inteligentes.

ABI's são como documentação de API para contratos inteligentes (como especificações OpenAPI), você pode ler mais sobre o detalhes técnicos aqui. A maioria dos desenvolvedores verificará se sua ABI corresponde ao contrato e fará o upload da ABI para que todos possam consultar ao decodificar. Muitos contratos podem estar relacionados a MEV/negociação, onde o desenvolvedor deseja manter as coisas como código fechado e privado - então não obtemos nenhuma decodificação deles.

Em Duna, temos tabelas decodificadas com base nos ABIs do contrato submetidopara uma tabela de contratos (ou seja, ethereum.contracts), funções e eventos são convertidos em assinaturas de bytes (ethereum.signatures) que são então correspondidos a rastros e logs para fornecer tabelas decodificadas, como uniswap_v2_ethereum.Pair_evt_Swap, que armazena todas as trocas de todos os contratos de par criados pela fábrica de pares Uniswap v2. Você pode filtrar trocas em um par específico olhando a tabela de endereços de contrato para eventos.

Na Dune, você gostaria de consultar esta tabela para esta chamada de função oneinch_ethereum.AggregationRouterV6_call_swap. Você verá que o nome desta tabela está no topo dos resultados da consulta no localizador de tabelas no início do guia.

Para as seguintes seções sobre rastreamentos e registros, estaremos usandoa mesma transação de swap agregador de 1 polegada. Este é um bom exemplo porque um roteador irá trocar tokens em vários contratos DEX, então teremos uma boa diversidade de rastros e logs para investiGate.

Registros

Vamos falar sobre os registros de eventos a seguir. Os registros podem ser emitidos em qualquer ponto de uma chamada de função. Os desenvolvedores geralmente emitem um registro no final de uma função, depois que todas as transferências/lógica forem concluídas sem erros. Vamos dar uma olhada no evento de troca uniswap v3 emitido da transação anterior:

transação de exemplo

Você verá que há um campo topic0, topic1, topic2 e dados. topic0 é semelhante à assinatura da função, exceto que é de 32 bytes em vez de apenas 4 bytes (ainda hashed da mesma maneira). Os eventos podem ter campos "indexados" para uma filtragem de dados mais rápida, que pode aparecer em topic1, topic2 ou topic3. Todos os outros campos são codificados juntos no objeto "data". Novamente, eles seguem as mesmas regras de codificação que transações e rastreamentos. O "28" é o índice do evento em todo o bloco. Às vezes, pode ser útil participar quando você quiser a primeira troca ou transferência em um tx.

Para encontrar a lógica por trás de onde e como esse evento foi emitido, precisarei mergulhar no código de solidez. Vou clicar no endereço vinculado do evento, ir para a aba contrato e pesquisar "emit swap" porque sei que todos os eventos têm "emit" antes de serem invocados no código.

Este é o contrato uniswapv3poolque é criado pela fábrica para cada par.

Eu posso ver que isso é emitido na linha 786 do contrato, como parte da função “swap”.

Ser capaz de naveGar funções e linhagem de eventos através de contratos será uma habilidade chave que você precisará adquirir para entender com precisão a linhagem dos dados que está consultando. Você não precisa aprender solidez em profundidade para naveGar esses arquivos, apenas saber como entender interfaces de contratoe quando funções/eventos são chamados (function e emit são suas palavras-chave).

Para um exemplo detalhado de investigação do código para funções e eventos, confira este detalhamento dos contratos e dados do Sudoswap.

Usando a consulta do localizador de tabela anterior, posso ver que a tabela que devo consultar para essa troca é uniswap_v3_ethereum.Pair_evt_Swap e que ela é emitida após a chamada da função swap().

Traces (ethereum.traces)

Os rastreamentos podem rapidamente se tornar muito difíceis de navegar, por causa de como as chamadas aninhadas entre contratos diferentes ficam. Vamos primeiro entender os tipos de vestígios:

  • CRIAR: este é um rastreamento emitido quando um novo contrato é implantado. Você pode implantar um contrato diretamente no topo de uma transação, isso significa que não há um endereço "para" nos dados da transação. Você também pode implantar um contrato dentro de uma chamada de função, daí a existência de fábricas de contratos. Confira a tabela ethereum.creation_traces para uma visão mais simples disso.
  • DELEGateCALL: isso deve ser ignorado mentalmente ao analisar uma transação. Pense nisso como encaminhar uma solicitação de um servidor para outro sem alterar nenhuma lógica. Isso está relacionado a proxies e armazenamento, você pode .@bansaltushar014/deleGatecall-in-solidity-4138b121cbe">confira mais detalhes aqui.
  • CHAMADA: esta é a rastreabilidade mais comum e genérica. Uma chamada pode ser apenas uma transferência de valor ETH sem nenhum contrato envolvido. Também pode ser qualquer chamada de função em qualquer contrato.
  • STATICCALL: esta é uma chamada de função que NÃO modifica nenhum estado e é puramente usada para cálculos. Coisas como feeds de preço de oráculo, cálculos de preço AMM, verificações de taxa de liquidação, verificações de saldo, etc., acontecem em chamadas estáticas. Comumente visto em solidity como tipos de função "view" ou "pure".

Você também precisará entender a coluna/índice trace_address. Este é o padrão [0,1,1,1,1] que você frequentemente vê. Imagine que seja como marcadores, onde o número de números no array indica a profundidade e a ordem das chamadas de função.

A (nulo) —o primeiro input da transação tem um trace_address de []

CALLs B (0)

CALLs C (0,0)

CHAMADAS D (1)

CHAMADAS E (1,0) CHAMADAS F (1,0,0)CHAMADAS G (1,1)

CALLs H (2)

Como você pode ver na captura de tela de nossas transações internas anteriores (traços), o etherscan não é um lugar amigável para visualizar traços. Prefiro usar o phalcon blocksec, que desembrulha a transação assim:

Link para Explorador

Isso pode parecer avassalador, mas na verdade é uma maneira super fácil de explorar todas as funções, eventos e argumentos no fluxo de uma transação. Depois de conseguir entender isso, você pode dizer com segurança que entende todos os dados em uma transação. Observe que o meu consulta do localizador de tabelaé uma cópia quase exata deste layout, fui amplamente inspirado por eles!

Observe que no Dune, decodificamos automaticamente chamadas de transação e rastreamentos da mesma função para a mesma tabela. Você pode estar se perguntando se é possível juntar facilmente eventos, rastreamentos e transações na ordem mostrada no phalcon. No Dune, você pode fazer join no hash da transação para vincular os dados em geral, mas não é possível fazer join em nenhum índice para recriar a ordem exata das interações. É uma limitação infeliz no momento que requer um indexador personalizado.

Adiante, mergulhando mais fundo na floresta escura das criptomoedas.

Se você entende os conceitos que expus neste guia, está pronto para se aprofundar e escrever consultas mais complexas. Navegar por transações usando várias ferramentas diferentes será uma das habilidades mais importantes que você precisará para se destacar neste espaço.

Provavelmente uso cerca de 10 exploradores diferentes todas as semanas, e o número de ferramentas é 10 vezes maior. Eu escrevo um guia anual que abrange a evolução da pilha de ferramentas de dados e para quais finalidades você deve usar cada ferramenta:

Link do Guia

Disclaimer:

  1. Este artigo é reproduzido de [cryptodatabytes], Todos os direitos autorais pertencem ao autor original [Andrew Hong]. Se houver objeções a essa reimpressão, entre em contato com o Gate Learn equipe, e eles vão lidar com isso prontamente.
  2. Isenção de Responsabilidade: As opiniões expressas 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 Gate Learn. Salvo indicação em contrário, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Compartilhar

Calendário Cripto

Atualizações de projeto
Etherex lançará o Token REX em 6 de agosto.
REX
22.27%
2025-08-06
Dia Raro de Desenvolvimento e Governança em Las Vegas
A Cardano irá sediar o Rare Dev & Governance Day em Las Vegas, de 6 a 7 de agosto, com workshops, hackatonas e discussões em painel focadas em desenvolvimento técnico e tópicos de governança.
ADA
-3.44%
2025-08-06
Blockchain.Rio no Rio de Janeiro
A Stellar participará da conferência Blockchain.Rio, programada para acontecer no Rio de Janeiro, de 5 a 7 de agosto. O programa incluirá palestras e discussões em painéis com representantes do ecossistema Stellar em colaboração com os parceiros Cheesecake Labs e NearX.
XLM
-3.18%
2025-08-06
Webinar
A Circle anunciou um webinar ao vivo intitulado "A Era do Ato GENIUS Começa", agendado para 7 de agosto de 2025, às 14:00 UTC. A sessão explorará as implicações do recém-aprovado Ato GENIUS—o primeiro marco regulatório federal para moedas estáveis de pagamento nos Estados Unidos. Dante Disparte e Corey Then, da Circle, liderarão a discussão sobre como a legislação impacta a inovação em ativos digitais, a clareza regulatória e a liderança dos EUA na infraestrutura financeira global.
USDC
-0.03%
2025-08-06
AMA no X
Ankr realizará um AMA no X no dia 7 de agosto às 16:00 UTC, focando no trabalho do DogeOS em construir a camada de aplicação para DOGE.
ANKR
-3.23%
2025-08-06

Artigos Relacionados

O que é o PolygonScan e como você pode usá-lo? (Atualização 2025)
iniciantes

O que é o PolygonScan e como você pode usá-lo? (Atualização 2025)

PolygonScan é um explorador de blockchain que permite aos usuários acessar detalhes de transações publicamente compartilhados na rede Polygon. Na atualização de 2025, agora processa mais de 5 bilhões de transações com confirmações em milissegundos, apresenta ferramentas de desenvolvedor aprimoradas, integração com Layer 2, análises avançadas, recursos de segurança melhorados e uma experiência móvel redesenhada. A plataforma ajuda os usuários a rastrear transações e obter insights mais profundos sobre o fluxo de ativos no crescente ecossistema da Polygon, que agora abriga 3,2 milhões de endereços ativos diários e $8,7 bilhões em valor total bloqueado.
11/11/2023, 6:20:25 PM
O que é Análise técnica?
iniciantes

O que é Análise técnica?

Aprenda com o passado - Para explorar a lei dos movimentos de preços e o código de riqueza no mercado em constante mudança.
11/21/2022, 9:45:34 AM
O que é EtherVista, o autoproclamado "Novo Padrão para DEX"?
intermediário

O que é EtherVista, o autoproclamado "Novo Padrão para DEX"?

Este artigo fornece uma análise aprofundada da emergente exchange descentralizada (DEX) EtherVista e seu token de plataforma, VISTA. Explora como a EtherVista visa desafiar o modelo existente de AMM (Automated Market Maker), especialmente o da Uniswap, por meio de seus mecanismos de negociação exclusivos e modelo de distribuição de taxas. O artigo também explora os contratos inteligentes da EtherVista, a tokenomia e como atrai usuários ao oferecer taxas de gás baixas e um inovador sistema de distribuição de receitas.
9/10/2024, 3:49:43 PM
O que é Tronscan e como você pode usá-lo em 2025?
iniciantes

O que é Tronscan e como você pode usá-lo em 2025?

Tronscan é um explorador de blockchain que vai além do básico, oferecendo gerenciamento de carteira, rastreamento de tokens, insights de contratos inteligentes e participação em governança. Até 2025, evoluiu com recursos de segurança aprimorados, análises expandidas, integração entre cadeias e experiência móvel aprimorada. A plataforma agora inclui autenticação biométrica avançada, monitoramento de transações em tempo real e um painel abrangente de DeFi. Os desenvolvedores se beneficiam da análise de contratos inteligentes alimentados por IA e ambientes de teste aprimorados, enquanto os usuários desfrutam de uma visualização unificada de portfólio multi-cadeias e navegação baseada em gestos em dispositivos móveis.
11/22/2023, 6:27:42 PM
O que é Neiro? Tudo o que você precisa saber sobre NEIROETH em 2025
intermediário

O que é Neiro? Tudo o que você precisa saber sobre NEIROETH em 2025

Neiro é um cachorro da raça Shiba Inu que inspirou o lançamento de tokens Neiro em diferentes blockchains. Em 2025, o Neiro Ethereum (NEIROETH) evoluiu para uma das principais moedas meme com um valor de mercado de $215 milhões, mais de 87.000 detentores e listagens em 12 grandes exchanges. O ecossistema agora inclui um DAO para governança comunitária, uma loja oficial de mercadorias e um aplicativo móvel. NEIROETH implementou soluções de camada 2 para melhorar a escalabilidade e consolidou sua posição entre as 10 principais moedas meme temáticas de cachorro por capitalização de mercado, apoiado por uma comunidade vibrante e influenciadores cripto líderes.
9/5/2024, 3:37:06 PM
Riscos dos quais você deve estar ciente ao negociar criptomoedas
iniciantes

Riscos dos quais você deve estar ciente ao negociar criptomoedas

O que você sabe sobre os riscos de negociar criptomoedas? À medida que vários projetos de criptomoeda prosperam, há cada vez mais riscos a serem considerados, incluindo golpes comuns, hacks e riscos regulatórios.
11/21/2022, 10:34:59 AM
Comece agora
Inscreva-se e ganhe um cupom de
$100
!