Traducción de contenido publicado por Nick, operador del pool CROWN.
El 29 de Julio del 2020 Cardano puso en marcha la era Shelley. Los Stake Pools rápidamente entraron en línea listos para producir bloques y descentralizar Cardano, un evento ciertamente histórico. El 13 de Agosto a las 21:52:20 se produjo el primer bloque público, y ahora mismo estamos un poco más alejados en el camino desde la creación de ese primer bloque. La fórmula de las recompensas y los parámetros han empezado a mostrar un panorama de lo que significa operar un Stake Pool en la blockchain Cardano.
Con más de 1000 pooles registrados, Cardano va bien en el camino de ser la blockchain más descentralizada. Actualmente hay alrededor de 300 pooles produciendo bloques regularmente por epoch, y el resto está luchando para mantenerse con vida. Pero el incentivo debe cambiar, para que Cardano difunda la distribución de bloques hacia más pooles.
Hay dos parámetros que son los más importantes en cuanto a descentralización, y seguridad de la red. Los parámetros son, “K” (número óptimo de Stake Pools) y “a0” (que influencia el pledge). Actualmente “K” tiene un valor de 150, que determina además el punto de saturación (alrededor de 210 millones ahora mismo por cada Stake Pool). Llegado a este punto, el Stake Pool llega a su límite en cuanto a recompensas, y estas comienzan a decrementarse para los delegantes. Esto supone un incentivo para que los delegantes de un pool saturado muevan su stake hacia un pool no saturado y comiencen a ganar mayores recompensas. La función de “a0” es incentivar a los operadores para que aumenten su pledge, y así prevenir ataques Sybil. El propósito, es prevenir que un operador logre tener demasiado poder de stake en sus pooles como para realizar un ataque a la red. Más adelante profundizaremos en “a0”
En estos momentos, de acuerdo a la manera en que están establecidos los parámetros, hay un puñado de operadores de pool que controlan más del 50% de la red. IOG representa una gran parte de estos, sin embargo, el hecho es que el stake total está sesgado por estos reconocidos operadores que administran múltiples pooles. Y esto perjudica a todo el ecosistema a medida que decrece la descentralización.
Veamos ahora algunos datos interesantes arrojados por la herramienta SeeADA.
Dado un marco donde operar, las personas eligen frecuentemente el camino que maximice sus ganancias. Esto es lo que crea la motivación hacia la innovación en un mercado libre. No debería haber ningún juicio sobre ningún operador que elija administrar más de un pool, el protocolo de hecho incentiva esta práctica. Por esto, es que se necesitan algunos cambios en Cardano para llegar finalmente al despliegue exitoso de 1000 stake pools como valor de “K”.
Primeramente seguro pensarás que incrementar el parámetro “K”, es el camino a seguir, sin embargo, esto probablemente no funcionará. Incrementar “K” tiene como consecuencia la decrementación del punto de saturación, lo cual reduce las comisiones generales recolectadas por los pooles. Si nada limita a un operador de que incremente el número de pooles desplegados, entonces muchos eligirán esta vía. Si por ejemplo, alguien llega a tu negocio y te dice que, “va a reducir tus ganancias un 50%” , entonces la solución obvia sería doblar el número de lugares donde desplegar dicho negocio, para entonces incrementar las ganancias, ya que no existe algo que te lo impida. Esto es básicamente, lo que sucederá con el incremento de “K”.
Incrementar “a0” hasta un nivel que desincentive a los operadores en la creación de múltiples pooles, podría ser una práctica para que esto no suceda. Sin embargo, hay dos problemas al hacer esto.
El primero, es el cual preocupa a muchos operadores de pooles. Si “a0” es cambiado de forma tal que se reduzcan las recompensas por tener pledge bajo, entonces esto será un castigo injusto para aquellos, especialmente los que viven en países aún en desarrollo , que no pueden permitirse el llamado, “pagar para entrar en el juego”. Aunque, en cierto punto esto será inevitable, ya que fue diseñado como seguridad de la red. Al final de este artículo, les enseñaremos un escenario donde esto podría minimizarse.
El segundo problema es, que por diseño, “a0” reduce las recompensas, lo cual no supone un problema tal y como es. Sin embargo, la fórmula actual no es efectiva para el rango de pledges que tienen los operadores. Realicé múltiples escenarios en la calculadora de recompensas con “a0” , intentando obtener una reducción de las recompensas para un delegante que pertenece a un pool de bajo pledge y teniendo “K” un valor de 1000. Fui capaz solamente de obtener una diferencia de 0.63 ADA al año para un delegante que pertenece a un pool con 100K de pledge. Mientras experimentaba esto, las recompensas para todo el pool se redujeron a un nivel desfavorable, lo cual perjudica a todos. El rango de pledge que utilicé estuvo entre 10K y 1M ADA, lo cual es un ejemplo real de la mayoría de los operadores. Hay muchos más efectos negativos en las recompensas generales que cualquier efecto positivo que tenga el incentivo que alienta a los operadores a que desplieguen un solo pool. La fórmula no funciona para la cantidad normal que un operador puede ofrecer para el pledge. La razón de esto, es que “a0” tiene una relación lineal con el pledge. Veamos a continuación algunos ejemplos prácticos:
Valor de parámetros tomados para cálculos de recompensas :
Delegante con 100K ADA
K = 1000
Punto de saturación = 31M
a0 = 0.3
Pool con 10K de pledge y 2% de comisión variable.
Resultado de 5,134.92 ADA anuales.
Pool con 1M de pledge y 2% de comisión variable.
Resultado de 5,141.27 ADA anuales.
Ahora mostraremos lo que sucede cuando “a0” es incrementado en un intento de incentivar el despliegue de un solo pool.
Valor de parámetros tomados para cálculo de recompensas:
Delegante con 100K ADA
K = 1000
Punto de saturación = 31M
a0 = 8
Resultado de 661.42 ADA anuales.
Pool con 10K pledge y 2% de comisión variable.
Resultado de 662.05 ADA anuales.
Pool con 1M pledge y 2% de comisión variable.
¿Cómo nos aseguramos entonces de que la red sea segura y descentralizada? La fórmula de las recompensas necesitaría ser ajustada, entonces “a0” puede actuar como un termostato, y ajustar el parámetro para lidiar con la cantidad de pledge de un operador. Existe una propuesta llamada “Beneficio Curvo del Pledge” (https://github.com/cardano-foundation/CIPs/pull/12), la cual propone la idea de que “a0” se comporte como una curva y sea ajustable. La idea suena interesante, y podría ser una posible solución a los problemas mencionados arriba. Investigar sobre cómo esto afectaría a los operadores de stake pools necesitaría ser examinado a fondo antes de implementar este tipo de cambio en el protocolo.
Hay una compensación entre la seguridad de la red, y lo que es justo en el protocolo PoS. Ahora mismo, no hay forma de tener 100% de protección contra ataques Sybil y 100% de justicia en el protocolo PoS. Encontrar ese balance es algo que debe ocurrir con el paso del tiempo. Sin embargo, la seguridad de la red necesita ser una prioridad, porque la otra alternativa es tener una red inservible.
El camino para lograr la implementación de los 1000 Stake Pool exitosamente no sucederá en cosa de un día. El primer paso es obtener los incentivos correctos tomando en cuenta los actuales y realizando los ajustes necesarios. La idea de una curva “a0” ajustable ayudará a marcar el balance en conjunto con el ajuste de “K” . Con el paso del tiempo, se incrementará el uso de la red seguido del valor de ADA, y al pasar esto, el parámetro “K” podrá entonces incrementarse aún más, empujando la delegación hacia pooles con pledges más bajos.
Hacer esto de la mejor manera posible es importante para el protocolo, para los operadores de Stake Pools, para los delegantes, y cualquiera que use Cardano. Tomará tiempo, y los ajustes a los parámetros deberán realizarse durante años, mientras el sistema crece y madura.
Muchas gracias.