Share this article

Construyendo un mejor mercado de comisiones de Bitcoin

Bitcoin puede tener ahora un mercado de tarifas, pero esa realidad no significa que la red esté optimizada para este entorno, argumenta el desarrollador Jameson Lopp.

Durante el último año, hemos visto cómo el mercado de comisiones para las transacciones de Bitcoin ha evolucionado a un ritmo acelerado. A medida que el volumen de transacciones sigue aumentando, también lo hace la demanda de espacio de bloque, que sigue siendo limitado a 1 megabyte (MB) aproximadamente cada 10 minutos.

Ya que tenemosdebatido La cuestión del aumento de la oferta de espacio de bloques hasta la saciedad, este artículo se centrará en la historia y el estado actual de las tarifas de transacción de Bitcoin .

STORY CONTINUES BELOW
Don't miss another story.Subscribe to the Crypto for Advisors Newsletter today. See all newsletters

El hecho es que las presiones resultantes de la alta contienda por el espacio de bloques han degradado la experiencia del usuario y, por lo tanto, han incentivado a las billeteras de Bitcoin a realizar ajustes para KEEP contentos a sus usuarios garantizando una confirmación oportuna de las transacciones.

Sin embargo, estamos muy lejos de operar un mercado de tarifas óptimo.

La historia de las tarifas de transacción

Durante los primeros años de existencia de Bitcoin, las tarifas de transacción eran opcionales: se consideraban una donación a los mineros.

Configuración de las tarifas de Bitcoin CORE
Configuración de las tarifas de Bitcoin CORE

Las billeteras pagaban la misma tarifa en cada transacción, y el valor predeterminado era la tarifa que el desarrollador de la billetera consideraba apropiada.

CORE de Bitcoin

La tarifa predeterminada cambió varias veces a lo largo de los años a medida que aumentaba el tipo de cambio de Bitcoin , de 0,01 BTC a 0,0005 BTC y luego a 0,0001 BTC. También existían reglas sobre...transacciones prioritarias"que permitía a los usuarios enviar transacciones sin cargo si las entradas eran antiguas y de alto valor, aunque los mineros ya las han eliminado gradualmente.

A lo largo de los años hemos aprendido que las tarifas de transacciones estáticas codificadas son terribles por varias razones:

  • Lo que importa a los mineros no es la comisión absoluta, sino la tasa de comisión por byte de datos de transacción. Desde la perspectiva del minero, solo dispone de 1 MB de espacio donde desea insertar tantas transacciones como sea posible para cobrar más comisiones. Por lo tanto, una transacción de 200 bytes con una comisión de 0,0001 BTC es preferible a una de 1000 bytes con una comisión de 0,0001 BTC, ya que puede insertar cinco de las primeras y cobrar cinco veces más en comisiones.
  • Desde la perspectiva del usuario, si siempre establece una tarifa estática, probablemente terminará creando una transacción de gran tamaño de datos (debido al gasto de muchas entradas de bajo valor) con una tarifa muy baja que puede que nunca se confirme.
  • Las billeteras con comisiones estáticas no se adaptan a las cambiantes condiciones del mercado, lo que provoca que los usuarios difundan transacciones que pagan de más o de menos. Las primeras no conseguirán que las transacciones se confirmen con mayor rapidez, mientras que las segundas resultarán en tiempos de confirmación más largos, ya que los mineros las ignoran para favorecer transacciones más rentables.

La liberación deBitcoin 0.3.15En noviembre de 2010, se incluyó un cambio para empezar a calcular las comisiones en función del tamaño de los datos de la transacción. Sin embargo, no todos los monederos electrónicos siguieron el ejemplo y muchos usuarios siguieron fijando ciegamente la misma comisión estática para cada transacción. Esto no solía ser un problema hasta que empezamos a alcanzar el tamaño máximo de bloque, ya que los mineros confirmaban prácticamente cualquier transacción válida que se les transmitiera correctamente.

A medida que los bloques comenzaron a llenarse en 2015, quedó claro que la mejor práctica es utilizar un algoritmo de tarifa dinámica porque puede responder a las condiciones cambiantes en la red.

Bitcoin CORE comenzó a calcular estimaciones de tarifas dinámicas a partir de la versión 0.10en febrero de 2015, y Alex Morcos los ha ido mejorando constantemente desde entonces. El algoritmo de estimación de tarifas de Core es bastante complejo; puedesver su código aquíy elExplicación en inglés aquí.

Surge un mercado de tarifas

Antoine Le Calvez, desarrollador de p2sh.info, proporciona un análisis histórico de tarifas dinámicas y estáticas.

