Una coinbase transaction es la primera transacción de cada bloque. A diferencia de las transacciones ordinarias, no tiene inputs reales: su único input es un campo especial llamado coinbase field, que puede contener datos arbitrarios. La recompensa se distribuye en sus outputs.

Cómo se estructura la coinbase transaction en Bitcoin y BCH

  • version: 4 bytes, normalmente 0x01000000.
  • inputs: exactamente 1, con txid = 0x00…00 (32 bytes de ceros) y vout = 0xFFFFFFFF.
  • coinbase field (scriptSig): entre 2 y 100 bytes. Contiene block height (BIP34), extranonce y datos del pool como identificador o mensaje.
  • outputs: uno o más, cada uno con un valor en satoshis y un scriptPubKey que define quién puede gastar esa salida.
  • locktime: 4 bytes, normalmente 0x00000000.

Estructura de la coinbase en Monero (XMR)

Monero llama a esta transacción "miner transaction" (miner tx). Su estructura difiere significativamente de la de Bitcoin porque Monero no utiliza el modelo UTXO transparente de Bitcoin: usa un modelo de outputs de un solo uso basado en criptografía de curva elíptica.

  • version: varint, actualmente 2 para transacciones con RingCT.
  • unlock_time: varint. En el miner tx se establece en altura_actual + 60, imponiendo el periodo de maduración directamente en la transacción.
  • inputs: exactamente 1 input de tipo txin_gen, que contiene únicamente el número de bloque (block height). No hay referencia a ningún output previo.
  • outputs: uno o más, cada uno con un amount explícito y un target de tipo txout_to_key, que contiene una clave pública de un solo uso (one-time public key) derivada de la view key y la spend key de la dirección receptora.
  • extra: campo de longitud variable. Contiene la clave pública de transacción (transaction public key, R = r·G) necesaria para que el receptor identifique el output como suyo usando su view key.
  • rct_signatures: no se usa para el miner tx. Aunque las miner tx modernas utilizan la versión 2 del protocolo, no emplean range proofs ni firmas RingCT; los montos del output son transparentes y verificables por consenso.

La clave pública de un solo uso de cada output se calcula como: P = Hs(r·V, i)·G + S, donde r es la clave aleatoria del emisor, V es la view key pública del receptor, S es la spend key pública del receptor, i es el índice del output y Hs es un hash sobre la curva. El receptor puede identificar el output calculando Hs(v·R, i)·G + S y comparándolo con P, donde v es su view key privada y R la clave pública de transacción del campo extra.

Para OwnBlock, el miner tx de XMR se construye con dos outputs: uno para la comisión del pool y otro para la recompensa del minero. Ambos outputs usan one-time keys independientes derivadas de las respectivas direcciones. El minero puede verificar que el output le pertenece escaneando el bloque con su view key, sin necesidad de confiar en que OwnBlock le haya pagado correctamente.

Cómo OwnBlock construye la coinbase

Cuando el software del pool arma el bloque candidato para enviárselo al minero vía Stratum, ya define los outputs de la coinbase. Para OwnBlock, se generan dos outputs de pago gastables: uno con la comisión del pool (scriptPubKey con la dirección de OwnBlock) y otro con el importe restante (recompensa de bloque + fees de las transacciones incluidas) usando el scriptPubKey derivado de la dirección de minería proporcionada por el usuario. Cualquier output de compromiso adicional requerido por el protocolo —como el commitment de SegWit en bloques BTC/BCH— va aparte y no afecta a la distribución de la recompensa.

Por qué este diseño elimina al custodio intermedio

En un pool de pago diferido (PPLNS, PPS, etc.), el pool acumula las recompensas y luego realiza transferencias convencionales a los mineros. Esa transferencia es una transacción ordinaria que no tiene ninguna relación visible con el bloque original. El origen de los fondos queda oscurecido desde el punto de vista de la blockchain.

Con OwnBlock, la dirección del minero está codificada en la coinbase desde el momento en que se construye el bloque candidato. Si el bloque es aceptado por la red, el pago ya está ahí: en el output de la coinbase, indexado en el bloque, con el hash del bloque como prueba criptográfica de que el origen es minería. No existe ningún intermediario que pueda retener, bloquear o redistribuir esa recompensa.

Cuándo puedes gastar una recompensa minera

Los outputs de una coinbase no se pueden gastar de inmediato. El protocolo impone un periodo de maduración antes de que el output —o el UTXO en BTC y BCH— pueda ser referenciado como input en otra transacción: BTC y BCH requieren 100 confirmaciones (~16–17 horas); XMR requiere 60 confirmaciones (~2 horas), impuestas mediante el campo unlock_time del miner tx. Durante ese periodo, el output existe en la blockchain pero está bloqueado por las reglas de consenso.

Si quieres entender mejor este modelo de pago directo, revisa también nuestras guías sobre split coinbase, custodia y configuración de pools para entender dónde reduce la necesidad de confianza y dónde no.