Ouroboros Genesis: Llevando a Cardano al Nivel de Seguridad de Bitcoin


Agustin Franchella


Agustin Franchella

Feb 6

·

12 min read

Ouroboros Genesis: Llevando a Cardano al Nivel de Seguridad de Bitcoin

Autor Sooraj (@Soorajksaju2). Traducido por

[Agustin Franchella]

(Agustin Franchella – Medium)

Ouroboros Genesis es una actualización muy anunciada del protocolo de consenso de Cardano. Esta actualización del actual protocolo Ouroboros Praos está diseñada para abordar los problemas de simulación sin costo (costless simulation) y el problema de arranque (bootstrapping problem) y mitigar la amenaza de ataques de largo alcance (long-range attacks) en un entorno descentralizado y abierto. Ninguna de los actuales blockchains PoS tiene estas capacidades.

Entonces, ¡empecemos desde lo más básico para entender este tema desde una perspectiva de principios fundamentales!

¿Cómo funciona Bitcoin?

Fuente Proof of work: what is it, and how does it figure into bitcoin halving?

Bitcoin utiliza un libro contable (ledger) inmutable con garantías de seguridad fuertes a través de prueba de trabajo (PoW). El uso de prueba de trabajo (PoW) brinda un alto nivel de seguridad a través de funciones de hash criptográficas y permite una estructura de red descentralizada que permite una disponibilidad dinámica.

A pesar de sus fuertes garantías de seguridad, la adopción generalizada de Bitcoin ha puesto de manifiesto algunas limitaciones graves, especialmente en términos de eficiencia energética y composabilidad.

La Ineficiencia del PoW y las Limitaciones de la Composabilidad.

El PoW se basa en un sistema de resolución de rompecabezas que se vuelve cada vez más difícil a medida que más partes se unen a la red. Esto significa que cuanto más gente quiera participar en Bitcoin, más poder computacional se requiere para asegurar la red. Esto lleva a una demanda cada vez mayor de energía, lo que se ha convertido en una preocupación importante para el futuro de la red.

Los problemas de composabilidad hacen referencia a la capacidad de diferentes protocolos o sistemas para trabajar juntos sin problemas sin introducir consecuencias no deseadas o romper su funcionalidad prevista. En el contexto de los sistemas de blockchain de prueba de trabajo (PoW) como Bitcoin, pueden surgir problemas de composabilidad cuando otros protocolos o sistemas dependen de la resolución del mismo procedimiento de resolución de rompecabezas criptográficos que el proceso de minería de Bitcoin. Esto puede llevar a que un minero pueda duplicar el valor de su potencia de minado al usar la misma consulta hash tanto para el otro protocolo como para Bitcoin. Esto puede llevar a ineficiencias y posibles vulnerabilidades de seguridad en el sistema en general.

Proof of Stake (PoS) como alternativa

Fuente What is Proof of Stake? Learn more about this other consensus algorithm

Los sistemas PoS se basan en la idea de que, en lugar de requerir poder computacional para extender la cadena de bloques, se les da a las partes la oportunidad de hacerlo de acuerdo con la cantidad de tokens que poseen. Esto tiene el potencial de mejorar la escalabilidad y la eficiencia energética mientras se preservan las características de seguridad básicas de un libro contable robusto.

Se han desarrollado varias propuestas basadas en PoS con pruebas de seguridad formales que demuestran que logran un conjunto bien definido de propiedades deseables. Aunque PoS tiene el potencial de mejorar la eficiencia y la escalabilidad de la red, tienen su contracara. En particular, estos protocolos pueden restringir la disponibilidad dinámica de los participantes en comparación con los sistemas basados en PoW.

Entonces, qué es la disponibilidad dinámica?

Disponibilidad dinámica (Dynamic availability) se refiere a la capacidad de un sistema de permanecer accesible y utilizable a medida que cambian las condiciones, como un aumento en el número de usuarios o cambios en las condiciones de la red. En un sistema de disponibilidad dinámica, los recursos y capacidades se pueden ajustar o reconfigurar en tiempo real para satisfacer las demandas cambiantes. Esto permite que un sistema siga siendo accesible y utilizable incluso cuando cambian las condiciones, en lugar de hacerse no disponible o no confiable.

