WEB3DEV

Cover image for Por Dentro De Uma Transação Ethereum
Isabela Curado Nehme
Isabela Curado Nehme

Posted on

Por Dentro De Uma Transação Ethereum

Siga o fluxo de ETH neste passo a passo fácil de entender de uma transação Ethereum

https://miro.medium.com/v2/resize:fit:720/format:webp/1*6x24Cll1xcpvxGHu-HYSZQ.png

Arte da capa de Chameleon

Quando você envia ETH para um amigo, ou troca tokens na Uniswap, ou até mesmo participa de uma votação em uma DAO, várias coisas acontecem em segundo plano para tornar tudo isso possível. Para entender melhor esse processo, é importante lembrar como funciona a rede Ethereum. A blockchain Ethereum é uma máquina de estado distribuída, o que significa que cada nó da rede Ethereum mantém um estado atualizado de todas as contas.

O que acontece quando você envia 1 ETH para um amigo?

Digamos que eu tenha 3 ETH e queira enviar 1 ETH para minha amiga Anne. Assim que minha transação for concluída, o estado da minha conta será reduzido em 1 ETH e a conta de Anne mostrará 1 ETH.

https://miro.medium.com/v2/resize:fit:720/0*qKs4BDvP6kQAMgvh

Exemplo do estado de um blockchain antes e depois da transação

Conforme mostrado acima, o estado de ambas as nossas contas é atualizado no bloco subsequente, assim que a transação for concluída. Se esta transação falhasse, não haveria nenhuma mudança de estado. Uma transação bem-sucedida apenas atualiza o estado da blockchain. É muito comum pensar que o ETH realmente flui entre as contas, mas não é o caso. No nosso exemplo, uma conta é debitada e a próxima é creditada. Isso é possível graças à transação.

Compreendendo uma estrutura de transação

Uma transação é um conjunto de instruções assinadas criptograficamente que informa à Ethereum o que fazer. Portanto, em nosso exemplo acima, usando a MetaMask como interface, posso criar uma transação que diz à blockchain para dar à Anne 1 ETH meu. A transação incluiria as seguintes informações:

  1. from: este é o endereço ETH do remetente que assinará a transação. Neste caso, este é o endereço da minha carteira. O termo mais técnico é “conta de propriedade externa” (Externally Owned Account - EOA).
  2. recipient: este campo especifica o endereço ETH do destinatário. Se o destinatário for uma conta de propriedade externa, a transação transferirá o valor do token (ETH). Se for uma conta de contrato, a transação executará o código do contrato. No nosso exemplo, trata-se de uma EOA simples.
  3. signature: a assinatura serve como identificador do remetente. É gerada pela chave privada do remetente no momento da assinatura da transação, garantindo que o remetente autorizou essa transação específica.
  4. nonce: o nonce é um contador que aumenta sequencialmente e indica o número da transação associado à conta do remetente. Portanto, se esta for minha segunda transação nesta conta, o nonce provavelmente será 2.
  5. value: indica a quantidade de ETH a ser transferida do remetente para o destinatário, expressa em unidades WEI.
  6. input data: este é um campo opcional que permite a inclusão de dados suplementares, se necessário. Pode ser uma mensagem aleatória. Algumas pessoas já utilizam esse campo para enviar mensagens na cadeia.
  7. gasLimit: o limite de gás especifica a quantidade máxima de unidades de gás que a transação pode consumir. A Máquina Virtual Ethereum (Ethereum Virtual Machine - EVM) define as unidades de gás necessárias para cada etapa computacional.
  8. maxPriorityFeePerGas: representa o preço máximo do gás consumido, que é incluído como gorjeta ao validador.
  9. maxFeePerGas: este campo indica a taxa mais alta que o remetente está disposto a pagar por cada unidade de gás durante a transação (incluindo baseFeePerGas e maxPriorityFeePerGas).

Para que eu possa enviar à Anne 1 ETH, as instruções de transação são mais ou menos assim:

from: “0x5f2e4AEFa7E042d3cC01E5DA41828EAe547CDbbb”,
to: “0xac03bb73b6a9e108530aff4df5077c2b3d481e5a”
gasLimit: “21000”,
maxFeePerGas: “300”,
maxPriorityFeePerGas: “ 10”,
nonce: “2”, valor: “10000000000”
input: “aqui está 1 ETH Anne, aproveite!”

Ao enviar fundos da sua MetaMask para outra carteira, você está essencialmente construindo este conjunto de instruções. A MetaMask está simplesmente fornecendo uma interface para tornar o processo amigável.

Uma vez que estas instruções tenham sido definidas e submetidas, ocorrem as seguintes ações:

  1. É gerado um hash de transação. Geralmente nos referimos a isso como “tx hash” ou “tx ID”.
  2. A transação é transmitida para a rede e colocada em um pool com outras transações pendentes. Esse pool não está organizado.
  3. Um validador ou “construtor de blocos” dentro da rede seleciona a transação e a inclui em um bloco para verificação. Quando ela está sendo incluída é quando eles as organizam. Durante esse processo, um usuário pode pagar uma taxa de gás mais alta para garantir que terá prioridade no processo de ordenação de blocos (geralmente é aí que entra a MEV).
  4. Uma vez verificado, o bloco que contém a sua transação passa por duas etapas: “justificado” e depois “finalizado”. Nessas etapas, o estado da blockchain é atualizado. É quando uma transação é totalmente confirmada.

https://miro.medium.com/v2/resize:fit:1100/format:webp/1*Os8EmUynsbLkFswGV3ekBg.png

O ciclo de vida básico de uma transação

E é assim que você pode transferir fundos para outra carteira!

Existem outras etapas do processo que não estão detalhadas neste artigo, pois requerem um conhecimento mais técnico do sistema Ethereum. Se você quiser se aprofundar nisso, recomendo consultar a documentação de desenvolvimento da Ethereum.

Este artigo foi publicado em colaboração com o BanklessDAO Writers Cohort.

Biografia do autor

0xKimberly está investindo em DeFi com a Bankless Ventures, construindo para se divertir no buildspace, e está aqui para pesquisa e diversão pessoal.

Biografia do editor

trewkat é escritor, editor e designer da BanklessDAO. Ela está interessada em aprender sobre criptografia e NFTs, com foco particular na melhor forma de comunicar esse conhecimento a outras pessoas.

Biografia do designer

Chameleon é designer e criador no espaço da Web3.

A BanklessDAO é um mecanismo educacional e de mídia dedicado a ajudar indivíduos a alcançar independência financeira.

Este artigo não contém conselhos financeiros, apenas informações educacionais. Ao ler este artigo, você concorda e afirma o acima exposto, bem como que não está sendo solicitado a tomar uma decisão financeira e que de forma alguma está recebendo qualquer projeção fiduciária, promessa ou inferência tácita de sua capacidade de obter ganhos financeiros.

A Bankless Publishing está sempre aceitando inscrições para publicação. Adoraríamos ler seu trabalho, então envie seu artigo aqui!

Mais como esse

The UX Risks of Gasless Transactions por d0wnlore.

What To Do if Your Web3 Wallet Is Hacked por trewkat.

Introduction to Zero-Knowledge Rollups por klouie.

Este artigo foi escrito por OcKimberly e traduzido por Isabela Curado Nehme. Seu original pode ser lido aqui.

Oldest comments (0)