Ouroboros ¿Cómo funciona el protocolo? (vista rápida)

Las cadenas de bloques requieren un mecanismo de acuerdo que se conoce como protocolo de consenso que es asegurar que sólo se adopte y se siga una cadena, de lo contrario, el sistema colapsaría inmediatamente.

Ouroboros, un algoritmo de consenso de prueba de participación

En Ouroboros, no hay una carrera entre las partes interesadas para producir un bloque (como en PoW de bitcoin). En su lugar, un líder del intervalo (slot) es seleccionado al azar, proporcionalmente a la cantidad de tokens que posea (stake), para tener la oportunidad de crear un nuevo bloque.

Así que no es el poder lo que te da la oportunidad de producir un nuevo bloque (y ser recompensado por ello), es el stake lo que aumenta las posibilidades de ser elegido.

Dado que no hay una carrera para minar un bloque, no hay desperdicio de energía ni de recursos computacionales. En ese sentido, Ouroboros es un protocolo más eficiente y económico que el protocolo de Bitcoin, manteniendo todas las garantías de seguridad.

Las recompensas provienen de dos fuentes: las comisiones por transacción y los fondos extraídos de la reserva de ADA.

En Ouroboros, los incentivos no dependen de los bloques, sino que las recompensas de un ciclo (epoch) se recogen de un fondo de reserva y se distribuyen entre los stake pools y las partes delegantes que participaron durante los intervalos (slots) de forma proporcional a su participación.

En el caso de los pools, cada pool líder obtiene una fracción de las recompensas para cubrir sus costes operativos y un margen de beneficio. El resto se distribuye entre los miembros del pool líder, de forma proporcional a la participación que han delegado al mismo.

¿Y si por alguna razón se produce una bifurcación?

La característica clave de Ouroboros Génesis es que, gracias a una única regla de selección de la cadena, permite a las partes nuevas, o las que se unen de nuevo, sincronizarse con la “cadena buena” con sólo una copia confiable del bloque génesis. Esto hace que el protocolo sea seguro contra el llamado “ataque de largo alcance” (long-range attack).

Aleatoriedad autogenerada

El protocolo Ouroboros (específicamente Ouroboros Praos y Ouroboros Genesis) incorpora una característica llamada Global Random Oracle que produce una aleatoriedad distinta en cada ciclo.

Esto se logra mediante la implementación de una Función Aleatoria Verificable (Verifiable Random Function). Cuando se evalúa con la llave de un stake pool, devuelve un valor aleatorio que se almacena en cada bloque producido. El hashing de todos los valores del ciclo anterior se convierte en la semilla aleatoria para el procedimiento de staking. La propia cadena de bloques se convierte en su fuente de nueva aleatoriedad.

Por eso el protocolo se llama Ouroboros, la serpiente que se come su propia cola.

Promoviendo la descentralización

Finalmente, el mecanismo de incentivos de Ouroboros promueve la descentralización del sistema porque Ouroboros considera dos escenarios clave:

  1. Por un lado, un stake pool sólo puede actuar como delegado si representa a un cierto número de partes interesadas cuya participación conjunta supera un determinado umbral, por ejemplo, el 0,1% de toda la participación en la cadena de bloques. Esto evita un ataque de fragmentación, donde alguien intenta afectar el funcionamiento del protocolo aumentando la población de delegados.
  2. Al mismo tiempo, cuando la participación agregada de un stake pool crece más allá de un cierto umbral, las recompensas se vuelven constantes. Esto hace que dicho pool en particular sea menos atractivo, ya que las partes interesadas no estarían maximizando sus recompensas. Por ejemplo, si el umbral se fija en el 1%, una stake pool con una participación del 2% obtendría las mismas recompensas que otra con una participación de sólo el 1%.

Todas estas funcionalidades convierten a Ouroboros en la mejor tecnología PoS hasta la fecha. Y su implementación se encuentra exclusivamente en la cadena de bloques de Cardano.

1 Like