Maison  >  Article  >  Interprétation du dernier algorithme de synthèse d'Aleo : diriger la révolution de la confidentialité Web3

Interprétation du dernier algorithme de synthèse d'Aleo : diriger la révolution de la confidentialité Web3

WBOY
WBOYoriginal
2024-06-29 03:52:071034parcourir

Aleo est un projet blockchain axé sur la protection de la vie privée, atteignant une confidentialité et une évolutivité plus élevées grâce à la technologie de preuve sans connaissance (ZKP). L'idée principale d'Aleo est de permettre aux utilisateurs d'authentifier et de traiter des données sans révéler leurs données personnelles. Cet article présente principalement les grandes lignes du projet et les derniers progrès d'Aleo, et fournit une explication détaillée de la mise à jour de l'algorithme de puzzle qui préoccupe beaucoup le marché. Aperçu du dernier algorithme ;) Le réseau TLDRAleo génère de manière aléatoire un circuit ZK toutes les heures ; les mineurs doivent essayer différentes occasions comme entrée du circuit pendant cette heure pour calculer le témoin (c'est-à-dire toutes les variables du circuit, ce processus de calcul est également appelé synthèse), après avoir trouvé la racine de Merkle pour le témoin, déterminez si elle répond aux exigences de difficulté d'extraction. En raison du caractère aléatoire du circuit, cet algorithme de minage n'est pas convivial pour les GPU et a de grandes difficultés à calculer l'accélération. Contexte de financement Aleo a réalisé un financement de série A de 28 millions de dollars américains dirigé par a16z en 2021 et un financement de série B de 200 millions de dollars américains en 2024. Les investisseurs comprennent Kora Management, SoftBank Vision Fund 2, Tiger Global, Sea Capital, Slow Ventures et Samsung Next, entre autres. Le tour de table valorise Aleo à 1,45 milliard de dollars. Aperçu du projet Confidentialité Le cœur d'Aleo est la technologie de preuve sans connaissance (ZKP), qui permet d'effectuer des transactions et l'exécution de contrats intelligents tout en préservant la confidentialité. Les détails de la transaction de l'utilisateur, tels que l'expéditeur et le montant de la transaction, sont masqués par défaut. Cette conception protège non seulement la vie privée des utilisateurs, mais permet également une divulgation sélective lorsque cela est nécessaire, ce qui est très approprié pour le développement d'applications DeFi. Ses principaux composants comprennent : Le langage compilé Leo : adapté du langage Rust et spécifiquement utilisé pour développer des applications sans connaissance (ZKApps), réduisant les exigences des développeurs en matière de connaissances en cryptographie. snarkVM et snarkOS : snarkVM permet d'effectuer des calculs hors chaîne et seuls les résultats des calculs sont vérifiés en chaîne, améliorant ainsi l'efficacité. snarkOS garantit la sécurité des données et des calculs et permet l'exécution de fonctions sans autorisation. zkCloud : fournit un environnement informatique hors chaîne sécurisé et privé, prenant en charge les interactions de programmation entre les utilisateurs, les organisations et les DAO. Aleo fournit également un environnement de développement intégré (IDE) et un kit de développement logiciel (SDK) pour aider les développeurs à écrire et publier rapidement des applications. De plus, les développeurs peuvent déployer des applications dans le registre des programmes d'Aleo sans recourir à des tiers, ce qui est pratique. Risque réduit pour la plate-forme ; . Évolutivité Aleo adopte une méthode de traitement hors chaîne. Les transactions sont d'abord calculées sur l'appareil de l'utilisateur, puis seuls les résultats de la vérification sont téléchargés sur la blockchain. Cette méthode améliore considérablement la vitesse de traitement des transactions et l’évolutivité du système, et évite la congestion du réseau et les frais élevés similaires à ceux d’Ethereum. Mécanisme de consensus Aleo présente AleoBFT, un mécanisme de consensus à architecture hybride qui combine la finalité instantanée du vérificateur et la puissance de calcul du prouveur. AleoBFT augmente non seulement la décentralisation du réseau, mais améliore également les performances et la sécurité. Finalité rapide des blocs : AleoBFT garantit que chaque bloc est confirmé immédiatement après la génération, améliorant ainsi la stabilité des nœuds et l'expérience utilisateur. Garantie de décentralisation : en séparant la production de blocs de la génération de coinbase, le vérificateur est responsable de la génération des blocs et le prouveur effectue des calculs de preuve pour empêcher quelques entités de monopoliser le réseau. Mécanisme d'incitation : les vérificateurs et les certificateurs partagent des récompenses de bloc ; les certificateurs sont encouragés à devenir vérificateurs en promettant des jetons, améliorant ainsi la décentralisation et la puissance de calcul du réseau. Aleo permet aux développeurs de créer des applications qui ne sont pas liées au gaz, ce qui le rend particulièrement adapté aux applications à long terme telles que l'apprentissage automatique. Progrès actuels Aleo lancera un testnet incitatif le 1er juillet, voici quelques dernières informations importantes : ARC-100 Voté adopté : ARC-100 (Proposition "Compliance Best Practices for Aleo Developers and Operators"), impliquant la conformité En termes de réglementation, de mesures de sécurité tels que le blocage et l'arrivée tardive des fonds sur le réseau Aleo, le vote est terminé et a été adopté. L’équipe procède aux derniers ajustements. Programme d'incitation aux validateurs : ce programme sera lancé le 1er juillet pour valider de nouveaux mécanismes de puzzle. Le programme se déroulera jusqu'au 15 juillet, période pendant laquelle 1 million de points Aleo seront distribués en récompense. Le pourcentage de points générés par un nœud déterminera sa part de récompenses, chaque validateur devant gagner au moins 100 jetons pour recevoir des récompenses. Les détails spécifiques n’ont pas encore été finalisés. Offre initiale et offre en circulation : L'offre initiale est de 1,5 milliard de jetons et l'offre initiale en circulation est d'environ 10 % (pas encore finalisée). Les jetons, qui proviennent principalement des missions Coinbase (75 millions), seront distribués au cours des six premiers mois et comprendront des récompenses pour le jalonnement, l'exécution de validateurs et la validation de nœuds. Réinitialisation bêta de Testnet : il s'agit de la dernière réinitialisation du réseau, aucune nouvelle fonctionnalité ne sera ajoutée une fois terminée et le réseau sera similaire au réseau principal. Réinitialisez pour ajouter ARC-41 et une nouvelle fonctionnalité de puzzle. Gel du code : le gel du code a été terminé il y a une semaine. Plan d'expansion des nœuds de validation : le nombre initial de nœuds de validation est de 15, avec l'objectif de passer à 50 d'ici l'année et d'atteindre à terme 500. Il faut 10 000 tokens pour devenir délégant et 10 millions de tokens pour devenir validateur, et ces montants vont diminuer progressivement au fil du temps.

