Salidas

¿Qué es una salida de transacción?

El sistema de transacciones de bitcoin implica enviar y recibir "lotes" enteros de bitcoins, llamados salidas (outputs).

Sencillo así, pero la única forma de entender de verdad cómo funcionan las salidas es mirar algunos ejemplos de transacciones.

¿De dónde vienen las salidas?

Vamos a empezar esta explicación sobre salidas de transacción con el nacimiento de un nuevo lote de bitcoins…

Estás minando bitcoins por tu cuenta. Por algún milagro, conseguiste minar un bloque de transacciones y ganar una recompensa de bloque.

Diagrama que muestra la recompensa del bloque siendo enviada a una dirección mediante la transacción coinbase.

Cada minero pone su propia dirección al principio de cada bloque, así que, si consigue minar el bloque, la recompensa puede enviarse a su dirección. Esto se reclama mediante una transacción coinbase (o, como se llamaba antes, la "transacción de generación").

Entonces, este es el estado actual de tu dirección de bitcoin:

Diagrama que muestra una única salida de 25 BTC bloqueada a una dirección.

La recompensa de bloque era de 25 BTC cuando escribí este artículo por primera vez.

Naturalmente, tu primer instinto es celebrarlo. Así que vamos a usar 1 de esos bitcoins para comprar una cerveza.

Una pinta de cerveza mal dibujada.

Cerveza.

Ahora, tu otro primer instinto sería partir 1 de esos bitcoins (de la recompensa del bloque) para pagar esa cerveza. Tendría sentido, pero no es exactamente así como funcionan las transacciones.

Diagrama que muestra 1 BTC siendo recortado incorrectamente de una entrada mayor de 25 BTC.

No funciona así. Y esa es una cerveza bastante cara.

En vez de eso, tenemos que enviar el lote entero de 25 bitcoins en la transacción.

Pero, para asegurarnos de que no gastamos los 25 bitcoins en un pago de "1 bitcoin", dividimos el lote y lo enviamos a dos destinos:

  1. A la tienda de cerveza, como pago
  2. De vuelta a nuestra propia dirección, como cambio
Diagrama que muestra una transacción donde una única entrada de 25 BTC se divide en una salida de 1 BTC y otra de 24 BTC.

Los lotes recién creados se llaman salidas.

Es una forma algo indirecta de hacerlo, pero termina produciendo el mismo resultado.

En fin, así quedan las direcciones de bitcoin después de la transacción:

Diagrama que muestra un saldo de 24 BTC en una dirección y 1 BTC en otra.

La tienda de cerveza tiene un nuevo lote de 1 bitcoin, y nos enviamos a nosotros mismos un nuevo lote de 24 bitcoins (como cambio). El lote original de 25 bitcoins fue "consumido" y no puede gastarse de nuevo.

Así que, en la práctica, es como si hubiéramos cogido 1 bitcoin de nuestra dirección y lo hubiéramos enviado a otra dirección… pero ahora sabemos lo que realmente ocurre por debajo del capó.

La razón por la que las transacciones usan este sistema de "salidas" es que es una forma fácil de construir pagos desde el punto de vista de la programación.

¿Cómo gastas varias salidas en una transacción?

Bien, de ahora en adelante vamos a usar la palabra salida en lugar de "lote".

Pues bien, han pasado algunos días desde que la tienda de cerveza nos vendió aquella cerveza. Y, a juzgar por el estado actual de su dirección de bitcoin, el negocio va viento en popa:

Diagrama que muestra una dirección con 5 salidas no gastadas que suman 7,5 BTC.

La tienda de cerveza ha recibido cuatro pagos nuevos desde que compramos nuestra cerveza.

Pero, como todos sabemos, la cerveza no crece en los árboles. Así que la tienda de cerveza anda buscando una máquina de cerveza nueva de verdad.

Una máquina imaginaria para hacer cerveza, mal dibujada.

Así es como me llaman mis amigos cuando salimos de fiesta.

Mira, una adorable máquina de cerveza por el bajísimo precio de 4,2 bitcoins.

Vamos a comprarla…

Diagrama que muestra una transacción gastando varias entradas y creando varias salidas.

Construyendo la transacción para la máquina de cerveza.

Bien, sé que subí varios niveles el diagrama en este caso, pero no es tan difícil de entender:

  1. La tienda de cerveza no tiene una sola salida en la dirección que cubra el coste de la máquina de cerveza (4,2 BTC). Así que, en vez de eso, reunimos un montón de salidas para llegar a un total mayor que 4,2 BTC.
  2. Cuando construimos una transacción, las salidas que reunimos para gastar se llaman entradas de la transacción.
  3. Usando un valor total de entrada de 4,5 BTC, la tienda de cerveza crea dos nuevas salidas de 4,2 BTC y 0,3 BTC.

Cuando estás gastando una salida en una transacción, se llama entrada.

Y aquí está el estado de la dirección de bitcoin de la tienda de cerveza después de la transacción:

Diagrama que muestra una dirección con 4 salidas gastadas y 2 salidas no gastadas que suman 3,3 BTC.

La tienda de cerveza consumió 4 salidas y tiene una nueva salida de 0,3 BTC (del cambio).

Una vez más, las salidas que se usaron como entradas han sido "gastadas" y no pueden volver a usarse.

Las salidas "no gastadas", en cambio, siguen disponibles para gastar, así que las llamamos salidas de transacción no gastadas (UTXOs).

El saldo de una dirección es la suma de las UTXOs de esa dirección.

¿De dónde vienen las comisiones de transacción?

Ah, sí, no incluimos una comisión de transacción en ninguna de las dos últimas transacciones.

Sin una comisión de transacción, esas dos transacciones probablemente tardarán bastante en ser incluidas en un bloque (si es que llegan a serlo). Eso es porque la comisión da prioridad a tu transacción.

Verás, las comisiones de transacción las recogen los mineros cuando minan un bloque. Así que, si hay muchas transacciones esperando en el memory pool, añadir una comisión crea un incentivo para que los mineros incluyan tu transacción en el siguiente bloque.

En fin, finge que no enviamos esa última transacción a la red y vamos a añadirle una comisión:

Diagrama que muestra una transacción con un sobrante que se usa como comisión.

Bien, entonces ¿dónde demonios está la salida de la comisión de transacción? Pues no existe ninguna. Pero mira el tamaño de las salidas.

El total de las salidas es menor que el total de las entradas, lo que significa que sobran algunos bitcoins que no se están consumiendo. Ese valor que "sobra" es la comisión de transacción.

Y eso es todo lo que son las comisiones de transacción: el resto de una transacción.

El valor que sobra en una transacción siempre lo recoge un minero. Así que, si construyeras manualmente una transacción y te olvidaras de crear una salida de cambio para ti mismo, el minero se quedaría con el valor que dejaste atrás, sin importar cuánto sea. Esto no es algo de lo que debas preocuparte si usas una billetera para construir tus transacciones, ya que siempre se encarga del cambio por ti.