Avantages et défis des fonctions intégrées de Starknet

Original : fonctions intégrées et mises en page dynamiques

Traduction et relecture : "Communauté chinoise StarkNet"

Avantages et défis des fonctions intégrées de Starknet

Résumé

Les fonctions intégrées optimisent le processus de preuve. Cependant, chaque preuve est calculée à partir de la mise en page. Pour certains travaux de preuve, les avantages des fonctions intégrées seront considérablement réduits si la mise en page est inefficace. Actuellement, il existe une petite liste statique de mises en page, et chaque épreuve est calculée en fonction de la mise en page la plus appropriée de cette liste. Cette manière de disposer des listes statiques présente deux inconvénients. Premièrement, il existe une variété limitée de mises en page. Ceci est inefficace pour la plupart des travaux de preuve et crée des mécanismes de tarification complexes qui imposent des coûts inutiles aux utilisateurs. Deuxièmement, la maintenance manuelle de la liste est difficile. Une fois que le nombre d'intégrations devient trop élevé, la maintenance manuelle devient difficile et peut en fait entraver le processus de preuve d'intégrations efficaces qui prennent en charge un grand nombre de nuances. Pour résoudre ces problèmes, l'équipe StarkWare développe un système de mise en page dynamique où les mises en page sont personnalisées pour chaque preuve de travail.

