馃嚜馃嚫 Lanzamiento de un c谩lculo de recompensas de c贸digo abierto

En el protocolo proof-of-stake (PoS) de Cardano -Ouroboros- los delegadores y los operadores de stake pools (SPO) reciben recompensas a medida que contribuyen a asegurar la red. Dentro de las especificaciones del ledger de Cardano se establecen f贸rmulas para calcular estas recompensas. Con esto en mente y como parte de los esfuerzos de la Fundaci贸n Cardano hacia la resiliencia operativa de la red, hemos puesto en marcha un c谩lculo de recompensas independiente del nodo. El proyecto pretende conseguir un medio para realizar y validar el c谩lculo de recompensas que sea independiente de una 煤nica implementaci贸n. Asimismo, pretende ofrecer una documentaci贸n exhaustiva relacionada con la tesorer铆a, las reservas y las recompensas del pool de Cardano.

Al ser un repositorio de c贸digo abierto bajo licencia MIT, la iniciativa tambi茅n profundiza en el compromiso de la Fundaci贸n con la madurez del c贸digo abierto y pretende recabar contribuciones del ecosistema en general. Por 煤ltimo, el c谩lculo puede servir igualmente como herramienta educativa, por ejemplo en relaci贸n con la forma en que los cambios en los par谩metros del protocolo podr铆an repercutir en el flujo de fondos. En definitiva, refuerza la transparencia y mejora la resistencia operativa.

Reforzar la resistencia operativa con c贸digo abierto

La blockchain Cardano presenta varias caracter铆sticas 煤nicas y cuidadosamente estudiadas. Una de las principales es que la ada staked permanece en los wallets de los usuarios, lo que permite realizar transferencias a otros wallets en cualquier momento. Aunque esta funcionalidad tiene ventajas, tambi茅n presenta retos a la hora de implementar los c谩lculos de recompensas. Esto hace necesario el uso de instant谩neas para el c谩lculo de recompensas, tal y como se describe en la especificaci贸n del ledger.

Todo el proceso comienza con el c谩lculo de las nuevas reservas, las tarifas, el bote total de recompensas y la tesorer铆a. Luego, se determinan las recompensas del pool bas谩ndose en este bote total de recompensas. Las recompensas del pool se utilizan para calcular las recompensas de los delegados del stake pool y de los operadores del stake pool. Dado que los c谩lculos se basan en instant谩neas, puede ocurrir que una cuenta de estaca deje de estar registrada despu茅s de tomar una instant谩nea. Por lo tanto, la cuenta de staking no puede recibir recompensas una vez finalizado el c谩lculo y necesita reglas personalizadas para manejar esas situaciones especiales.

Dichas reglas se distribuyen de forma natural por toda la base de c贸digo, ya que el propio proceso de c谩lculo se distribuye en el tiempo. El repositorio cardano-ledger agrega la mayor parte de la l贸gica empresarial, junto con la documentaci贸n pertinente. Algunos componentes adicionales necesarios para este proceso pueden encontrarse en el propio nodo cardano o en el repositorio ouroboros-network.

La ejecuci贸n del c贸digo se realiza mediante un programador basado en ranuras, que puede resultar dif铆cil de leer y seguir para quienes no est茅n familiarizados con el c贸digo base. Aunque se han introducido ciertas optimizaciones para mejorar el rendimiento del c谩lculo, estas optimizaciones pueden hacer que el c贸digo sea menos f谩cil de entender. El c谩lculo de recompensas de c贸digo abierto pretende abordar estos retos manteniendo las s贸lidas caracter铆sticas nativas de la red Cardano.

El mecanismo de recompensas de Cardano

La especificaci贸n del ledger de Cardano incluye m煤ltiples ecuaciones que definen colectivamente el flujo de ada al final de cada 茅poca. Los nodos calcular谩n de forma independiente las recompensas por 茅poca de forma distribuida, distribuyendo despu茅s las posibles recompensas en funci贸n del mecanismo de consenso. Cabe destacar que ninguna entidad completa este c谩lculo ni puede retener recompensas. Estas recompensas ada se calculan cada 茅poca y derivan de la interacci贸n de dos fuentes: las tarifas de transacci贸n y la expansi贸n monetaria.

  • Tarifas de transacci贸n: Al final de cada 茅poca, el valor del bote de tarifas (la suma de todas las tarifas de transacci贸n de esa 茅poca) pasa al bote total de recompensas.
  • Expansi贸n monetaria: Adem谩s de las tarifas de transacci贸n, un porcentaje fijo de la reserva se destina al mismo bote de recompensas.

