Publico este mensaje para aclarar en lo posible el mecanismo de comisiones de la red Bitcoin, ya que suele ser un tema de duda recurrente entre los más novatos. En el caso de que exista algún error en el texto, hacédmelo saber para corregirlo. Comienzo.
La red exige una comisión mínima cuando la transacción no cumple alguno de estos tres requisitos:
- 1. Tener un tamaño inferior a 1 000 bytes.
- 2. Todas las salidas (outputs) iguales o mayores a 0.543 veces la comisión mínima.
- 3. Su prioridad no sea lo suficientemente alta.*
* La prioridad ha de ser mayor a 57 600 000 para satisfacer dicho requisito, lo que representa una transacción ideal de 250 bytes con monedas con 1 día de antigüedad (si la transferencia es de 1 BTC, bastará que éste haya estado sin gastarse 1 día, si el importe es de 0.01 BTC se requerirá que estos hayan estado sin gastarse 100 días, 0.01 BTC * 100 días = 1 BTC·día).
Esta comisión mínima se requiere para que la red acepte el "
anuncio de la transacción" (que sea difundida por sus nodos); por cierto, acaba de ser reducida con la versión 0.9.0 del cliente oficial Bitcoin Core (antes Bitcoin-Qt). Ojo, el "anuncio" o difusión de la transacción no significa que ésta finalmente llegue a completarse, para ello algún minero ha de incluirla en uno de los futuros bloques que se van añadiendo a la cadena.
Si la transacción está sin confirmaciones quiere decir que se ha solicitado a la red el gasto de dichas monedas, pero las monedas aún no se han movido de la/s dirección/es de origen. Cuando dicha transacción tiene "confirmaciones" significa que ha entrado en la cadena (algún minero la ha incluido) y las monedas, ahora sí, están en las direcciones de destino. Así que, si la transacción
no tiene confirmaciones las monedas
no han salido de las direcciones de origen, luego siguen estando en nuestro poder, aunque el cliente ya no nos las muestre en el saldo (las tiene marcadas internamente como no disponibles para gastar). En el momento en el que nuestra transacción tiene la primera confirmación, es cuando se "mueven" las monedas; la red ha añadido dicho saldo a las direcciones de destino.
Por lo tanto, la comisión mínima nos permite difundir el "anuncio de la transacción" en los casos que no cumplen los requisitos necesarios para poder realizar un pago sin comisión, pero no nos garantiza que ésta se llegue a materializar. Esto está pensado para proteger a la red de intentos de saturación de la misma mediante "spam" o avalancha de micropagos con el fin de colapsar la red que así no son rentables por la existencia de ésta comisión mínima. Hemos de recordar, en este punto, que los mineros que resuelven los bloques no tienen obligación alguna de incluir transacciones en los mismos. Sin embargo, aquí entran en escena dos factores importantes. El primero es que, a pesar de que no tienen obligación de añadir transacciones a los bloques, tampoco les supone ningún esfuerzo extra hacerlo y el segundo factor es que las transacciones, como sabemos, pueden llevar comisión, y esta comisión pasa a manos del minero que la incluye en un bloque. Entonces, puesto que no supone un "trabajo extra" para el minero incluir transacciones, lo más probable es que añada todas o la mayor parte de las transacciones que incluyan comisión.
Por otra parte tenemos el hecho de que siempre existe cierta "cola" de transacciones pendientes de entrar en el próximo bloque que se encuentre (ahora mismo, los últimos bloques están incluyendo una media de 200 transacciones mientras que hay unos 1500 "anuncios de transacción" esperando ser incluidas en alguno de ellos). Pues bien, dicha cola de espera está ordenada en función de un parámetro llamado
prioridad que se obtiene de la siguiente expresión
prioridad = suma(valor_de_las_entradas_en_unidades_base * edad_de_las_entradas)/tamaño_en_bytes
Entradas (inputs) > Montantes de las monedas según sus direcciones de origen
Unidades base > Satoshis
Edad de las entradas > Antigüedad de las monedas de las entradas (inputs)
es decir, nuestra transacción tendrá mayor prioridad si el montante a transferir es más grande y si las monedas son más antiguas, y menos prioridad cuanto mayor cantidad de bytes se requieran transmitir.
Así que si nuestra transacción tiene una baja prioridad, supongamos que hoy, 23 de marzo, estuviese situada la 1400 en la cola de 1500 ―cuando sólo se están incluyendo unas 200 por bloque― será difícil que se confirme (sea incluida en un bloque) en un corto plazo de tiempo puesto que continuamente siguen llegando anuncios de nuevas transacciones con mayor prioridad que la nuestra y los mineros van incluyendo primero las transacciones más prioritarias. Sin embargo, Satoshi Nakamoto incluyó un sistema en el protocolo para saltarse dicha lista y fueron las comisiones, como las comisiones se las quedan los mineros, estos estarán incentivados a incluir nuestra transacción a un bloque saltándose la lista aunque su "anuncio" tenga una baja prioridad si incluimos en él una comisión que les resulte suficientemente jugosa.
Eventualmente, con el paso de los días, las transacciones que no son incluidas en un bloque de forma temprana van ganando prioridad al ir aumentando la antigüedad de las monedas a transar de modo que van ascendiendo lentamente por la cola de espera.
La comisión es voluntaria (excepto en el caso de no cumplir alguno de los tres requisitos comentados) de modo que se puede definir como nosotros queramos, no obstante, los clientes proponen automáticamente cierta cantidad en función de la prioridad que tenga la transacción que intentamos realizar para que ésta se confirme dentro de un plazo de tiempo aceptable.
Más información en la wiki:
https://en.bitcoin.it/wiki/Transaction_fees