Aquí están los últimos dos años:

captura de pantalla del 5 de mayo de 2016 a las 10:41 y 03:00 a. m.

Podemos ver saltos significativos en el uso de tarifas dinámicas durante las pruebas de estrés y los ataques de la red.el otoño pasado.

Sin embargo, sospecho que esto no se debió a que los usuarios normales cambiaran a billeteras con tarifas dinámicas, sino más bien a queLos propios atacantes pagan las tarifasque establecieron intencionalmente que fueran más altas que las tarifas estáticas utilizadas por la mayoría de las billeteras en ese momento.

Algunos de los usuarios más sofisticados ajustaron sus tarifas predefinidas durante los ataques, pero probablemente representaron una pequeña minoría del total de transacciones. También observamos un aumento a principios de marzo de 2016; esto probablemente se deba en parte a la nueva billetera de Blockchain.Implementación de tarifas dinámicassobre unaun mes antes.

Rusty Russell actuóUn excelente análisisdel mercado de tarifas emergentes en diciembre de 2015, que mostró que más transacciones utilizan tarifas calculadas dinámicamente y que el valor promedio de una transacción está aumentando a medida que los pagos pequeños quedan fuera del alcance de la cadena de bloques.

tx por valor
tx por valor

AJ Towns continuó la publicación de Rusty conun análisis más profundoIdentificó ocho fases distintas del mercado de comisiones a lo largo de la historia de Bitcoin:

Towns continuó su investigación enuna segunda publicacióny llegó a varias conclusiones sobre los efectos que el mercado de tarifas emergente ha tenido sobre los usuarios.

Estos fueron:

  • Una cantidad significativa de billeteras calculan tarifas dinámicamente, con una granularidad por byte.
  • Muchas billeteras aún no calculan las tarifas de forma dinámica, o incluso no calculan las tarifas a nivel de byte.
  • Las tarifas impulsadas por el mercado sólo podrán aumentar aún más con una mayor adopción de billeteras que admitan estimaciones de tarifas dinámicas.
  • Pagar significativamente más del precio del mercado no hará que su transacción se confirme más rápidamente.
  • Ha habido dos Eventos de tarifas que han impactado a las billeteras con tarifas estáticas, y pronto habrá un tercer evento de tarifas.
  • Las billeteras que calculan tarifas dinámicamente pagan tarifas sustancialmente más bajas en promedio que aquellas que no lo T.

He estado siguiendo las estimaciones de tarifas de Bitcoin Core con Statoshi; aquí puedes ver que se han triplicado en los últimos seis meses a medida que la contienda por el espacio de bloques continúa aumentando.

captura de pantalla del 2016-05-05-a las 10-26-07-am

Calvez también proporciona un panel con todas las API de estimación de tarifas disponibles públicamente y sus datos de estimación históricos:

captura de pantalla del 5 de mayo de 2016 a las 10:43 a. m.

Curiosamente, parece que las estimaciones de tarifas de 21, BitGo y Blocktrail parecen ser las más sensibles a las condiciones cambiantes del mercado, mientras que BitPay, Blockchain y BlockCypher tienen estimaciones menos volátiles.

Sin embargo, sería negligente de mi parte recomendar ampliamente que todos cambien al uso de tarifas de transacción calculadas dinámicamente sin notar antes los peligros que implica.

Como dice el refrán, toda solución trae nuevos problemas. Las comisiones por transacción dinámicas no son la excepción.

Dificultades dinámicas

Las estimaciones de tarifas dinámicas nunca serán perfectas porque son un intento de predecir el futuro (NEAR).

Como físico danésNiels Bohr bromeó una vez: «La predicción es muy difícil, especialmente en lo que respecta al futuro». Si un algoritmo de estimación de tarifas no predice correctamente el estado futuro del mercado de tarifas, los usuarios se ven atrapados en un...trampa de tarifas" como lo señaló el Dr. Washington Sánchez de OpenBazaar.

Esto puede ocurrir si transmites una transacción con una tarifa perfectamente razonable para las condiciones actuales del mercado, pero inmediatamente después, otros usuarios transmiten muchas otras transacciones con tarifas más altas, lo que básicamente relega tu transacción al final de la cola de prioridad de los mineros. El problema es que no puedes, sin... Reemplazar por tarifa(RBF), actualice su "oferta" para compensar las nuevas condiciones del mercado.

Los errores en los algoritmos de estimación de tarifas también pueden causar estragos en el mercado de tarifas. Tomemos, por ejemplo, un error reciente de un usuario que provocó que alguien creara una transacción con una cantidad enorme de...Tarifa de 300 BTCEsto fue bastante malo para el desafortunado usuario que probablemente calculó mal los montos de "tarifa" y "valor" en un software mal codificado, pero también tuvo consecuencias:

