01/04/2023
Las transacciones son el alma de la red Ethereum. Son mensajes de datos firmados criptográficamente que contienen un conjunto de instrucciones. Estas instrucciones pueden ser tan simples como enviar Ether de una cuenta a otra, o tan complejas como interactuar con un contrato inteligente desplegado en la blockchain. Aunque es un concepto básico, su poder ha permitido a usuarios de todo el mundo interactuar en una red descentralizada y segura. Esta guía completa te llevará a través de cada componente y matiz de las transacciones en Ethereum, para que puedas navegar por este ecosistema con total seguridad y conocimiento.

Entendiendo las Cuentas de Ethereum
Antes de sumergirnos en los parámetros de una transacción, es crucial entender los dos tipos de cuentas que existen en Ethereum, ya que son el origen y el destino de todas las transacciones:
- Cuentas de Propiedad Externa (EOA - Externally Owned Accounts): Son las cuentas que gestionamos los humanos. Piensa en tu billetera de MetaMask o Coinbase. Cada EOA está identificada por una dirección pública y controlada por una clave privada. La clave pública se deriva de la privada, y es esta última la que te da el control total sobre los fondos y las acciones de la cuenta. Las EOA no pueden almacenar código, solo tu balance de ETH y un contador de transacciones llamado nonce.
- Cuentas de Contrato (Smart Contract Accounts): Estas cuentas también tienen una dirección y un balance, pero su gran diferencia es que contienen código de la Máquina Virtual de Ethereum (EVM) y almacenamiento de datos. Un contrato inteligente se controla a sí mismo según la lógica programada en su código. No tiene una clave privada; sus acciones son activadas por transacciones enviadas desde una EOA u otro contrato.
El Corazón de la Transacción: Sus Componentes Clave
Cada transacción en Ethereum es un objeto de datos que contiene varios campos esenciales. Aunque el formato ha evolucionado con el tiempo, especialmente con la introducción de la EIP-1559, los componentes fundamentales siguen siendo los mismos. Vamos a desglosarlos uno por uno.
- from: La dirección de la cuenta que envía la transacción. Debe ser una EOA, ya que es la única que puede iniciar transacciones y firmarlas con una clave privada.
- to: La dirección del destinatario. Si es una EOA, la transacción simplemente transferirá valor (ETH). Si es una cuenta de contrato, la transacción ejecutará el código del contrato.
- value: La cantidad de ETH que se enviará del remitente al destinatario. Este valor se expresa en Wei, la unidad más pequeña de Ether (1 ETH = 10^18 Wei).
- data: Un campo opcional que tiene un doble propósito. Puede contener un mensaje arbitrario para una EOA o, más comúnmente, contiene las instrucciones para interactuar con un contrato inteligente, como la función a llamar y sus parámetros.
- nonce: El nonce es un contador que indica el número de transacciones que ha enviado una cuenta. Cada nueva transacción debe tener un nonce que sea exactamente uno más que el anterior. Esto es crucial para prevenir ataques de repetición (que una transacción se procese dos veces) y para asegurar que las transacciones se procesen en el orden correcto.
- gasLimit: La cantidad máxima de unidades de gas que el remitente está dispuesto a consumir para esta transacción. Es una medida de seguridad para evitar que un error en un contrato inteligente consuma todos los fondos de tu cuenta.
- maxPriorityFeePerGas (EIP-1559): Introducido con la actualización EIP-1559, representa la cantidad máxima de gas que estás dispuesto a pagar como "propina" al validador para que incluya tu transacción en un bloque.
- maxFeePerGas (EIP-1559): También parte de la EIP-1559, es la tarifa máxima absoluta por unidad de gas que estás dispuesto a pagar por la transacción. Incluye tanto la tarifa base de la red (baseFee) como la propina de prioridad (maxPriorityFeePerGas).
- signature: La firma digital del remitente. Se genera cuando el propietario de la EOA firma la transacción con su clave privada. Esta firma prueba criptográficamente que el remitente autorizó la transacción y evita cualquier tipo de fraude o alteración.
El "Gas": El Combustible de la Red Ethereum
Has visto el término "gas" en varios parámetros. El gas es una de las piezas más importantes y a menudo confusas de Ethereum. Piensa en él como el combustible necesario para que un coche se mueva; en Ethereum, el gas es el combustible necesario para que las transacciones se ejecuten y se incluyan en la blockchain.
Cada operación en la EVM (una suma, un almacenamiento de datos, etc.) tiene un costo fijo en unidades de gas. Una transacción simple como enviar ETH cuesta 21,000 unidades de gas. Una más compleja, como un intercambio en un exchange descentralizado, puede costar cientos de miles.

