Blockchain/Nivel II · Mecánica/2.2 Transacciones/Lección 2
Entradas y salidas
La anatomía de una transacción: outpoints, scripts y la tarifa implícita
MaterialesUn explorador de bloques como mempool.space o blockchain.comUna calculadora para sumar valores de satoshi
Curiosidad
- ¿Cómo demuestra una transacción que tiene derecho a gastar el valor creado por otra transacción?
- Si no hay un campo explícito para las tarifas, ¿cómo saben los mineros exactamente cuánto se les está pagando?
- ¿Por qué la primera transacción en cada bloque es estructuralmente inusual?
Explorar
- Una transacción de Bitcoin es una estructura de datos que cuenta con un número de versión y un nLockTime, pero su núcleo está formado por entradas y salidas. Una entrada no contiene valor; simplemente hace referencia a uno. Cada entrada se refiere a una salida anterior específica mediante un outpoint: el txid de 32 bytes de la transacción de origen más un índice de 4 bytes que identifica qué salida de esa transacción se está utilizando. Esta referencia conecta las transacciones en una cadena.
- Cada entrada también contiene datos de desbloqueo y un campo nSequence. El nSequence regula los bloqueos temporales (time-locks) y las señales de reemplazo por tarifa (RBF). Los datos de desbloqueo, almacenados en scriptSig para transacciones heredadas o en la sección witness para SegWit, proporcionan la prueba criptográfica necesaria para satisfacer las condiciones de la salida a la que se hace referencia. Aquí es donde reside la firma de la clave privada.
- Las salidas son donde reside el valor. Cada salida especifica una cantidad en satoshis mediante un entero de 8 bytes y un script de bloqueo (scriptPubKey) que define quién puede gastarla posteriormente. Una sola transacción puede tener múltiples entradas y salidas, pero la suma de las entradas debe ser al menos igual a la suma de las salidas.
- La comisión no se almacena en ningún lugar. Se calcula como la diferencia entre el valor total consumido por las entradas y el valor total generado por las salidas. Este remanente va al minero que incluye la transacción en un bloque. Si las sumas fueran iguales, la comisión sería cero; si las salidas superaran a las entradas, la transacción sería inválida.
- La transacción coinbase es la excepción que confirma la regla. Tiene una entrada especial sin outpoint previo, lo que permite crear valor nuevo a partir de la nada. Sus salidas incluyen la subvención del bloque (actualmente 3,125 BTC) más todas las comisiones recaudadas de otras transacciones en ese bloque. El txid de cualquier transacción es el hash doble SHA-256 de sus datos serializados, excluyendo la información witness.
- Abra un explorador de bloques y busque el bloque 170, minado el 12 de enero de 2009. Además de su coinbase, contiene una transacción: Satoshi Nakamoto enviando 10 BTC a Hal Finney. Su única entrada gasta la salida de coinbase de 50 BTC del bloque 9. Tiene dos salidas: 10 BTC para Finney y 40 BTC devueltos a Satoshi. Tanto las entradas como las salidas suman 50 BTC, por lo que la comisión es cero; las transacciones tempranas a menudo no costaban nada, ya que los bloques tenían suficiente espacio.
Datos clave
- Una entrada hace referencia a una salida anterior mediante un outpoint que consta de un txid y un índice de salida.
- La comisión por transacción es la diferencia entre la suma de los valores de entrada y la suma de los valores de salida.
- Las salidas contienen un valor de 8 bytes en satoshis y un script de bloqueo (scriptPubKey).
- Las entradas contienen datos de desbloqueo (firma) y un campo nSequence para bloqueos por tiempo o señalización RBF.
- La transacción coinbase crea nuevos bitcoins a través de una entrada especial sin outpoint previo.
- El txid es el hash doble SHA-256 de la transacción serializada, excluyendo los datos de testigo.
Ejercicio nueve, seis, tres, uno
9ReunirExamina 9 transacciones recientes en un explorador de bloques. Para cada una, anota la cantidad de entradas, la cantidad de salidas y la comisión en satoshis.
6AgruparAgrupa las 9 en 6 según su estructura: una entrada-una salida, una entrada-dos salidas, muchas entradas-una salida (consolidación), una entrada-muchas salidas (pago por lotes), muchas entradas-muchas salidas u otra.
3DestilarReduce las 6 a 3 razones por las cuales una transacción tiene varias entradas o varias salidas.
1CristalizarEscribe una oración sobre por qué Bitcoin puede dejar la comisión implícita en lugar de declararla explícitamente.
Verificación de hechos
Fechas, cifras y afirmaciones verificadas con las fuentes publicadas que se enumeran a continuación.