La disponibilidad dinámica en el contexto de Bitcoin se refiere a la capacidad de las partes (nodos) de unirse o abandonar la red de una manera flexible y constantemente cambiante sin interrumpir el funcionamiento general de la red.

Esto es posible debido a la capacidad de la red de ajustar dinámicamente su poder de computación para mantener un nivel consistente y estable de seguridad a pesar de los cambios en el número de nodos participando y su poder de computación.

A medida que más participantes se unen a la red y agregando poder computacional, la dificultad de estos problemas matemáticos aumenta y viceversa, asegurando que la red permanezca segura y resistente a actores malintencionados. Como resultado, la red de Bitcoin tiene disponibilidad dinámica, ya que puede adaptarse a las condiciones cambiantes y mantener su seguridad y estabilidad con el tiempo.

Hasta el momento, ninguno de los sistemas de blockchain PoS tiene la capacidad de proporcionar disponibilidad dinámica. Para comprender esto, debemos profundizar en el funcionamiento de PoW.

Comprendiendo los fundamentales del Proof-of-Work (PoW)

PoW utiliza recursos computacionales, específicamente el proceso de “hashing”, para producir nuevos bloques.

Esto significa que agregar un bloque a la cadena de bloques de Bitcoin requiere usar poder de procesamiento, resultando en consumo de energía por cada bloque agregado a la cadena.

Fuente: https://learnmeabitcoin.com/technical/longest-chain

La dificultad de producir una cadena aumenta con su longitud, lo que hace que sea costoso computacionalmente producir bloques.

Fuente https://learnmeabitcoin.com/technical/longest-chain

Significa que agregar bloques a una cadena de bloques requiere poder de procesamiento, por lo que una cadena de bloques más larga consume más energía y los nodos siempre la elegirán en lugar de una más corta.

Fuente : https://learnmeabitcoin.com/technical/longest-chain

Este gasto, que se presenta en forma de costos de electricidad, impide que los nodos deshonestos produzcan varios bloques diferentes. Como resultado, los nodos siempre adoptarán la cadena con la mayor cantidad de energía consumida, comúnmente conocida como la “cadena más larga”.

Esto hace que sea más fácil para los nuevos nodos que se unen al sistema para seleccionar la cadena honesta, lo que a su vez permite a la red (validadores) unirse y abandonar la red en cualquier momento. En resumen, esto permite la disponibilidad dinámica de la red de Bitcoin.

Los defectos fundamentales de los protocolos PoS

Los protocolos de prueba de participación, si bien se consideran más eficientes energéticamente que la prueba de trabajo, tienen sus propios problemas de seguridad. Entre estos se encuentran el problema de nada en juego (nothing at stake problem) / simulación sin costo (costless simulation).

Como no se necesitan recursos físicos para producir bloques en PoS, es posible construir una historia alternativa de la cadena de bloques y crear múltiples cadenas competidoras sin costo alguno, a diferencia de PoW, donde se debe incurrir en costos de energía para cada cadena competidora.

Nada en juego/ Simulación sin costo

fuente Nothing at Stake / Costless Simulation - Blockchain Academy

El problema de nada en juego, también conocido como simulación sin costos, ocurre cuando un productor de bloques evalúa la probabilidad de dos ramas A y B de una cadena de bloques y decide trabajar en ambas en lugar de solo una.

Esto da como resultado que el productor del bloque tenga una recompensa esperada más alta y que ninguna cadena contenga la participación más alta, lo que lleva a que la red no llegue a un consenso sobre la rama canónica.

Fuente Nothing-At-Stake, Long Range Attacks & Dynamic Availability - CSPR Ghost Staking

Los Ataques de Largo Alcance son un tipo de ataque en el que un validador no corre ningún riesgo de pérdida por mala conducta. El atacante construye una cadena larga al bifurcarse desde un punto anterior en la cadena de bloques principal y continúa agregando bloques a esta cadena. Esto dificulta que los nuevos participantes determinen qué cadena apoyar.