[incrustar]https://twitter.com/khannib/status/725090752531959808[/incrustar]

Esta es una suposición fundamentada, pero parece que el "objetivo de 1 a 2 bloques" de BlockCypher utiliza un algoritmo de estimación de comisiones basado en una media móvil ponderada de las comisiones de los últimos dos días de bloques. Como resultado, cuando se extrajo la transacción con una comisión de 300 BTC , la media de comisiones reciente y, por lo tanto, su estimación, se dispararon un 800 %.

Pero esto no pretende criticar a BlockCypher, ya que hemos visto que muchas billeteras tienen problemas con las comisiones por transacción. Ni siquiera Bitcoin CORE está exento, ya que recientemente observé un aumento inesperado en las estimaciones de comisiones desde Bitcoin CORE 0.12.0:

captura de pantalla del 5 de mayo de 2016 a las 10:46

Observé que la estimación de la comisión de Statoshi.info, "objetivo de dos bloques", aumentó de 44 a 112 satoshis por byte el 27 de febrero sin motivo aparente. Mis otros nodos de Bitcoin no reportaron el mismo aumento.

Esto tal vez podría explicarse por las diferencias en las transacciones de mempool, ya que el algoritmo de estimación de tarifas de Core solo utiliza las tarifas de las transacciones que se recibieron primero como no confirmadas.

Es preocupante y demuestra una desventaja de extrapolar el futuro basándose en la visión de la red desde su nodo, que no garantiza que sea la misma que la de todos los demás.

Colapso macroeconómico

Si bien existen muchos desafíos para los desarrolladores de Bitcoin en cada transacción, también debemos ser conscientes de los efectos sobre el mercado de tarifas en su conjunto.

Me preocupan un par de posibles escenarios que podrían aumentar las tarifas más rápido de lo necesario:

  • Los algoritmos de tarifas dinámicas mal codificados podrían crear un bucle de retroalimentación que impulse la tarifa al alza sin límite, a medida que las transacciones continúan inundando la red sin importar la acumulación de memoria. Esto no es un gran problema si la mayoría de las transacciones son iniciadas por personas que ven la tarifa mostrada y deciden si es demasiado alta para su gusto. Sin embargo, si muchas transacciones se crean automáticamente sin ninguna decisión Human y los algoritmos que las crean no tienen controles de seguridad sobre la tarifa máxima pagada, el mercado podría descontrolarse hasta que los ingenieros que desarrollaron esos algoritmos se den cuenta y los modifiquen.
  • Los usuarios frustrados (o desarrolladores perezosos) que aún dependen de comisiones predefinidas podrían KEEP actualizando manualmente la configuración de su billetera hasta que sus transacciones comiencen a confirmarse, probablemente pagando de más considerablemente, pero eventualmente obligando a otros usuarios con comisiones estáticas a hacer lo mismo para mantenerse competitivos. Como resultado, los usuarios con comisiones dinámicas se verán obligados a subir de precio. Ya he observado que esto ocurre, aunque aún no ha afectado significativamente a las comisiones dinámicas.

[insertar]https://twitter.com/lopp/status/713095965155192832[/embed]

Un desarrollo reciente que no ha recibido mucha atención a pesar del hecho de que tiene el potencial de afectar el mercado de tarifas es el desarrollo de Mercados de tarifas de minería secundaria.

Esto puede tomar la forma de programas especiales de incentivos para clientes, comoServicio BlockPriority de BTCC O puede adoptar la forma de compras privadas de espacio en bloque prepagadas. Esto supone un problema para los desarrolladores que desarrollan algoritmos de estimación de tarifas, ya que ahora existen Mercados de tarifas opacos e invisibles para el resto del mundo.

Para citar el comunicado de prensa del BTCC:

BlockPriority prioriza todas las transacciones de los clientes de BTCC, incluidas las de aquellos que no pagan comisiones.

Esto no debería ser un problema para el algoritmo de estimación de comisiones de Bitcoin Core, ya que requiere que el 95 % de las transacciones del mempool con una comisión determinada se confirmen en X bloques tras su visualización. Sin embargo, podría afectar a algoritmos más ingenuos. La lección para los desarrolladores es que el hecho de que se confirmen transacciones con una comisión baja de X ya no significa que sea seguro para su servicio transmitirlas a esa comisión.

Puede tener sentido económico para los pools de minería vender contratos de espacio de bloques prepagos porque les brinda un nuevo flujo de ingresos predecible.

