El ataque 51% en Bitcoin

Muchas veces se preguntan sobre un posible ataque al corazón mismo de bitcoin perpetrado por un grupo que pueda alterar el sistema y cosas que uno solo se imaginaría en una película como El Resplandor. Un ejemplo de este tipo de ataques sería el denominado mayoritario o del 51%. ¿Puede pasar esto?

Antes de empezar a leer el artículo en sí, si no conoces acerca de minería de bitcoin, te recomiendo que eches un vistazo primero y luego vuelvas aquí para una mejor comprensión del artículo.

Contexto

Supongamos que hay una transacción de bienes entre Juan y Ana. Juan quiere comprar a Ana un café y por tanto realiza una transacción con la que paga a Ana pero, al mismo tiempo que Juan está preparando su transacción, hay un bloque donde se incluyó un double-spending (duplicación de gasto). Un double-spending, para ponerlo en términos relativamente simples, es una transacción falsa.

Las transacciones tienen datos de entrada como el monto, y datos de salida. Quien hace una transacción, usualmente espera cierto número de confirmaciones (en general entre 1 y 3) para considerar con suficiente confianza que la misma fue aceptada. Es decir que aunque los datos de salida fueron recibidos, se aguarda las siguientes confirmaciones antes de decir “el pago fue enviado”.

Como funciona el ataque 51%

Ahora bien, si alguien tiene el control del 51%, podría crear sus propias cadenas fácilmente y mucho más rápido que la red, transmitiéndola cuando quiera. Para ser más precisos, si controlamos el 50,00001% del poder de computación de la red, podemos:

  • Revertir las transacciones que se envían.
  • Prevenir la confirmación de transacciones seleccionadas.
  • Prevenir que otros mineros sigan minando.

Ahora bien, tener el control del poder de computación de la red, no te da los accesos totales. Hay cosas que no puedes hacer, y es importante entender cuáles son algunas de ellas:

  • Crear monedas así nada más, como se podría imprimir un billete falso de moneda corriente.
  • Cambiar el número de monedas generados por bloques.
  • Enviar transacciones que nunca te pertenecieron.

¿Es difícil hacer esto?

Sí, es muy difícil y no hay incentivos económicos para hacerlo. No obstante, debemos señalar que es teóricamente posible hacerlo. Supongamos que deseamos atacar y cambiar o editar los bloques, caso que es extremadamente difícil si se quiere cambiar varios y no solo uno. Es cierto que el ataque del 51% permitirá tener el poder de la red, pero eso no te da garantías de poder quedar bien (ganar a la larga) luego del ataque, ya que los ataques que se realicen tendrán una irreversibilidad permanente.

El dilema del 51%

¿Cómo podría atacar?

Ejemplo 1: quiero crear direcciones para robar dinero

La opción número 1 es crear transacciones falsas, crear transacciones que se dupliquen, y de esa manera “reventar” la red, cosa que no es fácil como parece pero lo desarrollamos a fondo anteriormente en otro artículo.

Esto, si bien —se repite el mantra— es teóricamente posible, al día de hoy es difícil hacerlo. Las direcciones de billeteras bitcoin tienen una llave pública de RIPEMD-160 (SHA-256), y encontrar una vulnerabilidad en direcciones representaría una grave falla al diseño mismo de bitcoin. Una virtud de los programas de código abierto es que la comunidad puede encontrar fallas y resolverlos; luego de varios años de estar en uso, es razonable asumir que las fallas son cada vez más debido a las mejoras agregadas que al diseño inicial. Lo relativo a las direcciones de billetera son parte del diseño inicial y no es probable que siga existiendo una falla grave aun desconocida.

Pero supongamos que igual quieras hacerlo, para lo cual necesitarías un poder de procesamiento enorme que permita romper este nivel de encriptación. Ahora bien, el poder de procesamiento al que nos referimos es casi el mismo que el requerido para minar bitcoins por lo que resulta más rentable la minería con incentivos económicos establecidos, a una tarea que posiblemente resulte en gastos sin retornos.

Aún así, quieres crear direcciones y robar dinero. OK, pongámonos en marcha, necesitarás una llave pública ECDSA que tenga un hash con 160 bits de valor. Generar esto te tomará aproximadamente 2160 generaciones de llaves o key generator.

Supongamos que puedas crear mil millones de llaves por segundo, necesitarías aproximadamente 2130 segundos; usando mil millones de máquinas —la más pálida idea de donde sacarás tantas máquinas—, hacer esto tomará 2100 segundos. Seguimos asumiendo cosas y ahora nos toca decir que tenemos mil millones de amigos —no un millón, sino mil millones— y todos ellos se unen, sin incentivo económico de por medio, a ayudarnos. Esto hará que la creación de llaves se reduzca a 270 segundos y teniendo en cuenta que en 1 año hay 225 segundos, haciendo los cálculos esto tomaría 245 años.

Teniendo en cuenta que la edad del Universo es de 234 años… mejor empezamos ahora o nunca terminaríamos.

Ejemplo 2: me uno a los chinos y controlamos todo el poder de minería

Ah, claro, el famoso los chinos controlan bitcoin. Un mito que tiene amplia difusión gracias a los rippleros y especificamente a sus autoridades, como por ejemplo David Schwart:

Bitmain (empresa china) controla el protocolo :facepalm:

