Tornado Cash: El Código Prohibido

2022-11-08 Leer en voz alta

Por: Laboratorio de Seguridad Digital y Privacidad-K+LAB.

El 8 de agosto de este año, la Oficina de Control de Activos Extranjeros de los Estados Unidos (OFAC, por sus siglas en inglés) sancionó a la Aplicación Descentralizada y de código abierto Tornado Cash por estimar que Lazarus Group -un grupo de hackers asociado con el gobierno de Corea del Norte- la usó para lavar más de $100 millones de dólares producto de diferentes hackeos realizados a otras aplicaciones en la red de Ethereum. La situación generada ha provocado un amplio debate sobre las implicaciones de este tipo de sanciones sobre derechos como la privacidad y la libertad de expresión. 

La sanción consiste en prohibir la utilización de Tornado Cash por parte de cualquier entidad o persona estadounidense, además sanciona direcciones de ethereum que hayan interactuado anteriormente con la aplicación o las que lo hagan en el futuro.

Esta sanción sin precedentes, no solo afectó a fondos legítimos sino que terminó en la eliminación del código fuente de la aplicación y las cuentas de sus colaboradores en GitHub y con la detención de uno de sus programadores en Holanda

Tratemos de entender entonces este entramado entre reguladores, aplicaciones descentralizadas, blockchains, criptomonedas, hackers internacionales, código abierto,  personas usuarias y el debate en torno a las implicaciones de la sanción de la OFAC sobre una aplicación que nadie controla.

¿Qué es Tornado Cash?

Técnicamente, Tornado Cash es un mixer que corre en la blockchain de Ethereum. Para explicar el mixer, primero debo explicar qué es una blockchain y qué es un smart contract.

Una blockchain es -muy básicamente- un libro de cuentas digital que se comparte a través de una red peer-to-peer. Esta red, conformada por nodos, utiliza un algoritmo de consenso para garantizar que todos los nodos comparten exactamente la misma información. Bitcoin inauguró este concepto en el 2009 dando inicio al novedoso paradigma económico de las criptomonedas.

Ethereum es una blockchain pública, muy popular, que no solo tiene una criptomoneda nativa ($ETH) que se puede transferir entre sus  personas usuarias, sino que puede correr Smart Contracts.

Los Smart Contracts son programas cuya ejecución está sujeta a las reglas criptográficas que gobiernan Ethereum (o de la blockchain donde están desplegados). Esto confiere a estos programas ciertas propiedades especiales como la certeza de que el código que se corre es siempre el mismo y el resultado de su ejecución es completamente verificable (trustless), que no se pueden modificar y que no pueden ser censurados dentro de la misma red de Ethereum. Estas propiedades los hacen ideales para manejar activos sin tener que confiar en un intermediario o para representar propiedad y automatizar ese concepto en programas que precisamente se parecen a contratos.

Un ejemplo sencillo de un Smart Contract es uno que automatice el intercambio de criptomonedas, entonces, en lugar de que dos partes que no se conocen entren en el dilema de quién envía los fondos primero para el intercambio, se hace un Smart Contract en el cual ambas partes pueden confiar, enviar los fondos al contrato y que el contrato automáticamente revise que todas la condiciones se cumplan. Cuando lo hace se envían de vuelta las monedas recibidas de acuerdo con las reglas con las que haya sido programado (por ejemplo el precio de cambio de una moneda contra otra).

Ahora bien, para entender en dónde entra el famoso mixer en esta historia, hay que entender que todas las transacciones en Ethereum son públicas y es fácil ver cuándo, qué y cuánto envía una dirección de Ethereum a otra o a un contrato y aunque dichas direcciones no son más que llaves públicas criptográficas que originalmente no están atadas a identificaciones oficiales, siempre dejan un rastro, bastante exacto, de todos sus movimientos. El seguimiento de estos movimientos puede llevar a deducir posibles identidades de las personas dueñas de las direcciones. Es por eso que se dice que estas direcciones son pseudo-anónimas.

Ahora sí, entonces los Mixers son aplicaciones que permiten mezclar diferentes fuentes de fondos -en este caso criptomonedas o tokens- entre varios actores para luego retirarlos en otras direcciones que no tienen relación con las originales.

Tornado Cash es por tanto, una serie de Smart Contracts que corren en Ethereum y que permiten a las personas usuarias depositar una cantidad de criptomonedas en un fondo común de tal forma que cuando sean retiradas a otras direcciones no se sepa exactamente qué monedas pertenecían a las direcciones originales. Es decir, es un anonimizador de criptomonedas, algo como lo que hace TOR con las conexiones de internet.

