馃嚜馃嚫 Publicaci贸n del c谩lculo de recompensas de c贸digo abierto

Publicaci贸n del c谩lculo de recompensas de c贸digo abierto

Autor: Fabian Bormann | Jefe de equipo de Arquitectura e Ingenier铆a de Ecosistemas (EAE)

En el protocolo de prueba de participaci贸n (PoS) de Cardano 鈥 Ouroboros 鈥 los delegadores y los operadores de grupos de participaci贸n (SPO) reciben recompensas a medida que contribuyen a asegurar la red. Las especificaciones del libro mayor de Cardano describen f贸rmulas para calcular estas recompensas. Teniendo esto en cuenta y como parte de los esfuerzos de la Fundaci贸n Cardano hacia la resiliencia operativa de la red, hemos desarrollado 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 proporcionar una documentaci贸n completa relacionada con la tesorer铆a, las reservas y las recompensas del fondo com煤n de Cardano.

Como 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 afectar al flujo de fondos. En 煤ltima instancia, aumenta la transparencia y mejora la resistencia operativa.

Reforzando la resistencia operativa con c贸digo abierto

La cadena de bloques Cardano ofrece varias caracter铆sticas 煤nicas y cuidadosamente estudiadas. Una de las principales es que la ada apostada permanece en los monederos de los usuarios, lo que permite realizar transferencias a otros monederos 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, como se indica en la especificaci贸n del libro mayor.

El proceso comienza con el c谩lculo de las nuevas reservas, las tasas, el bote total de recompensas y la tesorer铆a. Posteriormente, se determinan las recompensas del grupo en funci贸n de este bote total de recompensas. Las recompensas del fondo se utilizan para calcular las recompensas de los delegados y operadores del fondo. Debido al requisito de c谩lculos basados en instant谩neas, puede ocurrir que una cuenta de participaci贸n deje de estar registrada despu茅s de tomar una instant谩nea. Por lo tanto, la cuenta de apuestas no puede recibir recompensas una vez finalizado el c谩lculo y necesita reglas personalizadas para gestionar estas situaciones especiales.

Estas 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 de negocio, 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.

El c贸digo se ejecuta mediante un planificador 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. Cada nodo calcular谩 de forma independiente las recompensas por 茅poca de manera distribuida, y las posibles recompensas se distribuir谩n en funci贸n del mecanismo de consenso. En particular, 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 comisiones por transacci贸n y la expansi贸n monetaria.

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

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

Simult谩neamente, otro c谩lculo computa la recompensa del fondo, utilizando los par谩metros del fondo de apuestas que, junto con el rendimiento aparente del fondo, determinan las recompensas individuales del fondo de apuestas. El valor resultante constituye la base para calcular las recompensas del delegado y del operador. Es importante destacar que todos estos c谩lculos dependen de los par谩metros del protocolo. El c谩lculo de las recompensas forma una parte integral del ecosistema de la cadena de bloques de Cardano, por lo que es crucial educar a la gente sobre c贸mo funciona. Este conocimiento permite a las personas elegir un fondo de participaciones que encaje con su visi贸n y sus valores.

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

La tesorer铆a, las reservas, las recompensas, los dep贸sitos y las comisiones -a menudo denominados ada-pots- suman el suministro m谩ximo de 45.000 millones de ada. Aunque cualquiera puede revisar los n煤meros de ada-pot en los exploradores de la cadena de bloques de Cardano y en Cardano DB Sync, estas plataformas s贸lo pueden proporcionar 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 libro mayor, emplean una implementaci贸n de f贸rmulas compleja y altamente distribuida.

Por esta raz贸n, la Fundaci贸n comenz贸 a buscar un c谩lculo de recompensas independiente del nodo que implementa las f贸rmulas descritas en las especificaciones del ledger de Cardano y sirve como recurso de documentaci贸n para manejar casos extremos 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 fondo que ejecutaba dos fondos diferentes pero con la misma direcci贸n de recompensa recibiera recompensas s贸lo por un fondo de apuestas. En este caso, la correcci贸n del error hizo que se entregaran recompensas adicionales de la tesorer铆a a los propietarios de grupos.

Aunque estas intervenciones manuales son totalmente conformes con la especificaci贸n del protocolo y se registran de forma transparente mediante los denominados certificados de movimiento instant谩neo de recompensas (MIR), los ada-pots calculados para esta 茅poca ser铆an incorrectos. Concretamente, si se calculara el valor de la 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 implementaci贸n de la f贸rmula en c贸digo abierto