解读Aleo最新算法Synthesis Puzzle:引领Web3隐私革命

Interprétation de la mise à jour de l'algorithme

Aleo a récemment annoncé les dernières nouvelles de testnet, il a également mis à jour la dernière version de l'algorithme de puzzle. Le nouvel algorithme ne se concentre plus sur la génération de résultats de preuve zk et a supprimé MSM et NTT (qui sont tous deux fortement utilisés dans zk). génération de preuves). Le module de calcul (précédemment utilisé par les participants du testnet pour optimiser l'efficacité de l'algorithme afin d'augmenter les revenus miniers) se concentre sur la génération de témoins de données intermédiaires avant de générer la preuve. Nous donnerons une brève introduction au dernier algorithme après avoir fait référence aux spécifications et au code officiels du puzzle.

Processus de consensus

Au niveau du protocole de consensus, le prouveur et le validateur dans le processus sont respectivement responsables de générer la solution du résultat du calcul et de générer le bloc, d'agréger et de conditionner la solution. Le processus est le suivant :

  1. Prover calcule des énigmes pour construire des solutions et les diffuse sur le réseau
  2. Validator regroupe les transactions et les solutions dans le nouveau bloc suivant, garantissant que le nombre de solutions ne dépasse pas la limite du consensus (MAX_SOLUTIONS)
  3. La légalité de la solution doit être vérifiée. L'epoch_hash est conforme au last_epoch_hash maintenu par le validateur, et son proof_target calculé est conforme au last_proof_target maintenu par le validateur dans le réseau. En même temps, le nombre de solutions contenues dans le bloc. est inférieur à la limite du consensus
  4. Les solutions efficaces peuvent obtenir des récompenses consensuelles

