WEB3DEV Español

Cover image for Dentro de una Transacción de Ethereum
Gabriella Alexandra Martinez Viloria
Gabriella Alexandra Martinez Viloria

Posted on

Dentro de una Transacción de Ethereum

Sigue el flujo de ETH en este paso a paso, fácil de entender, de una transacción Ethereum.

Image description

Arte de la capa de Chameleon

Cuando envías ETH a un amigo, o intercambias tokens en Uniswap, o incluso participas en una votación en una DAO, suceden varias cosas en segundo plano para que todo esto sea posible. Para entender mejor este proceso es importante recordar cómo funciona la red Ethereum. La blockchain Ethereum es una máquina de estado distribuida, lo que significa que cada nodo de la red Ethereum mantiene un estado actualizado de todas las cuentas.

¿Qué sucede cuando le envías 1 ETH a un amigo?

Digamos que tengo 3 ETH y quiero enviar 1 ETH a mi amiga Anne. Tan pronto como se complete mi transacción, el estado de mi cuenta se reducirá en 1 ETH y la cuenta de Anne mostrará 1 ETH.

Image description

Ejemplo del estado de una blockchain antes y después de la transacción

Como se muestra anteriormente, el estado de ambas cuentas se actualiza en el siguiente bloque una vez que se complete la transacción. Si esta transacción falla, no habría cambios de estado. Una transacción exitosa solo actualiza el estado de la blockchain. Es muy común pensar que la ETH realmente fluye entre las cuentas, pero no es el caso. En nuestro ejemplo, una cuenta se debita y la otra es acreditada. Esto es posible gracias a la transacción.

Comprendiendo la estructura de una transacción

Una transacción es un conjunto de instrucciones firmadas criptográficamente, las cuales informan a Ethereum qué hacer. Por lo tanto, en nuestro ejemplo anterior, usando MetaMask como interfaz, puedo crear una transacción que le dice a la blockchain que le dé a Anne 1 ETH mío. La operación incluirá la siguiente información:

  1. from: esta es la dirección ETH del remitente que firmará la transacción. En este caso, esta es la dirección de mi cartera. El término más técnico es "cuenta de propiedad externa" (Externally Owned Account - EOA).
  2. recipient: este campo especifica la dirección ETH del destinatario. Si el destinatario es una cuenta de propiedad externa, la transacción transferirá el valor del token (ETH). Si se trata de una cuenta de contrato, la transacción ejecutará el código del contrato. En nuestro ejemplo, se trata de una EOA simple.
  3. signature: la firma sirve como identificador del remitente. Es generada por la clave privada del remitente en el momento de la firma de la transacción, asegurando que el remitente autorizó esa transacción específica.
  4. nonce: nonce es un contador que aumenta secuencialmente e indica el número de transacción asociado a la cuenta del remitente. Por lo tanto, si esta es mi segunda transacción en esta cuenta, el nonce probablemente será 2.
  5. value: indica la cantidad de ETH que se transferirá del remitente al destinatario, expresada en unidades WEI.
  6. input data: este es un campo opcional que permite la inclusión de datos adicionales si es necesario. Puede ser un mensaje aleatorio. Algunas personas ya utilizan este campo para enviar mensajes en cadena.
  7. gasLimit: el límite de gas especifica la cantidad máxima de unidades de gas que la transacción puede consumir. La Máquina Virtual Ethereum (Ethereum Virtual Machine, EVM) define las unidades de gas necesarias para cada paso computacional.
  8. maxPriorityFeePerGas: representa el precio máximo del gas consumido, que se incluye como propina al validador.
  9. maxFeePerGas: este campo indica la tarifa más alta que el remitente está dispuesto a pagar por cada unidad de gas durante la transacción (incluyendo baseFeePerGas y maxPriorityFeePerGas).

Para que yo pueda enviarle a Anne 1 ETH, las instrucciones de transacción son más o menos así:

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

Al enviar fondos desde tu MetaMask a otra cartera estás ,esencialmente, construyendo este conjunto de instrucciones. MetaMask simplemente proporciona una interfaz para hacer el proceso fácil de usar.

Una vez definidas y presentadas estas instrucciones, se llevarán a cabo las siguientes acciones:

  1. Se genera un hash de transacción. Generalmente nos referimos a esto como "Tx hash" o "Tx ID".
  2. La transacción se transmite a la red y se coloca en un pool con otras transacciones pendientes. Dicho pool no está organizado.
  3. Un validador o "constructor de bloques" dentro de la red selecciona la transacción y la incluye en un bloque para verificación. Cuando ella está siendo incluida es cuando ellos las organizan. Durante este proceso, un usuario puede pagar una tarifa de gas más alta para asegurarse de que tendrá prioridad en el proceso de ordenar los bloques (generalmente ahí es donde entra la MEV).
  4. Una vez verificado, el bloque que contiene su transacción pasa por dos etapas: "justificado" y luego "finalizado". En estos pasos, el estado del blockchain se actualiza. Es cuando una transacción se confirma por completo.

Image description

El ciclo de vida básico de una transacción

¡Y así es como puedes transferir fondos a otra cartera!

Hay otros pasos del proceso que no están detallados en este artículo, ya que requieren un conocimiento más técnico del sistema Ethereum. Si quieres profundizar en esto, te recomiendo consultar la documentación de desarrollo de Ethereum.

Este artículo ha sido publicado en colaboración con BanklessDAO Writers Cohort.

Biografía del Autor

0xKimberly está invirtiendo en DeFi con Bankless Ventures, construyendo para divertirse en Buildspace, y está aquí para investigar y satisfacción personal.

Biografía del Editor

trewkat es escritor, editor y diseñador de BanklessDAO. Ella está interesada en aprender sobre criptografía y NFTs, con un enfoque particular en la mejor manera de comunicar ese conocimiento a otras personas.

Biografía del Diseñador

Chameleon es diseñador y creador en el espacio de Web3.

BanklessDAO es un mecanismo educativo y de medios, dedicado a ayudar a las personas a alcanzar la independencia financiera.

Este artículo no contiene consejos financieros, solo información educativa. Al leer este artículo, estás de acuerdo y afirmas lo anterior, así como que no se te pide que tomes una decisión financiera y que de ninguna manera estás recibiendo ninguna proyección fiduciaria, promesa o inferencia tácita de tu capacidad para obtener ganancias financieras.

Bankless Publishing siempre acepta solicitudes de publicación. ¡Nos encantaría leer tu trabajo, así que envía tu artículo aquí!

Más artículos similares

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 artículo es una traducción de OxKimberly, hecha por Gabriella Martínez. Puedes encontrar el artículo original aquí
Sería genial escucharte en nuestro Discord, puedes contarnos tus ideas, comentarios, sugerencias y dejarnos saber lo que necesitas.
Si prefieres puedes escribirnos a @web3dev_es en Twitter.

Discussion (0)