Blockchain/Nivel II · Mecánica/2.2 Transacciones/Lección 7
La vida de una transacción
De la firma a la finalización: cómo una transacción recorre la red
MaterialesEl sitio web mempool.spaceUn explorador de bloques para rastrear la profundidad de confirmación
Curiosidad
- ¿Por qué un nodo necesita verificar una transacción antes incluso de saber si será minada?
- ¿Qué hace que un bloque sea más ‘real’ que otro cuando dos aparecen simultáneamente?
- ¿Por qué seis confirmaciones se convirtieron en una convención, y cuándo es demasiado o demasiado poco?
Explorar
- El proceso comienza en el software de billetera. El usuario selecciona salidas de transacciones no gastadas (UTXO) específicas para cubrir el pago y la comisión. La billetera construye un nuevo objeto de transacción, definiendo entradas que hacen referencia a salidas anteriores mediante su ID de transacción e índice, y salidas que asignan valor a las direcciones del destinatario o a direcciones de cambio. Cada entrada se firma con la clave privada correspondiente a su script de bloqueo, generando firmas digitales que demuestran la propiedad sin revelar la clave en sí.
- La transacción completamente firmada se serializa en un formato binario y se transmite a los nodos conectados a través de la red punto a punto. Al recibirla, cada nodo realiza una validación independiente según las reglas de consenso: verifica que las entradas cubran las salidas, comprueba las firmas criptográficas, asegura que no haya gasto doble de los UTXO existentes y valida la lógica del script. Si es válida según las políticas establecidas, el nodo agrega la transacción a su mempool local y la anuncia a los demás nodos mediante mensajes “inv” (inventario); aquellos que no la tienen solicitan la transacción completa con el mensaje “getdata”.
- Los mineros monitorean continuamente sus mempools en busca de transacciones rentables. Seleccionan un conjunto de transacciones con altas tasas de comisión para incluirlas en una plantilla de bloque candidato, que también contiene la transacción coinbase que otorga la subvención del bloque actual y las comisiones recaudadas. El minero luego realiza el proof-of-work, calculando el hash del encabezado del bloque repetidamente hasta encontrar un hash que cumpla con el objetivo de dificultad actual de la red. Ese trabajo hace que producir el bloque sea costoso pero barato de verificar; una vez encontrado, el bloque se transmite por toda la red.
- Los nodos que reciben el nuevo bloque verifican su proof-of-work y la validez de las transacciones antes de añadirlo a su copia local de la cadena. Las transacciones dentro de este bloque se consideran ahora confirmadas en profundidad uno. Sus entradas se marcan como gastadas en el conjunto UTXO, y sus salidas quedan disponibles para ser gastadas en el futuro una vez que hayan transcurrido los tiempos de bloqueo o períodos de maduración necesarios. Si aparece un bloque competidor a la misma altura, los nodos siguen la rama que acumule más trabajo; si una reorganización corta reemplaza a un bloque, sus transacciones vuelven al mempool, a menos que la nueva rama ya las incluya.
- La seguridad aumenta con cada bloque adicional que se añade sobre el bloque de confirmación. Las tablas del whitepaper muestran que un atacante con el 10% de la potencia de hash tiene menos del 0,1% de posibilidades de alcanzar a quien está cinco bloques por detrás. Seis confirmaciones, aproximadamente una hora, se convirtieron en una convención común a partir de este tipo de análisis, aunque el riesgo real depende de la participación del atacante y de la cantidad en juego. Mientras que algunos comerciantes aceptan pagos sin confirmación para cantidades pequeñas, las transferencias más grandes suelen esperar múltiples confirmaciones para mitigar el riesgo de un ataque de gasto doble mediante reorganización de la cadena.
- Las transacciones coinbase, que crean nuevos bitcoins a partir de recompensas por minería y comisiones, tienen una restricción especial: sus salidas no pueden ser gastadas hasta que cuenten con 100 confirmaciones. Esta regla existe porque una salida de tipo coinbase desaparece si su bloque es reemplazado en una reorganización; el retraso evita que tales monedas se incluyan en transacciones posteriores, las cuales quedarían invalidadas. En cuanto a las transferencias estándar de usuario a usuario, no existe tal retraso; una vez confirmadas, las salidas son técnicamente gastables, aunque esperar más confirmaciones es una decisión de gestión de riesgos basada en el valor en juego y en las suposiciones de confianza.
Datos clave
- Los nodos validan las transacciones según las reglas de consenso antes de añadirlas a sus mempools.
- La validez de un bloque depende de que su prueba de trabajo cumpla con el objetivo de dificultad actual.
- Seis confirmaciones (aproximadamente una hora) es una convención común, no una regla de protocolo.
- Las salidas de coinbase requieren 100 bloques de maduración antes de que puedan ser gastadas.
- En una reorganización, las transacciones ordinarias del bloque reemplazado vuelven al mempool, a menos que entren en conflicto con la nueva rama; su coinbase desaparece.
- Los nodos anuncian nuevas transacciones con mensajes ‘inv’ y las envían a petición (‘getdata’).
Ejercicio nueve, seis, tres, uno
9ReunirEnumera 9 etapas o eventos distintos en el ciclo de vida de una transacción, desde su creación hasta su finalización.
6AgruparAgrupa estas 9 etapas en 6 fases: construcción, validación, propagación, minería, confirmación y estados posteriores a la confirmación.
3DestilarReduce las 6 fases a 3 puntos de control críticos donde la red aplica medidas de seguridad o consenso.
1CristalizarEscribe una oración que explique por qué seguir la cadena con más trabajo resuelve los conflictos entre bloques competidores.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.