¿Cómo determino mi tarifa de transacción de forma automatizada?

Cuando envío Bitcoins a través de Electrum, solo pago la tarifa de transacción que recomienda el software. Ahora estoy escribiendo un programa que tendrá que determinar el tamaño de la tarifa de transacción sobre la marcha.

¿Cómo se calcula esto? Parece que Electrum recomienda constantemente .0002 BTC para cada transacción, pero leí en otra parte que resolver el monto de la tarifa depende del tamaño de la transacción. En un ejemplo extremo, si quisiera canjear 15 pequeñas salidas no gastadas y enviarlas a 2 destinos (el destinatario + mi cambio de dirección), ¿justificaría la cantidad inusualmente grande de entradas para la nueva transacción una tarifa de transacción mayor? Si es así, ¿cuánto más grande?

Respuestas (1)

¿Cómo se calcula esto?

Bitcoin Core ofrece algo llamado estimación de tarifas, donde puede medir la cantidad de tarifa que probablemente sea necesaria para obtener una transacción en el siguiente bloque. Devuelve la tarifa por kilobyte para ingresar a uno de los siguientes nbloques, suponiendo que los mineros que los hacen tengan reglas de aceptación de transacciones similares a las anteriores.

1 confirmation 0.00026816 BTC
2 confirmation 0.00011483 BTC
3 confirmation 0.00002048 BTC
4 confirmation 0.00001255 BTC
5 confirmation 0.00001255 BTC
6 confirmation 0.00001255 BTC

Emular esto sin ejecutar un nodo de validación completa que pueda evaluar su grupo de memoria durante un largo período de tiempo probablemente no sea particularmente factible en la actualidad. Las billeteras centralizadas como Mycelium hacen llamadas HTTP a su propio punto final que devuelve esta información en su nombre; probablemente habrá más puntos finales para esto en el futuro dada la dificultad de estimar las tarifas para las billeteras que no validan completamente.

¿La cantidad inusualmente grande de entradas para la nueva transacción justificaría una tarifa de transacción más alta? Si es así, ¿cuánto más grande?

La tarifa de transacción es por kilobyte. Agregar entradas adicionales requiere la clave pública para la dirección y una firma, y ​​algunos gastos generales varios que deben incluirse. A menudo será de unos cien bytes por vin, pero esto varía si la entrada es P2SH o no y si las claves utilizadas están comprimidas o no. En general, si la entrada está por debajo de 0.00005 BTC, probablemente agregará más en el costo de la tarifa que el valor que se incluirá.

Esta transacción en mainnet es similar en tamaño a la que describe, tiene 16 vin, 2 vout, para un tamaño total de 2291 bytes. La clave para 1FkiXxeKektpHVjvfknVvC6eQmjM9DEu9D está comprimida (comienza con 02 y tiene solo 33 bytes), lo que contribuyó al tamaño pequeño de la transacción.