Está en la página 1de 4

Cardano está seguro contra ataques de

activos falsos (fake stake attacks).


Traducción al español. 

CardanoCastellanoAmbassadors
Mar '19
Documento original Publicado el 29 de Enero de 2019.

Ver link a IOHK de Philipp Kant 1, 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.jpg954×537 292 KB

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  2 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.

También podría gustarte