Un hipotético ataque a la base de código de Bitcoin

Sólo seis hombres pueden aprobar cambios en el código de Bitcoin. Esto es lo que podría pasar si alguno o todos se vieran comprometidos.

En resumen

  • La única parte de Bitcoin Storm que puede describirse como centralizada es su base de código.
  • Sólo un puñado de mantenedores pueden hacer cambios en el código de Bitcoin.
  • Pero qué pasaría si se comprometieran?

Lo que mantiene la red Bitcoin funcionando es un conjunto de reglas. Seiscientas cuarenta y seis mil líneas de código -que deciden cómo se procesan las transacciones y establecen el límite monetario de Bitcoin- se almacenan en un único repositorio público en la plataforma de alojamiento de archivos GitHub.

Sólo unos pocos tienen acceso.

Aunque la red de Bitcoin es descentralizada, este es posiblemente el elemento más centralizado – y potencialmente su mayor debilidad. ¿Qué pasaría si alguien lograra infiltrarse en este código, e insertar un error en la propia red de Bitcoin? ¿Podría un gobierno hacer un esfuerzo concertado para cerrar todo el sistema?

Decidimos realizar este experimento de pensamiento, para llevarlo a sus límites y analizar si hay una potencial debilidad aquí. Hablamos con expertos y desarrolladores de Bitcoin para entender cómo funciona el sistema, y si se podría llevar a cabo un ataque.

Lo que encontramos es que hay muchas áreas de posible ataque pero que el sistema es bastante robusto para manejarlas. Así es como un ataque podría llevarse a cabo.

Quiénes son los mantenedores de Bitcoin?

Primero, necesitamos entender cómo funciona el sistema.

Los mantenedores de Bitcoin Core son las únicas personas que pueden hacer cambios materiales en el código de Bitcoin en el repositorio GitHub. Aunque su sitio web oficial no especifica exactamente quién tiene esta responsabilidad, según los sabios de bitcointalk.org, sólo seis personas tienen acceso a los commits. Estas son: Wladimir van der Laan, Jonas Schnelli, Marco Falke, Samuel Dobson, Michael Ford y Pieter Wuille.

Bitcoin es un proyecto de código abierto, así que los mantenedores no son nombrados formalmente. En su lugar, el privilegio se amplía de forma ad hoc por los mantenedores existentes cuando alguien demuestra las calificaciones adecuadas para conseguir un asiento en la mesa.

Gavin Anderson, fundador de la Fundación Bitcoin, supuestamente eligió a Van der Laan como responsable principal de mantenimiento de Bitcoin, la persona responsable de cargar los cambios en Bitcoin Core.

Para actualizar la base de código de Bitcoin, el equipo de mantenedores de Bitcoin revisará el código propuesto por uno de los miles de desarrolladores de Bitcoin y, si es lo suficientemente bueno, ese código será aprobado.

Aquí es donde entran las claves PGP.

Todos los mantenedores de Bitcoin tienen acceso a una clave PGP, que significa Pretty Good Privacy. Estas claves se usan para firmar, cifrar y descifrar textos, correos electrónicos, archivos y otras formas de comunicación o información.

Dado que la base de código de Bitcoin se almacena públicamente en GitHub, cualquiera puede proponer un cambio en la base de código de Bitcoin. Para evitar que la base de código sea editada ad infinitum por cualquiera, no se realizan cambios a menos que un mantenedor firme en una con su clave PGP.

Jameson Lopp, CTO del proveedor de soluciones de auto-custodia de Bitcoin, Casa, ha dicho que el papel del mantenedor no es un gran riesgo para el hombre clave. „Aunque hay un puñado de cuentas de ‚mantenedor‘ de GitHib a nivel de organización que tienen la capacidad de fusionar el código en la rama maestra, esto es más una función de conserje que una posición de poder“.

Pero también le gusta la frase: „no confíes, verifica“. Así que, hagamos eso.

El acceso no autorizado a Bitcoin Core

Sea cual sea la forma en que lo cortemos, cualquiera que ataque el sistema, incluso alguien que trabaje para GitHub, va a necesitar acceso a una de las claves PGP de los mantenedores.

„Alguien que trabaja para GitHub podría cambiar maliciosamente el código del repositorio de Bitcoin Core. Es por eso que firman los comunicados con una clave PGP. Si el código de GitHub ha sido alterado maliciosamente, entonces las firmas no coincidirán“, dijo el investigador de Bitcoin Andrew Yang a Decrypt.

Pero, ¿qué pasa si un atacante realmente puso sus manos en una clave PGP?

„Si una de esas claves se filtra, un atacante podría potencialmente modificar el código en el repositorio“, dijo a Decrypt Elias Strehle, investigador del Laboratorio de Investigación Blockchain.

Si eso ocurriera, sin embargo, los mantenedores de Bitcoin tienen una respuesta, al menos en teoría.

„Asumo que los mantenedores de Bitcoin crearían rápidamente un nuevo repositorio con nuevas claves PGP, subirían el código no dañado y pedirían a la comunidad que usara el nuevo repositorio en lugar del repositorio ‚Bitcoin Core‘ corrupto“, añadió Strehle.

Así que ese ataque debería fallar, pero un trabajo interno podría ser más dañino.

Y si un encargado de mantenimiento se volviera un pícaro?

Hasta ahora, hemos aprendido quiénes son los mantenedores de Bitcoin, y que atacar Bitcoin Core robando una clave PGP de un mantenedor es poco probable que funcione. Ahora, consideremos lo que pasaría si uno de los mantenedores de Bitcoin se viera comprometido, o incluso se volviera corrupto.

Teóricamente, un malévolo mantenedor podría subir código malicioso, esconderlo a la vista, y rezar para que nadie se dé cuenta.

