Cardano está seguro contra ataques de activos falsos (fake stake attacks). Traducción al español. 🇪🇸

Documento original Publicado el 29 de Enero de 2019.

Ver link a IOHK de Philipp Kant, Phd, Director de Métodos Formales.

Ver Documento Original aquí.

El diseño revisado por pares (peer review) significa que Ouroboros está libre de un defecto que afecta a muchas de las blockchains de Prueba de Participación (Proof of Stake - PoS)

image
Ada no está entre las 26 criptomonedas identificadas por investigadores estadounidenses la semana pasada como vulnerables a ataques de "activos falsos" (ver nota al pie 1). La blockchain de Cardano subyacente a Ada se basa en Prueba de Participación (PoS), pero su protocolo Ouroboros no utiliza código de bitcoin y no se ve afectado por el problema de PoSv3 (ver nota al pie 2). Esto no es sólo buena suerte, sino también una consecuencia del enfoque exhaustivo y formalmente verificado adoptado durante el desarrollo de Cardano.

La vulnerabilidad

La vulnerabilidad se explica muy bien en el artículo original. Para entender por qué Cardano no se ve afectado por ello, resumiremos aquí la esencia de la vulnerabilidad.

Todos los sistemas vulnerables están utilizando PoSv3, una modificación del código bitcoin que tiene como objetivo reemplazar la potencia de hashing con activos (stake) con el fin de determinar quién es elegible para crear un bloque. En el código bitcoin original, la decisión de quién crea el siguiente bloque se basa puramente en el poder del hash: quien consiga encontrar un número aleatorio adecuado, y así obtener un hash correcto primero, gana. PoSv3, sin embargo, añade una variable adicional, para simular la noción de activos.

En un sistema PoS, la probabilidad de llegar a crear un bloque es proporcional a cuántos activos tiene un usuario en el sistema: cuanto más activos tiene un usuario, más probable es que llegue a crear el siguiente bloque. Para imitar esta funcionalidad, PoSv3 permite a los usuarios añadir información adicional a su bloque candidato, en forma de una "transacción de activos". Cuantos más activos (tokens) tengan disponibles para usar en su transacción de activos, más fácil les resultará obtener un hash correcto, y así ganar el derecho a crear el siguiente bloque.

Mientras que PoSv3 vincula con éxito los derechos de creación de bloques a la participación de esta manera, también hace que la validación de bloques sea más difícil. No sólo es necesario verificar el hash del bloque en sí (como en bitcoin), sino también la transacción de activos de un usuario: es decir, ¿el usuario era realmente propietario de los activos que utilizó en su transacción de activos? Para verificar esta información, un nodo de blockchain debe poder hacer referencia al libro mayor y, si un bloque no sólo extiende la cadena actual sino que introduce una bifurcación (fork), también la historia del libro mayor. Dado que esto no es ni almacenado ni barato de calcular, los bloques en los sistemas PoSv3 no se validan inmediatamente, sino que se almacenan (al menos parcialmente) en la memoria o en el disco cuando pasan por alguna heurística.

Las vulnerabilidades discutidas en el artículo original pueden ser explotadas de varias maneras, pero en última instancia involucran engañar a esas heurísticas y presentar muchos bloques inválidos a un nodo, de tal forma que el nodo se queda sin memoria y se bloquea antes de que pueda identificar correctamente que los bloques son inválidos.

Por qué Cardano es diferente

Para Cardano, IOHK adoptó un enfoque diferente. En lugar de encontrar una variación mínima de bitcoin, nos apoyamos en académicos e investigadores líderes mundiales para crear un nuevo protocolo y una base de código desde cero, con el requisito de que ofreciera garantías de seguridad equivalentes (o mejores) que las de bitcoin, pero que dependiera enteramente de lo que estaba en juego. El resultado es el protocolo de Ouroboros (ver nota al pie 3), el primer protocolo PoS de probada seguridad, sobre el que se construye Cardano.

El diseño básico de Ouroboros es notablemente simple: el tiempo se divide en incrementos discretos, llamadas franjas (slots), y los slots se agrupan en períodos más largos, llamados epochs. Al comienzo de cada época, una lotería determina quién puede crear un bloque para cada franja. En lugar de que esta lotería sea implícita, es decir, quien obtiene un hash correcto primero gana, la lotería es explícita: un número aleatorio generado determina un líder de franja para cada franja, y las posibilidades de ganar para cualquier franja son proporcionales a los activos que uno controla(ver nota al pie 4).

En este protocolo, validar que un bloque ha sido firmado por el actor adecuado es también simple: sólo requiere el calendario del líder para la época actual (que no cambiará en caso de una bifurcacion temporal), y la comprobación de una firma. Esto lo puede hacer y lo hará cada nodo una vez que obtenga el encabezado del bloque, a diferencia de los sistemas PoSv3 que son vulnerables a ataques de activos falsos.

En resumen: Cardano está seguro contra ataques de activos falsos porque se basa en un sistema fundamentalmente diferente. Las criptomonedas PoSv3 se ejecutan en sistemas de prueba de trabajo (Proof of Work - PoW), modificados para tener en cuenta lo que está en juego en la elección implícita del líder, y la vulnerabilidad en cuestión es el resultado de esa modificación, y las complejidades adicionales que implica.

Cardano no sólo tiene una base fundamentalmente diferente, sino que esa base es el resultado de múltiples trabajos académicos revisados por colegas y de una colaboración sin precedentes entre investigadores y desarrolladores. Los métodos formales y semi-formales involucrados en la creación de la próxima versión de Shelley de Cardano aseguran que su construcción a nivel de código evidentemente coincida con el protocolo descrito en los documentos de investigación revisados por pares, construyendo confiabilidad y seguridad por diseño - y evitando los problemas de PoSv3, que han surgido como resultado de la modificación de un protocolo existente en lugar de la creación de un protocolo completamente probado y hecho a la medida como Ouroboros.

Notas a pie de página

  1. Ataques de "activos falsos" a las criptomonedas de PoS por Sanket Kanjalkar, Yunqi Li, Yuguang Chen, Joseph Kuo, y Andrew Miller del Laboratorio de Sistemas Descentralizados de la Universidad de Illinois en Urbana-Champaign.

  2. Para ser precisos, la siguiente discusión está dirigida a la próxima edición de Shelley de Cardano. La versión de Byron actualmente desplegada se está ejecutando en un entorno federado y, por lo tanto, está protegida de forma operativa de este tipo de ataques.

  3. Ya hay una serie de variaciones del protocolo de Ouroboros. Aquí describimos sólo la versión clásica de Ouroboros, pero el argumento general es válido para todas las variantes, en particular para Ouroboros Praos, que será el protocolo utilizado en la versión de Shelley.

  4. Para ser precisos, la elección del líder para una época determinada utiliza la distribución de activos en un punto en el tiempo antes de que comience la época, para evitar ataques de molienda (grinding attacks) y un nuevo cálculo del calendario en caso de una bifurcación (fork) temporal en el límite de la época.

Nota extra a la traducción:

Ratio de Hash: velocidad a la que una computadora completa una operación en el código de Bitcoin…

Búsqueda de Google:
Hash Rate is the speed at which a compute is completing an operation in the Bitcoin code. A higher hash rate is better when mining as it increases your opportunity of finding the next block and receiving the reward

Arte Visual, Edan Kwan

2 Likes