Monero se despide de los minadores ASIC (al menos, de momento)

martes, 10 de abril de 2018

El pasado viernes 6 de abril fue una fecha importante para la comunidad de usuarios y desarrolladores de Monero, una de las criptodivisas que encabezan la defensa del anonimato de sus usuarios. Como ya hemos comentado en posts anteriores, Monero utiliza el protocolo CryptoNote propuesto en octubre 2013 para enmascarar quién es el emisor y receptor de una transacción al utilizar firmas circulares o en anillo que mezclan las transacciones de distintos usuarios. Además, desde enero de 2017, también se puede ocultar el saldo transferido en cada transacción reforzando la privacidad con la implementación de Ring Confidential Transactions, una mejora de su algoritmo.

Iconografía del proyecto Monero
Figura 1. Iconografia del proyecto Monero. 


De esta manera, y a diferencia de lo que ocurre con otras criptodivisas como Bitcoin, Litecoin o Ethereum, no es posible consultar el balance actual de una cuenta de Monero analizando la cadena de bloques ni tampoco, por ejemplo, mantener una lista de las direcciones más ricas reconstruyendo las transacciones desde el bloque génesis. De hecho, al revisar exploradores de su cadena de bloques como Moneroblocks.info e intentar analizar el contenido de un bloque ya nos dice que para poder ver el contenido de una transacción necesitaremos conocer la clave privada de vista del usuario asociada correspondiente a su dirección pública.

Los principales cambios del fork

Un hardfork, en el ámbito de la tecnología de cadenas de bloques, es un cambio radical en las reglas del juego que rigen el devenir de una criptodivisa, es decir, en el protocolo en sí mismo. Este cambio hace que algunos bloques y transacciones que previamente habrían sido considerado inválidos sean ahora considerados válidos (o viceversa). Son considerados hardforks, por ejemplo, cualquier alteración que cambie la estructura del bloque (como la que propusieron en BitcoinCash), las reglas de dificultad o que se aumente el conjunto de transacciones válidas. Esta circunstancia requiere finalmente que todos los nodos o usuarios se actualicen a la última versión del software que implemente el protocolo. Dicho de otra manera, un hardfork es una alteración permanente de la versión anterior de la cadena de bloques, y los nodos que ejecutan versiones anteriores ya no serán aceptados por la versión más reciente.

En el caso concreto de Monero, la actualización programada que tuvo lugar en el bloque 1 546 000 ha introducido algunos cambios importantes además de la incorporación de direcciones multifirma, mayor soporte para monederos hardware y nuevas funcionalidades como las subdirecciones. En primer lugar, un ajuste de su algoritmo de consenso, que en este caso utiliza proof of work, para frenar cualquier amenaza potencial de la existencia de minadores ASIC que empezaba a preocupar a una parte importante de la comunidad tras el significativo repunte experimentado por la red en los últimos meses. Como resultado, los mineros han tenido que actualizar las aplicaciones que utilizan para minar nuevos bloques, es decir, el software de minería que utilizan para llevar a cabo la prueba de trabajo bajo las nuevas reglas. Y, en segundo lugar, el tamaño mínimo de las firmas en anillo se eleva de 5 a 7 con el objetivo de dotar a las transacciones de Monero de una mayor privacidad. Por lo tanto, los operadores del pool deben asegurarse de que los pagos utilicen un tamaño mínimo de anillo de 7, ya que de lo contrario serán rechazados por la red.

Implicaciones del cambio de PoW

La filosofía de la comunidad de Monero aboga por una red cuanto más descentralizada mejor. De ahí que expusieran a través de su blog su resistencia al hardware de minería ASIC. ASIC (Application Specific Integrated Circuit) no deja de ser un tipo de hardware de minería muy especializado en llevar a cabo exactamente esa tarea. Por ejemplo, los ASIC de Bitcoin están especializados en calcular hashes SHA256. Debido al hecho de que están diseñados físicamente para un uso tan específico, generalmente tienen una gran ventaja de rendimiento con respecto al hardware de propósito general, como el que utilizamos cuando usamos nuestras CPU, GPU e incluso FPGA. Las consecuencias que tiene el hecho de que el software doméstico siga siendo rentable para realizar las tareas de minería contribuye a la descentralización al mantener incentivados a usuarios corrientes de la divisa.

En este sentido, y tirando un poco de historia, el código de Monero fue un fork de CryptoNote. Para crear una red minera más igualitaria y fomentar la descentralización, los desarrolladores originales de CryptoNote crearon la función Cryptonight Proof of Work para «cerrar la brecha entre los mineros de CPU (mayoría) y GPU/FPGA/ASIC (minoría)». Mientras que los autores de CryptoNote admiten que «es apropiado que algunos usuarios puedan tener una cierta ventaja sobre otros», ellos proponen que «sus inversiones deberían crecer al menos linealmente con la capacidad de cómputo de la red» y no exponencialmente (como ya ha ocurrido con Bitcoin que ya vio multiplicar por 1000 la capacidad de cómputo de la red en períodos de apenas 12 meses). En este sentido, se consideró que cualquier nuevo desarrollo de Cryptonight ASIC no fomentaría la existencia de una red descentralizada.

Una evidencia de la sospecha de lo que estaba ocurriendo fue el aumento explosivo del hashrate de toda la red de Monero durante el último año. Aunque también ha coincidido con la proliferación de malware que pretendía monetizarse a través de la minería, se tenían ciertos indicios de que este aumento en el hashrate representaba una cantidad preocupantemente grande de energía minera desconocida procedente de fuentes anónimas, concretamente motivado por la aparición de ASIC especializados.

Figura 2. Timeline sobre el hashrate de Monero.

Por ello, parte del equipo de desarrollo de Monero ya ha manifestado su interés en ir actualizando el algoritmo de prueba de trabajo de forma periódica en el futuro. Esta aproximación, que también entraña sus riesgos teniendo en cuenta que cada actualización puede crear cadenas de bloques diferentes y puede derivar en desajustes entre comunidad minera y desarrolladores, pretende precisamente minimizar las posibilidades de que se diseñe hardware ASIC demasiado eficiente. ¿El método? Sencillo: reducir el tiempo de vida potencialmente útil de dicho hardware acotándolo al tiempo que pase entre versiones.

Con el cambio en el PoW las sospechas se han confirmado y este indicador ha caído en picado en días posteriores al fork del viernes 6 de abril. Teniendo en cuenta que puede que todos los mineros no hayan actualizado aún su software de minería, es cierto que estos cambios pueden no ser definitivos y que conforme pasen los días se irá ajustando la capacidad de cómputo real. Al menos de momento, ¡bye, bye ASIC! 

Félix Brezo
Equipo de Innovación y Laboratorio de ElevenPaths
Yaiza Rubio
Equipo de Innovación y Laboratorio de ElevenPaths

No hay comentarios:

Publicar un comentario