5 recomendaciones para limitar ataques de 51%

0

En la primera parte de este artículo, se menciona las vulnerabilidades actuales de las criptomonedas que están haciendo de los ataques de 51% en las criptomonedas algo común. En esta sección, se discute alternativas para mitigar riesgos.

Aunque la situación es un poco sombría, especialmente para los casas de intercambio, hay algunas cosas que podemos hacer para mitigar —al menos temporalmente— el riesgo en las mayores criptomonedas de hardware compartido. En última instancia, el atacante puede circunvalar todas estas barreras con desarrollos suficientemente sofisticados, como los exchange y mercados descentralizados.

La única solución establecida a largo plazo es requerir que todas las criptomonedas cambien a un hardware exclusivo —cada una con un algoritmo amigable con ASIC y distinto al de las otras—. Pero quizás podamos ganar un poco de tiempo con un riesgo reducido, mientras que a todos se les da la oportunidad de migrar.

1. Rastrear la disponibilidad global de hardware

Una de las cosas que puede ayudar a los intercambios para gestionar el riesgo es vigilar la disponibilidad global de hardware para cada criptomoneda. El porcentaje de hardware útil que se extrae en una criptomoneda en particular es un buen indicador de cuánta seguridad tiene esa criptomoneda.

Para las criptomonedas de hardware exclusivo, lo único que realmente se debe tener en cuenta son las recompensas por bloque bajas y los mercados bajistas de hardware. Por ejemplo, si la mayoría del hardware que una vez se enfocó en una criptomoneda ya no está minándola por su poca rentabilidad, es probable que un ataque no sea tan costoso porque no hay alta demanda de hardware y el precio disminuye. Para todas las demás situaciones, es probable que las criptomonedas de hardware exclusivo estén protegidas contra los ataques de hashrate.

Para las criptomonedas de algoritmo compartido que tienen ASIC u otro hardware altamente especializado, la clave a tener en cuenta es cuánto hashrate está minando cada criptomoneda. Para las criptomonedas que tienen más del 70% del total de hashrate y minería activa, diría que no hay mucho de qué preocuparse. Para las criptomonedas que estén entre el 10% y el 70% del total de hashrate, diría que los tiempos de confirmación de 24 horas son prudentes.

Incluso con un 70% de hashrate, hay actividades que las granjas mineras más grandes podrían hacer para cometer ataques y potencialmente tener éxito en la ejecución de dobles gastos. Con tiempos de confirmación de 24 horas, estos ataques se vuelven mucho menos factibles. Sin embargo, las criptomonedas de algoritmo compartido con menos del 10% del hashrate total probablemente sean inseguras.

La decisión de detener los depósitos y retiros depende siempre, por supuesto, de la tolerancia al riesgo y otros factores. Pero mi recomendación general sería hacer justamente eso hasta que el algoritmo de hash cambie a algo más seguro.

Para las criptomonedas minadas por GPU, la gestión de riesgos realmente requiere comprender el estado actual de los mercados de hashrate y el estado de las grandes granjas mineras que están en operación.

A pesar de que no he gastado una tonelada de tiempo ni rigor con estos valores, mi estimación es que actualmente existe entre 100 y 250 millones de dólares en total de GPU disponibles en los mercados de hashrate. Este número es crítico para determinar si una criptomoneda es vulnerable a un ataque de 51%.

No obstante, esto no es suficiente, ya que han habido informes que sugieren que algunas granjas mineras grandes también han estado participando en ataques de 51% contra criptomonedas más pequeñas. En particular, al menos una de las granjas en el rango de 10 a 100 millones de dólares de GPU parece estar dispuesta a intentar ataques.

Teniendo en cuenta lo anterior, mi recomendación en este momento sería requerir 24 horas de confirmación para todas las criptomonedas minadas por equipos GPU que tienen entre 50 y 250 millones de dólares de hardware minando activamente en ellas y desactivar los depósitos para todas las criptomonedas por debajo de este umbral. El costo y la dificultad de organizar un ataque no parecen ser muy altos por debajo de los 50 millones de dólares en hardware.

A medida que el ecosistema evoluciona y el estado de las grandes granjas mineras y de los mercados de venta cambian, el análisis de riesgo para las criptomonedas de diversos tamaños y tipos de algoritmos cambiarán. Los exchanges que se mantengan al tanto de estos cambios tendrán un análisis de riesgo más preciso y podrán tomar las mejores decisiones comerciales.

2. Formar alianzas con granjas mineras y mercados de hashrate

Algunos de los riesgos totales podrían reducirse si se intercambian relaciones con las grandes granjas mineras y los mercados prominentes de hashrate.