Para mitigar esto, se establecen puntos de control a lo largo de la cadena de bloques. Los bloques de confianza se designan como puntos de control y cualquier bifurcación que comience antes de un punto de control se considera inválida.

Sin embargo, para los nuevos participantes o validadores que han estado fuera de línea durante un período de tiempo, puede ser difícil determinar la cadena más larga, lo que los hace vulnerables a unirse a una cadena maliciosa. Esto da lugar al “Problema del Bootstrapping”.

Básicamente, el problema de Bootstrapping se refiere al problema de nuevos validadores que se unen a la red y potencialmente se unen a la cadena maliciosa, lo que aumenta la vulnerabilidad de la red a los ataques de largo alcance.

Cómo los protocolos PoS-BFT (Ethereum, Algorand, etc.) intentan resolver el problema de la simulación sin costo

En los protocolos PoS-BFT (Proof of Stake Byzantin Fault Tolerant), el consenso se alcanza entre los nodos que ejecutan el protocolo en todos los bloques, eliminando la aparición de bifurcaciones, ya que cada bloque producido recibe suficiente acuerdo. Esto elimina la necesidad de resolver desacuerdos.

Fuente: https://courses.grainger.illinois.edu/ece598pv/sp2021/lectureslides2021/ECE_598_PV_course_notes15_v2.pdf

Sin embargo, para operar de manera efectiva, el protocolo debe conocer el nivel de participación de los nodos en la red en un momento dado. Esto significa que con PBFT; se abandona la disponibilidad dinámica. Porque es imposible hacer que la red esté dinámicamente disponible y también saber el nivel de participación al mismo tiempo.

Además de eso, Ethereum intenta abordar el comportamiento malicioso dentro de su red mediante la implementación de medidas como la congelación de monedas haciedo stake y la imposición de sanciones mediante la reducción de monedas (slashing). Si bien este enfoque puede disuadir la actividad maliciosa, también restringe la capacidad de los participantes honestos para usar sus monedas y los expone al riesgo de sanciones, lo que desincentiva la participación de partes honestas con participaciones más pequeñas en la red y, por lo tanto, disminuye la descentralización de la red.

Simulación sin costo: Cómo lo aborda Cardano

Ouroboros Praos es el mecanismo de consenso actual utilizado en Cardano, y adopta un enfoque diferente para garantizar la seguridad y la integridad de la red en comparación con los mecanismos de consenso tradicionales como los protocolos de Prueba de Trabajo (PoW) o PoS-BFT.

La clave de la seguridad: función aleatoria verificable (VRF)

Ouroboros Praos utiliza una función aleatoria verificable (VRF) para elegir un nodo como líder de ranura para cada bloque.

Antes de cada época, se realiza un snapshot de distribución de staking, que se utiliza durante la elección. La semilla de aleatoriedad de la época anterior se utiliza como entrada para el VRF de cada nodo para generar un número pseudoaleatorio. El nodo con el número más alto se convierte en el líder de la ranura y crea el bloque, cifrando el número en el encabezado del bloque.

Fuente https://dl.acm.org/doi/10.1145/3243734.3243848

Todos los demás nodos usan su propio VRF para validar el resultado de la elección. El resultado de la elección del líder elegido no se revela hasta que se firma el bloque o el nodo gana.

Fuente ttps://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

Prevención del Comportamiento Malicioso

Si un nodo debe crear un bloque pero está fuera de línea, la oportunidad simplemente pasa y otros nodos no se dan cuenta. La red reconocerá como no válidos los intentos de otro nodo (por ejemplo, un atacante) de crear el bloque. Esto ayuda a garantizar un comportamiento honesto desde la perspectiva de corto plazo.

Al final de cada época, todos los números cifrados en los encabezados de los bloques se combinan y se utilizan para calcular la semilla de aleatoriedad para la próxima época. Esto crea un ciclo interminable de snapshorts de la distribución de staking, VRF y cálculo de semillas aleatorias que se repite a lo largo de cada epoch.

Fuente https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

La regla actual de elección de la cadena

Fuente IOHK | Ouroboros Genesis: A Provably Secure Proof-of-Stake Blockchain Protocol - YouTube