Sin embargo, mi advertencia a los pools es esta: no podrán ocultar esta actividad si se convierte en una parte significativa de sus transacciones minadas. Hay muchos ingenieros de billeteras, como yo, que monitoreamos este tipo de comportamiento, y si se convierte en un problema, lo haremos público. Sospecho que cualquier pool de minería público que participe en este comportamiento no tendrá buena suerte si los hashers individuales descubren que el pool ha estado minando transacciones con comisiones más bajas y no compartiendo las ganancias de los contratos privados del espacio de bloques.

Esto podría provocar que los hashers se trasladen a un grupo que consideren que será más rentable.

Testigo segregadoProbablemente también afectará el mercado de comisiones. Ofrecerá un descuento del 75 % en las comisiones para intentar equilibrar los costos de creación y consumo de transacciones no utilizadas.

Se espera que esto aliente a los usuarios a favorecer el uso de transacciones que minimicen el impacto en el conjunto UTXO para minimizar las tarifas y alentar a los desarrolladores a diseñar contratos inteligentes y nuevas funciones de una manera que también minimice el impacto en el conjunto UTXO.

David Harding escribió un artículo útilDesglose del ahorro de datosproporcionado por SegWit.

[insertar]https://twitter.com/lopp/status/705122188106604546[/embed]

Creo que este es el camino correcto, aunque no estoy seguro de que el 75 % sea la cifra óptima. Me parece que el descuento más justo sería dinámico y se basaría en la relación entre el tamaño de los datos de salida y el tamaño de los datos correspondientes de la misma salida cuando se utiliza como insumo.

Aunque esto ciertamente sería mucho más difícil de implementar, si es que llegase a ser posible.

Avanzando

Aún existen muchas billeteras y servicios de Bitcoin que no han implementado comisiones dinámicas. Sabes quién eres, y tu inacción probablemente esté generando una mala experiencia para algunos de tus usuarios. Si no has implementado comisiones dinámicas, entonces cada transacción que transmitas se clasifica en una de estas dos categorías:

  • Estás pagando de más el precio del mercado y no obtienes la confirmación significativamente más rápido.
  • Estás pagando de menos y las transacciones se quedan estancadas, lo que genera una mala experiencia de usuario.

Es muy poco probable que una transacción transmitida con una tarifa codificada alcance el punto justo y pague la tarifa óptima para adaptarse a las condiciones actuales del mercado.

Los desarrolladores de billeteras deberían agregar mecanismos de seguridad como umbrales de verificación de cordura a nivel micro y disyuntores a nivel macro para evitar que los usuariosdisparándose a sí mismos en el pie.

Las billeteras deberían establecer un umbral mínimo superior a la comisión mínima de retransmisión. Al observar la comisión mínima de las transacciones que se convierten en bloques, podemos ver claramente que, a día de hoy, si pagas menos de cinco satoshis por byte, tendrás problemas.

nueva trama

Los desarrolladores de billeteras deberían pensar de manera adversa sobre sus algoritmos de estimación de tarifas y escribirlos para que sean robustos frente a casos extremos que podrían ocurrir debido a errores en otro software de billetera o ataques maliciosos por parte de entidades que intentan manipular el mercado de tarifas. También deberían monitorear sus datos de estimación de tarifas y establecer alertas para notificarles si las estimaciones se vuelven más volátiles de lo esperado.

Pero debemos reconocer que no existe un algoritmo único para estimar tarifas: realmente depende del caso de uso en el que se encuentren sus transacciones de Bitcoin .

El algoritmo de Bitcoin Core busca ser lo más genérico y conservador posible para garantizar su alta fiabilidad, pero en algunos casos de uso puede resultar en un sobrepago. Cada billetera y servicio deberá decidir qué compensación está dispuesta a hacer para equilibrar el riesgo de retrasos en las confirmaciones con la recompensa de ahorrar en comisiones.

Por lo tanto, animo a todas las billeteras de Bitcoin a que publiquen sus estimaciones de comisiones a través de API públicas. Sospecho que los propios algoritmos de estimación de comisiones se convertirán en un punto de competencia y, a menudo, permanecerán en código cerrado, pero si las estimaciones son públicas, podremos detectar con mayor facilidad actividades anormales. Quizás alguien incluso cree un...Promedio de Bitcoin" ¡Agregador para estimaciones de tarifas!

Debemos reconocer que el "mercado de tarifas"no es exactamente un mercado en el sentido tradicional de la palabra.