El fondo de recompensas total se divide entonces en dos segmentos. La primera parte va a la tesorer铆a, mientras que la segunda forma el bote de recompensas de stake pools. Cabe destacar que las reservas mencionadas comenzaron originalmente con aproximadamente 14.000 millones de ada y han disminuido gradualmente.

Paralelamente, otro c谩lculo computa la recompensa del pool, utilizando los par谩metros del stake pool que, junto con el rendimiento aparente del pool, determinan las recompensas individuales del stake pool. El valor resultante constituye la base para calcular las recompensas de los delegadores y de los operadores. Es importante se帽alar que todos estos c谩lculos dependen de los par谩metros del protocolo. El c谩lculo de las recompensas forma parte integral del ecosistema blockchain Cardano, por lo que es crucial educar a las personas sobre su funcionamiento. Este conocimiento capacita a las personas para elegir un stake pool que encaje con su visi贸n y sus valores.

C贸mo el c谩lculo de recompensas mejora la transparencia

La tesorer铆a, las reservas, las recompensas, los dep贸sitos y las tarifas -a menudo denominados ada-pots- suman la oferta m谩xima de 45.000 millones de ada. Aunque cualquiera puede revisar las cifras de ada-pot en Cardano blockchain explorers y en Cardano DB Sync, estas plataformas solo pueden suministrar el resultado final de los c谩lculos, sin ning煤n dato subyacente disponible para confirmar c贸mo se calcularon. Aunque estos c谩lculos existen en el c贸digo Haskell del nodo y en los repositorios del ledger, emplean una implementaci贸n de f贸rmulas compleja y altamente distribuida.

Por ello, la Fundaci贸n comenz贸 a perseguir un c谩lculo de recompensas independiente del nodo que implementa las f贸rmulas esbozadas en las especificaciones del ledger de Cardano y sirve como recurso de documentaci贸n para manejar los casos l铆mite en los que la f贸rmula especificada no se alinea con la implementaci贸n real. Por ejemplo, en un caso, un error en la implementaci贸n del nodo provoc贸 que el propietario de un pool que gestionaba dos pools diferentes pero con la misma direcci贸n de recompensa recibiera recompensas solo por un stake pool. En este caso, la correcci贸n del fallo hizo que se entregaran recompensas adicionales de la tesorer铆a a los propietarios de pools.

Aunque estas intervenciones manuales son totalmente conformes con la especificaci贸n del protocolo y se registran de forma transparente a trav茅s de las llamadas recompensas instant谩neas de movimiento (MIR)) certificados, los ada-pots calculados para esta 茅poca ser铆an incorrectos. Concretamente, si se calculara el valor de tesorer铆a con la f贸rmula simple para esta 茅poca, resultar铆a evidente que no coincide con la cantidad real de ada que se posee. En resumen, sin el conocimiento de tales acontecimientos extraordinarios, la discrepancia entre la f贸rmula y el valor de tesorer铆a resultar铆a dif铆cil de rastrear y habr铆a menos fondos en la tesorer铆a de los que indica la f贸rmula.

Ventajas de la aplicaci贸n de la f贸rmula en c贸digo abierto

Originalmente, el c谩lculo de las recompensas se integr贸 en LedgerSync, la canalizaci贸n de datos basada en Java desarrollada para suministrar al [nuevo explorador de Cardano] de la Fundaci贸n Cardano (Cardano Blockchain Explorer) los datos de la blockchain Cardano. No obstante, el equipo de ingenieros de la Fundaci贸n pronto se dio cuenta de que desenredar los m煤ltiples componentes implicados en los distintos aspectos del c谩lculo resultar铆a bastante complejo. La diversidad de los datos de entrada, que incluyen especificaciones, art铆culos de blogs, hilos de foros y documentaci贸n de la comunidad autoalojada, hace que reunir la informaci贸n necesaria de varias fuentes para comprender exhaustivamente el flujo de ada resulte especialmente laborioso.

