¿Cómo funciona una transacción?

Enviar bitcoin no significa mover monedas desde una wallet hasta otra. Una transacción utiliza fondos disponibles, define nuevas condiciones de gasto, se firma, se propaga por la red y puede acabar incluida en un bloque. Entender cómo funciona una transacción, etapa a etapa, permite interpretar correctamente qué significa “enviado”, “pendiente” o “confirmado”.

Cuando pulsas el botón Enviar en una wallet, parece que todo ocurre de una vez.

Introduces una dirección, eliges una cantidad, confirmas y al poco tiempo la otra persona ve el pago.

Pero debajo de esa interfaz ocurren varias cosas diferentes.

Crear una transacción, transmitirla y confirmarla no son el mismo evento.

Separar esas etapas ayuda a entender casi todo lo que después veremos sobre comisiones, UTXO, mempool, minería y confirmaciones.

Antes de enviar: la wallet necesita fondos disponibles

Una wallet no trabaja internamente con un único saldo parecido al de una cuenta bancaria.

Bitcoin funciona mediante salidas de transacciones que todavía no han sido gastadas.

Se conocen habitualmente como UTXO.

Imagina que tu wallet te muestra:

Saldo: 0,012 BTC

Ese saldo podría estar formado realmente por varios UTXO:

  • 0,005 BTC;
  • 0,004 BTC;
  • 0,003 BTC.

Si quieres pagar 0,006 BTC, la wallet necesita decidir cuáles de esas piezas utilizar.

La wallet construye una nueva transacción

Una transacción de Bitcoin puede verse, de forma simplificada, como una operación que:

  1. Selecciona entradas

    Utiliza UTXO que todavía están disponibles y que la wallet sabe cómo gastar.

  2. Crea nuevas salidas

    Define nuevas cantidades y las condiciones que deberán cumplirse para gastarlas en el futuro.

  3. Reserva una comisión

    La diferencia entre el valor de las entradas y el de las salidas puede convertirse en la comisión ofrecida a los mineros.

Una transacción transforma UTXO

Las entradas consumen salidas anteriores y la transacción crea nuevas salidas.

UTXO 0,005 BTC
UTXO 0,004 BTC
Pago 0,006 BTC
Cambio Menos la comisión

¿Por qué aparece una salida de cambio?

Un UTXO normalmente se gasta entero.

Si necesitas utilizar un UTXO de 0,01 BTC para pagar solo 0,006 BTC, no se recorta simplemente el UTXO original.

Se consume por completo y la transacción crea nuevas salidas.

Por ejemplo:

  • 0,006 BTC para quien recibe el pago;
  • aproximadamente 0,0039 BTC de vuelta a una dirección controlada por ti;
  • 0,0001 BTC como comisión.

Esa segunda salida se denomina habitualmente cambio.

La comisión no es un campo independiente llamado “fee”

Una transacción normal no necesita decir literalmente:

Comisión: 5.000 sats.

La comisión se obtiene comparando el valor total de las entradas con el valor total de las salidas.

Comisión = entradas − salidas

Si las entradas suman 100.000 sats y las salidas suman 98.000 sats, los 2.000 sats restantes pueden ser reclamados por el minero que incluya la transacción en un bloque.

La comisión depende especialmente del tamaño o peso de la transacción, no simplemente de cuánto bitcoin estés enviando.

Una operación que mueve 10 BTC puede ocupar menos espacio que otra que mueve 0,01 BTC si la segunda necesita muchas entradas.

Después hay que autorizar el gasto

Construir una transacción no es suficiente.

La red necesita comprobar que se cumplen las condiciones necesarias para gastar los UTXO utilizados como entradas.

En las configuraciones habituales, esto requiere una o varias firmas digitales.

La wallet o dispositivo firmante utiliza las claves privadas correspondientes para generarlas.

La clave privada no se envía a la red. Se utiliza para producir una prueba criptográfica que la red puede verificar.

Firmar no significa enviar todavía

Una transacción puede construirse, revisarse y firmarse antes de transmitirse a otros nodos.

Construcción Entradas y salidas
Revisión Destino, importe y comisión
Firma Autoriza el gasto
Transmisión Se envía a la red

Por eso una hardware wallet puede permanecer desconectada

La firma y la transmisión pueden realizarse en dispositivos diferentes.

