Hacking Verge: como fue (parte 2)

La primera parte

Time warps, vulnerabilidades mineras, ataques DOS y más.

Minería en Verge: cuando 5 algoritmos son excesivos

Tradicionalmente, en las criptomonedas basadas en el protocolo de prueba de trabajo, los bloques se extraen utilizando un solo algoritmo, generalmente SHA-256. En Verge, fue posible utilizar 5 algoritmos diferentes (para los curiosos: Scrypt, X17, Lyra2rev2, myr-groestl y blake2s.). La razón para usar múltiples algoritmos se describe a continuación.

Algunos críticos de Bitcoin argumentan que con el tiempo minería Bitcoin se ha vuelto demasiado especializado y centralizado, la mayor parte de la minería se realiza en ASIC (abreviatura de circuito integrado específico de la aplicación): dispositivos diseñados exclusivamente para la minería de divisas, y la mayor parte de la minería de Bitcoin se realiza en múltiples grupos de minería por grupos de mineros que agrupan sus recursos y compartir lo que ganan entre ellos. Estas tendencias hacia diferentes tipos de "centralización", dicen, contradicen el principio fundamental de las criptomonedas. El uso de una moneda con múltiples algoritmos de minería contrarresta estas tendencias. La razón es que administrar cinco algoritmos diferentes en términos de hardware, producción y administración de recursos será inevitablemente más difícil que controlar un algoritmo, lo que permitirá a Verge lograr una mayor descentralización y distribución de la minería.

La situación es la siguiente: la única forma de lograr un funcionamiento correcto, y el concepto de "funcionamiento correcto" en este caso incluye mantener un intervalo de 30 segundos entre bloques, mantener la viabilidad económica de los cinco algoritmos para los mineros y evitar el dominio de un algoritmo (que haría que todo el experimento careciera de sentido), para que cada algoritmo tenga su propio parámetro de dificultad, que se ajustaría independientemente de los otros cuatro. En otras palabras, la dificultad de minar en el algoritmo Scrypt se ajusta para observar un intervalo de 30 segundos para cada bloque, como en X17 y otros algoritmos.

Esto significa que nuestro hacker no ha reducido realmente la dificultad de minería para toda la red; lo rebajó solo para aquellos que minaron con uno de los cinco algoritmos: Scrypt. Y aunque los mineros de Scrypt disfrutaron de una minería ridículamente fácil, para el resto de los mineros que trabajan en otros algoritmos, la complejidad de las tareas no disminuyó, lo que significa que toda su potencia combinada no ayudará a garantizar la seguridad de la red. Esto significaba que el atacante solo trabajaba con el algoritmo Scrypt y tenía que competir con otros usuarios que hacían lo mismo; por lo tanto, el poder de hash requerido para nuestro atacante no era más del 50% (dominio sobre toda la red), pero solo más del 10% (dominio sobre otros mineros Scrypt).

Ahora entraremos en el terreno de la especulación, pero parece que la situación fue aún peor. Asumimos una cifra del 10%, basándonos en el hecho de que se debe asignar aproximadamente la misma cantidad de recursos para cada algoritmo (esta es la esencia del mecanismo de establecimiento de dificultades de minería). En realidad, sin embargo, no siempre se observan los axiomas de una economía de mercado libre. Se cree en la comunidad que varios factores, por ejemplo, la existencia de ASIC desactivados para Scrypt, así como los recursos gratuitos disponibles para alquilar a través de Nicehash, etc., llevaron al hecho de que el dominio de la minería en Scrypt durante el ataque fue mucho más barato que cualquier otro de los cuatro algoritmos. Es seguro asumir que la tasa de hash requerida terminó siendo mucho menor al 10%; de acuerdo con algunas estimaciones preliminares dadas en Reddit, la tasa de hash podría ser tan baja como 0,4%.

Para resumir: las marcas de tiempo falsas han reducido drásticamente la complejidad de la minería; el uso de cinco algoritmos significó que fue posible reducir la complejidad de solo uno de ellos, lo que simplificó enormemente la captura de toda la red; el estado económico y de producción de este algoritmo de minería en particular facilitó aún más la captura; y finalmente, debido a la reducida complejidad de la minería, el tiempo de formación de bloques se redujo drásticamente, lo que hizo que el ataque fuera unas 30 veces más rentable.

Lecciones aprendidas

