Explorando a Blockchain da Solana
Guia Completo sobre os Tokens na rede Solana e a melhor recomendação de explorador da blockchain.
No primeiro artigo, mergulhamos no mecanismo de operação da Solana, no modelo de contas e na estrutura de transações. No segundo artigo, exploramos como escrever um programa Solana em Rust para publicar e exibir artigos, e como testá-lo usando um script escrito em TypeScript.
Este terceiro artigo vai te guiar na análise de uma transação simples na Solana usando o Phalcon Explorer. Antes de entrarmos nisso, vamos primeiro explorar como os tokens são implementados na rede.
Sobre Tokens
Os tokens na Solana podem ser classificados em duas categorias: Token Nativo e Outros Tokens.
Token Nativo refere-se ao Token Solana (SOL). Como mencionado no primeiro artigo, toda conta na Solana possui um campo Lamports, que registra o saldo de SOL na conta. Lamports são a menor unidade de SOL (1 SOL = 1 bilhão de Lamports).
Para Outros Tokens, a Solana utiliza uma conta de programa (Token Program) e dois tipos de contas de dados (Mint Account e Token Account) para implementar todas as funcionalidades necessárias para os tokens.
Token Program
O Token Program é uma conta de programa fornecida pela Solana Program Library (SPL), e, portanto, o campo Executable do seu AccountInfo é True.
Como mencionado no primeiro artigo, o proprietário de todas as contas de programa é o BPF Loader, e o Token Program não é uma exceção. Além disso, semelhante ao System Program, o Token Program é implantado em um endereço fixo na Solana.
Como uma conta de programa, ele implementa muitas instruções para fornecer várias funcionalidades. Por exemplo, algumas instruções são usadas para criar uma Mint Account para inicializar um novo token ou para criar um Token Account para registrar o número de tokens mantidos por um determinado endereço. Outras instruções fornecem todas as funcionalidades necessárias para usar tokens, como a instrução MintTo para aumentar a oferta de tokens ou a instrução Transfer para transferir tokens entre dois endereços.
É importante notar que, como o Token Program é responsável pela criação de Mint Accounts e Token Accounts, ele também é o proprietário dessas contas.
Mint Account
A estrutura de uma Mint Account é a seguinte:
Mint Account é uma conta de dados, portanto, o campo Executable do seu AccountInfo é False. Na Solana, cada token corresponde a uma Mint Account. A Mint Account armazena informações como a oferta total do token e o endereço da conta com a autoridade para emitir o token.
Token Account
Um Token Account registra a quantidade de um token específico mantido por um indivíduo. Para cada tipo de token, cada conta que possui esse token tem um Token Account correspondente. Se um usuário possui cinco tokens diferentes, ele terá cinco Token Accounts.
O Token Account é uma conta de dados, e o campo Data do seu AccountInfo consiste em três subcampos:
Amount: A quantidade de tokens atualmente mantida no Token Account.
Mint: O endereço da Mint Account correspondente a esse Token Account;
Owner: A conta com o privilégio de transferir tokens do Token Account, ou seja, o verdadeiro “proprietário” dos tokens;
É importante enfatizar que o campo owner em AccountInfo e o owner no campo Data são completamente diferentes. O primeiro é um campo presente em todas as contas na Solana, indicando qual endereço tem a autoridade para modificar diretamente os dados da conta atual. O segundo especifica quem realmente possui os tokens registrados na Token Account e faz parte do campo Data do AccountInfo.
Conectando os conceitos mencionados, podemos derivar o seguinte diagrama de relacionamento de contas. Tanto o System Program quanto o Token Program são implantados em endereços exclusivos na blockchain e existem como bibliotecas. Uma conta de carteira pode ter várias Token Accounts, e é a verdadeira “proprietária” dessas Token Accounts. O campo Mint em Token Accounts do mesmo tipo aponta para a Mint Account única daquele token, que registra informações como a oferta total do token.
Visualizando Token Accounts no Solscan
Podemos usar o Solscan para visualizar as alterações nos Token Accounts dentro desta transação:
A coluna Address lista todos os Token Accounts envolvidos na transação; a coluna Owner indica o verdadeiro “proprietário” do token, que é o owner no campo Data do Token Account; a coluna Token corresponde à Mint Account do token atual. Podemos clicar em “$SON” no lado direito da primeira linha para mais detalhes:
O Owner Program no Profile Summary indica que o proprietário da Mint Account atual é o Token Program. Até agora, correspondemos os três tipos de contas no Solscan.
No entanto, essa forma de exibição no Solscan pode ser um pouco enganosa. Por exemplo, na imagem anterior, não está claro se o saldo aumentado na primeira linha pertence ao endereço CHS9WajyFfuaAZRk2JC7hRJvPHXmG5fC94gtAPbnLjuY ou à Raydium Authority V4. Tal ambiguidade aumenta a dificuldade para os usuários entenderem a transação.
Além disso, os leitores podem perceber que o SOL Token e outros tokens são exibidos em seções separadas no Solscan. Embora essa separação seja tecnicamente razoável, seria mais fácil de entender se fossem apresentados juntos em uma seção unificada de tokens.
O Phalcon Explorer da BlockSec não apenas resolve os problemas mencionados, mas também introduz muitas outras inovações. Agora, vamos usar o Phalcon Explorer para examinar a mesma transação.
Recomendamos abrir o link e acompanhar nossos passos para analisá-la juntos. Dessa forma, você pode entender melhor os detalhes da transação e apreciar os recursos poderosos do Phalcon Explorer
Visualizando e Analisando Transações no Phalcon Explorer
No canto superior esquerdo da página, você pode ver que a transação atual foi identificada como uma transação JITO MEV.
Você também pode clicar no ícone da Solana ao lado da assinatura da transação para ir diretamente para o Solscan. As informações sobre essa transação estão divididas em quatro seções: Basic Info, Fund Flow, Balance Changes, e Invocation Flow. Você pode alternar para a respectiva seção clicando nos ícones no canto superior direito.
Basic Info
A seção Basic Info oferece alguns detalhes chave sobre a transação atual. Você pode clicar no número do bloco e no endereço do signatário para ir diretamente ao Solscan.
Fund Flow
A seção Fund Flow fornece informações sobre o movimento e o tempo dos fundos durante a execução da transação:
- O iniciador e signatário da transação, 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F, primeiro transferiu uma certa quantidade de um token para o endereço rotulado como Raydium Authority V4;
- Em seguida, Raydium Authority V4 transferiu aproximadamente 6.747 Wrapped SOL Tokens de volta para o signatário, 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F;
- Finalmente, o signatário forneceu 0.000003 SOL para Jito como uma gorjeta para o validador Jito por executar a transação.
Abaixo está o diagrama de Fund Flow (fluxo de fundos) do Solscan. Comparado ao Solscan, cada endereço no diagrama de fluxo de fundos do Phalcon Explorer corresponde exclusivamente a um único nó, facilitando a identificação das relações entre endereços e, assim, melhorando a eficiência da análise.
Se você deseja realizar uma análise mais profunda do fluxo de fundos da transação, pode clicar no ícone marrom no canto superior direito para entrar no MetaSleuth.
Balance Changes
A seção Balance Changes mostra claramente as mudanças de tokens em diferentes contas após o término da transação.
Por exemplo, o signatário da transação, 59vLEsmV5VCCGTxjHCoRiXkNgHDVcq7dGx98v9HCn2F, teve alterações em três tipos de tokens: o token nativo SOL, um token chamado 61Hh8Udg7zruvG3BhyNiHF4UmULnC8reB9RBFtwi8uKp, e Wrapped SOL Token.
Cada Account Address que aparece em Balance Changes tem uma ou mais Token Accounts. Ao clicar no respectivo endereço, você pode copiá-lo ou ir diretamente para o Solscan.
O Phalcon Explorer não faz distinção entre o token SOL e outros tokens, o que reflete diretamente as mudanças em todos os tokens para uma determinada conta. Isso também facilita a visualização da relação entre uma Token Account e seu Owner.
Invocation Flow
O Invocation Flow registra o processo de execução das instruções da transação, com cada linha correspondendo a uma instrução executada durante a transação.
Aqui, focamos nas instruções 2 e 4, que envolvem transferências de tokens.
A segunda instrução chama o swapBaseIn da Raydium AMM para vender o token. Ao expandir essa instrução, podemos ver que ela consiste em duas instruções CPI (Cross Program Invocation), que facilitam a transferência de tokens entre a Raydium Authority V4 e o signatário da transação. A quarta instrução é o processo onde o signatário paga uma gorjeta ao Jito.
Como mostrado na figura abaixo, ao clicar na guia Accounts após cada instrução, podemos visualizar todas as contas envolvidas naquela instrução. Comparado ao Solscan, esse método de exibição é mais conciso, permitindo que os analistas se concentrem nas informações mais críticas da transação.
Neste artigo, primeiro apresentei os princípios de implementação dos tokens na Solana. Em seguida, usamos o Solscan para examinar as mudanças nos Token Accounts de uma transação específica. Por fim, realizamos uma análise mais aprofundada da transação utilizando o Phalcon Explorer e introduzimos os recursos inovadores do Phalcon Explorer.
Ficou com alguma dúvida?
Participe do nosso grupo no WhatsApp e tire suas dúvidas diretamente conosco! Clique aqui para entrar.
Leia outros artigos desta série:
Domine os Conceitos Básicos da Solana
Seu Primeiro Smart Contract Solana do Zero