Un ordenador conectado a Internet puede construir una transacción.

Un dispositivo de firma puede revisarla y firmarla manteniendo las claves privadas aisladas.

Después el ordenador recibe la transacción firmada y la transmite.

Esto es posible porque:

Firmar una transacción y transmitirla a la red son funciones diferentes.

¿Qué ocurre cuando pulsas “Enviar”?

Una vez firmada, la transacción puede transmitirse a un nodo Bitcoin.

Ese nodo realiza sus propias comprobaciones.

Si la transacción incumple las reglas o las políticas que ese nodo aplica, puede rechazarla.

Si la acepta, normalmente puede anunciarla a otros nodos conectados.

Esos nodos realizan también sus propias comprobaciones y pueden propagarla a otros.

Así una transacción puede extenderse rápidamente por la red sin necesitar un servidor central.

La transacción se propaga entre pares

No se envía directamente “a la blockchain”. Primero circula entre nodos de la red.

Tu wallet Entrega la transacción
Nodo A Comprueba
Nodo B Comprueba y retransmite
Más nodos La conocen progresivamente

¿Qué comprueba un nodo?

Un nodo puede realizar numerosas verificaciones antes de aceptar una transacción.

Entre ellas:

  • que la estructura sea válida;
  • que las entradas se refieran a fondos existentes;
  • que esos fondos no estén ya gastados según su estado actual;
  • que se cumplan las condiciones necesarias para gastarlos;
  • que los valores sean coherentes;
  • que la transacción respete las reglas de consenso;
  • que cumpla determinadas políticas locales para ser retransmitida o almacenada.

Esto explica una diferencia importante:

Una transacción puede estar correctamente firmada y aun así ser inválida por otros motivos.

¿Qué es la mempool?

Si un nodo considera válida una transacción todavía no confirmada, normalmente puede guardarla temporalmente en su mempool.

La mempool es, de forma simplificada, el conjunto de transacciones pendientes que ese nodo conoce.

Este último matiz es importante.

Dos nodos pueden conocer conjuntos de transacciones ligeramente diferentes.

Una transacción puede haber llegado a uno y todavía no al otro, o puede cumplir las políticas de retransmisión de uno pero no las del otro.

No existe “la mempool de Bitcoin” como una base de datos central única.

Una transacción en mempool todavía no está confirmada

Ver una transacción como pendiente significa normalmente que algún nodo o servicio la conoce.

Pero todavía no forma parte de un bloque de la cadena que estás observando.

⏳ Sin confirmar

La transacción circula por la red y puede estar en mempools, pero todavía no ha sido incluida en un bloque.

VS
✅ Confirmada

La transacción está incluida en un bloque que el nodo considera parte de su cadena válida.

¿Puede gastarse inmediatamente un pago sin confirmar?

Técnicamente es posible construir una nueva transacción que gaste una salida creada por otra transacción todavía sin confirmar.

Pero existe una dependencia.

Si la transacción anterior no termina confirmándose, la posterior tampoco podrá confirmarse de la manera esperada.

Por eso las wallets y servicios pueden tratar de forma diferente los fondos confirmados y no confirmados.

¿Puede haber dos transacciones que intenten gastar lo mismo?

Sí.

Una persona puede intentar construir dos transacciones incompatibles que utilicen el mismo UTXO.

Pero ambas no pueden quedar válidamente confirmadas dentro de la misma historia porque el mismo UTXO no puede gastarse dos veces.

Los nodos y mineros deben terminar trabajando con una versión compatible con el estado que consideran válido.

¿Cómo llega una transacción a un bloque?

Los mineros conocen muchas de las transacciones que circulan por la red.

Cada minero puede seleccionar cuáles intenta incluir dentro de su siguiente bloque candidato.

Como el espacio de los bloques es limitado, las comisiones influyen en esa selección.

De forma simplificada, los mineros tienen un incentivo económico para incluir conjuntos de transacciones que generen comisiones atractivas dentro del espacio disponible.

Pero no están obligados a elegir exactamente las mismas transacciones.

Dos mineros pueden construir bloques candidatos diferentes.

Cuando uno consigue producir un bloque válido mediante Proof of Work, lo transmite a la red.

Los nodos que lo reciben verifican tanto el bloque como sus transacciones.

Si cumple sus reglas, pueden aceptarlo como una nueva extensión de la cadena.