Puzzle de synthèse

La dernière version Le cœur de l'algorithme s'appelle Synthesis Puzzle. Son cœur est de générer un EpochProgram commun pour chaque époque en construisant un R1CS. circuit de preuve pour l'entrée et EpochProgram, l'affectation R1CS correspondante (c'est-à-dire le témoin mentionné par tout le monde) est générée et utilisée comme nœud feuille de l'arbre Merkle, après avoir calculé tous les nœuds feuilles, la racine Merkle est générée et convertie en. le proof_target de la solution. Le processus détaillé et les spécifications pour créer un puzzle de synthèse sont les suivants :

  1. Chaque calcul de puzzle est appelé nonce, qui est construit à partir de l'adresse qui reçoit la récompense minière, de epoch_hash et d'un compteur de nombres aléatoires. Il peut être mis à jour à chaque fois. La solution doit être calculée. Le compteur obtient un nouveau nom occasionnel
  2. Dans chaque époque, l'EpochProgram que tous les prouveurs du réseau doivent calculer est le même. Il est échantillonné à partir de l'instruction définie par le nombre aléatoire généré par l'epoch_hash actuel. . La logique d'échantillonnage est la suivante :

    • Le jeu d'instructions est fixe, chaque instruction contient une ou plusieurs opérations de calcul. Chaque instruction a un poids et un nombre d'opérations prédéfinis. Lors de l'échantillonnage, un nombre aléatoire est généré en fonction de l'epoch_hash actuel et du nombre d'opérations. un nombre aléatoire est obtenu à partir du jeu d'instructions combiné avec le poids. Les instructions sont disposées séquentiellement et l'échantillonnage est arrêté une fois que le nombre d'opérations cumulé atteint 97
    • Composez toutes les instructions dans EpochProgram
    Utilisez un nombre occasionnel comme valeur de départ aléatoire pour générer le nombre aléatoire. entrée d'EpochProgram
  3. Agrégez le R1CS et l'entrée correspondant à EpochProgram, et effectuez le témoin (affectation R1CS) Calculer
  4. Une fois tous les témoins calculés, ces témoins seront convertis en séquence de nœuds feuilles de l'arbre merkle correspondant L'arbre merkle. est un arbre K-ary Merkle à 8 éléments avec une profondeur de 8
  5. Calculez la racine de Merkle et convertissez-la en une solution proof_target, déterminez si elle répond au last_proof_target de l'époque actuelle. S'il répond au calcul, le calcul est réussi. . Soumettez l'adresse de récompense, l'epoch_hash et le compteur requis pour construire l'entrée ci-dessus comme solution et diffusez
  6. Dans la même époque, l'EpochProgram peut être mis à jour en itérant le compteur. Entrez plusieurs calculs de solution
  7. Changements et impacts de l'exploitation minière解读Aleo最新算法Synthesis Puzzle:引领Web3隐私革命.

  8. Après cette mise à jour, le puzzle est passé de la génération de preuves à la génération de témoins. Toute la logique de calcul de solution à chaque époque est cohérente, mais la logique de calcul des différentes époques est une grande différence.

D'après le réseau de test précédent, nous pouvons constater que de nombreuses méthodes d'optimisation se concentrent sur l'utilisation du GPU pour optimiser les calculs MSM et NTT dans la phase de génération de preuves, améliorant ainsi l'efficacité du minage. Cette mise à jour abandonne complètement cette partie du calcul ; en même temps, comme le processus de génération d'un témoin est généré par l'exécution d'un programme qui suit les changements d'époque, les instructions qu'il contient auront certaines dépendances sur l'exécution en série, donc réaliser la parallélisation est un gros challenge.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn