HomeData scienceConception générale du protocole : Rollup | by Maxime Adjignon | Oct,...

Conception générale du protocole : Rollup | by Maxime Adjignon | Oct, 2024


En tant que base d’un projet de couche 2, le processus «Rollup» fait référence à la méthode par laquelle la couche 2 assemble les transactions L2 et l’état en heaps et les soumet ensuite à L1, ainsi que l’état L2.

Dans l’structure de Morph , ce processus d’enroulement est exécuté par les composants Batch Submitter.

Un aperçu de Morph Rollup Design :

Construire le lot

Le nœud L2 dans le séquenceur génère des blocs L2 basés sur les résultats consensuels et met à jour l’état native de L2. L’expéditeur de lot doit interroger le nœud L2 pour récupérer les derniers blocs L2.

L’expéditeur de heaps reconstruit ensuite les blocs L2, en compilant :

  • Transactions: All transactions contained inside the blocks.
  • Blockinfo : Important data from every block.

L’expéditeur de lot proceed de récupérer et de reconstruire les blocs jusqu’à ce qu’il traite un bloc avec une signature BLS, indiquant que le level de lot a été atteint. Les données de bloc reconstruites sont utilisées pour construire un lot, qui contient :

  • lastBlocknumber : Le numéro du bloc closing dans le lot.
  • Transactions : Transactions codées au sein du lot.
  • BlockWitness : Informations de bloc codées, utilisées pour zkProof.
  • PreStateRoot : Le stateRoot avant que le lot ne soit appliqué.
  • PostStateRoot : Le stateRoot après l’software du lot.
  • Racine de retrait : retrait L2 racine de l’arbre Merkle.
  • Signature : La signature BLS du lot.

Blockinfo (BlockWitness) est nécessaire automotive Morph utilise la technologie zk pour prouver l’exactitude des données par heaps soumises. Il sert de témoin dans la preuve de la connaissance zéro.

Mettre plusieurs heaps dans une seule transaction rollup

Bien qu’il soit customary pour les projets roll-up d’inclure un seul lot par transaction roll-up L1, Morph optimise en insérant autant de heaps que attainable dans une seule transaction L1. Cette approche axée sur l’efficacité réduit considérablement les coûts globaux, automotive les frais L1 sont une composante prédominante des coûts de transaction associés à la L2. En optimisant l’utilisation de l’espace disponible, Morph atteint la rentabilité sans compromettre l’intégrité des transactions.

Soumission de données par heaps au contrat de déploiement

L’expéditeur de heaps enverra éventuellement une transaction Ethereum de son compte L1 au contrat principal de Morph.

Les données d’appel de la transaction contiennent les données du lot.

Sur la base du processus de développement de l’ERC-4337, les futures données par heaps seront probablement intégrées dans une nouvelle construction de « blob » pour réduire davantage les coûts.

Une fois la transaction soumise et confirmée sur Ethereum, les nœuds de validation peuvent reconstruire et vérifier la validité des soumissions des séquenceurs en utilisant les données transactionnelles dans le lot.

Finaliser les heaps

Si les heaps sont valides selon les normes de preuve de validité réactives de Morph, toutes les transactions au sein des heaps seront finalisées, y compris les transactions de retrait.

Par conséquent, les demandes de retrait seront satisfaites et les actifs verrouillés correspondants sur la couche 1 seront libérés.

Qu’est-ce que l’expéditeur de heaps ?

Un soumissionnaire de heaps joue un rôle essential dans le processus de «rollup», agissant comme le pont qui relie les données de la couche 2 (L2) avec Ethereum (couche 1 ou L1). Leurs principales responsabilités comprennent :

  • Collecter les transactions L2 et bloquer les données, les assembler dans un lot cohérent.
  • Intégration de ces données de lot dans une transaction de couche 1.
  • Exécution de cette transaction en appelant le contrat de couche 1 pour terminer le processus de cumul.

Quelle est la relation entre les séquenceurs et les soumissionnaires de heaps ?

La fonction d’expéditeur par heaps est souvent intégrée dans le rôle plus giant de «séquenceur». Dans une structure de réseau de séquenceur décentralisée, chaque séquenceur est équipé ou a accès à un composant de soumission par heaps. Cette intégration est essentielle pour atteindre et maintenir les plus hauts niveaux de décentralisation.

Cette construction garantit que les données téléchargées sur la couche 1 restent décentralisées, empêchant une seule entité de contrôler le processus de déploiement.

Remark décentraliser l’expéditeur de heaps ?

Pour maintenir les principes susmentionnés, il est essentiel de s’assurer que plusieurs séquenceurs peuvent partager les tâches de cumul de manière égale dans le même délai. Notre approche pour y parvenir implique un système de rotation permettant aux séquenceurs de se relayer avec la responsabilité d’appeler le soumissionnaire du lot, comme détaillé ci-dessous :

Rotation de l’expéditeur

  • Changement de rôle du cycle d’époque : les séquenceurs alternent les rôles en tant que soumissionnaires de heaps au sein d’un cycle d’époque établi.
  • Capacité d’exécution croisée : N’importe quel séquenceur peut effectuer un Rollup pour l’époque d’un autre séquenceur.
  • Enregistrement du délai d’attente : Le système enregistre les cas où un seul rollup ne se produit pas pendant une époque, l’époque sera marquée comme «timeout» ainsi que le séquenceur responsable.

Temps de repos

  • Identification du délai d’attente : Si une époque passe sans rollup (soumission de lot), elle est identifiée comme un «timeout». Le second d’un rollup est indexé sur l’heure de affirmation de la transaction rollup de couche 1.
  • Rotation de l’époque : La durée d’une époque et le calendrier de rotation sont régis par la gouvernance du réseau de séquenceurs. Les séquenceurs se voient attribuer des index qui déterminent leur responsabilité pour une époque. Avec les changements dans l’ensemble du séquenceur, les index sont réattribués et les époques tournent en conséquence en fonction de ces nouvelles affectations.

Pénalités pour le temps mort

  • Pénalités accumulées : Les séquenceurs qui présentent fréquemment des comportements de délai d’attente peuvent faire face à des pénalités liées à leur jalonnement ETH de couche 1, si les enregistrements de délai d’attente atteignent un sure niveau, le séquenceur peut/sera coupé du réseau du séquenceur.

Module Design

Vous trouverez ci-dessous les contrats responsables de chaque module et leurs responsabilités :

Couche 1

  • RollupContract : enregistre l’exécuteur d’enrroulage et se synchronise avec L2

Couche 2

  • SequencerContract : Séquenceurs de synchronisation
  • GovContract : Gérer les paramètres de lot et d’époque
  • Contrat de soumissionnaire :

Enregistrer les informations sur l’époque

Historique de l’enregistrement

Cost de travail de l’expéditeur d’enregistrement

Délais d’attente de l’expéditeur d’enregistrement

  • Contrat d’incitation : Conduit des actions d’incitation et de pénalité

Restez au courant de nos progrès :

Suivez @MorphL2 sur X

Rejoignez notre serveur Discord

Abonnez-vous à notre weblog à l’adresse https://weblog.morphl2.io/

Que vous soyez un développeur, un investisseur ou un passionné de blockchain, il y a une place pour vous dans l’écosystème Morph.

Rejoignez-nous pour faire de la blockchain une partie intégrante de la vie quotidienne des consommateurs du monde entier.



Supply hyperlink

latest articles

ChicMe WW
Lightinthebox WW

explore more