La pile Cairo facilite l'informatique polyvalente en compilant le code Cairo en instructions pour les architectures CPU compatibles avec STARK : la VM Cairo (ci-après dénommée CVM). De nombreux avantages des processeurs à usage général ont un coût inhérent, et CVM n'est pas optimisé pour certaines opérations courantes. Les fonctions de hachage Keccak, Pedersen, Poseidon sont de telles opérations courantes, tout comme les opérations sur les courbes elliptiques, la vérification de plage (c'est-à-dire vérifier si un nombre particulier se trouve dans une plage de valeurs particulière) et autres.

Pour remédier à l'inefficacité relative des CVM, la pile Cairo introduit le concept d'intégrés pour les opérations critiques : des plugins qui optimisent ces opérations pour prouver leur complexité. Les fonctions intégrées peuvent être comparées aux ASIC : les ASIC sont des circuits intégrés spécifiques à l'application et les fonctions intégrées sont des contraintes algébriques spécifiques à l'application (AIR). Si vous ne savez pas ou ne vous souvenez pas de ce qu'est AIR, nous en parlerons brièvement plus loin dans cet article ; lisez cet article pour plus de détails.

En bref, la complexité de la preuve est liée (à peu près linéaire) aux ressources appelées unités de trace, et les fonctions intégrées simplifient les preuves d'opérations spécifiques en utilisant beaucoup moins d'unités de trace que Cairo VM.

Maintenant que les avantages des fonctions intégrées ont été expliqués, on comprend pourquoi les fonctions intégrées ont été développées pour de nombreuses opérations courantes. C'est plus facile à dire qu'à faire. Le processus actuel d'introduction de nouveaux éléments intégrés dans Starknet comprend les étapes suivantes :

  1. Écrire AIR

  2. Intégration avec le prouveur en créant une nouvelle mise en page (décrite ci-dessous)

  3. Intégrer dans Starknet, c'est-à-dire modifier sa base de code et ses outils de développement pour utiliser de nouvelles fonctions intégrées

En plus des défis liés à l'écriture d'AIR, il y a beaucoup de place pour l'amélioration dans les deux phases restantes. Cet article avancé décrira plus en détail les fonctions intégrées d'AIR spécifiques à l'application, les problèmes ci-dessus et les plans futurs.

Fonctions intégrées : AIR spécifique à l'application

AIR est l'acronyme de Algebraic Intermediate Representation. Dans cet article et d'autres articles StarkWare, AIR est un système polynomial pour représenter les machines virtuelles. Par exemple, Cairo tire son nom de CPU AIR : un système polynomial représentant une architecture CPU spécifique. Les solutions de ce système polynomial représentent des transitions d'état efficaces, appelées trajectoires d'exécution algébriques efficaces (AET).

STARK prouve que le fonctionnement de la machine virtuelle est correct en prouvant que la trajectoire d'exécution correspondant à un AIR donné est valide. En gros, une trajectoire d'exécution est une table de nombres, et le protocole STARK prouve que ces nombres résolvent ensemble un système polynomial.

La même opération peut être calculée de plusieurs façons, dont certaines sont plus efficaces. Dans cet article, la complexité de la preuve dépend essentiellement de la taille de la piste, c'est-à-dire du nombre de cellules de piste dans le tableau. Étant donné que les traces sont générées pour AIR, AIR est conçu pour les applications afin de réduire considérablement les traces d'exécution pour des calculs spécifiques. Les fonctions intégrées sont des AIR spécialisés optimisés pour l'application.

Le tableau ci-dessous montre les améliorations d'efficacité pour des fonctions intégrées spécifiques (toutes en production).

Avantages et défis des fonctions intégrées de Starknet

Mise en page de la trajectoire : présent et futur

Comme mentionné précédemment, AET est à peu près une table de nombres qui représente la séquence d'étapes dans la machine virtuelle codée (c'est-à-dire l'exécution du programme). Pour calculer la preuve, le prouveur exécute le protocole STARK sur la piste d'exécution de l'AIR associé.

Ci-dessus, nous avons introduit des fonctions intégrées en tant qu'AIR spécifiques à l'application conçues pour minimiser la complexité des preuves en réduisant le nombre d'unités de trace nécessaires pour coder les calculs. Cependant, si des fonctions intégrées sont intégrées de manière aléatoire dans Starknet, de nombreuses unités de trajectoire peuvent être gaspillées et les avantages attendus seront réduits. Expliquons en détail ci-dessous.

En bref, la disposition des pistes est l'affectation de cellules de piste à différents "composants". Dans cet article, ces composants sont le CVM et les fonctions intégrées. Plus précisément, la disposition spécifie le nombre relatif de cellules de piste que chaque composant obtient. (Les constructions de mise en page sont toujours utilisées pour simplifier la validation. Pour en savoir plus, lisez la section "Simplicité" de cet article).

Le point clé est que la complexité de la preuve dépend du nombre total de cellules de piste allouées par la mise en page, et l'allocation de cellule de piste peut être plus grande que nécessaire. Par exemple, pour illustrer l'ordre des étapes des CVM, une disposition qui n'affecte que des cellules de trace aux composants CVM est environ deux fois plus efficace qu'une disposition qui affecte la moitié des cellules de trace aux fonctions intégrées de Poseidon. En conclusion, une mise en page appropriée peut réduire considérablement la complexité de prouver un calcul particulier.

Il existe actuellement une liste de mises en page gérée manuellement qui s'allonge avec le temps pour deux raisons principales :

  1. Les fonctions intégrées ne peuvent être utilisées que pour la disposition de l'unité de voie qui leur est attribuée. Par conséquent, l'ajout d'éléments intégrés nécessite au moins une nouvelle mise en page.

  2. Une mise en page adaptée pour exécuter le code Cairo optimise l'allocation des cellules. Par conséquent, l'optimisation des cas d'utilisation dans les cellules nécessite souvent de nouvelles dispositions.

Le code du prouveur et du validateur (validateurs Solidity et Cairo) est configuré en fonction de la liste de mise en page.

Au fur et à mesure que les commandes intégrées Keccak et Poseidon ont été ajoutées, il est devenu de plus en plus difficile de garder des listes de mise en page suffisamment petites pour accueillir de nombreuses commandes intégrées et pour que la plupart des blocs Starknet s'exécutent efficacement. De plus, l'efficacité devrait chuter de manière significative à mesure que des éléments intégrés supplémentaires sont introduits, car la disposition doit tenir compte des nombreuses combinaisons et ratios possibles entre les éléments intégrés.

L'équipe StarkWare travaille actuellement à l'amélioration du système en abandonnant les listes de mises en page prédéfinies au profit de "mises en page dynamiques", qui sont des personnalisations instantanées pour chaque exécution de code Cairo. La mise en page dynamique effectuera toujours l'allocation la mieux proportionnée pour la tâche de vérification en cours. D'un point de vue technique, la prise en charge du typage dynamique nécessiterait des modifications considérables de la base de code. Cependant, l'équipe StarkWare espère simplifier la couche de preuve de Starknet en tirant parti de la disposition dynamique, de l'amélioration de l'utilisation des unités de piste et d'une meilleure utilisation des prouveurs.

Avec les mises en page dynamiques, les tracas liés à la maintenance manuelle de nombreux éléments intégrés disparaissent, ce qui simplifie le processus d'intégration de nouveaux éléments intégrés dans Starknet.

Mise en page dynamique et frais

L'un des objectifs des frais de transaction est de facturer aux utilisateurs le coût marginal du protocole encouru par les transactions. Étant donné que l'unité des frais de transaction est la devise, le mécanisme de frais implique la conversion des ressources (par exemple, les étapes de la machine virtuelle, les fonctions intégrées, les données d'appel, le gaz Ethereum) en jetons (par exemple, STRK, ETH).

Actuellement, étant donné que les prouveurs facturent des frais basés sur le nombre total de traces plutôt que sur les taux d'utilisation, le gaspillage des ressources est supporté par les utilisateurs. La disposition dynamique améliorera l'utilisation des unités de voie, réduisant ainsi la facturation de frais de transaction "inutiles" (y compris la consommation de ressources non directement causée par les transactions des utilisateurs).

Intégration de la fonction intégrée Starknet

À ce stade, l'intégration des fonctions intégrées est en deçà de la dernière étape, qui consiste à modifier la base de code Starknet pour réaliser une utilisation pratique. L'étendue de la modification du code est liée à l'application de mise en page, et il est nécessaire de modifier le code pour s'assurer que le système d'exploitation Starknet appelle les fonctions intégrées lorsque cela est possible. Par exemple, le système d'exploitation Starknet appelle la fonction de hachage Poseidon lors de l'exécution du code Cairo et appelle en même temps la fonction intégrée Poseidon.

Semblables aux mises en page, les éléments intégrés Starknet peuvent désormais être pris en charge manuellement. Cependant, contrairement au cas de mise en page, ce support manuel n'est pas un obstacle à l'intégration même s'il existe de nombreuses fonctions intégrées. En d'autres termes, la prise en charge des éléments intégrés de Starknet n'est pas un obstacle à l'intégration, la mise en page dynamique ouvrira vraiment la voie à la création et à l'intégration d'éléments intégrés supplémentaires.

Résumer

Dans cet article, nous expliquons ce que sont les fonctions intégrées, leurs avantages, les défis impliqués et les projets de StarkWare. L'accent est actuellement mis sur la mise en page dynamique, qui non seulement améliorera l'efficacité du processus de preuve, mais facilitera également l'intégration de nouveaux éléments intégrés.

Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
  • Récompense
  • 1
  • Partager
Commentaire
0/400
BuyAndWaitForTheRisvip
· 2024-04-12 16:41
Pièces d’embuscade au centuple 📈
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)