El costo total de una transacción se calcula así: (Tarifa Base de la Red + Propina de Prioridad) x Unidades de Gas Usadas. La tarifa base es determinada por la red y se quema (se destruye), mientras que la propina va al validador. Este mecanismo ayuda a proteger la red de spam y a compensar a quienes aseguran la blockchain.
El Ciclo de Vida de una Transacción
Desde que la creas hasta que se confirma, una transacción pasa por varios estados:
- Creación y Firma: Creas el objeto de la transacción en tu billetera y la firmas con tu clave privada.
- Difusión: La transacción firmada se transmite a la red a través de un nodo de Ethereum.
- Pendiente (Pending): La transacción está en la "mempool" (un grupo de transacciones pendientes) esperando a que un validador la seleccione. Si la tarifa de gas es demasiado baja para la congestión actual de la red, puede permanecer aquí por mucho tiempo.
- En Cola (Queued): Si envías una transacción con un nonce que no es el siguiente en la secuencia (por ejemplo, envías la transacción #7 cuando la #6 aún está pendiente), se quedará en cola hasta que la anterior se procese.
- Confirmada: Un validador incluye la transacción en un nuevo bloque y este bloque se añade a la blockchain. La transacción ahora es inmutable.
- Fallida (Failed): La transacción se incluyó en un bloque, pero encontró un error durante su ejecución (por ejemplo, fondos insuficientes o un error en el código del contrato). A pesar del fallo, consumes el gas utilizado hasta el punto del error, y la tarifa se paga igualmente.
- Reemplazada/Cancelada: Puedes reemplazar una transacción pendiente enviando una nueva con el mismo nonce pero una tarifa de gas más alta. Para cancelarla, envías una transacción a tu propia dirección con valor cero, el mismo nonce y una tarifa más alta.
Tabla Comparativa: Transacciones Legacy vs. EIP-1559
La actualización London de Ethereum introdujo un nuevo tipo de transacción (Tipo 2 o EIP-1559) que mejoró significativamente el mercado de tarifas. Aquí tienes una comparación:
| Característica | Transacción Legacy (Tipo 0) | Transacción EIP-1559 (Tipo 2) |
|---|---|---|
| Manejo de Tarifas | Se establece un único `gasPrice`. Toda la tarifa va al minero. | Se establece una `maxFeePerGas` y una `maxPriorityFeePerGas`. |
| Predictibilidad del Costo | Baja. Es una subasta a ciegas, lo que puede llevar a sobrepagos. | Alta. La `baseFee` es predecible y la billetera puede estimar la propina necesaria. |
| Eficiencia del Mercado | Menor, propensa a picos de volatilidad en las tarifas. | Mayor, la `baseFee` se ajusta algorítmicamente según la congestión. |
| Quema de ETH | No. | Sí, la `baseFee` se quema, introduciendo un mecanismo deflacionario para el ETH. |
Preguntas Frecuentes (FAQ)
¿Qué es una transacción de Ethereum?
Es una instrucción firmada digitalmente por una cuenta. Su propósito principal es transferir ETH o interactuar con el código de un contrato inteligente, lo que resulta en un cambio de estado en la blockchain de Ethereum.
¿Por qué necesito pagar "gas"?
El gas es la tarifa que pagas a los validadores por procesar y asegurar tu transacción en la blockchain. Compensa el esfuerzo computacional requerido y previene ataques de spam en la red, asegurando que solo se procesen transacciones legítimas.

¿Qué es el "nonce" y por qué es importante?
El nonce es un número secuencial para cada transacción enviada desde una dirección específica. Es fundamental para prevenir que una misma transacción se procese dos veces y para garantizar que las transacciones de una cuenta se ejecuten en el orden en que fueron enviadas.
¿Cuál es la diferencia entre una cuenta EOA y una cuenta de contrato?
Una EOA (Cuenta de Propiedad Externa) es controlada por un usuario mediante una clave privada y puede iniciar transacciones. Una cuenta de contrato es controlada por su propio código y solo puede ejecutar acciones cuando es llamada por una transacción de una EOA u otro contrato.
¿Qué pasa si mi transacción falla?
Si una transacción falla, significa que se incluyó en un bloque pero no pudo completarse debido a un error. El estado de la blockchain se revierte a como estaba antes de la transacción, pero la tarifa de gas consumida hasta el punto del fallo no se devuelve y se paga al validador.
Si quieres conocer otros artículos parecidos a Guía Esencial de Transacciones en Ethereum puedes visitar la categoría Blockchain.