Los mercados de hashrate han sido la fuente de la mayoría de los ataques. Sin embargo, los centralizados tienen la capacidad de limitar la cantidad total de hashrate que se puede alquilar al mismo tiempo y de implementar procesos como Know Your Costumer (KYC) para cualquiera que intente comprar cantidades sustanciales de hashrate. De este modo, puede reducir el riesgo de ataque para pequeñas criptomonedas.

Por lo menos, un mercado de hashrate puede ser capaz de advertir a las casas de intercambios cuando una cantidad significativa de hashrate está de repente apuntando a una criptomoneda en particular.

Un atacante altamente sofisticado puede aprovechar los ataques de Sybil o incluso los compromisos de la cuenta para eludir estos controles. Y por supuesto, cuantos más controles se implementen en los mercados centralizados, más usuarios serán dirigidos hacia soluciones descentralizadas, donde no podrán existir tales controles.

Por lo tanto, estos controles serán en el mejor de los casos una solución temporal. Una solución temporal para ganar suficiente tiempo y que las criptomonedas migren a mejores soluciones.

Formar alianzas con las granjas mineras más grandes también puede resultar altamente beneficioso. Si no es otra cosa, es probable que estas relaciones den una idea del estado actual de la minería para varias criptomonedas y podrían dar a los intercambios una idea de qué criptomonedas pueden ser más o menos vulnerables. En términos de mitigación de riesgos, creo que estas relaciones tendrían un impacto mayor al esperado por la cantidad de esfuerzo requerido.

3. Detener automáticamente transacciones y direcciones en listas negras

Cuando se detecta una gran reorganización en una criptomoneda, sus transacciones deberían detenerse automáticamente. Si se detecta un doble gasto, las direcciones involucradas deberían incluirse automáticamente en la lista negra. Esto debería ocurrir en tantos exchanges como sea posible, no solo en aquellos afectados por los ataques.

Aunque detener las transacciones de inmediato no ayuda con el hecho de que el dinero ha sido robado, reduce sustancialmente la cantidad de opciones que tiene un atacante para manejar el dinero robado. Además, los atacantes a menudo pueden predecir los cambios en los precios luego de sus ataques y realizar grandes transacciones a su favor. Si un intercambio está congelado, esa fuente de rentabilidad desaparece.

Las direcciones en listas negras tienen un efecto similar, debido a que reduce las opciones para los atacantes. Bloquearles salidas acarrea más oportunidades para recuperar el dinero y menos ataques, incluso si hay formas de eludir todos estos controles.

Podemos decir por experiencia que los atacantes a menudo no son tan sofisticados y con frecuencia cometen grandes errores. Incluso cuando no hay nada que puedas hacer contra un atacante teóricamente perfecto, los verdaderos atacantes están lejos de ser perfectos. Perseguirlos activamente y esperar que cometan un error crítico puede ser increíblemente efectivo.

4. Generar contraataques a toda costa

Existe una opción más avanzada y más arriesgada para manejar los ataques de doble gasto que es lanzar un contraataque. Cuando un atacante extrae un doble gasto en una criptomoneda, la casa de intercambios afectada puede comprar un montón de hashrate para extender la cadena original, consolidando la transacción original del atacante.

Por supuesto, el atacante también puede contraatacar, respondiendo a la extensión de la cadena original con una extensión de la cadena del ataque. Lo difícil aquí es que, en cada momento, tiene sentido que el exchange gaste más dinero en la extensión de la cadena original y que tenga sentido para el atacante gastar más dinero en la extensión de la cadena del ataque. Incluso cuando el atacante y el intercambio han gastado mucho más dinero del que lo que vale el robo, todavía tiene sentido que sigan extendiendo sus respectivas cadenas en un intento por recuperar el dinero.

Imagina que un atacante roba $50,000 de un intercambio gastando $10,000 en prueba de trabajo. En este punto, el atacante tiene un presupuesto de + $40,000 y el intercambio de -$50,000. El mejor movimiento para el intercambio aquí es gastar $10,000 para restaurar la cadena original como la cadena más larga, lo que significa que el atacante ahora tiene -$10,000, y el intercambio también tiene -$10,000. Si dejamos que este juego se desarrolle, obtenemos lo siguiente:

En el momento en que el atacante ya no pueda beneficiarse del ataque en su totalidad, el exchange ha perdido la misma cantidad de dinero defendiendose que lo que habrían perdido si hubieran dejado ir al atacante. En ningún momento el intercambio está en alza, solo puede perder cada vez más cantidades de dinero en el mejor de los casos.

Y, este juego realmente no tiene un final. En todos los momentos, tiene sentido que cada parte siga intentando recuperar los $50,000 originales, porque en cada paso está gastando $10,000 para recuperar $50,000. Es por eso que esta estrategia se llama ‘a toda costa’ porque nadie gana y se destruye mucho dinero.