„Debido a la diversidad de actores que tienen que aceptar los cambios, es bastante difícil colar un cambio malicioso en Bitcoin Core, pero quizás sería posible como parte de una actualización que la mayoría de la gente pensara que era buena“, dijo Harry Halpin, CEO de Nym Technologies -un equipo de programadores que trabajan en la privacidad de Internet- a Decrypt, añadiendo, „Un cambio verdaderamente malvado tendría que colarse en una actualización que a la mayoría de la gente le gusta“.

Sin embargo, es poco probable que esto funcione. Por un lado, es poco probable que el resto de los mantenedores de Bitcoin, o cualquiera de los miles de desarrolladores de Bitcoin, no se den cuenta del código malicioso. Pero incluso si eso ocurriera, hay otra defensa.

„Creo que el script de verificación de firmas lo atrapará la próxima vez que alguien envíe una solicitud de extracción o realice pruebas“, dijo el desarrollador de Bitcoin Thomas Kerin a Decrypt. En otras palabras, si un mantenedor deshonesto tratara de enterrar algún código malo en la base de código sin ser notado, la próxima vez que se produzca una actualización, resultaría en una contradicción en el código.

„La atención de cada desarrollador se centraría inmediatamente en lo que pasó“, añadió Kerin.

Si es improbable que un mantenedor deshonesto tenga éxito en su búsqueda de dañar Bitcoin, quizás los mantenedores no sean tan poderosos -o importantes- como parecen a primera vista. Hasta este punto, Bitcoin parece relativamente seguro, pero nuestro experimento de pensamiento no ha terminado todavía.

Y si todos los mantenedores fueran secuestrados?

Tengan paciencia con nosotros, pero digamos que todos los mantenedores fueron secuestrados, la noticia no se difundió lo suficientemente rápido a la comunidad, y una gran parte de los operadores de nodos de Bitcoin introdujeron el nefasto código de un atacante.

Algunos de los gobiernos más poderosos del mundo tienen un bien documentado desdén por las monedas descentralizadas, así que es posible que uno de esos gobiernos poderosos intente dañar la red de Bitcoin.

Primero, podría haber una toma de posesión abierta de Bitcoin, donde el actor malo deja que el mundo vea sus acciones.

Todos los mantenedores, incluido Van der Laan, serían arrestados, y el actor malo empezaría inmediatamente a intentar forzar una actualización perjudicial para Bitcoin Core. Este enfoque no tendría probabilidades de éxito. „La comunidad bifurca el repositorio, tomando el último buen compromiso, y comienza de nuevo desde allí“, dijo Kerin a Decrypt.

Pero hay un segundo enfoque más retorcido: una toma de posesión encubierta. Aquí, el protagonista podría secuestrar a los mantenedores, robar las claves PGP, y liberar un código fuente secreto de puerta trasera que han construido en Bitcoin Core. Este escenario también tiene sus limitaciones.

„No creo que se pueda hacer esto en tantos países sin que la familia se entere“, dijo Kerin.

De cualquier manera, si algo así sucediera, Bitcoin probablemente se bifurcaría.

„Los nodos manipulados y los nodos sanos probablemente no podrían llegar a un consenso sobre el estado de la cadena de bloques, creando así una bifurcación en la que una rama es maliciosa y la otra es sana“, también dijo Strehle.

En lugar de ser desplegado automáticamente en la vasta red de nodos de Bitcoin, cada operador de nodos puede decidir si acepta o no la nueva actualización. Esto evita forzar el código no deseado a los usuarios que no están de acuerdo con la actualización en sí, y actúa como una gran defensa ante esta hipotética situación.

„El código del repo no es empujado a los nodos. El código del atacante sólo puede activarse si los operadores de los nodos lo sacan activamente del repo“, dijo Strehle (el énfasis es nuestro), añadiendo que en caso de un hack, esto podría suceder a corto plazo, pero se correría la voz rápidamente en la comunidad.

Los mineros de Bitcoin se protegerán

Otra salvaguarda es la forma en que se incentiva a los mineros de Bitcoin para que comprueben si hay código malicioso y se mantengan alejados de él.

Adam Back, CEO y cofundador de la compañía de tecnología de cadenas de bloques Blockstream, dijo a Decrypt que vale la pena enfatizar lo poco probable que es que un operador de nodos quiera actualizarse a un código nefasto. „No creo que esto perjudique a otras personas más que a la propia protección financiera de los operadores de nodos“, dijo Back.

Esto se debe a que cada operador de nodo tiene la opción de sacar las actualizaciones del repositorio de GitHub. Como Back añadió, „Un nodo que reenvíe bloques inválidos será desconectado por otros nodos, y un nodo que envíe bloques viejos será ignorado y anulado por otros nodos que envíen más bloques actualizados“.

En otras palabras, es bastante improbable que el código del atacante vaya a ser aceptado por suficientes operadores de nodos como para tener alguna atracción real. „Estaría muy claro que la cadena de bloques no coincidiría y por lo tanto fallaría y sería rechazada“, dijo Jason Deane, analista de Bitcoin en Quantum Economics, a Decrypt.

Así que si este ataque dirigido por el gobierno te suena poco realista, es porque lo es.

Los mantenedores y las claves secretas hacen que los oponentes de la centralización sean un poco aprensivos, pero en última instancia, Bitcoin está a la vista, y cualquiera puede retomar donde el buen trabajo dejó.

„Si eres un hacker y consigues una clave PGP para el repositorio de Bitcoin Core, tienes casi las mismas opciones que un streaker corriendo en un campo de fútbol“, concluyó Strehle, añadiendo, „Puedes llamar mucho la atención, causar algo de confusión, quizás interrumpir el juego por un tiempo, pero eso es todo“.