A pesar de tener 9 años de existencia, la tecnología de la blockchain sigue siendo poco conocida y poco entendida. Y con esto no me refiero sólo al público en general (como es de esperarse), sino también a círculos de gente especializada en el tema.
Una gran parte del problema es que en el white paper de Bitcoin no se define explícitamente qué es una blockchain. Se describe para qué sirve, pero no qué es.
La quinta línea del white paper dice: “We propose a solution to the double-spending problem using a peer-to-peer network” (“Proponemos una solución al problema del doble gasto en una red de peer-to-peer).
Sí, probablemente la quinta línea del white paper no les ayudó en nada. Incluso es posible que te haya dejado más confundido. ¿Qué es un doble gasto? y ¿qué es una red peer to peer (P2P)? Evitemos meternos en estos dos conceptos en estos momentos —los abordaremos un poco más adelante— y tomemos como un acto de fe el hecho de que el problema del doble gasto es un resultado posible de un Sybil attack.
¿Sybil attack, qué es eso? Vamos de mal en peor, pero les prometemos que al final de este texto entenderán todos los conceptos.
¿Qué es un Sybil attack?
La definición de libro es: “un ataque en el cual un sistema de reputación es subvertido mediante la creación de múltiples identidades en una red P2P”. Si son como yo, esta definición los dejó igual que como estaban. En mi opinión hay una analogía que funciona mucho mejor para ilustrar un concepto complejo como el Sybil attack. Para esta analogía utilizaremos la historia de las redes de file sharing.
A finales de los años noventa, a una persona muy ingeniosa se le ocurrió la idea de crear una plataforma para que los usuarios pudieran conectarse y compartir sus archivos de música. La idea era simple: los discos son caros y era viable tener archivos de música en la computadora, ¿por qué no dejamos que los usuarios compartan sus archivos de manera gratuita? Así nació Napster.
Durante unos meses todo marchó muy bien hasta que la cruda realidad entró en escena: es ilegal compartir archivos protegidos por propiedad intelectual sin remunerar a los creadores de esos archivos. Al ser Napster un sistema centralizado, fue muy fácil para el gobierno solicitar a los directores de la compañía que suspendieran el servicio y Napster no fue más.
A otras personas, también muy ingeniosas y que habían aprendido de la experiencia de Napster, se les ocurrió que si creaban un sistema sin un único punto de falla sería sumamente difícil para las autoridades bajar el switch. Así nacieron las plataformas peer-to-peer o P2P (de igual a igual, de persona a persona) para compartir música.
En una red P2P la información se guarda y replica en varias computadoras y cualquier usuario que instale el software en su computadora puede participar. Entre más usuarios participen, más copias de los archivos se guardan y más robusta se vuelve la red. Al tener copias de los archivos distribuidos por todo el mundo y en miles de computadoras, se vuelve imposible apagarla.
Por un tiempo plataformas P2P, como Kazaa y Limewire, prosperaron gracias a la descentralización. Los gobiernos y las disqueras probaron diferentes tácticas para eliminarlas. Intentaron perseguir a los usuarios de manera individual, táctica que resultaba altamente costosa y poco efectiva. Las plataformas tenían cientos de miles de usuarios en decenas de países. Era imposible perseguir a todos los usuarios y la táctica de castigar a unos pocos no disuadía a los demás usuarios. La descentralización era una barrera sumamente efectiva para prevenir ataques de las autoridades.
Con el tiempo las disqueras evolucionaron sus tácticas. En un golpe de genialidad encontraron una estrategia efectiva para atacar estas redes P2P. Imaginemos que somos un usuario de una red P2P —como Kazaa— y queremos bajar la nueva canción de U2. Encendemos la computadora, abrimos Kazaa e ingresamos el título de la canción que queremos bajar. Todo funciona como debe, excepto porque, en vez de salirnos unas cuantas opciones de archivos para bajar, nos aparecen cientos.
Bajamos uno y al abrirlo se escucha puro ruido. El usuario que subió la canción probablemente cometió un error, pensamos. Bajamos otro, puro ruido otra vez. Dos al hilo, qué mala suerte. Intentemos con un tercero. Una vez más, ruido. Probamos con otra canción de otro artista. De nuevo, cientos de archivos y todos los que bajamos son puro ruido.
¿Qué ha sucedido? Un Sybil attack. Las redes P2P son descentralizadas, cualquiera puede bajar la aplicación, correrla en su computadora y participar en la red P2P. No hay una autoridad central que decida cuáles archivos son buenos o qué usuarios tienen permiso para subir archivos. Habría un sólo punto de falla y sufrirían el mismo destino que Napster.
Para una disquera es trivial implementar un programa automatizado para crear miles de usuarios y subir miles de archivos malos. Por cada archivo bueno que sube un usuario legítimo, la disquera puede subir 100 apócrifos, llenando de basura la red. Con el tiempo estos Sybil attacks volvieron inservibles a Kazaa, Limewire, y las otras plataformas P2P que operaban bajo este modelo.
Entonces, ¿qué es un Sybil attack? Una estrategia maliciosa para llenar una red P2P de información incorrecta.
En el caso del file sharing, el objetivo del ataque es volver la red inservible. Poniéndolo en perspectiva, el daño es limitado. Sí, los usuarios ya no podrán bajar música y películas, pero la vida continúa. ¿Qué pasa si en vez de compartir música, el objetivo de esta red es sostener un sistema de pagos? Si los usuarios no tienen manera de saber cuál es la versión correcta del archivo que determina cuánto dinero tiene cada quien, usuarios maliciosos podrían gastar su dinero varias veces en diferentes versiones de este archivo. De esto se deriva el concepto de doble gasto que mencionamos al inicio.
¿Cuál es la defensa contra un Sybil attack?
El problema del Sybil attack no sólo sucede con las plataformas para compartir música. Todas las redes P2P son susceptibles a este ataque y hasta ahora sólo se ha encontrado una manera para contrarrestarlo.
Volvamos al ejemplo de las canciones en Kazaa. Todo funciona de la misma manera (cualquiera se puede conectar, cualquiera puede subir un archivo), excepto que se implementa un sistema que genera un costo de 10 000 dólares al subir una canción.
Un usuario legítimo sube un archivo bueno y el proceso le cuesta 10 000 dólares. Si una disquera quiere subir 100 archivos para ahogar el archivo bueno en un mar de archivos malos le va a costar un millón de dólares. Por cada archivo bueno la disquera va a tener que pagar una cantidad importante de dinero haciendo el Sybil attack económicamente inviable. Seguramente están pensando: “Sí, muy ingenioso, pero ningún usuario va a pagar 10 mil dólares por subir un archivo y la red va a terminar igual de inservible, ya que nadie va a subir nada”.
¿Qué pasaría si la red tuviera un mecanismo para recompensar a los usuarios que suben un archivo bueno? Por ejemplo, se podrían entregar tokens o fichas electrónicas a estos usuarios cada vez que suban un archivo. Mientras estas fichas tuvieran un valor de 10 mil dólares o más, los usuarios estarían incentivados a seguir subiendo archivos buenos.
¿Te suena familiar? Los bitcoins son precisamente estos tokens incentivadores. Y los mineros son los usuarios que pagan por subir archivos a la red, por lo cual obtienen una recompensa en bitcoins.
La minería es la respuesta al Sybil attack. Es simple pero brillante. Esto es lo que diferencía una blockchain de cualquier otro sistema de cómputo. Es resistente a Sybil attacks.
En otro artículo cubriremos el concepto de la minería a fondo, es un tema que merece ser tratado por sí solo.