El valor de esta estrategia es que el intercambio puede, al menos en teoría, impedir que el atacante gane dinero. Si un atacante sabe de antemano que un intercambio está dispuesto a comprometerse con esta estrategia, entonces el ataque no tiene ningún sentido y es poco probable que el intercambio sea atacado más allá de las primeras veces.

Hay otra gran complicación con esta estrategia; el atacante tiene una gran ventaja en términos de preparación. Es decir, un atacante puede pasar semanas o meses preparando un ataque y un intercambio necesita responder al ataque casi de inmediato.

Si el atacante está dispuesto a cometer el delito, es muy posible que él tenga una gran ventaja. Por ejemplo, si el atacante está utilizando un código que está más fuertemente optimizado, puede gastar solamente $5,000 en cada ronda, mientras que el exchange debe utilizar $10,000. El intercambio no tiene forma de saber si el atacante tiene o no una ventaja en esta situación.

También podría haber problemas con esta estrategia si varias casas de intercambios intentan hacerlo simultáneamente. Los exchanges probablemente terminen en una guerra entre ellos mismos y no contra el atacante. Esto puede resultar extremadamente costoso dependiendo de los presupuestos de cada intercambio.

Una consideración final para esta estrategia es que podría tener un daño colateral masivo en el ecosistema. Muchas criptomonedas no son capaces de manejar un gran número de reorganizaciones consecutivas. Los nodos pueden bloquearse, otras transacciones pueden perderse o duplicarse en medio de esta guerra y, en general, los usuarios correrán un riesgo mucho mayor durante toda la batalla ‘a toda costa’.

Por todas estas razones no recomiendo que los intercambios sigan esta estrategia de lucha contra el doble gasto.

5. Optar por el arbitraje de los desarrolladores

La estrategia final que quería mencionar era el arbitraje de desarrolladores, porque es una estrategia que ha tenido éxito para las criptomonedas en el pasado. Cuando ocurre un robo, los desarrolladores siempre pueden lanzar una horca que devuelve las monedas robadas.

Esto introduce un nivel muy alto de centralización en torno a los desarrolladores. Pero ellos también son seres humanos imperfectos que podrían ser engañados para interpretar erróneamente un ataque; y, en lugar de devolver monedas robadas, los desarrolladores pueden terminar tomando monedas legítimas de un usuario y entregarlas a un atacante.

Sin embargo, los desarrolladores podrían comenzar a verificar los bloques y hacer que aquellas transacciones se registren permanentemente, de modo que no pueda haber doble gasto. Esto se ha hecho varias ocasiones con distintas criptomonedas a lo largo de su historia, pero en sí mismo es muy peligroso.

Si la llave del desarrollador es robada, pueden ocurrir todo tipo de problemas. Además, el hecho de que los desarrolladores decidan efectivamente qué transacciones están permitidas en la red potencialmente los pone en la mira implacable de los reguladores financieros.

Los desarrolladores deben ser genuinamente muy cautelosos en hacer este tipo de cosas, pues si uno de ellos toma la decisión incorrecta al devolver los fondos, la verificación será incorrecta o permitirá que un grupo terrorista se beneficie de la transacción. Esto podría causar graves repercusiones legales. Especialmente ahora que hay mucha más atención regulatoria en este ecosistema, no recomiendo esta alternativa, incluso con las preocupaciones usuales acerca de la centralización.

En conclusión

A medida que esta tecnología continúe desarrollándose, veremos más ataques sofisticados. En los próximos 6 a 12 meses, es probable que la mayoría de estos se centren en el doble gasto de las criptomonedas con poca seguridad en su prueba de trabajo, pero las decisiones de los desarrolladores serán cada vez más explotadas. Lograr diseños seguros es difícil, y la mayoría de las criptomonedas y las aplicaciones descentralizadas no han logrado garantizar que sus proyectos sean seguros.

Esto lo podemos apreciar en los millones de dólares en robos como resultado de los ataques a las criptomonedas de hardware compartido. No obstante, son solo la primera ola de ataques de alto perfil que van a afectar a la comunidad de criptomonedas.

Para evitar pérdidas adicionales, se deben tomar medidas a corto plazo para proteger a las casas de intercambios. En algunos casos, el salto a 24 horas de confirmaciones debería ser suficiente. En otros, los depósitos probablemente deberían simplemente deshabilitarse hasta que las criptomonedas pueda llegar a un paradigma más seguro. A largo plazo, los exchanges tendrán que ser más conservadores con sus modelos de riesgo y más proactivos sobre la diligencia con las monedas que elijan poner en lista.

La versión original en inglés escrita por David Vorick se publicó en el blog de Sia.

Deje un Comentario

Su correo electrónico no será publicado.