Gavin Andresen: determinación inteligente de la tarifa por transacción

En su último informe acerca de las mejoras que serán incorporadas a la próxima versión de Bitcoin-Qt, Gavin Andresen (desarrollador principal del software de Bitcoin) se refirió a un cambio muy esperado en la manera de estimar las tarifas que los usuarios deben pagar para acelerar la confirmación de sus transacciones.

gavin+andresen+tarifas+transacciónHoy en día, las tarifas sugeridas para las transacciones están codificadas en el software del cliente Bitcoin-Qt/bitcoind, y las reglas en las que se basa el software para determinar esos valores fueron desarrollándose empíricamente durante los últimos cuatro años. Lo que tenemos ahora es una complicada maraña de reglas que, tan pronto como el volumen de transacciones se duplique un par de veces más, quedará obsoleta.

En teoría, esto debería ser simple: las tarifas deberían ser fijadas por la libre interacción entre las personas que crean transacciones (quienes desean pagar lo menos posible) y las personas que validan y almacenan las transacciones (los mineros, que quieren ser recompensados con las tarifas más elevadas).

El código que los mineros utilizan hoy en día para seleccionar transacciones es simple: ellos llenan sus bloques con las transacciones que tienen las tarifas más altas por kilobyte (y si dejan algo de espacio para transacciones libres, lo reservan para las de prioridad más alta).

He estado «enseñándole» al monedero a estimar qué tan baja debe ser una transacción, en el momento en que es enviada, para que sea aceptada rápidamente por los mineros. Las estimaciones se basan en la observación de cuáles transacciones, de todas las que están siendo difundidas en la red, están siendo aceptadas en bloques.

El peligro de calcular las tarifas para cada transacción atendiendo a lo que están recibiendo los mineros en ese concepto, es que se genera un incentivo para tratar de engañar al sistema. Por ejemplo, si la estimación se basa en la tarifa media pagada en los últimos N bloques, los mineros podrían generar transacciones artificiales (pagándose a sí mismos) con tarifas muy altas, para así elevar la media. Sin embargo, si sólo se tienen en cuenta las tarifas de las transacciones que hayan sido transmitidas en la red, esa amenaza queda eliminada – los mineros podrían transmitir transacciones que en realidad son auto-pagos con tarifas muy altas, pero acabarían pagando esas tarifas a otros mineros. Además, el código empleado para estimar tarifas de transacción se vale de medias, no de promedios, para que sea mucho más difícil que un grupo minoritario de transacciones pueda influir en las tarifas sugeridas.

Si la mayoría de los mineros se reunieran y se pusieran de acuerdo para transmitir muchas transacciones con tarifas elevadas, podrían lograr aumentar la tarifa promedio… pero eso no va a ocurrir, porque cualquier minero podría romper fácilmente dicho acuerdo y quedarse con las tarifas por transacciones pagadas por los demás mineros.

Ver entrada completa, en inglés