En tant que système distribué, la couche 1 nécessite des coûts de communication élevés pour parvenir à un consensus, et une grande quantité de calculs consommera également du gaz coûteux. Par conséquent, en tant qu'extension de Layer1, la conception de Layer2 peut améliorer efficacement l'efficacité de Layer1. Mais de ce point de vue, la conception de la couche 2 est toujours confrontée au même gros problème que la couche 1, à savoir comment équilibrer le degré de décentralisation et d'efficacité.
zkRollup est une solution d'extension de couche 2 très prometteuse, qui est réalisée en déplaçant les calculs hors de la chaîne et en fournissant des preuves sans connaissance à la chaîne de couche 1. Dans la solution pour réaliser zkRollup, le système FOX adopte la structure courante actuelle, et il existe principalement deux types de nœuds, à savoir Sequencer et Folder. En termes simples, Sequencer est responsable du tri et de l'emballage des transactions soumises par les utilisateurs et de la mise à jour du statut sur la chaîne Layer 2. Folder est chargé de générer des preuves pour les transactions emballées par Sequencer et de les soumettre à Layer 1.
Une question intéressante est de savoir si les nœuds de la couche 2 doivent être décentralisés et, dans l'affirmative, comment concevoir des incitations pour garantir cela. Parce qu'il est concevable que l'essence de la faible efficacité de Layer1 est que, pour réaliser la décentralisation, chaque nœud doit effectuer une grande quantité de calculs et de communication. Cependant, le système de couche 2 est utilisé pour découpler le processus de calcul. Si le modèle décentralisé qui est complètement équivalent à la couche 1 est toujours utilisé dans cette partie, cela entraînera une congestion de la couche 2 pour la même raison, donc un compromis doit être être fait ici.
La conception du mécanisme d'incitation est d'encourager les nœuds à participer à la maintenance du système Layer2 en ajustant la manière dont les nœuds Layer2 obtiennent des frais d'incitation et en équilibrant les frais payés aux nœuds Layer2. Essentiellement, la source des frais incitatifs reçus par les nœuds Layer2 est la même que celle d'Ethereum, qui provient des frais de gaz payés par les utilisateurs qui soumettent des transactions. Cet article discutera dans le système FOX, comment les nœuds FOX participent au système pour collecter les frais de transaction, et les raisons de le faire.
Le rôle du gaz
Examinons d'abord le rôle des frais de gaz dans le système Ethereum. Les ressources informatiques de la couche 1 sont limitées. Lorsque les utilisateurs soumettent une transaction, ils précisent les frais de gaz de transaction. Les frais de gaz sont essentiellement liés à la complexité de l'opération d'exécution de la transaction. Sur cette base, les utilisateurs qui sont prêts à payer un des frais de gaz plus élevés peuvent obtenir un outil de transaction plus prioritaire. Les incitations des mineurs proviennent de la somme des frais de gaz des blocs conditionnés. En outre, le mécanisme de redevance sur le gaz peut également empêcher efficacement les contrats malveillants (tels que les boucles infinies) et limiter la taille des blocs, ce qui garantit la sécurité dans une certaine mesure.
Par conséquent, on peut voir que l'utilisation raisonnable des frais de gaz est essentiellement une planification et une allocation raisonnables des ressources informatiques sur la chaîne, et c'est aussi un jeu multipartite entre les parties du projet, les mineurs et les utilisateurs. Une bonne conception du mécanisme d'incitation et l'utilisation et la répartition des redevances sont essentielles au fonctionnement du système.
Processus de transaction en chaîne
Lorsqu'un utilisateur soumet une transaction au pool de transactions dans le système FOX, des frais sont ajoutés pour motiver le nœud FOX, puis le nœud Sequencer dans le système récupère la transaction du pool de transactions pour l'emballage et le tri, où chaque transaction emballée constitue des blocs de couche 2, et Sequencer doit effectuer des calculs de transaction et transmettre les résultats des calculs au contrat FOX de couche 1, et Sequencer doit également stocker les données de transaction dans ZK-Ringer pour garantir la disponibilité des données. Ensuite, les résultats de tri et les résultats de calcul du séquenceur seront envoyés au nœud Dossier, et le dossier calculera correctement la preuve (y compris la partie d'agrégation de preuve) et la transmettra au contrat Layer1. Dans ce processus, le résultat de l'exécution de la transaction par Sequencer sera directement mis à jour vers la couche 2 une fois l'exécution terminée, et le nœud temporel auquel la transaction est réellement consensuelle par la couche 1 peut être considéré comme une fois la preuve du dossier vérifiée.
On peut voir que dans ce processus, les frais de traitement initiaux attachés par l'utilisateur couvrent plusieurs objectifs :
Frais de traitement payés à Sequencer
Frais de traitement payés au dossier
Frais de gaz pour que Sequencer soumette les résultats de la transaction à Layer1
Frais de séquenceur pour le stockage des informations dans ZK-Ringer
Les frais de gaz pour le dossier appelant le contrat
À cette fin, nous devons mettre au point des mécanismes spécifiques pour motiver toutes les parties à participer.
Mécanisme incitatif de FOX
Le modèle incitatif de FOX est relativement nouveau. Premièrement, afin d'équilibrer les problèmes de décentralisation et d'efficacité, nous divisons les rôles des nœuds en nœuds Sequencer responsables du tri et de l'exécution des transactions, et nœuds Folder responsables de la génération et de l'agrégation des preuves de l'exactitude de l'exécution des transactions. Le nœud Folder de FOX adopte un modèle décentralisé, ce qui signifie que tout mineur FOX peut accéder au réseau en tant que générateur de preuves.Afin d'encourager davantage de nœuds à participer, le dossier qui soumet avec succès la preuve correcte au contrat Layer1 peut obtenir des récompenses symboliques. Dans le même temps, afin d'éviter de gaspiller la puissance de calcul, nous soulignons que non seulement le premier soumissionnaire de preuve peut obtenir des récompenses, mais dans une fenêtre de temps et une fenêtre de quantité après que le premier soumissionnaire de preuve a soumis avec succès (les paramètres spécifiques ici varieront avec conditions du système), tous les certificateurs corrects peuvent être récompensés.
Figure 1 : La version originale du modèle incitatif
Cependant, sous ce mécanisme, un dossier malveillant aura une attaque très rusée.
Lorsqu'un dossier malveillant, désigné par Adv, termine la génération de la preuve, il soumet la preuve au contrat de vérification dans la couche 1 pour vérification d'une part, et d'autre part il s'associe à certains nœuds (ou nœuds contrôlés par le dossier), et La preuve calculée est divulguée à ces nœuds, puis ils peuvent soumettre directement la preuve calculée par Adv sans leur propre calcul, et peuvent également recevoir une partie de la récompense, et ils n'ont payé aucune puissance de calcul au cours de ce processus. perspective En d'autres termes, Adv obtient de multiples avantages avec moins de puissance de calcul, et il est difficile pour d'autres nœuds de concourir pour Adv même s'ils génèrent des preuves correctes.
Figure 2 : Méthode d'attaque du dossier malveillant
Dans cette attaque, la raison du problème est que le vérificateur ne peut pas distinguer si chaque certificat est généré indépendamment par le dossier, car la valeur du certificat est la même. Afin d'éviter ce problème, nous devons ajouter les informations d'adresse unique du dossier au certificat soumis par le dossier, de sorte que le certificat soumis par chaque dossier ne puisse être généré indépendamment que par lui-même et ne puisse pas être soumis par d'autres nœuds.
La méthode d'incorporation de ces informations est très astucieuse, utilisant l'heuristique Fiat-Shamir (les lecteurs peuvent se référer à l'article précédent de FOX "Comment transformer des preuves interactives en preuves non interactives ? Heuristique Fiat-Shamir !" pour les détails techniques). Calculé selon le processus de génération d'une preuve, l'une des étapes, le prouveur, c'est-à-dire que Dossier doit générer une valeur de défi aléatoire via une fonction de hachage, et n'a qu'à ajouter l'adresse de Dossier à l'entrée de ce hachage, de sorte que la valeur de défi et le dossier correspondant à l'adresse, et est toujours un nombre aléatoire que le dossier ne peut pas prédire et contrôler.
Énoncer strictement la sécurité de cette méthode nécessite l'utilisation des concepts de fonctions aléatoires théoriquement sécurisées en cryptographie et d'indiscernabilité, etc., dont nous ne discuterons pas en détail ici. En termes simples, on peut considérer qu'en raison de la sécurité de la fonction de hachage elle-même et de la sécurité de la structure heuristique de Fiat-Shamir, l'ajout d'une valeur fixe comme préimage du hachage ne détruira pas l'imprévisibilité de la sortie, donc le la sécurité de l'algorithme zkp d'origine est toujours garantie.
De cette façon, chaque dossier doit générer indépendamment des preuves et ne peut pas utiliser directement les résultats des autres nœuds, atteignant ainsi notre objectif.
Figure 3 : Schéma incitatif modifié
Conclusion
Du point de vue du rôle important des frais de nœud, cet article présente le lien entre les frais et comment motiver les nœuds à participer à la maintenance du système. En même temps, il souligne qu'un bon mécanisme d'incitation peut maintenir efficacement la sécurité du système. Sur cette base, nous avons discuté en détail du mécanisme d'incitation pour le dossier de couche 2 adopté par FOX, et expliqué la rationalité de cette approche, et comment utiliser habilement l'heuristique Fiat-Shamir pour y parvenir.
les références
"En profondeur|Itération et concurrence - La voie vers l'expansion de la couche 2 d'Ethereum" Guosheng Blockchain Research Institute
Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Parlez du mécanisme d'incitation de la couche 2 : une autre utilisation merveilleuse de l'heuristique Fiat-Shamir dans FOX
Préface
En tant que système distribué, la couche 1 nécessite des coûts de communication élevés pour parvenir à un consensus, et une grande quantité de calculs consommera également du gaz coûteux. Par conséquent, en tant qu'extension de Layer1, la conception de Layer2 peut améliorer efficacement l'efficacité de Layer1. Mais de ce point de vue, la conception de la couche 2 est toujours confrontée au même gros problème que la couche 1, à savoir comment équilibrer le degré de décentralisation et d'efficacité.
zkRollup est une solution d'extension de couche 2 très prometteuse, qui est réalisée en déplaçant les calculs hors de la chaîne et en fournissant des preuves sans connaissance à la chaîne de couche 1. Dans la solution pour réaliser zkRollup, le système FOX adopte la structure courante actuelle, et il existe principalement deux types de nœuds, à savoir Sequencer et Folder. En termes simples, Sequencer est responsable du tri et de l'emballage des transactions soumises par les utilisateurs et de la mise à jour du statut sur la chaîne Layer 2. Folder est chargé de générer des preuves pour les transactions emballées par Sequencer et de les soumettre à Layer 1.
Une question intéressante est de savoir si les nœuds de la couche 2 doivent être décentralisés et, dans l'affirmative, comment concevoir des incitations pour garantir cela. Parce qu'il est concevable que l'essence de la faible efficacité de Layer1 est que, pour réaliser la décentralisation, chaque nœud doit effectuer une grande quantité de calculs et de communication. Cependant, le système de couche 2 est utilisé pour découpler le processus de calcul. Si le modèle décentralisé qui est complètement équivalent à la couche 1 est toujours utilisé dans cette partie, cela entraînera une congestion de la couche 2 pour la même raison, donc un compromis doit être être fait ici.
La conception du mécanisme d'incitation est d'encourager les nœuds à participer à la maintenance du système Layer2 en ajustant la manière dont les nœuds Layer2 obtiennent des frais d'incitation et en équilibrant les frais payés aux nœuds Layer2. Essentiellement, la source des frais incitatifs reçus par les nœuds Layer2 est la même que celle d'Ethereum, qui provient des frais de gaz payés par les utilisateurs qui soumettent des transactions. Cet article discutera dans le système FOX, comment les nœuds FOX participent au système pour collecter les frais de transaction, et les raisons de le faire.
Le rôle du gaz
Examinons d'abord le rôle des frais de gaz dans le système Ethereum. Les ressources informatiques de la couche 1 sont limitées. Lorsque les utilisateurs soumettent une transaction, ils précisent les frais de gaz de transaction. Les frais de gaz sont essentiellement liés à la complexité de l'opération d'exécution de la transaction. Sur cette base, les utilisateurs qui sont prêts à payer un des frais de gaz plus élevés peuvent obtenir un outil de transaction plus prioritaire. Les incitations des mineurs proviennent de la somme des frais de gaz des blocs conditionnés. En outre, le mécanisme de redevance sur le gaz peut également empêcher efficacement les contrats malveillants (tels que les boucles infinies) et limiter la taille des blocs, ce qui garantit la sécurité dans une certaine mesure.
Par conséquent, on peut voir que l'utilisation raisonnable des frais de gaz est essentiellement une planification et une allocation raisonnables des ressources informatiques sur la chaîne, et c'est aussi un jeu multipartite entre les parties du projet, les mineurs et les utilisateurs. Une bonne conception du mécanisme d'incitation et l'utilisation et la répartition des redevances sont essentielles au fonctionnement du système.
Processus de transaction en chaîne
Lorsqu'un utilisateur soumet une transaction au pool de transactions dans le système FOX, des frais sont ajoutés pour motiver le nœud FOX, puis le nœud Sequencer dans le système récupère la transaction du pool de transactions pour l'emballage et le tri, où chaque transaction emballée constitue des blocs de couche 2, et Sequencer doit effectuer des calculs de transaction et transmettre les résultats des calculs au contrat FOX de couche 1, et Sequencer doit également stocker les données de transaction dans ZK-Ringer pour garantir la disponibilité des données. Ensuite, les résultats de tri et les résultats de calcul du séquenceur seront envoyés au nœud Dossier, et le dossier calculera correctement la preuve (y compris la partie d'agrégation de preuve) et la transmettra au contrat Layer1. Dans ce processus, le résultat de l'exécution de la transaction par Sequencer sera directement mis à jour vers la couche 2 une fois l'exécution terminée, et le nœud temporel auquel la transaction est réellement consensuelle par la couche 1 peut être considéré comme une fois la preuve du dossier vérifiée.
On peut voir que dans ce processus, les frais de traitement initiaux attachés par l'utilisateur couvrent plusieurs objectifs :
À cette fin, nous devons mettre au point des mécanismes spécifiques pour motiver toutes les parties à participer.
Mécanisme incitatif de FOX
Le modèle incitatif de FOX est relativement nouveau. Premièrement, afin d'équilibrer les problèmes de décentralisation et d'efficacité, nous divisons les rôles des nœuds en nœuds Sequencer responsables du tri et de l'exécution des transactions, et nœuds Folder responsables de la génération et de l'agrégation des preuves de l'exactitude de l'exécution des transactions. Le nœud Folder de FOX adopte un modèle décentralisé, ce qui signifie que tout mineur FOX peut accéder au réseau en tant que générateur de preuves.Afin d'encourager davantage de nœuds à participer, le dossier qui soumet avec succès la preuve correcte au contrat Layer1 peut obtenir des récompenses symboliques. Dans le même temps, afin d'éviter de gaspiller la puissance de calcul, nous soulignons que non seulement le premier soumissionnaire de preuve peut obtenir des récompenses, mais dans une fenêtre de temps et une fenêtre de quantité après que le premier soumissionnaire de preuve a soumis avec succès (les paramètres spécifiques ici varieront avec conditions du système), tous les certificateurs corrects peuvent être récompensés.
Figure 1 : La version originale du modèle incitatif
Cependant, sous ce mécanisme, un dossier malveillant aura une attaque très rusée.
Lorsqu'un dossier malveillant, désigné par Adv, termine la génération de la preuve, il soumet la preuve au contrat de vérification dans la couche 1 pour vérification d'une part, et d'autre part il s'associe à certains nœuds (ou nœuds contrôlés par le dossier), et La preuve calculée est divulguée à ces nœuds, puis ils peuvent soumettre directement la preuve calculée par Adv sans leur propre calcul, et peuvent également recevoir une partie de la récompense, et ils n'ont payé aucune puissance de calcul au cours de ce processus. perspective En d'autres termes, Adv obtient de multiples avantages avec moins de puissance de calcul, et il est difficile pour d'autres nœuds de concourir pour Adv même s'ils génèrent des preuves correctes.
Figure 2 : Méthode d'attaque du dossier malveillant
Dans cette attaque, la raison du problème est que le vérificateur ne peut pas distinguer si chaque certificat est généré indépendamment par le dossier, car la valeur du certificat est la même. Afin d'éviter ce problème, nous devons ajouter les informations d'adresse unique du dossier au certificat soumis par le dossier, de sorte que le certificat soumis par chaque dossier ne puisse être généré indépendamment que par lui-même et ne puisse pas être soumis par d'autres nœuds.
La méthode d'incorporation de ces informations est très astucieuse, utilisant l'heuristique Fiat-Shamir (les lecteurs peuvent se référer à l'article précédent de FOX "Comment transformer des preuves interactives en preuves non interactives ? Heuristique Fiat-Shamir !" pour les détails techniques). Calculé selon le processus de génération d'une preuve, l'une des étapes, le prouveur, c'est-à-dire que Dossier doit générer une valeur de défi aléatoire via une fonction de hachage, et n'a qu'à ajouter l'adresse de Dossier à l'entrée de ce hachage, de sorte que la valeur de défi et le dossier correspondant à l'adresse, et est toujours un nombre aléatoire que le dossier ne peut pas prédire et contrôler.
Énoncer strictement la sécurité de cette méthode nécessite l'utilisation des concepts de fonctions aléatoires théoriquement sécurisées en cryptographie et d'indiscernabilité, etc., dont nous ne discuterons pas en détail ici. En termes simples, on peut considérer qu'en raison de la sécurité de la fonction de hachage elle-même et de la sécurité de la structure heuristique de Fiat-Shamir, l'ajout d'une valeur fixe comme préimage du hachage ne détruira pas l'imprévisibilité de la sortie, donc le la sécurité de l'algorithme zkp d'origine est toujours garantie.
De cette façon, chaque dossier doit générer indépendamment des preuves et ne peut pas utiliser directement les résultats des autres nœuds, atteignant ainsi notre objectif.
Figure 3 : Schéma incitatif modifié
Conclusion
Du point de vue du rôle important des frais de nœud, cet article présente le lien entre les frais et comment motiver les nœuds à participer à la maintenance du système. En même temps, il souligne qu'un bon mécanisme d'incitation peut maintenir efficacement la sécurité du système. Sur cette base, nous avons discuté en détail du mécanisme d'incitation pour le dossier de couche 2 adopté par FOX, et expliqué la rationalité de cette approche, et comment utiliser habilement l'heuristique Fiat-Shamir pour y parvenir.
les références
"En profondeur|Itération et concurrence - La voie vers l'expansion de la couche 2 d'Ethereum" Guosheng Blockchain Research Institute