¿Qué conclusión se puede sacar de esta situación? Las consecuencias a corto plazo del ataque fueron predeciblemente caóticas e incomprensibles. Unos días después, los desarrolladores principales solucionaron varios errores con la ayuda de utilidades, en los que también pueden aparecer errores, y finalmente se llevó a cabo una bifurcación en la red, que inicialmente podría haber ocurrido por accidente (o no por accidente). . En términos de reacción global, en la semana posterior al hack, el precio de Verge aumentó en un 30%, y la semana siguiente se anunció que la moneda Verge sería aceptada como tarifa de suscripción en pornhub.com. Cómo el mayor hackeo de criptomonedas a nivel de protocolo podría haber llevado al crecimiento del valor de esta moneda y, más tarde, a la conclusión de una asociación con el sitio pornográfico más visitado, dejaré esta pregunta abierta. Personalmente, creo que es solo que no tiene sentido en el mundo y la gente está completamente loca.

Pero yo divago. Más globalmente, hay varias lecciones que podemos aprender de esta situación:

Primero, la técnica de usar marcas de tiempo para reducir artificialmente la complejidad se conoce desde hace mucho tiempo, e incluso se las arregló para obtener el nombre: la vulnerabilidad de "deformación del tiempo". Hace varios años, se discutió un vector de ataque en el foro de Bitcoin. Hasta cierto punto, el uso del nuevo algoritmo de ajuste de dificultad Dark Gravity Well, en el que la dificultad se ajusta con cada nuevo bloque, ayudó a implementar el ataque a Verge. En Bitcoin, la dificultad solo cambia cada 2016 bloques. A pesar del hecho de que una configuración de dificultad tan prolongada e intermitente puede parecer una decisión extraña, el truco de Verge dejó en claro que, de hecho, es una medida de seguridad: si hay alguna forma en Bitcoin para reducir la complejidad de la minería, entonces un atacante puede hacerlo solo una vez cada 2 semanas, lo que hace que los resultados del ataque sean insignificantes en comparación con Verge, donde los piratas informáticos pueden reducir la dificultad de minería cada 30 segundos.

Curiosamente, una de las supuestas ventajas de Dark Gravity Wave es que tiene que ser inmune a una vulnerabilidad de deformación temporal. Dada la fuerza con la que se ha refutado esta suposición, otras monedas que utilizan este algoritmo deberían al menos ponerse nerviosas.

En cuanto al uso de los cinco algoritmos: si bien a primera vista parece un experimento digno en un entorno descentralizado económicamente estimulante, introduce nuevas complejidades que inevitablemente aumentan la probabilidad de que ocurran vulnerabilidades imprevistas.

En ambos casos, este truco constituye un fuerte argumento a favor de los mecanismos probados y requiere precaución para complicar e introducir riesgos innecesarios asociados con los activos financieros de las personas. En estos asuntos, el equipo de Bitcoin ha demostrado estar en su mejor momento.

La pregunta es algo más amplia: los desarrolladores de software, aunque son reacios a admitirlo, en última instancia son solo humanos. Incluso cuando los principios básicos de seguridad parecen perfectamente sólidos, siempre puede haber margen para el error. Hay ataques inesperados, los compromisos no siempre dan sus frutos y, por supuesto, nadie ha cancelado la posibilidad de errores viejos y buenos. El software no siempre funciona de la manera que queremos, y nadie en 2018 se sorprenderá de que errores como estos puedan provocar una pérdida de fondos. Pero cuando el software само es dinero, debemos tener mucho cuidado.

Dado que la mayoría de nosotros no tenemos tiempo para analizar a fondo el código de cada proyecto en el que invertimos, la mejor defensa contra desastres es confiar en sistemas probados con experiencia laboral positiva y un enfoque conservador del desarrollo.

Y si desea apostar por algunos fondos en proyectos piloto relacionados con la transferencia de dinero, al menos debe ser consciente de los riesgos. En definitiva, la mejor defensa es cuando la comunidad exige medidas adecuadas para prevenir futuros desastres. Si no me equivoco, dijo George Santayana, "aquellos que no pueden aprender de las vulnerabilidades de seguridad del pasado están condenados a repetirlas una y otra vez en el futuro". Estas palabras deben recordarse para que, inesperadamente para nosotros mismos, no repitamos los errores del pasado.

Califica este artículo
Medios de blockchain
Añadir un comentario