(Diagrama simple del funcionamiento de Tornado Cash)

Es importante notar que Tornado Cash es una aplicación descentralizada (DApp), es decir que corre autónomamente una vez ha sido desplegada en la blockchain y nadie controla su funcionamiento, así como tampoco es posible borrarla e incluso impedir su uso por medios técnicos.

El problema es que así como sucede con otras aplicaciones que se enfocan en preservar la privacidad -como Signal o TOR-, actores maliciosos abusan de sus funcionalidades con fines ilegales. En el caso de Tornado Cash, múltiples grupos de hackers lo han usado para lavar fondos obtenidos del hackeo de otros Smart Contracts o billeteras con criptomonedas para esconder su rastro y evitar ser identificados. El más notable de estos grupos es Lazarus, conocido por su muy probable conexión con el gobierno de Corea del Norte.

La sanción

El 3 de mayo de 2022, Nicholas Weaver, destacado investigador de seguridad digital del Instituto Internacional de Ciencias de la Computación de Berkeley, escribió un artículo para el blog Lawfare donde instaba a la OFAC a tomar medidas “creativas” contra Tornado Cash argumentando que Lazarus Group había lavado aproximadamente 100 millones de dólares de una dirección ya sancionada por la OFAC y que eran parte de un inmenso robo cuyo monto ascendía a más o menos 600 millones de dólares. La OFAC tomó nota y actuó el 8 de agosto de 2022 sancionando a la aplicación Tornado Cash por razones de seguridad nacional.

Las sanciones de la OFAC consisten en poner personas o entidades en una lista (SDN list) y nadie o nada en Estados Unidos, o relacionado con Estados Unidos, o que transite por Estados Unidos puede tener relaciones con quienes conforman la lista. En los últimos años, además de personas y entidades, la OFAC ha empezado a sancionar direcciones de criptomonedas, sin embargo, la sanción a Tornado Cash es a toda la aplicación con todos sus Smart Contracts, en pocas palabras la OFAC ha sancionado el código.

Las implicaciones técnicas y hasta filosóficas de esta sanción van mucho más allá del mero hecho de listar la aplicación y prohibir a sus nacionales usarla ya que lo que se sanciona es un código autónomo que, por un lado, vive como una instancia en Ethereum pero por otro, se encuentra en repositorios públicos y es mantenido por personas programadoras que en realidad no controlan lo que en verdad está corriendo.

Esta falta de claridad, llevó a que GitHub, empresa líder en el almacenamiento de código abierto y, propiedad desde hace algunos años de Microsoft, borrara el código y las cuentas de tres de sus desarrolladores e incluso el gobierno de Holanda detuvo a uno de ellos bajo sospecha de participar en actividades de lavado de activos. Alex Pertsev fue apresado el 10 de agosto sin derecho a fianza y deberá permanecer detenido durante 90 días mientras empiezan las audiencias aunque hasta el momento no se han presentado cargos formales contra él.

Privacidad y Libertad de Expresión, los derechos en juego

Empecemos por la privacidad. Como lo explicamos antes, no es raro que actores maliciosos aprovechen aplicaciones o redes que preservan la privacidad con fines ilegales, esto es bien sabido y un debate abierto, sin embargo el caso de Tornado Cash es especial porque en vez de anonimizar conexiones o información, anonimiza transacciones que de alguna manera implican valor. 

Aunque hemos normalizado que las entidades privadas o el gobierno puedan saber quién, cuándo y cuánto dinero se mueve entre personas o instituciones, la privacidad también aplica en este campo, el secreto financiero existe y los paraísos fiscales y bancarios son legales, se entiende que haya recelos pero no deja de ser problemático que la privacidad sea mal vista en este plano. 

En realidad la información financiera es igual de sensible a todas las demás y tal cual sucede con las aplicaciones que preservan la privacidad es importante sobre todo para personas y organizaciones que son opositoras a un régimen, defensoras de derechos humanos, periodistas o personas que quieren proteger su privacidad ejerciendo el derecho que les asiste. Un ejemplo de esto son muchas donaciones que llegaron a organizaciones en Ucrania cuando estalló la guerra y que fueron anonimizadas con Tornado Cash para evitar futuras represalias.