En cambio, hacer p煤blico el c谩lculo de las recompensas puede permitir la inspecci贸n, revisi贸n y verificaci贸n p煤blicas del algoritmo, as铆 como del c贸digo utilizado para determinar c贸mo se distribuyen las recompensas. Este enfoque ayuda igualmente a fomentar la confianza en la infraestructura de Cardano al servir como un repositorio que incluye un gr谩fico interactivo que explica el flujo de ada al final de una 茅poca, adem谩s de informes que destacan las diferencias entre la f贸rmula y el valor real.

Asimismo, sirve para informar a las personas sobre el sistema de tesorer铆a descentralizado de Cardano y contribuye a ofrecer informaci贸n sobre el uso de las tarifas de transacci贸n. Como repositorio de c贸digo abierto, el c谩lculo de recompensas involucra a煤n m谩s a la comunidad, impulsando a todos a contribuir con tanta documentaci贸n como sea posible. Adem谩s, ofrece una herramienta de habilitaci贸n t茅cnica, ya que expone una API que permite a los usuarios calcular valores que actualmente solo est谩n disponibles con Cardano DB Sync, una herramienta Haskell de IOG para rastrear datos de nodos y hacerlos accesibles en una base de datos PostgreSQL.

Trabajar hacia la transparencia del c谩lculo de recompensas

Seg煤n se ha comentado en el ejemplo de caso l铆mite anterior, utilizar la f贸rmula de la siguiente 茅poca para calcular, por ejemplo, el valor de la tesorer铆a, a veces no arrojar谩 resultados precisos. Esta din谩mica puede surgir cuando se transfieren fondos para pagar una propuesta de Proyecto Catalyst o, por ejemplo, cuando se utiliza un certificado MIR para compensar las recompensas del pool perdidas debido a un fallo. Aunque se registran de forma transparente en la blockchain Cardano a trav茅s del mecanismo del certificado MIR, estos casos l铆mite no siempre se documentan en detalle p煤blicamente, lo que provoca una falta de antecedentes hist贸ricos y, por lo tanto, compromete significativamente la transparencia, lo que a su vez genera incertidumbre y disminuye la confianza. El establecimiento de una documentaci贸n adecuada puede evitar esto, permitiendo futuras revisiones y auditor铆as, as铆 como mejoras en la documentaci贸n, reforzando as铆 la credibilidad y la resistencia operativa de Cardano.

La labor de la Fundaci贸n comenz贸 con la implementaci贸n de la f贸rmula y la documentaci贸n de los casos l铆mite, pero a煤n quedan algunas inc贸gnitas por resolver. Por ejemplo, es necesario contabilizar los primeros fondos Catalyst o los certificados MIR anteriores a la 茅poca 271, ya que no tienen metadatos adjuntos. A trav茅s de la fuente abierta de esta f贸rmula, la Fundaci贸n espera colaborar con los miembros de la comunidad para establecer una soluci贸n independiente de la fuente de datos. Actualmente, disponemos de un proveedor de datos Koios y un proveedor de datos para archivos JSON est谩ticos, que ofrecen datos agregados. Adem谩s, un indexador de alcance -posiblemente basado en Yaci-Store, una implementaci贸n de almac茅n de datos de Cardano basada en Java- resultar铆a 煤til para garantizar la m谩xima transparencia en el c谩lculo de la recompensa.

Esta iniciativa tambi茅n afecta en 煤ltima instancia al valor de tesorer铆a, que Cardano utiliza para financiar el desarrollo descentralizado del ecosistema, pool de recompensas y tarifas de transacci贸n. En consecuencia, afecta directamente a aspectos que deber铆an preocupar a todos los usuarios de Cardano, incluido el despliegue de recompensas en el ecosistema del que forman parte. Al mismo tiempo, todos los contribuyentes, ya sea compartiendo c贸digo o informaci贸n, desempe帽an un papel importante a la hora de aportar m谩s confianza y transparencia al ecosistema, mejorando as铆 las condiciones para una mayor adopci贸n de blockchain.

Descifrar el c谩lculo

