Documento Original publicado el 23 de Octubre de 2018
Ver Documento Original aquí.
En un protocolo de cadena de bloques (blockchain) de Prueba de Participación (Proof of Stake -PoS), el libro mayor es mantenido por las partes interesadas que tienen activos en ese libro mayor. Esto permite que blockchains PoS utilicen menos energía en comparación con los protocolos de Prueba de Trabajo (Proof of Work -PoW) u otros tipos de blockchains. Sin embargo, este requisito impone una carga a las partes interesadas. Requiere que un buen número de ellos estén en línea y mantengan una conectividad de red lo suficientemente buena como para que puedan recoger las transacciones y hacer que sus bloques de PoS lleguen a los demás sin retrasos sustanciales en la red. De ello se deduce que cualquier libro mayor de PoS se beneficiaría de nodos de servidor fiables que contienen activos y se focalizan en el mantenimiento.
El argumento de los Pools de Participación (Stake Pools)
La riqueza se distribuye típicamente de acuerdo con una ley de poder como la distribución de Pareto , por lo que la ejecución de nodos fiables que ejecutan el protocolo PoS puede ser una opción sólo para un pequeño y rico subconjunto de partes interesadas, dejando a la mayoría sin la capacidad de ejecutar dichos servicios. Esto no es deseable; sería mejor si todos tuvieran la capacidad de contribuir al mantenimiento del libro mayor (ledger). Un enfoque para rectificar este problema es permitir la creación de Pools de Participación. Específicamente, esto se refiere a la capacidad de las partes interesadas para combinar su participación y formar una única entidad, el Pool de Participación, que puede comprometerse en el protocolo del PoS utilizando la participación total de sus miembros. Un Pool tendrá un administrador (Pool Manager) que será responsable de ejecutar el servicio que procesa las transacciones. Al mismo tiempo, el administrador del pool no debería poder gastar los fondos que su Pool representa, mientras que los miembros que están representados por el Pool deberían tener la libertad de cambiar de opinión y reasignar sus activos si lo desean a otro Pool. Por último, y lo que es más importante, cualquier parte interesada debería poder aspirar a convertirse en un administrador de Pool (Pool Manager).
Participar en el mantenimiento del libro mayor (ledger) implica costos. Ciertamente no tan altos como en el caso de un protocolo del PoW pero, sin embargo, sigue siendo significativo. Como resultado, es sensato que la comunidad de todas las partes interesadas incentive de alguna manera a aquellos que apoyan al libro mayor mediante la creación de servidores y el procesamiento de transacciones. Esto puede lograrse combinando las contribuciones de los usuarios del libro mayor (en forma de comisiones de transacción) y la inflación de la oferta de monedas en circulación (mediante la introducción de nuevas monedas en circulación que deben ser reclamadas por los participantes en el protocolo).
En el caso de Bitcoin, disponemos de los dos mecanismos anteriores, la incentivación y los pools. Por un lado, la minería se ve recompensada por los honorarios de transacción, así como por una recompensa por bloque que es fija y disminuye con el tiempo siguiendo una serie geométrica. Por otra parte, los pools pueden facilitarse dividiendo el trabajo necesario para producir bloques entre muchos participantes y utilizando PoWs "parciales" (que son PoWs de menor dificultad que el indicado por el estado actual del libro mayor) como prueba de la participación en el pool.
Es sencillo aplicar un tipo similar de mecanismo de incentivación en el marco del PoS. Sin embargo, uno debería preguntarse primero si un mecanismo similar a Bitcoin (o cualquier otro mecanismo) convergería hacia una configuración de sistema deseable. Lo que nos lleva a la pregunta importante: ¿cuáles son las configuraciones deseables del sistema? Si la única consideración es minimizar los costos de procesamiento de transacciones, en un ambiente libre de fallas, la configuración económicamente óptima es dictatorial. Una de las partes mantiene el libro mayor como un servicio mientras que todas las demás participan en el pool creado por esta parte. Esto es claramente un resultado indeseable porque el líder único de pool se convierte también en un único punto de falla en el sistema, que es exactamente el tipo de resultado que se supone que debe evitar un libro mayor (ledger) distribuido. De ello se deduce que la coexistencia de muchos pools, es decir, la descentralización, debería ser una característica deseable del mecanismo de incentivación del libro mayor.
Esquemas de Distribución de Recompensas para PoS (Reward-sharing schemes for PoS)
Entonces, ¿cómo se vería un plan de premios compartidos en PoS? Las recompensas deben proporcionarse a intervalos regulares y los costos de mantenimiento del pool deben ser retenidos por el administrador del pool antes de distribuir las recompensas restantes entre los miembros. Dado que es posible realizar un seguimiento de la pertenencia al pool en el propio libro mayor utilizando las claves de acumulación (staking keys) de los participantes, las particiones de recompensa dentro de cada pool pueden codificarse en un contrato inteligente y pasar a formar parte del servicio de mantenimiento del libro mayor. Lo primero que hay que hacer es recompensar a los administradores de los pools por su iniciativa empresarial. Un certificado de creación de pool publicado en el libro mayor declarará un margen de beneficio que se deducirá de las recompensas del pool después de restar los costes operativos, que también debería declararse como parte del certificado de creación de pool. La declaración de costes debe actualizarse con frecuencia para absorber cualquier volatilidad que tenga el token nativo del sistema con respecto a la moneda que denomina los costes reales del administrador del pool. Al mismo tiempo, el certificado de creación de un pool, respaldado por una o más claves de acumulación (staking keys) proporcionadas por las partes interesadas, puede declarar una cierta cantidad de participación que "está detrás" del pool y puede utilizarse como indicación de que el pool representa una entidad genuina de una o más partes interesadas o como mecanismo para garantizar el cumplimiento del comportamiento correcto del protocolo.
Dada la configuración anterior, ¿cómo van las tarifas a los mecanismos similares a los de Bitcoin con respecto al objetivo de descentralización? En Bitcoin, suponiendo que todos sigan el protocolo, las recompensas se dividen en proporción al tamaño de cada pool. Por ejemplo, se espera que un fondo minero con el 20% del poder de trituración (hashing power) total obtenga el 20% de las recompensas. Esto se debe a que las recompensas son proporcionales al número de bloques obtenidos por el pool y el número de bloques es a su vez proporcional a la potencia minera del pool. ¿Lleva esto a un sistema descentralizado? La evidencia empírica parece sugerir lo contrario: en Bitcoin, los pools mineros se acercaron (y ocasionalmente incluso superaron) el umbral del 50% que es el límite superior para asegurar la resistencia del libro mayor. Un simple argumento puede validar esta observación empírica en el marco de nuestros planes de reparto de premios: si los pools se recompensan proporcionalmente a su tamaño y los miembros del pool proporcionalmente a su participación en el pool, lo racional sería centralizarlos en un pool. Para ver esto, considere lo siguiente. Al principio, es razonable esperar que todos los jugadores que son lo suficientemente ricos como para permitirse el lujo de crear un pool lo hagan creando o alquilando equipos de servidor y promocionándolos con el objetivo de atraer a los miembros para que su parte de las recompensas crezca. Las otras partes interesadas que no son administradores de pool se unirán al pool que maximice su rentabilidad, que será el que tenga el menor coste y margen de beneficio. La competencia por ganar estos miembros comprime los márgenes de ganancia a valores muy pequeños. Pero incluso con un margen de beneficio cero, todos los demás pools perderán frente al pool con el coste más bajo. Suponiendo que no haya vínculos, este fondo único atraerá a todas las partes interesadas. Finalmente, otros administradores del pool se darán cuenta de que estarán en mejores condiciones de unirse a ese pool en lugar de mantener el suyo propio porque recibirán más por la participación que poseen. Eventualmente, el sistema convergerá hacia un fondo único dictatorial.
La Figura 1 muestra una representación gráfica de esto. Es el resultado de una de las numerosas simulaciones que nuestro equipo ha llevado a cabo en el proceso de destilación de esquemas efectivos de distribución de recompensas. En el experimento, una serie de partes interesadas siguen un proceso reactivo en el que intentan maximizar sus beneficios basándose en la configuración actual del sistema. El experimento conduce a un pool único centralizado, validando nuestras observaciones teóricas anteriores para esquemas similares a Bitcoin. Desde la perspectiva de la descentralización, ésta es una tragedia de los comunes: aunque los participantes valoran la descentralización como un concepto abstracto, ninguno de ellos quiere cargar con ella individualmente.
Figura 1. Centralización mostrada por un esquema de reparto de premios similar al de Bitcoin en una simulación con 100 partes interesadas. Inicialmente, los interesados crean un gran número de pool. Por turnos, las partes interesadas intentan maximizar sus beneficios y cambiar de estrategia, lo que conduce a un punto de convergencia en el que sólo existe pool único.
Un mejor sistema de reparto de recompensas
Claramente tenemos que hacerlo mejor que una dictadura! Una primera observación es que si queremos lograr la descentralización, la linealidad entre las recompensas y el tamaño debería disminuir después de cierto nivel. Esto se debe a que, mientras que la linealidad es atractiva cuando el pool es pequeño y quiere atraer a las partes interesadas, después de un cierto nivel debería disminuir si queremos dar la oportunidad a los pools más pequeños de ser más competitivos. Por lo tanto, dividiremos el comportamiento del esquema de reparto de premios según el tamaño del pool en dos etapas: una etapa de crecimiento, en la que se debe respetar la linealidad, y una etapa de estabilización, en el que el pool es lo suficientemente grande. El punto donde ocurre la transición se llamará el punto de saturación y el pool que ha pasado este punto se saturará. Podemos fijar que las recompensas sean constantes después del punto de saturación, de modo que si el punto de saturación es del 1%, dos pools, con una participación total del 1% y el 1,5%, recibirán las mismas recompensas.
Para apreciar cómo funciona la dinámica desde la perspectiva de una sola parte interesada, considere el siguiente ejemplo. Supongamos que hay dos pools, A y B administradas por Alice y Bob, con costos operativos de 25 y 30 monedas respectivamente, cada una con un margen de ganancia del 4%. Supongamos además que el total de recompensas a distribuir es de 1.000 monedas y que el punto de saturación del mecanismo de reparto de recompensas es del 20%. En un momento dado, el pool de Alice tiene el 20% de la participación, por lo que está en el punto de saturación, mientras que el pool de Bob está en el 19%. Un posible miembro del pool, Charlie, tiene el 1% de la participación y considera a qué pool unirse. Unirse al grupo de Alice elevará su participación total al 21%, y debido a que ha excedido el punto de saturación, la recompensa será de 200 monedas (20% del total de recompensas). La deducción de los costos operativos dejará 175 monedas para ser distribuidas entre Alice y los miembros del pool. Después de eliminar el margen de ganancia de Alice y considerar la participación relativa de Charlie en pool, recibirá 8 monedas como recompensa. Si Charlie se une al grupo de Bob, el total de recompensas será de 200 monedas, o 170 monedas después de eliminar los costos operativos. Sin embargo, dado que la participación de Charlie es del 5% (1/20) del pool, resulta que recibirá un 2% más de monedas que si se hubiera unido al pool de Alice. Así que Charlie se unirá al pool de Bob si quiere maximizar sus recompensas.
Ahora, veamos qué sucede en el caso de que Charlie se enfrente a la misma decisión en una hipotética etapa anterior de todo el proceso cuando el grupo de Alice ya estaba en el 20% de la participación total, mientras que el grupo de Bob sólo estaba en el 3%. En este caso, Bob tiene un grupo muy pequeño y las recompensas totales disponibles para sus miembros son mucho menores en comparación con el caso anterior. Como resultado, si Charlie hiciera el mismo cálculo para el pool de Bob, su participación del 1% resultaría en una participación total del 4% para el pool pero, si uno hace los cálculos, recibiría sólo el 30% de las recompensas que habría obtenido si se hubiera unido al pool de Alice. En tal caso, la decisión racional es unirse al pool de Alice a pesar del hecho de que su membresía hará que el pool de Alice exceda el punto de saturación. Consulte la Tabla 1 a continuación para conocer las cifras exactas.
Ser previsor es importante
Lo anterior parece ser contradictorio. Para entender lo que Charlie necesita hacer tenemos que apreciar el siguiente hecho. La elección de Charlie para unirse a la pool de Alice en el segundo escenario es sólo racional en un sentido muy miope (también conocido como miope). De hecho, Charlie está mejor con el pool de Bob, como lo demuestra el primer escenario, siempre y cuando el pool de Bob alcance el punto de saturación. Por lo tanto, si Charlie cree que el pool de Bob llegará al punto de saturación, la opción racional debería ser apoyarla. Otras partes interesadas harán lo mismo y, por lo tanto, el pool de Bob alcanzará rápidamente el punto de saturación, lo que hará que todos los que participaron en él estén en mejores condiciones, al tiempo que se apoya el ideal de la descentralización: El pool de Alicie en lugar de crecer constantemente se detendrá en el punto de saturación y a otros pools se les dará la capacidad de crecer al mismo tamaño. Este tipo de pensamiento estratégico en nombre de las partes interesadas es más previsor (también conocido como no miope) y, como veremos, tiene la capacidad de ayudar a las partes a converger hacia configuraciones descentralizadas deseables para el sistema.
Vale la pena señalar que es inevitable que el sistema en su evolución alcance momentos cruciales en los que será esencial para los interesados directos ejercer un pensamiento con visión de futuro, como en el escenario anterior, en el que el pool de Alice alcanza el punto de saturación, mientras que otros pools son todavía bastante pequeños. La razón es que, debido a las circunstancias particulares de cada administrador de pool, los costos operativos serán variables en toda la población de interesados. Como resultado, es de esperar que a partir de un punto cero en el que no existan pools, el pool con el menor coste operativo será también el primero en crecer. Esto es natural ya que los bajos costos operativos dejan un nivel más alto de recompensas que se reparten entre los miembros del grupo. Es de esperar que el sistema llegue a momentos como el segundo escenario anterior, en el que el pool más competitivo (el de Alice con un coste operativo de 25) ha alcanzado el punto de saturación, mientras que el segundo más competitivo (el de Bob con un coste operativo de 30) se encuentra todavía en un nivel de membresía pequeño.
Uno podría caer en la tentación de pensar a largo plazo en el establecimiento de esquemas de reparto de recompensas similares a los de Bitcoin y creer que también puede ayudar a converger hacia la descentralización. Desgraciadamente, este no es el caso. En un esquema similar al de Bitcoin, a diferencia de nuestro esquema de reparto de premios con un punto de saturación, no hay ningún punto en el desarrollo de lo pools de Alice y Bob cuando el pool de Bob se volverá más atractivo desde el punto de vista de Charlie. De hecho, sin un punto de saturación, el pool más grande de Alice siempre ofrecerá más recompensas a Charlie: esto se debe al hecho de que los costos operativos de Alice son menores y por lo tanto dejan más recompensas para todas las partes interesadas. Esto dejará al pool de Bob sin miembros, y eventualmente, como se discutió anteriormente, será la opción racional para Bob también disolver su pool y unirse al de Alice, haciendo de Alice la dictadora del sistema.
Volviendo a nuestro esquema de reparto de recompensas, hemos establecido que el pensamiento estratégico no miope promueve la descentralización; sin embargo, hay un punto importante aún abierto. En un momento crucial, cuando la parte interesada no miope Charlie decide racionalmente renunciar a la opción de unirse al pool saturado de Alice, puede tener una serie de aspirantes a pools para elegir. Por ejemplo, junto con el pool de Bob que tiene costes operativos de 30 y un margen de beneficio del 4%, podría haber un pool de Brenda con un coste operativo de 33 y un margen de beneficio del 2%, y un pool de Ben con un coste operativo de 36 y un margen de beneficio del 1%. La opción racional sería ir con la que llegará al punto de saturación; ¿hay alguna manera de saber cuál sería la mejor opción? En nuestro documento de análisis completo proporcionamos un mecanismo explícito que ordena los pools de acuerdo a su conveniencia y, utilizando la información registrada en el libro mayor sobre cada pool , puede ayudar a las partes interesadas a tomar la mejor decisión posible en cualquier momento dado. En nuestro ejemplo, es el pool de Brenda al que Charlie debería unirse si quiere maximizar sus recompensas (ver Tabla 1). Para ayudar a los usuarios de Cardano, el mecanismo de clasificación de pools estará integrado en Daedalus (y en otras billeteras compatibles con Cardano) y proporcionará una representación visual de las mejores opciones disponibles para las partes interesadas utilizando la información del libro mayor relativa a los registros de pools.
Evaluación experimental
Entonces, ¿cómo va nuestro plan de recompensas con respecto a la descentralización? En el documento de análisis completo probamos que existe una clase de configuraciones de sistemas descentralizados que son "equilibrios Nash no miopes". Una estrategia de equilibrio significa aquí que los grupos de interés tienen una forma específica de crear pools, fijar sus márgenes de beneficio y/o delegar en otros pools, de modo que ningún grupo de interés, pensando a largo plazo, se encuentra en una situación mejor si sigue una estrategia diferente. Además, demostramos experimentalmente que el juego reactivo entre actores con pensamiento no miope converge hacia este equilibrio en un pequeño número de iteracciones, como se muestra en la Figura 2.
Figura 2. Descentralización como lo demuestra nuestro esquema de premios compartidos en una simulación con 100 grupos de interés y un 10% de saturación. Los pools son creados gradualmente por las partes interesadas. Por turnos, las partes interesadas intentan maximizar sus beneficios de forma no sistemática, lo que conduce a un punto de convergencia final en el que existen 10 pools, cada uno con una participación igualitaria en el capital total. En el punto final, ningún actor racional desea cambiar el estado del sistema.
Una característica de nuestro enfoque es que el número de pools es sólo una parte de la descripción del sistema de reparto de recompensas y, por lo tanto, el sistema no lo aplica a las partes interesadas. Esto significa que las partes interesadas son libres de experimentar con la creación de un pool y la delegación de la participación sin tener que ajustarse a ninguna arquitectura de sistema predeterminada. Esto contrasta con otros enfoques adoptados en los sistemas PoS, como EOS, en el que el número de participantes es un parámetro codificado del sistema de consenso (concretamente, 21 grupos). Al mismo tiempo, nuestro enfoque permite que todo el grupo de interés exprese su voluntad, uniéndose y abandonando libremente los pools, recibiendo recompensas garantizadas por su participación, al tiempo que es testigo de cómo sus acciones tienen un impacto cuantificable en la gestión del libro mayor distribuido del PoS, independientemente del tamaño de su participación. Esto contrasta con otros enfoques adoptados en los sistemas de PdS, como Ethereum 2.0, en el que el mantenimiento del libro mayor es realizado por validadores registrados sobre la base de un depósito de garantía sin un proceso incorporado de investigación por parte del conjunto de partes interesadas.
Entonces, ¿cuál sería una opción sensata para el número de pools que debería ser favorecido por el plan de recompensas para Cardano? Dado que la descentralización es nuestro principal objetivo, es sensato establecer que este parámetro sea lo más alto posible. Nuestros experimentos de red demostraron que el sistema todavía puede funcionar eficazmente con hasta 1.000 pools en funcionamiento. La elección de un umbral de saturación para nuestro sistema de reparto de premios basado en este número hará que sea rentable tener un pool de participaciones aunque la participación total delegada en ellas sea de tan sólo el 0,1% de la circulación total de Ada.
Mirando hacia el futuro - Ataques de Sybil
Dado que la descentralización puede lograrse mediante un gran número de pools independientes, también es importante ver si algunas configuraciones de sistemas descentralizados son más preferibles que otras. Como se ha descrito hasta ahora en este artículo, nuestro plan de reparto de recompensas conducirá a los grupos de interés racionales a promover los pools que supondrán el menor coste total. Aunque esto maximiza las recompensas y minimiza los costos, puede no ser necesariamente el resultado más deseable. La razón es que en el punto de equilibrio se puede ver un conjunto de partes interesadas promovidas como administradores de un pool que poseen colectivamente una participación muy pequeña. Este desequilibrio, en el que una pequeña participación total representa la participación total del sistema, puede ser perjudicial de muchas maneras: los administradores de los pools pueden ser propensos a la corrupción o al soborno o, lo que es aún peor, un grupo de interés grande puede registrar muchos pools con la esperanza de controlar todo el ecosistema, llevando a cabo de esta manera un ataque de Sybil que dañaría la descentralización. Por esta razón, el esquema de reparto de recompensas presentado en nuestro documento de análisis completo se ha modificado adecuadamente para que sea sensible a la participación que respalda al pool, de modo que se pueda mitigar este tipo de comportamiento. Profundizaremos en este aspecto del reparto de premios de Cardano en el próximo post del blog.