La cadena de bloques se mantiene a través de la regla de la cadena más larga, lo que significa que los líderes agregan un bloque al final de la cadena más larga que han observado y luego lo transmiten a la red.

En Ouroboros Praos, los nodos solo actualizan su cadena local si la nueva cadena, además de ser más larga, no se bifurca en más de “k” bloques de la cadena local [regla de profundidad acotada].

Inconvenientes de la regla simple de la cadena más larga en la configuración de PoS

El método en el que opera la regla de la cadena más larga en los protocolos de prueba de participación (PoS) como Ouroboros Praos no es el mismo que en las cadenas de bloques de prueba de trabajo (PoW). A pesar de que los protocolos PoS ayudan a mantener un comportamiento honesto y brindan información desde un nodo confiable a los nodos fuera de línea, aún son susceptibles a Ataques de Largo Alcance.

En el caso de circunstancias imprevistas, como un bloqueo del sistema o una interrupción de la red donde la cantidad de nodos en línea disminuye, las cadenas de bloques de PoS no pueden ajustar su seguridad y continúan produciendo bloques, lo que resulta en una interrupción.

Fuentehttps://twitter.com/eUTxO_pro/status/1616983286739529730?s=20&t=J7LHpQ3xT2zyDBoUOWxekQ

Esto requiere una capa adicional de confianza para el funcionamiento seguro del sistema, que no es ideal para una red descentralizada y sin permisos. Como resultado, el protocolo no puede funcionar en un entorno que permita la invocación arbitraria de partes para su ejecución.

Resolviendo el Problema de Bootstrapping con Ouroboros Genesis: Introduciendo la Regla de Plenitud

La regla de plenitud es una nueva regla de selección de cadena introducida con Ouroboros Genesis. Resuelve el problema de Bootstrapping seleccionando la versión de la cadena con la distribución de bloques más densa después del punto donde las cadenas divergen entre sí.

Cómo funciona la regla de la plenitud

Regla de la plenitud : los investigadores han observado que, si la mayoría de las partes siguen el protocolo, en cualquier segmento de tiempo suficientemente largo, la cadena correspondiente será más densa, especialmente después de una bifurcación. Pudieron demostrar que las cadenas de bloques antagónicas poco después del punto de divergencia exhibirán una distribución de bloques menos densa. Use esta regla para determinar cuál es la cadena de bloques correcta para conectarse.

La regla de plenitud hace que sea imposible que un solo nodo cree una cadena falsa y ayuda a prevenir ataques de largo alcance. Cuando hay disponibles varias cadenas de longitud similar, la regla de plenitud busca el punto en el que las cadenas divergen con respecto a su distribución de bloques.

Fuente https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

Luego divide el pasado más reciente de la historia de la cadena en períodos y determina para qué versión la distribución de bloques después del punto de divergencia es la más densa, cuál es la cadena que se seleccionará.

Fuente https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

Beneficios de la regla de la plenitud

Debido a la regla de la plenitud, los nodos que son nuevos en la red o que han estado fuera de línea por un tiempo pueden (volver a) unirse y garantizar que descargarán la versión correcta de la cadena, siempre que haya suficientes partes honestas.

Esto resuelve el problema de arranque y ayuda a prevenir ataques de largo alcance. Además, la regla de plenitud permite garantizar que nadie pueda falsificar su forma de crear un bloque durante el espacio de otra persona, lo que hace imposible que un solo nodo cree una cadena falsa.

Por qué Ouroboros Genesis hará que Cardano sea más seguro que otros protocolos PoS

La próxima actualización del protocolo Ouroborus, “la versión Génesis”, es el primer protocolo PoS que está matemáticamente probado para garantizar la persistencia y la vitalidad tanto en configuraciones sincrónicas como semisincrónicas, bajo el supuesto de que participa una mayoría honesta, al igual que Bitcoin.
Como resultado, Ouroboros Genesis hará que Cardano sea más seguro que otros protocolos PoS que requieren al menos 2/3 de participantes honestos (por ejemplo, Ethereum Casper, Algorand) y es igual de seguro que Bitcoin, pero con un gasto de energía mucho menor y un mejor rendimiento.