¿Qué función realiza un Stake Pool en Cardano? (vista rápida)

Stake Pool : Entidad de la red que, entre otras cosas, se encarga de producir y validar bloques. Puede actuar individualmente, o como tercero en nombre de varios usuarios de la red que lo elijan para ello.

Stake : Cantidad de ADA delegada a un Stake Pool que controla un usuario, o cantidad de ADA que controla un Stake Pool.

Slot : Unidad de tiempo de la red Cardano que dura un segundo, dentro de cada Slot puede existir la posibilidad de crear un bloque.

Slot Leader : Stake Pool que se le ha asignado la posibilidad de crear un bloque para un Slot en particular.

Verified Random Function (VRF): Función aleatoria verificada que se usa, entre otras cosas, para saber si eres elegido como Slot Leader para un Slot en particular.

CÁLCULO DE FIRMA SLOT OUROBOROS : Los factores que se tienen en cuenta son la llave vrf, el % de stake activo (sigma), el factor de descentralización d y un parámetro llamado nonce que es aleatorio.

Key Evolving Signature (KES): Llave evolutiva de firma, usada por los Stake Pools para firmar los bloques que producen.

Number that can be Only used Once (Nonce): Número que puede ser usado una sola vez, es uno de los valores de entrada de la VRF.

Proof of Stake : Prueba de participación. Algoritmo de consenso de una Blockchain, en cardano se le llama Ouroboros.

En términos simples, un Stake Pool de la red Cardano, es un participante en el algoritmo de consenso Proof of Stake, llamado Ouroboros.

Durante la fase Shelley, la red Cardano utilizará Ouroboros Praos. Donde las principales funciones de un Stake Pool son:

1- Forjar nuevos bloques

2- Verificar nuevos bloques

3- Confirmar transacciones

1- Para cada Slot, que dura 1 segundo, el Stake Pool usa la VRF para chequear si es un Slot Leader. Dicha función toma como valores de entrada: El ID del Slot, el Nonce, y las llave VRF para firmar, y genera un valor aleatorio como salida. Si el valor de salida es menor que cierto umbral, que es determinado por el Stake relativo del Stake Pool, entonces es coronado como el Slot Leader para ese Slot en particular. Mientras mayor sea el Stake de un pool, más probabilidad habrá de que se convierta en un Slot Leader.

2- Si un Stake Pool es asignado como Slot Leader, entonces firma el bloque usando la llave de firma KES, junto con la salida computada por la VRF, la prueba de que fue elegido como Slot Leader, y las transacciones pendientes de la red.

3- Finalmente, este nuevo bloque creado por dicho Stake Pool, es transmitido hacia otros nodos de la red.

Ya que un Stake Pool necesita estar comprobando a cada segundo si es elegido Slot Leader, se hace imperativo que los Stake Pool estén en línea el 100% del tiempo, para asegurarse de que puedan producir un bloque en caso de ser elegido como Slot Leader.

El valor del Nonce usado en la VRF es usado como un valor semilla para generar un número aleatorio. Es creado al realizar un hash con las salidas generadas por las ⅔ primeras VRF de los bloques del epoch anterior.

Si un Stake Pool no está forjando bloques, aun así juega un rol dentro de la red mediante la verificación de bloques y confirmación de transacciones. La figura de abajo ilustra cómo son verificados los bloques, mientras el Stake Pool espera para ser elegido como Slot Leader.

El Stake Pool usa la VRF para comprobar si es elegido como Slot Leader para cada Slot.

Un nuevo bloque es recibido por los Nodos emparejados con el suyo.

El Stake Pool verifica la prueba VRF del bloque, usando la llave pública de verificación VRF del correspondiente Stake Pool que firmó el bloque. Si es válido, se añade a la blockchain local.

Una propiedad interesante de Ouroboros Praos es que cada Stake Pool intenta independientemente determinar con la VRF si es o no, elegido como Slot Leader. El calendario de asignación de liderazgo es conocido de forma previa, y los pooles sabrán quién fue elegido como Slot Leader al inicio de la época.

También puede ocurrir que coincidentemente, dos o más Stake Pools sean elegidos por el protocolo como Slots Leaders de un solo Slot. A este fenómeno se le llama batalla de Slots. Las batallas de Slots son resueltas mediante la VRF, el bloque que tenga el menor valor de salida arrojado por la VRF es determinado como el ganador de ese Slot.

El código dentro de los Nodos Cardano desarrollado por IOHK realiza todas estas acciones, luego de que el operador del Stake Pool haya configurado el programa para operarlo.

2 Likes