Publier un calcul de récompenses Open Source

Sur le protocole de preuve de participation (PoS) de Cardano—Ouroboros—les délégants et les opérateurs de pools de participation (SPO) reçoivent des récompenses lorsqu’ils contribuent à la sécurisation du réseau. Les spécifications du grand livre Cardano décrivent des formules pour calculer ces récompenses. Gardant cela à l’esprit et dans le cadre des efforts de la Fondation Cardano en faveur de la résilience opérationnelle du réseau, nous avons open source un calcul de récompense indépendant du nœud. Le projet vise à parvenir à un moyen d’effectuer et de valider le calcul des récompenses indépendant d’une seule implémentation. Il cherche également à fournir une documentation complète relative à la trésorerie, aux réserves et aux récompenses du pool de Cardano.

En tant que référentiel open source sous licence MIT, l’initiative approfondit également l’engagement de la Fondation envers la maturité open source et vise à recueillir les contributions de l’écosystème dans son ensemble. Enfin, le calcul peut également servir d’outil pédagogique, par exemple en ce qui concerne l’impact des modifications des paramètres du protocole sur le flux de fonds. En fin de compte, cela renforce la transparence et améliore la résilience opérationnelle.

Renforcer la résilience opérationnelle avec l’open source

La blockchain Cardano offre plusieurs fonctionnalités uniques et soigneusement étudiées. L’un des principaux est que les adas mis en jeu restent dans les portefeuilles des utilisateurs, permettant ainsi les transferts vers d’autres portefeuilles à tout moment. Bien que cette fonctionnalité présente des avantages, elle présente également des défis dans la mise en œuvre des calculs de récompenses. Cela nécessite l’utilisation d’instantanés pour le calcul des récompenses, comme indiqué dans la spécification du grand livre.

Le processus commence par le calcul des nouvelles réserves, des frais, du pot total des récompenses et de la trésorerie. Par la suite, les récompenses du pool sont déterminées en fonction de ce pot de récompenses total. Les récompenses du pool sont utilisées pour calculer les récompenses des délégants du pool de participation et des opérateurs du pool de participation. En raison de l’exigence de calculs basés sur des instantanés, il peut arriver qu’un compte de mise ne soit plus enregistré après avoir pris un instantané. Le compte de mise ne peut donc pas recevoir de récompenses une fois le calcul terminé et a besoin de règles personnalisées pour gérer ces situations particulières.

Ces règles sont naturellement réparties dans la base de code, car le processus de calcul lui-même est réparti dans le temps. Le dépôt cardano-ledger regroupe la plupart de la logique métier, ainsi que la documentation pertinente. Certains composants supplémentaires requis pour ce processus peuvent être trouvés dans le nœud cardano lui-même ou dans le référentiel ouroboros-network.

Le code est exécuté à l’aide d’un planificateur basé sur des emplacements, ce qui peut s’avérer difficile à lire et à suivre pour ceux qui ne connaissent pas la base de code. Bien que certaines optimisations aient été introduites pour améliorer les performances du calcul, ces optimisations peuvent rendre le code moins simple à comprendre. Le calcul des récompenses open source vise à relever ces défis tout en conservant les fonctionnalités robustes natives du réseau Cardano.

Le mécanisme de récompenses Cardano

La spécification du grand livre Cardano comprend plusieurs équations qui définissent collectivement le flux d’ada à la fin de chaque époque. Chaque nœud calculera indépendamment les récompenses par époque de manière distribuée, toutes les récompenses potentielles étant ensuite distribuées sur la base du mécanisme de consensus. Notamment, aucune entité n’effectue ce calcul et personne ne peut refuser les récompenses. Ces récompenses ada sont calculées à chaque époque et découlent de l’interaction de deux sources : les frais de transaction et l’expansion monétaire.

  • Frais de transaction : à la fin de chaque époque, la valeur du pot de frais (la somme de tous les frais de transaction de cette époque) entre dans le pot total de récompenses.
  • Expansion monétaire : En plus des frais de transaction, un pourcentage fixe de la réserve est mis dans la même cagnotte de récompenses.

Le pot total de récompenses est ensuite divisé en deux segments. La première partie va dans la trésorerie, tandis que la seconde forme le pot de récompenses du pool de mises. Notamment, les réserves mentionnées ont initialement commencé avec environ 14 milliards d’ada et ont diminué progressivement.

Simultanément, un autre calcul calcule la récompense du pool, en utilisant les paramètres du pool de mises qui, en conjonction avec les performances apparentes du pool, déterminent les récompenses individuelles du pool de mises. La valeur résultante constitue la base du calcul des récompenses du délégant et de l’opérateur. Il est important de noter que tous ces calculs dépendent des paramètres du protocole. Le calcul des récompenses fait partie intégrante de l’écosystème blockchain de Cardano, il est donc crucial d’éduquer les gens sur son fonctionnement. Cette connaissance permet aux gens de choisir un pool de participations qui correspond à leur vision et à leurs valeurs.