De mempool a confirmación

La transacción no queda confirmada porque un minero la vea, sino cuando aparece dentro de un bloque que el nodo acepta.

Mempool Transacción pendiente
Minero La selecciona
Bloque La contiene
Nodos Validan el bloque

¿Qué significa una confirmación?

Cuando una transacción aparece dentro de un bloque aceptado por el nodo que estás observando, suele decirse que tiene una confirmación.

Si se construye otro bloque encima:

2 confirmaciones.

Después otro:

3 confirmaciones.

Cada nuevo bloque hace que la transacción quede más profundamente enterrada dentro de la historia sobre la que continúa acumulándose Proof of Work.

Las confirmaciones miden profundidad

No son sellos independientes. Expresan cuántos bloques forman parte de la historia desde que la transacción fue incluida.

Tu transacción Incluida aquí
1 confirmación Primer bloque
2 confirmaciones Otro bloque encima
Más profundidad Mayor coste de reorganización

¿Por qué se esperan varias confirmaciones?

Porque una cadena de bloques puede experimentar reorganizaciones.

Dos mineros pueden encontrar bloques distintos casi simultáneamente.

Durante un breve periodo, distintos nodos pueden haber recibido primero uno u otro bloque.

Cuando una de esas ramas acumula más Proof of Work, los nodos pueden terminar convergiendo hacia ella.

Una transacción que estaba únicamente en el bloque abandonado podría volver temporalmente al estado de no confirmada.

Cuanto más profunda queda una transacción, más costoso resulta construir una historia alternativa que elimine esa confirmación.

¿Cuántas confirmaciones son suficientes?

No existe un número universal correcto para todas las situaciones.

Depende del riesgo que estés dispuesto a asumir, del importe, de la naturaleza de la operación y del contexto.

Un comercio que vende un café puede aceptar un nivel de riesgo distinto al de una empresa que recibe una operación de enorme valor.

La famosa referencia a seis confirmaciones no es una regla absoluta del protocolo.

Es una convención utilizada frecuentemente como referencia para operaciones que requieren un nivel de seguridad elevado.

¿Cuánto tarda una confirmación?

Bitcoin está diseñado para producir bloques aproximadamente cada diez minutos de media.

Pero eso no significa que aparezca exactamente un bloque cada diez minutos.

La minería es probabilística.

Puede aparecer un bloque pocos segundos después del anterior o puede transcurrir bastante más tiempo.

Además, aunque aparezca un nuevo bloque, tu transacción no tiene por qué estar incluida en él.

Si la demanda de espacio es alta y tu comisión es poco competitiva, puede permanecer pendiente durante varios bloques.

“10 minutos por transacción” es una simplificación incorrecta.

¿Por qué algunas transacciones tardan más que otras?

Porque compiten por un recurso limitado: el espacio disponible en los bloques.

Cuando hay muchas transacciones pendientes, los mineros pueden priorizar aquellas que ofrecen mejores tasas de comisión.

Por eso una wallet normalmente intenta estimar una tasa adecuada según la urgencia.

⚡ Mayor urgencia

Puede requerir una tasa de comisión más competitiva para aumentar las probabilidades de inclusión temprana.

VS
🐢 Menor urgencia

Puedes aceptar esperar más bloques y utilizar una tasa menor si las condiciones de la mempool lo permiten.

¿Puede modificarse una transacción pendiente?

En determinadas circunstancias sí puede sustituirse por otra transacción incompatible antes de que quede confirmada.

Uno de los mecanismos utilizados para ello es Replace-By-Fee o RBF.

Esto es otra razón para distinguir una transacción vista en mempool de una transacción confirmada.

¿Y si la comisión elegida fue demasiado baja?

Una transacción puede permanecer pendiente durante bastante tiempo si su tasa de comisión no resulta atractiva frente a otras.

Dependiendo de la wallet, de cómo se construyó la transacción y de las políticas de la red, pueden existir mecanismos para intentar acelerar su confirmación.

Dos conceptos que encontrarás más adelante son:

  • RBF, sustituyendo una transacción por otra con una comisión superior;
  • CPFP, utilizando una salida de la transacción pendiente en otra operación que incentive a los mineros a confirmar ambas.

No necesitas utilizarlos todavía.

Lo importante es entender que la comisión forma parte de cómo una transacción compite por espacio dentro de los bloques.