Así como el hecho de que actores maliciosos usen TOR no es razón para prohibirlo y mucho menos para perseguir a sus programadores o borrar su código fuente de los repositorios públicos, los mismos argumentos aplican a Tornado Cash.

Esto nos lleva al segundo derecho en juego, la libertad de expresión. ¿Es el código una forma de expresión? la respuesta es sí. De hecho según jurisprudencia estadounidense un lenguaje de programación no es diferente a un idioma, al francés o al alemán, a las matemáticas o la música, porque es eso, un lenguaje y como tal se puede usar para comunicar información tanto a computadores como a las personas que puedan leerlo.

(Imagen tomada del sitio de la EFF, licencia CC, 20/09/2022) 

En los noventas, en la época de las Crypto-Wars el gobierno de Estados Unidos intentó prohibir la exportación de código relacionado con criptografía, por las mismas razones por las que hoy sanciona a Tornado Cash: seguridad nacional.

Sin embargo, se determinó que como  el código se puede publicar como si fuera un libro, imprimir en camisetas, y tiene naturaleza expresiva, como muestra el caso de Tornado Cash- pues porciones de su código fuente fueron cantadas.

La Electronic Frontier Foundation- EFF-, luego de entender mejor el caso, publicó el pasado mes de agosto una entrada donde planteó sus preocupaciones por la sanción a Tornado Cash, ya que sus consecuencias pueden provocar un efecto de silenciamiento –chilling effect- en otros proyectos enfocados a proteger la privacidad de las personas. Para la EFF este caso puede dejar el tema en aguas pantanosas, la gente no sabrá si desarrollar y publicar este tipo de código pueda traer consecuencias legales a sus desarrolladores solo porque hay actores maliciosos que lo usan como parte de sus acciones.

En ese marco, la EFF está representando al conocido profesor de criptografía de la universidad Johns Hopkins Matthew D. Green respaldando una acción que defiende el derecho de publicar código fuente. Green subió de nuevo una copia del programa a GitHub para ser usado como un caso de estudio en sus clases.

La discusión obligó a la OFAC a salir a aclarar la situación relativa a la publicación del código. Sin embargo, se mantienen las preocupaciones porque el efecto es que se sanciona código cuyo propósito es preservar la privacidad de las personas. Activistas como Evan Greer y Lia Holland hicieron un análisis de las implicaciones de la sanción a la luz de los derechos que garantiza la primera enmienda norteamericana. 

Pero, estos análisis no son unánimes. Unos días antes de que se publique este artículo Henry Farrell, profesor de asuntos internacionales de la universidad Johns Hopkins, y Bruce Schneier, una de las voces más respetadas en el mundo de la criptografía y de la seguridad digital, compararon a Tornado Cash con un Golem. Los Golems son figuras míticas del folclore judio que están hechas de barro y cobran vida para en algún punto empezar a hacer cosas terribles. Su análisis los lleva a reflexionar sobre la complejidad del  problema y terminan  afirmando  que tal vez es mejor no relacionar cuestiones de libertad de expresión con este caso específico.

Mientras todo esto pasa es mejor no olvidar que uno de los programadores sigue preso. Entonces, es difícil sacar conclusiones, hay que reconocer que los reguladores suelen chocar con paradigmas tecnológicos novedosos, y dilemas importantes. Sin embargo, en este caso se sancionó un código de programación y las consecuencias no fueron dimensionadas en la medida en que el resultado fue la censura y la persecución a un grupo de personas programadoras que ha expresado su visión del mundo y una posición política. 

La pregunta sobre ¿cómo se puede manejar una situación como esta en el futuro?, se mantiene. No tenemos la respuesta, pero en el futuro, con más internet, y otros nuevos desarrollos como la Inteligencia artificial, los metaversos y más blockchains, seguirá habiendo retos para las autoridades y los reguladores que con sus decisiones deben buscar balances y proteger derechos fundamentales.

Regresar al inicio de esta nota web.


Si por algún motivo esta entrada no es accesible para tí, por favor escríbenos a comunicaciones@karisma.org.co y haremos los ajustes que estén a nuestro alcance para que puedas acceder al contenido.

Indícanos el título del contenido en el asunto del correo, por ejemplo: Tornado Cash: El Código Prohibido.


Es fundamental poner el tema en la agenda y nutrir la conversación. ¿Trabajas en un medio de comunicación? Escríbenos a comunicaciones@karisma.org.co


Acompáñanos en @Karisma en Twitter, Fundación Karisma en Facebook y YouTube, y @karismacol en Instagram y Tik Tok

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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