La Fundaci贸n genera un informe junto a cada nueva versi贸n del repositorio. Incluimos la m茅trica de la diferencia absoluta media entre el c谩lculo y el valor real de la tesorer铆a como una herramienta adicional, y junto con nuestra comunidad, trabajamos para lograr una disminuci贸n progresiva de este valor a lo largo del tiempo.
Las contribuciones a este repositorio no se limitan 煤nicamente al c贸digo; las personas pueden a帽adir datos, enlaces, documentaci贸n y opiniones sobre las diferencias sustanciales observadas en algunas 茅pocas. El propio repositorio sigue un enfoque basado en pruebas, por lo que tiene sentido empezar creando pruebas, como las relacionadas con recompensas de pool espec铆ficas en 茅pocas concretas. La Fundaci贸n ha creado el informe solo para la tesorer铆a, pero vemos potencial para introducir este tipo de informe para los dem谩s componentes del ada-pots, as铆 como informes detallados sobre determinados stake pools y recompensas de los miembros en el futuro.

La mayor铆a de las veces, el valor de la tesorer铆a es en promedio unos 3.500 ada m谩s alto de lo que predice la f贸rmula. La regla de cosecha de pools dirige los dep贸sitos de pools no reclamables -como cuando un pool se retira y la direcci贸n de stake asociada ya se ha dado de baja- de nuevo a la tesorer铆a. Adem谩s, cada pool puede ganar un valor ada m谩ximo por cada 茅poca. La tesorer铆a tambi茅n dirige cualquier diferencia entre el valor calculado por la f贸rmula y el valor m谩ximo. Estos ajustes en la aplicaci贸n actual deber铆an reducir la diferencia media absoluta.

La Fundaci贸n ha logrado avances significativos al abordar los conceptos fundamentales del c谩lculo y al identificar las posibles explicaciones de algunas de estas discrepancias. No obstante, ser铆a valioso disponer de documentaci贸n exhaustiva para cada transacci贸n de salida de la tesorer铆a.

Los pr贸ximos pasos tambi茅n implican la aplicaci贸n de la regla Pool Reap, as铆 como la adici贸n de recompensas limitadas a la tesorer铆a, la incorporaci贸n de certificados MIR y el env铆o de las recompensas no reclamadas a las reservas. Adem谩s, aunque actualmente con cada nueva 茅poca volvemos a un valor conocido para evitar errores de reenv铆o de 茅pocas anteriores, en el futuro ser铆a beneficioso disponer de un consumidor con alcance para las tarifas, los pools retirados, las cuentas de stake dadas de baja, las actualizaciones de los pools, etc. Esta estructura permitir铆a realizar c谩lculos din谩micos basados en el c谩lculo anterior.

No obstante, si existiera alguna otra inc贸gnita en el c谩lculo que diera lugar a una disparidad entre el c谩lculo y los valores reales, podr铆a llevarse a cabo un examen en profundidad de la implementaci贸n Haskell en los repositorios cardano-node y cardano-ledger. Este escenario tendr铆a como objetivo identificar los cambios que explican las discrepancias explorando el historial de commits y las discusiones de issues.

De cara al futuro, la Fundaci贸n pretende utilizar los informes y gr谩ficos interactivos procedentes de este repositorio para explicar la token贸mica ada a reguladores, empresas e instituciones. En septiembre, tambi茅n nos reunimos con los equipos de Koios CNTools para presentarles el repositorio y recabar sus comentarios iniciales. Acogieron con satisfacci贸n la iniciativa, as铆 como la idea de implementar y documentar el c谩lculo de recompensas, y se帽alaron que el hecho de que otros desarrolladores portaran esta implementaci贸n de referencia Java a otros lenguajes ofrecer铆a un valor suplementario.

Un enfoque de c贸digo abierto siempre enriquece el ecosistema, ya que ofrece beneficios mutuos a todas las partes implicadas, al tiempo que fomenta la transparencia y mejora la probabilidad de una adopci贸n generalizada de la tecnolog铆a blockchain. La Fundaci贸n Cardano, por lo tanto, tiene previsto seguir abriendo repositorios y soluciones de c贸digo abierto con vistas a promover la madurez del c贸digo abierto de Cardano.


Traducci贸n al espa帽ol de 鈥 Releasing an open source rewards calculation鈥, escrito por Fabi谩n Bormann, L铆der del equipo de Arquitectura e Ingenier铆a de Ecosistemas (EAE), en octubre 30 de 2023.


Notas del traductor

  • Corchetes del traductor.
  • Asuma que todo enlace apunta a un contenido en idioma :uk: ingl茅s.
  • :es: Indica que el enlace apunta a un contenido en idioma espa帽ol.

Considere suscribirse a las siguientes fuentes de informaci贸n en espa帽ol de Cardano seg煤n su inter茅s.