La palabra inglesa dust, se traduce de forma literal como polvo. Pero la aparición de Bitcoin originó una nueva percepción para el término. La comunidad utiliza el polvo sustantivo para las transacciones vistas como spam dentro de la red Bitcoin. Hace referencia a una medida que ayuda a proteger la red de que se realizan transacciones muy pequeñas que pueden dañar la estabilidad y el funcionamiento de la misma. Ante esta situación probablemente te podrás preguntar, si es imposible de procesar ¿Entonces por qué existe? ¿Qué implicaciones tiene? En este artículo examinaremos estas y muchos otros interrogantes.
Origen del polvo
Durante la creación del Bitcoin, Satoshi Nakamoto fue capaz de prevenir situaciones en la red con el fin de protegerla de ataques DoS y de spam. Fue así, como introdujo una serie de medidas para evitar esa situación. Este es el motivo por el que surgieron las comisiones de pago. Comisiones que, pagan los usuarios para usar la red con el fin de incentivar el trabajo de los mineros.
Entre estas protecciones, había una en especial que cuidaba que las transacciones secundarias lo suficientemente grande como para garantizar el pago de la tarifa de transmisión y verificación en la red. Esta era la primera protección contra el polvo en Bitcoin. En el código fuente liberado por Nakamoto, dentro de la función principal de Bitcoin, se encontró la función GetMinFee. Esta función es la encargada de asegurar las tarifas mínimas para cada transacción. En el código como nota de su funcionamiento, Nakamoto comentó:
Requisitos de las tarifas de transacción, solo necesarios principalmente para controlar el desbordamiento. Por debajo de 10K (alrededor de 80 entradas) es gratis para las primeras 100 transacciones. La tasa base es 0.01 por KB.
Satoshi Nakamoto
Código fuente original de Bitcoin – 2009
Desde entonces, una de las preocupaciones de los desarrolladores ha sido garantizar que las transacciones en la red pueden ser lo más pequeñas posibles, sin que ello atente contra la estabilidad de la red. Esto tiene como finalidad permitir a los usuarios de Bitcoin realizar micropagos, sin tener que gastar más en las tarifas de transacciones que en el micropago como tal. Una situación que no siempre ha sido muy exitosa. De ahí que para resolverla, hayan surgido opciones como Lightning Network o SegWit.
Recordatorio blockchain: transacciones
Cuando hacemos una transacción en Bitcoin o en cualquier otra criptomoneda, es necesario validar su autenticidad. De esta forma, la red se asegura que la transacción es válida y de que se procese de forma razonable. Los responsables de esto, son los mineros o los participantes de la red (en caso de redes PoS, DPoS o PoA). A ellos, se les paga una pequeña tarifa (tarifa de transacciones) por el trabajo de validar la transacción realizada.
Pero debido al mecanismo de trabajo de la cadena de bloques, hay ocasiones en las que la tarifa minera puede ser más alta que la cantidad real de las transacciones. Esto está relacionado con el concepto de inflación. Y es que, si existe una gran demanda de transacciones, y hay poca capacidad de atenderla, la tarifa por transacciones aumenta. Ello es ocasionado, porque los mineros pedirán un pago mayor para priorizar y atender las transacciones rápidamente.
Evolución del concepto dust en Bitcoin
8 de abril de 2013
Gregory Maxwell ajusta la tarifa por transacciones para hacerla más equitativa.
Uno de los primeros cambios sufridos a su concepto fue introducido por Bitcoin Core, el desarrollo base de los criptomonederos Bitcoin. En abril de 2013, Gregory Maxwell presentó esta mejora, que buscaba hacer que la tarifa por transacciones fuera más realista con la realidad económica del Bitcoin.
24 de abril de 2013
Reajuste del concepto de polvo
Más tarde mediante el uso de un BIP, en cuestión el BIP-0070 enmarcado en la creación de un nuevo protocolo de pago, la protección contra el polvo recibió otra nueva mejora. Gavin Andresen, fue el desarrollador de la actualización, en agosto de 2013. Con esta nueva modificación, se genera toda una nueva función más elaborada para garantizar que no se produzca polvo a la red. En sus propias palabras, Andresen explica que:
Reemplaza la verificación de validación para “amount == 0” con una verificación isDust, de esta forma pequeñas cantidades de salida son atrapadas antes de que la billetera esté desbloqueada, se cree una transacción, etc.
Gavin Andressen
Rechazar las cantidades dust durante la validación – Agosto 2013
Esta nueva función creada por Andresen se convertiría en un estándar ampliamente adoptado. Especialmente porque otorga una gran flexibilidad a la hora de crear interfaces para criptomonederos gráficos. Además, la nueva función gestionaría de forma automática que se considera una transacción dust dentro de la red. Con estos cambios en la programación, se promueve una mejor seguridad y estabilidad para la red.
17 de septiembre de 2013
Eliminación de regla de transacción de salida sin coste
De nuevo es Gavin Andresen quien introduce una modificación. Se trata de una regla antigua que afectaba a los relay/mempool de la red Bitcoin. Hasta ese momento, estos tienen la capacidad de dar salida solo a las transacciones mayores que 0.01 BTC. La eliminación de esta limitación, se dio gracias a los cambios para calcular dinámicamente lo que es polvo dentro de la red.
19 de julio de 2017
Redefinición del Dust
Alex Morcos, un contribuidor de desarrollo de Bitcoin, introdujo una serie de cambios para redefinir el concepto de polvo. En estos cambios, comente lo siguiente:
Esto redefine dust como el valor de una salida, de manera que costase ese mismo valor en comisiones el (crear y) gastar la cantidad de salida a la tasa de transmisión de dust. La definición anterior era que costaría 1/3 del valor. La tasa por defecto de dust se incrementa a 3000 sat / kB, por lo que el valor de salida de dust predeterminado real de 546 satoshis para una salida no SegWit permanece sin cambios.
Este compromiso es solo un rediseño, a no ser que se introduzca un dustrelayfee desde la línea de comandos, en cuyo caso ese número ahora necesitará ser incrementado en un factor de 3 para poder comportarse de la misma forma. –dustrelayfee es una opción oculta en línea de comandos.
Alex Morcos
Redefinición de Dust
Con esta última modificación, el equipo de Bitcoin Core, dio por sentada la última modificación al concepto de dust..