-
Bitcoin no usa cuentas, funciona con entradas y salidas (inputs y outputs).
-
Las wallets construyen transacciones automáticamente.
-
Los saldos en wallet son la suma de los UTXO disponibles.
-
Las transacciones usan criptografía, no nombres ni documentos.
-
Las transacciones se confirman solo si un minero las incluye en un bloque valido.
Las transacciones, también llamadas TX, son el flujo sanguíneo de las redes de criptomonedas como bitcoin. Son esenciales para que este sistema funcione, al permitirnos mover y usar fondos de forma rápida, segura y sencilla. Comprender qué son y cómo operan es clave para entender este ecosistema y aprovechar todo su potencial.
¿Qué es una transacción en Bitcoin?
Una transacción en Bitcoin es un “mensaje digital” firmado que facilita la transferencia de valor desde una o más direcciones de entrada (input) a una o más direcciones de salida (output). A diferencia de los sistemas financieros tradicionales que gestionan saldos de cuentas, Bitcoin emplea un modelo basado en salidas de transacciones no gastadas (UTXO).
¿Qué transfiere realmente Bitcoin?
Bitcoin no transfiere monedas físicas, sino el derecho a gastar cantidades específicas de bitcoin. Esto se hace a través de UTXO, que son como «cupones» de bitcoin que puedes usar. Cuando haces una transacción, consumes estos cupones y creas nuevos para el destinatario, actualizando la blockchain para reflejar quién puede gastar ese valor.
Cada transacción genera salidas no gastadas (UTXO), que luego pueden usarse como entradas en nuevas transacciones. Cada transacción añade un nuevo eslabón a una cadena de firmas digitales: la wallet firma el hash de la transacción previa junto a la clave pública del próximo dueño, creando un vínculo criptográfico que garantiza inmutabilidad y propiedad.
Es decir, de esta forma lo que se mueve es la capacidad de “desbloquear” UTXO y el receptor valida la transferencia comprobando que cada firma corresponde al hash de la transacción anterior y que la clave pública indicada es la del emisor legítimo.
«Definimos una moneda electrónica como una cadena de firmas digitales. Cada propietario transfiere la moneda al siguiente firmando digitalmente un hash de la transacción anterior junto con la clave pública del próximo dueño, y añadiendo ambos al final de la moneda. El receptor puede verificar las firmas para confirmar la cadena de propiedad.«
Satoshi Nakamoto, Libro blanco de Bitcoin
¿Qué elementos componen una transacción?
Una transacción está compuesta por tres elementos básicos: las entradas (inputs), las salidas (outputs) y los scripts de validación, que actúan como cerraduras y llaves digitales. Estos elementos son la base del modelo de funcionamiento de Bitcoin conocido como UTXO (Unspent Transaction Output).
En Bitcoin cada UTXO es un bloque indivisible de valor. el UTXO original se consume en su totalidad y se crean nuevos UTXOs, garantizando que no queden fracciones “huérfanas” y respetando la indivisibilidad de cada lote. Si el output contiene más bitcoins de los que deseas enviar, se crea una salida de cambio adicional para devolverte los bitcoins restantes.
Cada transacción puede tener múltiples entradas y salidas. Por ejemplo, si un usuario quiere enviar 0.01 BTC y solo tiene pequeñas fracciones distribuidas en tres UTXOs de 0.004, 0.003 y 0.003 BTC, su wallet usará esas tres salidas como entradas. Al mismo tiempo, creará dos salidas nuevas: una para el destinatario (por ejemplo, 0.01 BTC) y otra con el “cambio” restante, que vuelve al usuario.
Entradas de una transacción
Una entrada (input) es una salida (output) que se va a gasta en una transacción. Es decir, apunta o direcciona un “fragmento de bitcoin” que el usuario quiere usar. Es básicamente una referencia a una salida no gastada previamente, junto con la información necesaria para desbloquearla: un código (ScriptSig) que desbloquea la salida para que pueda gastarse.
Una transacción puede contener varias entradas si se requiere combinar varias salidas para alcanzar el monto total deseado. Aunque lo común es utilizar una o dos, es posible emplear cientos o incluso miles. Sin embargo, cuantas más entradas tenga una transacción, mayor será su tamaño en bytes, lo que incrementa su costo debido a las comisiones de minería.
Salidas de una transacción
Una salida (output) representa la cantidad de bitcoin que se quiere transferir a un destinatario en una transacción. Técnicamente, contiene un valor (por ejemplo, 0.05 BTC) y un script de bloqueo que define las condiciones para gastar esos fondos más adelante. Hasta que alguien use esa salida como entrada en otra transacción, se considera una salida no gastada (UTXO).
Cada output define el monto a transferir en satoshis, que es la unidad más pequeña de Bitcoin (1 BTC = 100.000.000 satoshis). Este valor es fijo y se establece en el momento en que se crea el output.
Scripts de validación
Cada salida de una transacción tiene un código de bloqueo ScriptPubKey, que la bloquea a una clave pública. Cuando se quiere gastar un UTXO como entrada en una transacción futura, se incluye un script de desbloqueo llamado scriptSig. Un ScriptSig proporciona el código de desbloqueo para una salida previa. Si un script completo (desbloqueo + bloqueo) es válido, la salida es «desbloqueada» y se puede gastar.
El campo ScriptSig de la transacción se utiliza para desbloquear scripts de bloqueo antiguos como P2PK, P2PKH, P2MS, P2SH. Los scripts de bloqueo SegWit más recientes, como P2WPKH y P2WSH, se desbloquean mediante el campo testigo (Witness).
Para desbloquear un script de bloqueo P2PKH, se necesita una firma única junto con una clave pública. Este fue uno de los scripts de bloqueo más comunes en la blockchain hasta 2016. Desde entonces, los scripts de bloqueo P2WPKH se han vuelto más comunes; funcionan de la misma manera, pero utilizan el campo Witness para el código de bloqueo en lugar de ScriptSig.
El ID de transacción (TXID)
Cada transacción en Bitcoin se identifica de forma única mediante un TXID (Transaction ID), que es un hash criptográfico del contenido completo de la transacción. Este se genera aplicando dos veces el algoritmo SHA-256 sobre todos los datos que conforman la transacción: entradas, salidas, scripts, montos, y orden de los elementos. El resultado es una cadena alfanumérica de 64 caracteres que actúa como su “huella digital”.
Este identificador cumple varias funciones críticas:
- Identificación pública:
El TXID permite buscar y verificar transacciones en exploradores como Mempool o Blockchair. - Enlace entre transacciones:
Cada entrada señala el TXID de una transacción anterior, lo que conecta todo el historial de transferencias. - Trazabilidad e inmutabilidad:
Cualquier cambio en la transacción altera su TXID, impidiendo manipulaciones encubiertas.
Otros elementos técnicos de una transacción en Bitcoin
- Versión de la transacción (version)
Define el formato y tipo de transacción. Permite compatibilidad con futuras actualizaciones del protocolo. - Tiempo de bloqueo (locktime)
Permite programar cuándo una transacción puede incluirse en la blockchain (por bloque o fecha). Se usa en pagos diferidos y canales de pago. - Número de secuencia (nSequence)
Valor en cada input que se usa junto a locktime para habilitar reemplazo de transacciones (RBF) o timelocks relativos. - Witness (testigo) (en transacciones SegWit)
Datos adicionales como firmas y claves públicas, separados del cuerpo principal para reducir el peso en el bloque. Mejora eficiencia y reduce comisiones. - Tamaño y peso de la transacción
Afecta el costo de comisiones. Se mide en bytes y unidades virtuales (vBytes). Más inputs = más peso = más fee.
¿Cómo se firman y validan las transacciones de Bitcoin?
En Bitcoin, firmar una transacción es el proceso que permite al dueño de unos fondos demostrar que tiene derecho a gastarlos. Esto se logra mediante criptografía de clave pública: cada usuario tiene una clave privada (secreta) y una clave pública derivada de ella. La clave privada se usa para firmar digitalmente la transacción, mientras que la clave pública sirve para verificar que esa firma es válida sin revelar el secreto.
Criptografía de Bitcoin
La criptografía que utiliza Bitcoin no es una invención propia. Los algoritmos de firma digital ya existían previamente, y lo que hace Bitcoin es aplicarlos para permitir que los usuarios puedan demostrar la propiedad de sus fondos y transferirlos de forma segura entre sí.
Bitcoin utiliza el algoritmo de firma digital ECDSA (Elliptic Curve Digital Signature Algorithm) para generar una firma única basada en los datos de la transacción y la clave privada del emisor.
Por otro lado, emplea SHA-256 como función de hash para resumir la información que se firma, asegurando que incluso un cambio mínimo en los datos genere un resultado completamente distinto. Esta combinación garantiza tanto la integridad como la autenticidad de la transacción.
Una vez firmada, la transacción se difunde a la red y es verificada por los nodos y mineros. Ellos revisan que la firma coincida con la clave pública del dueño anterior del UTXO (la salida no gastada) y que ese UTXO no haya sido utilizado antes. De este modo, se comprueba que quien envía los fondos realmente tiene la autoridad para hacerlo y se previene el doble gasto.
Una vez firmada la transacción, no hay vuelta atrás
Si envías una transacción con un error (monto o dirección), no puedes cancelarla o revertirla. La estructura de funcionamiento de la cadena de bloques hace que las transacciones registradas en ella sean inmutables. ¡Revisa antes de firmar!
Gracias a este mecanismo, Bitcoin logra un sistema de transferencia de valor sin intermediarios, donde la propiedad se valida mediante matemáticas y no por confianza en una entidad central.
¿Cómo se crea, transmite y confirma una transacción en la red?
El ciclo de vida de una transacción Bitcoin comienza en la wallet del usuario, donde se crea un borrador que agrupa los UTXOs seleccionados como entradas y define las salidas (destinatario y cambio).
La wallet calcula además la comisión adecuada y construye el mensaje de forma que incluya todos estos datos en un formato estándar. A continuación, el emisor firma digitalmente el borrador con su clave privada, lo que genera una firma ECDSA que se incorpora al script de desbloqueo de cada entrada y asegura la integridad del conjunto.
Protocolo de Consenso
Una vez firmada, la transacción se transmite a través de la red peer‑to‑peer. Cada nodo que la recibe verifica la estructura básica, comprueba las firmas y se asegura de que los UTXOs referenciados estén aún disponibles. Si la transacción pasa estas pruebas, el nodo la añade a su mempool, una “sala de espera” de operaciones válidas pendientes de inclusión en un bloque.
El mempool es dinámico: las transacciones pueden expirar o ser reemplazadas si el emisor utiliza Replace‑By‑Fee (RBF) para ofrecer una comisión mayor.
El trabajo de los mineros consiste en extraer del mempool aquellas transacciones con las comisiones más atractivas por byte de datos y agruparlas en un nuevo bloque. Para sellar el bloque, los mineros compiten resolviendo un problema de proof‑of‑work: buscan un nonce que haga que el hash del bloque (Block hash) cumpla con la dificultad de la red.
¿Qué es el Block hash?
Un Block hash es un identificador único para un bloque en la cadena de bloques. Es creado hasheando el encabezado del bloque al resolver el acertijo hash en el proceso de minería. Se usa para enlazar los bloques en cadena y para buscar un bloque específico en un explorador de blockchain.
Cuando un minero encuentra una solución válida, la transmite a su nodo completo conectado, y es este nodo quien propaga el nuevo bloque al resto de la red mediante el protocolo peer-to-peer. Entonces, cada nodo valida de nuevo todas las transacciones incluidas.
En este sentido, las operaciones pasan entonces a tener una confirmación; cada bloque posterior añadido a la cadena agrega una confirmación y una capa adicional de seguridad.
¿Cómo una wallet genera una transacción bitcoin?
A diferencia de una cuenta bancaria, donde el saldo se ajusta de forma continua, en Bitcoin cada UTXO es un bloque indivisible de valor. Si un usuario posee un UTXO de 1 BTC y desea enviar 0,3 BTC, la wallet seleccionará ese UTXO completo como input y generará dos outputs: uno de 0,3 BTC para el destinatario y otro, el change output, que regresará el remanente (0,7 BTC menos la comisión) a una nueva dirección controlada por el propio usuario.
Para gestionar el saldo disponible, la wallet mantiene un inventario de todos los UTXO no gastados asociados al usuario. Al construir cualquier transacción, evalúa la combinación óptima de UTXOs que cubra la suma requerida (monto más comisión) minimizando el número de entradas, lo que reduce el peso de la transacción y, por ende, la tarifa.
Si la selección produce un excedente, la wallet calcula la cantidad exacta de cambio y la incorpora en el change output. Este proceso de coin selection (selección de monedas) es clave para optimizar costos y eficiencia.
Todo este flujo ocurre tras bastidores: el usuario solo informa la cantidad a enviar y la dirección del destinatario. La wallet, en segundo plano, realiza todos los pasos de forma transparente:
- Coin selection: elige los UTXOs adecuados.
- Cálculo de fees: estima la tarifa según el tamaño y la prioridad deseada.
- Construye la transacción: arma inputs y outputs (destinatario y cambio).
- Firma y serialización: firma con ECDSA y genera el raw transaction.
- Difusión: envía la transacción al nodo local para su propagación en la red.
Gracias a este diseño, la experiencia del usuario se asemeja a la de un sistema de saldo único, mientras el modelo UTXO conserva su rigor técnico y su seguridad criptográfica.