Comment le calcul des récompenses améliore la transparence

La trésorerie, les réserves, les récompenses, les dépôts et les frais, souvent appelés ada-pots, totalisent l’offre maximale de 45 milliards d’ada. Alors que n’importe qui peut consulter les numéros ada-pot sur Cardano explorateurs de blockchain et sur Cardano DB Sync, ces plateformes ne sont capables de fournir que le résultat final des calculs, sans aucune donnée sous-jacente disponible pour confirmer la manière dont ceux-ci ont été calculés. Bien que ces calculs existent dans le code Haskell du nœud et dans les référentiels du grand livre, ils utilisent une implémentation de formule complexe et hautement distribuée.

Pour cette raison, la Fondation a commencé à poursuivre un calcul de récompense indépendant du nœud qui met en œuvre les formules décrites dans le Spécifications du grand livre Cardano et sert de ressource de documentation pour gérer les cas extrêmes où la formule spécifiée ne correspond pas à la mise en œuvre réelle. Par exemple, dans un cas, un bug dans la mise en œuvre du nœud a amené un propriétaire de pool à gérer deux pools différents mais avec la même adresse de récompense, à recevoir des récompenses pour un seul pool de mises. Dans ce cas, la correction du bug a conduit à l’octroi de récompenses supplémentaires du trésor aux propriétaires de pool.

Alors que ces interventions manuelles sont entièrement conformes aux spécifications du protocole et enregistrées de manière transparente via ce que l’on appelle les récompenses instantanées de déplacement (MIR)) certificats, les ada-pots calculés pour cette époque seraient incorrects. Plus précisément, si l’on calculait la valeur de trésorerie avec la formule simple pour cette époque, il deviendrait évident qu’elle ne correspond pas au montant réel de l’ada détenu. En bref, sans connaissance de tels événements extraordinaires, l’écart entre la formule et la valeur de trésorerie s’avérerait difficile à retracer et il y aurait moins de fonds dans la trésorerie que ne l’indique la formule.

Avantages de l’open source pour la mise en œuvre de la formule

Le calcul des récompenses a été initialement intégré à LedgerSync, le pipeline de données basé sur Java développé pour fournir au nouvel explorateur Cardano de la Fondation Cardano les données de la blockchain Cardano. Cependant, l’équipe d’ingénierie de la Fondation s’est vite rendu compte que démêler les multiples composants impliqués dans les différents aspects du calcul s’avérerait assez complexe. La diversité des données d’entrée, qui incluent les spécifications, les articles de blog, les fils de discussion et la documentation communautaire auto-hébergée, signifie que la collecte des informations nécessaires à partir de diverses sources comprendre globalement le flux de l’ada prend particulièrement du temps.

En revanche, le calcul des récompenses en open source peut permettre au public d’inspecter, d’examiner et de vérifier l’algorithme ainsi que le code utilisé pour déterminer la manière dont les récompenses sont distribuées. Cette approche contribue également à renforcer la confiance dans l’infrastructure Cardano en servant de référentiel comprenant un graphique interactif expliquant le flux ada à la fin d’une époque, ainsi que des rapports mettant en évidence les différences entre la formule et la valeur réelle.

Il constitue également un moyen utile d’informer les gens sur le système de trésorerie décentralisé de Cardano et contribue à fournir des informations sur l’utilisation des frais de transaction. En tant que référentiel open source, le calcul des récompenses engage davantage la communauté, incitant chacun à contribuer autant de documentation que possible. De plus, il fournit un outil d’activation technique car il expose une API permettant aux utilisateurs de calculer des valeurs actuellement disponibles uniquement avec Cardano DB Sync, un outil Haskell d’IOG. pour explorer les données des nœuds et les rendre accessibles dans une base de données PostgreSQL.

Travailler à la transparence du calcul des récompenses

Comme indiqué dans l’exemple de cas limite précédent, l’utilisation de la formule pour l’époque suivante pour calculer, par exemple, la valeur du trésor, ne donnera parfois pas des résultats précis. Cette dynamique peut survenir lors du transfert de fonds pour payer une proposition de Project Catalyst ou, par exemple, lors de l’utilisation d’un certificat MIR pour compenser les récompenses du pool manquées en raison d’un bogue. Bien qu’ils soient enregistrés de manière transparente sur la blockchain Cardano via le mécanisme de certificat MIR, ces cas extrêmes ne sont pas toujours documentés publiquement en détail, ce qui entraîne un manque de contexte historique et compromet donc considérablement la transparence, ce qui entraîne à son tour une incertitude et une diminution de la confiance. L’établissement d’une documentation appropriée peut éviter cela, permettant de futurs examens et audits ainsi que des améliorations de la documentation, renforçant ainsi la crédibilité et la résilience opérationnelle de Cardano.

