🇪🇸 ¿Cómo se calculan las recompensas de un Stake Pool?

:cuba: :es: Traducción de How are the stake pool rewards calculated? publicado por Lincon Vidal operador del Pool Every Block Studio (EBS).

Palabras y frases claves del artículo relacionadas con el ecosistema Cardano que serán respetadas en el idioma inglés, dado su continuo uso en el foro, artículos de sitios web, y redes sociales.

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.

Epoch: Unidad de tiempo dentro de la red Cardano que dura 5 días.

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

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

Staking: Proceso en el cual se delegan los recursos ADA.

Pledge: Se explica en el propio artículo.


Si has revisado nuestro contenido previo en Infoblock sobre La Historia de las Recompensas, entonces ya sabes de qué está compuesto el contenedor, y cuáles son las fuentes de recompensas que se distribuyen a los operadores. Podemos concluir que el mecanismo de incentivo es la maquinaria principal de una Blockchain pública, ya que a través de esto los operadores son recompensados por el servicio y son exhortados a actuar en favor del protocolo. Redes como Bitcoin, Ethereum, Tron y Tezos pagan una recompensas fija por cada bloque producido, lo cual conlleva a que los más curiosos se pregunten, cuántas recompensas paga Cardano por bloque.

tabela

En la Blockchain Cardano, el mecanismo de recompensas es uno de los componentes de seguridad más importante del protocolo Ouroboros, desarrollado a través de una extensiva investigación científica para asegurar que el mecanismo conduce a largo plazo a una descentralización de la red. Una de las diferencias en comparación con el mecanismo de otras Blockchains, es que la distribución de recompensas no es fija por cada bloque. En cambio las recompensas distribuidas para los Stake Pools y sus delegantes envuelven: (1) La participación total de un Stake Pool y (2) su rendimiento.

Recompensas y Staking.

Para comprender el mecanismo de recompensas, podemos dar un vistazo en detalle a los componentes que son usados para el cálculo y cómo cada uno influye en las recompensas. Consideraremos primero cómo las recompensas de un Stake Pool es calculada en función de su Stake y entonces, cómo el rendimiento da peso al valor final de las recompensas.

Imaginemos que f es una función que calcula las recompensas de cada entidad en la red basándose en dos factores de los Stake Pools: s, el Pledge del Stake Pool; y σ, el Stake total de dicho Stake Pool.

Ambos valores son relativos al total de ADA en circulación, esto significa que ellos representan una fracción (o porcentaje) de la cantidad que el Stake Pool controla de la monedas existentes. La fracción referente al Pledge, la cual llamamos s, representa el Stake delegado por el propio operador del Pool, mientras σ representa el Stake total, incluyendo el Pledge y el Stake de los delegantes.

Si hubiese solo un Stake Pool, podríamos distribuir totalmente las recompensas R del contenedor solamente para él, independientemente de otros factores. Asumamos que el contenedor contiene un total de 200 mil ADA

Para dividir el contenedor en proporción al Stake relativo de cada entidad, necesitamos considerar el parámetro σ multiplicando el total de recompensas en el contenedor.

De esta forma, e ignorando el Pledge por ahora, si un Stake Pool tiene un 1% de todas las ADA en circulación (σ = 0.01), él recibirá un 1% del contenedor. En otras palabras f(s, σ) = 200000 * 0.01 = 2000. El problema que surge cuando se asocian las recompensas de un modo directamente proporcional, es que entonces los Stake Pools con mayores Stake siempre recibirán la mayoría de las recompensas, siendo cada más grandes, y posiblemente centralizando la red a través de grandes entidades.

Para controlar el crecimiento de las recompensas de un solo Stake Pool, en la Blockchain Cardano hay un concepto de, punto de saturación, que limita la ganancia de recompensas, lo llamaremos z_0, que también representa un valor relativo al total de monedas en circulación. Actualmente el punto de saturación corresponde a aproximadamente 0.2% del total, el equivalente a 64 millones de ADA. A través de este parámetro, limitamos la cantidad de Stake considerado en el cálculo de las recompensas hasta un máximo de 0.2% del total de ADA. Pondremos una línea (σ’ en vez de σ) para denotar que la participación estará limitada por el punto de saturación z_0.

Entonces, en nuestro previo ejemplo, un Stake Pool estaría limitado a recibir un máximo de f(s, σ) = 200000 * 0.002 = 400. Sin embargo, no estamos considerando aún cómo el Pledge influye en el cálculo de las recompensas. El propósito del Pledge es proteger la red de Ataques Sybil suministrando mayores recompensas para los operadores que comprometen y delegan sus propios fondos en su Stake Pool y desalentando la creación de muchos Pools con poco Stake. El protocolo Ouroboros implementa el parámetro a_0 como el factor de influencia del Pledge, actualmente establecido en a_0 = 0.3. Obviemos el punto de saturación por ahora para intentar mantener simple el cálculo de la función de las recompensas, incluyendo el factor de influencia del Pledge (a_0) y el Pledge del Stake Pool.

Los último cambios que necesitamos hacer a la fórmula, están relacionados al punto de saturación z_0, el cual también necesita estar incluido en el cálculo. Limitamos el Pledge hacia el punto de saturación del mismo modo que lo hicimos con el Stake total, denotando este valor limitado con s’ en vez de s, multiplicando un término más para obtener finalmente la forma final de la función de las recompensas.

Note que, si el factor de influencia del Pledge es cero, ejemplo a_0 = 0, obtendremos la forma reducida R * σ’.

Factor rendimiento

Ya que las recompensas de un Stake Pool son calculadas con la función descrita, el valor obtenido es ajustado por un factor de rendimiento que pondera las recompensas en relación al número de bloques producidos.

Este factor es calculado por β/σ, donde β, es la fracción de bloques producidos por el Pool en un Epoch, representando una fracción en la forma de bloques producidos / 21600, σ es otra vez, la fracción del Stake relativo controlado por el Pool, Note que, β y σ son fracciones que deben obtener el mismo valor durante el tiempo, para que la fracción de bloques generados sea proporcional al Stake controlado. Dado que la asignación de Slots para definir las entidades que producirán bloques funciona como una lotería, a veces un Pool puede producir muchos o pocos bloques de lo esperado, pero en promedio el factor de rendimiento debe ser igual a 1 para los grupos con un rendimiento ideal.

En resumen:

Generar muchos o pocos bloques hace una diferencia en las recompensas, pero no hay un valor fijo de recompensas como en otras Blockchains. a largo plazo, las recompensas son proporcionales al Stake controlado por el Stake Pool.

Nos vemos en el próximo Epoch.

¿Todavía tienes dificultades para comprender cómo las recompensas de los Stake Pools se calculan en la Blockchain Cardano ? Hicimos esta historia interactiva para ayudarte a comprender fácilmente. ¡Compruébalo aquí en pantalla completa!

Muchas Gracias!!

3 Likes

Es la mejor explicación que he encontrado hasta ahora. La verdad es que se explica paso a paso y se entiende muy bien. Sin embargo, hay un punto donde me atasco y es en relación al cálculo del límite del Pledge hacia el punto de saturación ya que no sé contra qué valor debemos compararlo. En el caso que sea el total de ADA existente en el sistema, nunca podrá superar siquiera el valor de z_0 que es 0,2. Por lo tanto, ¿contra qué valor debemos calcular el facto de influencia del pledge? ¿contra las recompensas totales?

Un saludo.

Muy buena explicación. Una pregunta, ¿puede un delegante recibir recompensas aunque el nodo en el que delegó no haya minado ningún bloque??