Los usuarios pueden realizar una "oferta" difundiendo una transacción, pero los mineros no publican sus "pedidos": las billeteras tienen que adivinar en función de las transacciones que los mineros han confirmado recientemente y de qué transacciones están actualmente esperando ser confirmadas.

Konrad S. Grafexpresó sus pensamientosEn el "mercado de honorarios" recientemente:

Se pagan comisiones; se compran productos y servicios. Por lo tanto, este término ya oculta el producto real. Los usuarios envían transacciones con una comisión como una oferta abierta con la esperanza de confirmación. Lo describo como un mercado de servicios de inclusión de transacciones. Los usuarios pujan para que los mineros incluyan transacciones en bloques candidatos. La inclusión en más bloques candidatos, especialmente en relación con la tasa de hash total de minería para esos candidatos, aumenta las probabilidades de una confirmación más rápida. Los usuarios prefieren una confirmación rápida a una más lenta, en igualdad de condiciones, por lo que el factor tiempo de la escasez es clave. Es un mercado de prioridad de confirmación, un mercado temporal.

Quizás si los pools de minería publicaran API públicas con sus políticas de minería y tarifas vigentes, esto podría ayudar a los servicios de billetera a tomar decisiones más informadas al calcular las tarifas dinámicas, en lugar de obligar a los desarrolladores a basarse en conjeturas. Esto también podría ayudar a aliviar los problemas causados ​​por los mineros que crean Mercados secundarios de tarifas opacos mediante contratos privados de espacio de bloque.

Los usuarios de Bitcoin no deberían necesitar KEEP un seguimiento del estado actual de la contención del bloque.

Las billeteras deberían gestionar las complejidades del mercado de comisiones de forma discreta, ofreciendo al usuario varias opciones sencillas al realizar una transacción. Una posible solución sería que el usuario autorizara una comisión máxima según la urgencia de la transacción y que la billetera usara RBF para aumentar la comisión pagada tras cada bloque que pase sin confirmación.

Los valores de las comisiones por transacción deben mostrarse al usuario en su unidad de cuenta preferida, como dólares. Probablemente también sería conveniente mostrar la comisión como un porcentaje del valor de la transacción si supera un umbral determinado, como el 1 %. Esto facilitará a los usuarios decidir si la situación actual del mercado de comisiones es demasiado controvertida y si prefieren posponer la transacción hasta que puedan hacerlo de forma segura con una comisión más baja.

Al hablar de comisiones por transacción, los usuarios de Bitcoin deberían dejar de decir que pagaron "X centavos" o "Y bits" en comisiones, ya que este tipo de afirmación carece de sentido si no se conoce el tamaño de la transacción. Deberíamos estandarizar el uso de las tasas en las discusiones, preferiblemente expresadas en satoshis por byte. Es más sencillo para los humanos escribir y KEEP "20 satoshis por byte" que "20 000 satoshis por kilobyte".

La evolución del mercado de tarifas de transacción de Bitcoin ha sido un camino difícil hasta este momento.

Al principio, las tarifas las establecían manualmente los desarrolladores, luego también lo hacían manualmente los usuarios y ahora estamos en un punto más caótico y potencialmente peligroso en el que los desarrolladores están desempeñando un papel más activo en la dirección de la economía de este mercado emergente.

ATLAS de Kristov señaló elocuentemente los riesgos Planificamos centralmente los cambios económicos en Bitcoin sin estudiarlos a fondo; los desarrolladores deben KEEP esto en cuenta al desarrollar algoritmos de estimación de comisiones. Debemos esforzarnos por garantizar que el mercado de comisiones siga siendo impulsado por humanos con la ayuda de máquinas, y no al revés. Los desarrolladores de billeteras deben ser cuidadosos al crear su lógica de comisiones para ofrecer una experiencia de usuario fluida sin restringir su libertad de elección, necesaria para mantener un mercado de comisiones en funcionamiento.

Imagen vía Dan Nott para CoinDesk

Jameson Lopp

Jameson Lopp es el director de tecnología y cofundador de Casa, un servicio de autocustodia. Un ciberpunk cuyo objetivo es desarrollar Tecnología que empodere a las personas, ha estado desarrollando monederos de Bitcoin multifirma desde 2015. Antes de fundar Casa, fue el ingeniero principal de infraestructura en BitGo. Es el fundador del Grupo de Interés Especial Bitcoin de Mensa, la reunión Triangle Blockchain and Business y varios proyectos de Bitcoin de código abierto. A lo largo de este tiempo, ha trabajado para enseñar a otros lo que ha aprendido con la dificultad al desarrollar software robusto que puede resistir tanto a adversarios como a usuarios finales sin experiencia.

Jameson Lopp