Le travail de la Fondation a commencé avec la mise en œuvre de la formule et la documentation des cas extrêmes, mais certaines inconnues restantes doivent encore être résolues. Par exemple, il est nécessaire de prendre en compte les premiers fonds Catalyst ou certificats MIR avant l’époque 271, car ils ne sont associés à aucune métadonnée. Grâce à l’open source de cette formule, la Fondation espère collaborer avec les membres de la communauté pour établir une solution indépendante de la source de données. Actuellement, nous disposons d’un fournisseur de données Koios et d’un fournisseur de données pour les fichiers JSON statiques, qui servent des données agrégées. De plus, un indexeur étendu, potentiellement basé sur Yaci-Store, une implémentation de banque de données Cardano basée sur Java, s’avérerait utile pour garantir une transparence maximale dans le calcul des récompenses. .

Cette initiative concerne également en fin de compte la valeur de trésorerie, que Cardano utilise pour financer le développement décentralisé de l’écosystème, les récompenses en commun et les frais de transaction. Par conséquent, cela a un impact direct sur les aspects dont chaque utilisateur de Cardano devrait se soucier, y compris le déploiement des récompenses dans l’écosystème dont il fait partie. Dans le même temps, tous les contributeurs, qu’ils partagent du code ou des informations, jouent un rôle important en apportant plus de confiance et de transparence à l’écosystème, améliorant ainsi les conditions d’une adoption accrue de la blockchain.

Casser le calcul

La Fondation génère un rapport à côté de chaque nouvelle version du référentiel. Nous avons ajouté la différence absolue moyenne entre le calcul et la valeur réelle du trésor comme mesure, et avec la communauté, nous espérons parvenir à une réduction de cette valeur au fil du temps.

Les contributions à ce référentiel ne se limitent pas au seul code ; les gens peuvent ajouter des données, des liens, de la documentation et des informations sur les différences substantielles observées à certaines époques. Le référentiel lui-même suit une approche basée sur les tests, il est donc logique de commencer par créer des tests, tels que ceux liés à des récompenses de pool spécifiques à des époques spécifiques. La Fondation a créé le rapport pour la trésorerie uniquement, mais nous voyons la possibilité d’introduire ce type de rapport pour les autres constituants des ada-pots ainsi que des rapports détaillés sur les pools de participation sélectionnés et les récompenses des membres à l’avenir.

La plupart du temps, la valeur de trésorerie est en moyenne d’environ 3 500 ada supérieure à ce que prédit la formule. La règle de récolte du pool redirige les dépôts de pool non réclamables (par exemple lorsqu’un pool se retire et que l’adresse de mise associée a déjà été radiée) vers la trésorerie. De plus, chaque pool peut gagner une valeur ada maximale pour chaque époque. Le Trésor gère également toute différence entre la valeur calculée par la formule et la valeur maximale. Ces ajustements à la mise en œuvre actuelle devraient réduire la différence moyenne absolue.

La Fondation a déjà connu un certain succès en abordant les principes fondamentaux du calcul et en identifiant les explications de certains de ces écarts. Il serait cependant utile de disposer d’une documentation complète pour chaque transaction sortant du Trésor.

Les prochaines étapes impliquent également la mise en œuvre de la règle Pool Reap, ainsi que l’ajout de récompenses plafonnées à la trésorerie, l’incorporation de certificats MIR et le transfert des récompenses non réclamées vers les réserves. De plus, même si à chaque nouvelle époque nous réinitialisons actuellement une valeur connue pour éviter les erreurs de transfert des époques précédentes, à l’avenir, il s’avérerait bénéfique d’avoir un consommateur ciblé pour les frais, les pools retirés, les comptes de participation désenregistrés, les mises à jour des pools, etc. . Cette structure permettrait des calculs dynamiques basés sur le calcul précédent.

Si toutefois il existe une autre inconnue dans le calcul, conduisant à une disparité entre le calcul et les valeurs réelles, un examen approfondi de l’implémentation Haskell dans le cardano -node et cardano-ledger ont pu être complétés. Ce scénario viserait à identifier les changements qui expliquent les écarts en explorant l’historique des validations et les discussions sur les problèmes.

À l’avenir, la Fondation a l’intention d’utiliser les rapports et les graphiques interactifs provenant de ce référentiel pour expliquer l’ada tokenomics aux régulateurs, aux entreprises et aux institutions. En septembre, nous avons également rencontré les équipes de Koios CNTools pour leur présenter le référentiel et recueillir les premiers retours. Ils ont salué l’initiative ainsi que l’idée d’implémenter et de documenter le calcul des récompenses et ont noté que le fait que d’autres développeurs portent cette implémentation de référence Java dans d’autres langages apporterait une valeur supplémentaire.

Une approche open source enrichit toujours l’écosystème, offrant des avantages mutuels à toutes les parties impliquées tout en favorisant la transparence et en améliorant la probabilité d’une adoption généralisée de la technologie blockchain. La Fondation Cardano prévoit donc de poursuivre les référentiels et solutions open source en vue de promouvoir la maturité open source de Cardano.

Source : https://cardanofoundation.org/en/news/releasing-an-open-source-rewards-calculation/