¿Qué significa realmente “enviar bitcoin”?

Ahora podemos volver a la pregunta inicial.

No hay unas monedas digitales viajando desde el interior de tu wallet hasta el interior de otra wallet.

Lo que ocurre es algo más parecido a esto:

  1. Tu wallet selecciona fondos existentes

    Elige UTXO que todavía puedes gastar.

  2. Crea nuevas condiciones de gasto

    Una nueva salida queda destinada a quien recibe y normalmente otra vuelve a ti como cambio.

  3. Las claves autorizan la operación

    Las firmas demuestran que se cumplen las condiciones necesarias para gastar las entradas.

  4. La red verifica y propaga

    Los nodos comprueban la transacción y pueden transmitirla a sus pares.

  5. Un minero puede incluirla en un bloque

    Cuando ese bloque es aceptado por los nodos, la transacción obtiene su primera confirmación.

Enviar bitcoin significa crear una nueva transacción válida que cambia qué condiciones permiten gastar determinadas cantidades en el futuro.

El receptor tampoco “recibe monedas dentro de su wallet”

La wallet del receptor observa Bitcoin y detecta una nueva salida que coincide con información que sabe gestionar.

Puede entonces mostrar:

Pago recibido: 50.000 sats

Pero ese número es una interpretación útil de una transacción registrada en Bitcoin.

Los sats no han entrado físicamente en su teléfono.

Una transacción puede tener muchas entradas y salidas

No todas las transacciones son simples.

Una transacción puede:

  • utilizar muchos UTXO como entradas;
  • crear varias salidas para distintos receptores;
  • incluir una o varias salidas de cambio;
  • depender de diferentes condiciones de firma;
  • tener relación con otras transacciones pendientes.

Eso explica por qué mirar únicamente una cantidad enviada no cuenta toda la historia.

Para analizar una transacción correctamente conviene observar su estructura completa.

Una definición suficientemente buena para empezar

Podemos resumirlo así:

Una transacción de Bitcoin consume salidas anteriores que todavía podían gastarse y crea nuevas salidas con nuevas condiciones de gasto, utilizando firmas y otras pruebas para demostrar que la operación cumple las reglas.

Después esa transacción puede propagarse entre nodos y quedar incluida en un bloque.

Solo entonces empieza a acumular confirmaciones.

Compruébalo tú mismo

Las transacciones son públicas y puedes empezar a explorarlas sin utilizar tus propios fondos.

  1. Abre una transacción cualquiera en un explorador de bloques.
  2. Localiza sus entradas.
  3. Localiza sus salidas.
  4. Comprueba si una de las salidas parece corresponder al cambio.
  5. Busca el valor total de las entradas y de las salidas.
  6. Observa la diferencia que corresponde a la comisión.
  7. Localiza el bloque donde se confirmó.
  8. Comprueba cuántas confirmaciones tiene actualmente.

Después busca el mismo identificador de transacción en otro explorador.

Ambos deberían mostrar los mismos datos fundamentales.

Y recuerda:

Un explorador te muestra su interpretación de Bitcoin. Más adelante podrás comprobar esa misma transacción utilizando tu propio nodo.

Qué debes llevarte de este artículo

  • Enviar bitcoin no significa mover monedas físicamente entre wallets.
  • Una transacción utiliza uno o varios UTXO como entradas y crea nuevas salidas.
  • Un UTXO se consume completo; cuando sobra valor suele aparecer una salida de cambio.
  • La diferencia entre entradas y salidas determina la comisión de la transacción.
  • Las claves privadas permiten generar las firmas necesarias para autorizar determinados gastos.
  • Firmar una transacción y transmitirla a la red son operaciones diferentes.
  • Los nodos verifican una transacción antes de aceptarla y retransmitirla.
  • Cada nodo tiene su propia mempool; no existe una mempool global única.
  • Una transacción pendiente todavía no está confirmada.
  • La primera inclusión en un bloque produce la primera confirmación.
  • Cada nuevo bloque construido encima aumenta su profundidad y dificulta una reorganización que la elimine.
  • No existe un número universal de confirmaciones adecuado para todas las operaciones: depende del riesgo y del contexto.
Ilustración de Pajarito sobre cómo funciona una transacción de Bitcoin, de la firma a la confirmación.