El c谩lculo de las recompensas se integr贸 originalmente en LedgerSync, el canal de datos basado en Java desarrollado para suministrar datos de la cadena de bloques de Cardano al nuevo explorador de Cardano de la Fundaci贸n Cardano. Sin embargo, el equipo de ingenier铆a de la Fundaci贸n pronto se dio cuenta de que desentra帽ar los m煤ltiples componentes implicados en los diferentes aspectos del c谩lculo resultar铆a bastante complejo. La diversidad de datos de entrada, que incluye especificaciones, entradas de blog, hilos de foros y documentaci贸n de la comunidad autoalojada, significa que recopilar la informaci贸n necesaria de varias fuentes para comprender exhaustivamente el flujo de ada resulta especialmente laborioso.

Por otro lado, la publicaci贸n abierta del c谩lculo de las recompensas puede facilitar la inspecci贸n, revisi贸n y verificaci贸n p煤blicas del algoritmo y del c贸digo utilizado para determinar c贸mo se distribuyen las recompensas. Este enfoque tambi茅n ayuda a generar 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.

Tambi茅n act煤a como una forma 煤til de educar a la gente sobre el sistema de tesorer铆a descentralizado de Cardano y contribuye a proporcionar informaci贸n sobre el uso de las comisiones por 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, proporciona una herramienta para la habilitaci贸n t茅cnica, ya que expone una API que permite a los usuarios calcular valores que actualmente s贸lo 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.

Hacia la transparencia en el c谩lculo de las recompensas

Como ya se ha comentado en el ejemplo anterior, utilizar la f贸rmula de la siguiente 茅poca para calcular, por ejemplo, el valor de la tesorer铆a, a veces no dar谩 resultados precisos. Esta din谩mica puede surgir cuando se transfieren fondos para pagar una propuesta de Project Catalyst o, por ejemplo, cuando se utiliza un certificado MIR para compensar recompensas de pool perdidas debido a un error. Aunque se registran de forma transparente en la cadena de bloques de Cardano a trav茅s del mecanismo de certificados MIR, estos casos extremos no siempre se documentan p煤blicamente en detalle, 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.

El trabajo 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 asociados. La Fundaci贸n espera colaborar con los miembros de la comunidad para establecer una soluci贸n independiente de la fuente de datos. Actualmente, contamos con un proveedor de datos Koios y un proveedor de datos para archivos JSON est谩ticos, que sirven 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, las recompensas del fondo com煤n y las comisiones por 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.

Descifrando el c谩lculo

La Fundaci贸n genera un informe con cada nueva versi贸n del repositorio. A帽adimos como m茅trica la diferencia absoluta media entre el c谩lculo y el valor real de la tesorer铆a, y junto con la comunidad esperamos lograr una reducci贸n de este valor a lo largo del tiempo.

Las contribuciones a este repositorio no se limitan 煤nicamente al c贸digo; la gente puede 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 las recompensas espec铆ficas de las piscinas en 茅pocas concretas. La Fundaci贸n ha creado el informe s贸lo para la tesorer铆a, pero vemos potencial para introducir este tipo de informe para los otros constituyentes del ada-pots, as铆 como informes detallados sobre grupos de estacas seleccionados y recompensas de miembros en el futuro.

La mayor铆a de las veces, el valor de la tesorer铆a es, de media, unos 3.500 ada m谩s alto de lo que predice la f贸rmula. La regla de cosecha de pe帽as devuelve a la tesorer铆a los dep贸sitos de las pe帽as que no se pueden reclamar, como cuando una pe帽a se retira y la direcci贸n de la apuesta asociada ya se ha dado de baja. Adem谩s, cada fondo 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 de la aplicaci贸n actual deber铆an reducir la diferencia media absoluta.

La Fundaci贸n ya ha tenido cierto 茅xito al abordar los fundamentos del c谩lculo e identificar las 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 norma Pool Reap, as铆 como a帽adir recompensas limitadas a la tesorer铆a, incorporar certificados MIR y dirigir 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 resultar铆a beneficioso disponer de un consumidor con alcance para las comisiones, los fondos retirados, las cuentas de estaca dadas de baja, las actualizaciones de fondos y m谩s. Esta estructura permitir铆a realizar c谩lculos din谩micos basados en el c谩lculo anterior.

Sin embargo, si se produjera otra inc贸gnita en el c谩lculo que condujera 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 sobre problemas.

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 su opini贸n inicial. Acogieron favorablemente 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 aportar铆a un valor suplementario.

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


Traducci贸n al Espa帽ol :es: por Mart铆n Ungar @LatinStakePools
Texto original: Releasing an open source rewards calculation