o la vez que Brad Garlinghouse sale a decir que China controla bitcoin pues ellos tienen la minería más grande del mundo. Desde el vamos esto es incorrecto, dado que están asumiendo que el poder del minero —hash power— es el verdadero poder.

Falso. Es completamente lo contrario, de acuerdo a Gregory Maxwell, quien explicó que la seguridad de bitcoin funciona exactamente porque el hashpower no es ley.

Años atrás, si tuviera que explicar esto, diría que el ataque del 51% es algo real, ya que todos toman lo que la mayoría dicen, y como había muy pocos nodos, el ataque en sí, aunque doloroso en términos de recursos utilizados, iba a ser efectivo. Es decir, en lugar de publicar los bloques, los vamos acumulando, esperamos que la cadena sea lo suficiente grande como para publicarlo y ahí obtener todas las recompensas.

Ahora, juguemos a la teoría de juegos: alguien hace un ataque del 51%, alguien con altos recursos contacta a la suficiente cantidad de pools y mineros solitarios como para convencerlos de que —tomando la teoría de juegos— en lugar de ganar dinero minando, puedan obstaculizar el protocolo y crear double-spending, perdiendo dinero en el acto pero generando un daño (el objetivo) grande. Supongamos que es el Estado (¿por qué no?) el que les ordena atacar.

En los primeros minutos —y quizás horas— no solo joderán a los otros mineros, sino que también se quedarán con las recompensas que estos generen y en el más racional de los escenarios, ni siquiera tendrán para quedarse con la recompensa, la perderán también. Aquí y durante todo el ataque estamos olvidando al usuario. No es que el usuario se quedará y verá como la red cae mientras cantan kumbaya, tomando Red Bull y jugando LoL, también reaccionarán defendiéndose del ataque y, como la mayoría siempre son nodos y mineros honestos, la consistencia se irá perdiendo a medida pase el tiempo. Lo que en primer lugar costaba USD 500.000 (un presupuesto designado por un amigo en ataque a red), ahora es basura que equivale a USD 500.000.

La seguridad dentro de bitcoin está justamente diseñada para funcionar —como hasta el día de hoy funciona— con el menor número de fallas posibles y esto se da pues el hashpower no es poder absoluto. A modo de ejercicio, sigamos el ejemplo de quienes asumen esto.

Hemos visto anteriormente que tener el control de la red no te da poder absoluto y, si bien podrás tener un mediano control sobre las transacciones y transmisiones de la red, esto ocurre hasta un cierto momento.

Pero Nelson, los chinos tienen 100% del hash power y ellos harán lo que quieran, lo que se les ocurra.

No, no funciona así. Las validaciones significan que algún intento de algún minero deshonesto que quiera colocar algo sospechosamente inusual, será rechazado.

Sin embargo, pasó. Perfecto. Los usuarios pueden mover sus activos, pueden kickear (echar) a los mineros deshonestos o, si hay suficiente consenso, modificar el protocolo. Por todo lo que venimos analizando, y teniendo siempre en cuenta el incentivo económico, en este caso estaremos esparciendo FUD (fear, uncertainty, doubt), el precio caería al piso y esto implicaría: pérdida de dinero.

Pero Nelson, controlan el hashpower

Ok. Creemos un escenario donde China controla TODA la minería (casi casi casi imposible que pase, pero [finisimamente] posible al final del día), es decir, controle el 100% de todas las minerías. No importa, pues no sirve. La validación de las transacciones no depende de los mineros. Si bien ellos son los responsables de publicarlo en la red, la misma también pasa por los nodos, quienes rechazarán las transacciones que sean maliciosas: los usuarios empezarán a expulsar y banear a los mineros maliciosos, mover sus monedas, incluso, si todo sigue muy mal, se crea un Hard-Fork y listo. Recordemos que ante todo, esto es bitcoin, no PayPal.
Este último caso —menos probable— hará que el precio baje hasta el suelo haciendo que los mineros, especialmente aquellos maliciosos, pierdan mucho dinero (¿recuerdan la inversión de recursos requerida?).

Esto es debido al Proof-of-Work, el cual permite que haya siempre eficiencia a la hora de hacer minería; si un minero/grupo de mineros no es/son eficiente(s), entonces se los desplaza con algo mejor. El sistema siempre buscará la eficiencia en primer lugar, y esto a la vez se traduce en modificaciones para tener mejor sistema de descentralización.

Conclusión

El ataque 51% es en teoría posible, pero llevarlo a cabo es mucho más complicado de lo que puede suponerse a primera vista. Para ejecutarlo, debes hacer daños irreversibles a la red, a los usuarios y tendrás que estar preparado para recibir los embates económicos, consecuencia de tus acciones. La acción del atacante hace que disminuya el valor de lo que está robando, por lo que si el valor del bitcoin cae al piso, la cantidad robada no compensará la inversión inicial.

También es importante destacar sobre la cuestión de China. Sí, es cierto que hay un gran poder de hashing en China pero reiteramos:

hashpower =! control de bitcoin

No caigamos en el error de creer que hay un control de los chinos a partir de la minería. Podemos analizar la dependencia hacia los mercados asiáticos pero de ahí a aseverar falsamente sobre el control, es mentir al usuario.


Este artículo utilizó elementos de las respuestas de Stephane Gimenez, Enrique Alcazarmckoss bajo Licencia CC 3.0 Creative Commons. Así mismo, también utilizó como fuente el artículo de Vitalik Buterin bajo Licencia WTFPL. Gráficos provistos son de BTC Andrés.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .