Ouroboros ¿Cómo funciona el protocolo?

Las cadenas de bloques requieren un mecanismo de acuerdo  entre los participantes de la red sobre cómo añadir nuevas transacciones  al ledger. Este mecanismo se conoce como protocolo de consenso.
El objetivo del protocolo de consenso 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.

¿Qué pasa si no estás en línea? (pooles de staking)

Para generar un bloque hay que estar en línea, pero pedir a  todos que estén en línea en todo momento es poco práctico y poco  realista. Es por ello que Ouroboros introduce la figura de Participación  Delegada. Como parte interesada, puedes delegar tu participación a un  tercero para que actúe en tu nombre siempre que sea elegido líder del  intervalo.
A estos delegados se les conoce como stake pools. Son  miembros de la comunidad que se comprometen a ejecutar el protocolo en  tu nombre, y a estar en línea casi el 100% del tiempo.
Una cosa importante que hay que tener en cuenta es que sólo  delegas tus derechos para participar en el protocolo, no sus tokens  reales. Tus ADA aún está seguras y bajo tu control en tu billetera, y  los fondos no serán bloqueados, por lo que incluso puedes realizar  transacciones.

¿Qué hay de los incentivos?

Las partes interesadas que crean bloques son incentivadas a  participar en el protocolo mediante el cobro de comisiones por  transacción. Pero Ouroboros no incentiva a las partes interesadas a  invertir recursos computacionales para crear los bloques. Más bien,  prefiere la disponibilidad y la verificación de transacciones.
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.
Se puede elegir un stake pool diferente, o actuar por cuenta propia, en cualquier momento.

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

Dado que las partes interesadas no siempre están en línea,  van y vienen (también conocida como disponibilidad dinámica), y a veces  están fuera de línea durante largos períodos, es importante que puedan  volver a sincronizarse con la cadena correcta cuando vuelvan a estar en  línea.
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 genesis. Esto hace que el  protocolo sea seguro contra el llamado “ataque de largo alcance”  (long-range attack).

Aleatoriedad autogenerada

Hacer que la selección del líder del intervalo sea justa y segura procedimiento de staking requiere una fuerte dosis de aleatoriedad.
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 de una manera mejor que la  Prueba de Trabajo (PoW), porque Ouroboros considera dos escenarios  clave:
  • 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.
  • 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 - El tiempo se divide en  ciclos (epochs) e intervalos (slots), y comienza en el bloque Genesis.  Sólo el líder de un intervalo puede firmar un bloque para dicho  intervalo en particular.
2 - Registro: Lo primero que un usuario debe hacer para participar en el protocolo es registrarse a la red, para sincronizar con el ledger.
  • El reloj global indica el intervalo actual.
  • El Oráculo Aleatorio Global (Global Random Oracle) produce valores aleatorios (v) y los entrega al usuario.
3 - Procedimiento de staking:
3.1 - Al principio de cada ciclo, los participantes  obtienen -de la cadena de bloques- la distribución del stake del último  bloque de 2 ciclos anteriores. Por ejemplo, si el ciclo actual es el  100, la distribución del stake utilizada es la misma que en el último  bloque del ciclo 98.
3.2 - Oráculo Aleatorio Global: Es una función de hashing  que toma los valores aleatorios “v” (incluidos en cada bloque por el  líder del intervalo para este propósito) de los primeros ⅔ de los  intervalos del ciclo anterior y los hash juntos, y los usa como la  semilla aleatoria para seleccionar los líderes del intervalo.
3.3 - En cada intervalo los participantes evalúan la  Función Aleatoria Verificable (Verifiable Random Function - VRF) con su  clave secreta. Si el valor de salida (v) está por debajo de un  determinado umbral, el pool se convierte en el líder del intervalo.
4 - Certificado: La VRF produce dos salidas: un valor  aleatorio (v) y una prueba (π) que el líder del intervalo incluirá en el  bloque que produce para certificar que es el líder legítimo de ese  intervalo en particular.
5 - El líder del intervalo realiza las siguientes tareas:
5.1 - Obtiene las transacciones a incluir en su bloque. 
5.2 - Incluye en su bloque el valor aleatorio (v) y la prueba (π) obtenida a partir de la salida de la VRF. 5.3 -  Antes de crear el bloque, genera una nueva llave secreta llamada  Firma de la Llave-Evolutiva (Key-evolving Signature). La llave pública  sigue siendo la misma, pero la llave secreta se actualiza en cada paso y  se borra la llave antigua. Es imposible falsificar firmas antiguas con  llaves nuevas. Y también es imposible derivar llaves anteriores a partir  de otras nuevas. 5.4 - Finalmente, transmite el nuevo bloque a la red.
6 - Las recompensas obtenidas por los líderes de intervalos  se calculan al final del ciclo. Las recompensas provienen de las  comisiones por transacción y de los fondos de la reserva de ADA.

¿Qué sucede en el caso de que haya una bifurcación en la cadena?

Un aspecto clave del procedimiento descrito anteriormente  es que, de vez en cuando, producirá intervalos sin un líder o intervalos  con varios líderes. Esto significa que los nodos pueden recibir cadenas  válidas de múltiples fuentes. Para determinar qué cadena adoptar, cada  parte reúne todas las cadenas válidas y aplica la regla de selección de  cadena. Lo mismo hacen los usuarios que han estado desconectados durante  un tiempo y necesitan sincronizarse con la cadena.
En primer lugar, el usuario utiliza el reloj global para  asegurarse de que todos los parámetros de tiempo relevantes, ciclo,  intervalo, etc., están actualizados.
Luego filtra todas las cadenas válidas (cadenas cuyas  firmas son consistentes con el bloque génesis y con las claves  registradas por la Firma de la Llave-Evolutiva, la Función Aleatoria  Verificable y el Oráculo Aleatorio Global.
Finalmente, aplica la regla de selección de cadena: se  elije la cadena más larga, siempre y cuando crezca más rápidamente (sea  más densa) en los intervalos que siguen al último bloque común de ambas  cadenas competidoras.
Esta regla de selección de cadena permite que una parte que  se une a la red en cualquier momento se sincronice con la cadena de  bloques correcta basándose sólo en una copia confiable del bloque  génesis, y observando cómo crece la cadena durante un tiempo suficiente.


Visita
CARDANO Community Hub- España / Uruguay / Argentina (Centro de Comunidad)
Únete   
Delega en el Stake Pool ADA BOOSTER  👉Ticker: [BOOST] para apoyar a la comunidad.
 
 
Sitio web asociado, Cardano en  Argentina http://cardano.ar
 

Fuente: https://forum.cardano.org

Comentarios

Entradas populares de este blog

¿Qué es el ROI o ROA?

¿Qué es Cardano?

Variable fee and rewards