L'avenir de l'expansion des capacités : concept de conception de système multi-Rollup

Auteur : AndreasTzionis ; Source : ethresear.ch ; Compilateur : Yvonne, MarsBit

Depuis longtemps, j'ai eu l'idée de résoudre certains des problèmes actuellement rencontrés par Rollup grâce à une conception multi-Rollup (multi-Rollup). Pendant environ un an et demi, j'ai pensé que quelqu'un le construirait, mais je n'ai jamais vraiment approfondi ni réfléchi aux détails d'un tel système.

Cela fait un moment maintenant et il ne semble pas y avoir une seule conception qui résolve le problème que j'ai décrit dans cet article, je vais donc donner autant de détails que possible sur ce système dans l'espoir que quelqu'un puisse le prendre. inspirez-vous-en, voire du Rollup existant. Empruntez quelques idées.

introduire

Aujourd’hui, l’un des problèmes auxquels Rollup est confronté est l’expérience utilisateur. Dans de nombreuses conceptions, les Rollups sont des écosystèmes indépendants présentant des caractéristiques différentes. Il existe des moyens d’interopérer, mais connecter plusieurs systèmes hétérogènes constitue tout un défi. De plus, il est difficile d’amener les utilisateurs à s’inscrire à tous ces Rollups. Ils doivent comprendre chaque Rollup individuellement, évaluer les contrats intelligents pertinents, connecter leurs portefeuilles aux nouveaux points de terminaison RPC, relier les actifs à la chaîne, etc.

Et s’il existait une conception de cumul capable de fournir une expérience unifiée pour tous les cumuls ? A quoi cela ressemblera-t-il?

Je me suis posé cette question et je suis reparti avec les cinq idées suivantes :

Il devrait fournir un RPC unifié pour interroger et appeler différents contrats intelligents dans Rollup. Les contrats intelligents doivent avoir une adresse unique qui ne dépend pas du Rollup auquel ils appartiennent.

Cela devrait permettre une augmentation et une réduction en fonction de la demande. Plus de transactions devraient signifier plus de Rollups pour les traiter, et la charge inégale entre les Rollups devrait être équilibrée.

Cela devrait inciter les séquenceurs des différents Rollups à rester en ligne. Le système devrait encourager d’autres trieurs à remplacer le trieur hors ligne.

Il devrait prendre en charge les transferts instantanés entre chaînes. Les transactions doivent être réglées suffisamment rapidement pour que les opérations inter-chaînes aient un sens.

Il doit conserver les fonctionnalités de client léger et d'explorateur de blocs lors de plusieurs fusions. Les explorateurs de blocs doivent fournir une vue unifiée de la blockchain, et les clients légers doivent permettre une vérification à faible coût.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-24cc855280-dd1a6f-6d2ef1)

En tenant compte de tout cela, j'ai proposé une conception composée d'un hub Rollup et d'un nombre variable de sous-Rollups. Le hub Rollup est à la fois le centre d'enregistrement et l'équilibreur de charge de tous les sous-Rollups, mais il n'effectue aucun traitement de contrat intelligent. Les contrats intelligents sont gérés dans des sous-Rollups.

Dans les sections suivantes, je passerai en revue une ébauche de conception pour expliquer les 5 considérations que j'ai mentionnées ci-dessus.

Aperçu de la conception

Le système comporte deux composants principaux : le hub Rollup et le sous-Rollup. Le système de hub Rollup comprend deux composants principaux : le hub Rollup et le sous-Rollup. Un hub Rollup est un Rollup qui contient tous les registres de contrats intelligents de tous les sous-Rollups et détermine quel Rollup est responsable de quel contrat intelligent. De plus, le hub Rollup contient un registre de tous les séquenceurs pour un autre Rollup enfant. Les chaînes enfants sont responsables de l'exécution des transactions pour les contrats intelligents qui leur sont attribués par le hub Rollup dans le registre des contrats intelligents. Le registre du trieur contient deux composants principaux pour chaque système de tri : le hub de cumul et le cumul enfant. Un hub Rollup est un Rollup qui contient tous les registres de contrats intelligents de tous les sous-Rollups et détermine quel Rollup est responsable de quel contrat intelligent. De plus, le hub Rollup contient un registre de tous les séquenceurs pour un autre Rollup enfant. Les chaînes enfants sont responsables de l'exécution des transactions pour les contrats intelligents qui leur sont attribués par le hub Rollup dans le registre des contrats intelligents. Le registre du séquenceur contient chaque point de terminaison RPC du séquenceur et l'adresse DA.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-30f0cf6d9f-dd1a6f-6d2ef1)

Registre des séquenceurs

Le registre du séquenceur agit comme un mappage des adresses globales de contrats intelligents avec les adresses de contrats intelligents. Ceci est utilisé pour acheminer les appels RPC vers le séquenceur spécifique RPC correspondant au contrat intelligent interrogé ou mis à jour.

Registre des contrats intelligents

Le registre des contrats intelligents agit comme un mappage des adresses globales des contrats intelligents aux adresses des contrats intelligents.

Chaîne enroulable

Les chaînes enfants ont généralement une racine d'état. Cette route d'état peut être mise à jour en appelant directement le contrat intelligent ou lorsque le hub de Rollup attribue le contrat intelligent à un autre Rollup. Dans ce cas, le contrat intelligent doit être supprimé et remplacé. Il est ajouté à d'autres contrats intelligents.

RPC unifié

Objectif : ne pas avoir à se connecter à une nouvelle chaîne pour chaque rollup et rendre les transactions cross-rollup transparentes pour les utilisateurs.

Unified RPC restaure l'expérience utilisateur d'une chaîne unique dans un réseau multi-Rollup, et les utilisateurs n'ont pas besoin de se connecter à différents réseaux pour utiliser différents Rollups.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-74756eed1e-dd1a6f-6d2ef1)

Le système utilise un registre de donneurs d'ordre Rollup du hub Rollup pour trouver le point de terminaison RPC du donneur d'ordre correspondant à un contrat intelligent particulier. La demande est ensuite soumise directement à ce séquenceur. Plusieurs transactions peuvent être effectuées en soumettant des demandes à différents Rollups. Consultez les sections suivantes pour plus de détails.

comment travailler

Le hub Rollup gère un registre de séquenceurs pour toutes les chaînes enfants.

Lorsqu'un utilisateur souhaite soumettre une nouvelle transaction, le portefeuille utilisateur interroge le registre des contrats intelligents pour obtenir le RollupID du contrat intelligent, et interroge le registre du séquenceur pour obtenir le point de terminaison RPC du séquenceur dans le même cumul.

La transaction est ensuite soumise au point de terminaison RPC du séquenceur.

L'équilibrage de charge

Objectif : équilibrer les coûts de tous les cumuls

L'équilibrage de charge permet d'équilibrer la charge dans Rollup. Lorsque le système est obstrué, de nouveaux rollups peuvent être générés pour gérer la charge. Lorsqu'il n'est pas très utile, le Rollup peut être supprimé pour économiser des ressources. De plus, le système peut éviter les hausses de frais en déplaçant les contrats intelligents avec une forte demande de transactions vers des cumuls avec une plus grande capacité disponible.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-632aa78015-dd1a6f-6d2ef1)

comment travailler

À chaque époque, le hub Rollup évalue la charge de tous les Rollups du système. Les époques devraient durer quelques heures (peut-être 6 à 24 heures) pour éviter des réallocations de contrats intelligents à grande échelle.

Le hub Rollup peut décider quels contrats intelligents réattribuer et quand générer ou supprimer des Rollups, soit en utilisant la gouvernance, soit en utilisant l'historique de consommation de gaz des différents contrats intelligents pour décider de manière autonome.

Le hub Rollup vérifie si un Rollup a une charge de transaction supérieure à la moyenne (c'est-à-dire que les frais sont élevés) ou inférieure à la moyenne (c'est-à-dire que les frais sont faibles).

Si un Rollup a une charge supérieure à la moyenne, le hub Rollup évalue quels contrats intelligents consomment le plus de gaz et le redistribue à un autre Rollup qui peut prendre la charge supplémentaire. Le contrat intelligent est ensuite supprimé de son état initial de rollup hôte.

Si la charge moyenne de tous les Rollups est supérieure à la moyenne, le hub Rollup créera un nouveau Rollup et attribuera des contrats intelligents au nouveau Rollup. De même, si la charge moyenne de tous les Rollups est inférieure à la moyenne, le hub Rollup supprimera un Rollup et réaffectera ses contrats intelligents à d'autres Rollups.

Les chaînes de rollup doivent examiner le hub Rollup à chaque époque, télécharger le stockage de tous les nouveaux contrats intelligents qui leur sont attribués et supprimer tous les contrats intelligents qui n'en sont plus responsables.

Remarque : Le téléchargement du stockage pour certains contrats intelligents n'est peut-être pas une mince affaire. Premièrement, l’état n’est pas disponible au niveau de la couche DA et sa taille est assez grande. Cela limite la durée minimale de l'époque et nécessite un délai de grâce pour préparer le stockage des contrats intelligents.

Incitatifs au tri

Objectif : utiliser une partie des récompenses du jeton natif pour inciter les séquenceurs de sauvegarde.

Aujourd'hui, la plupart des Rollups sont construits sur une chaîne unique, gérée par un ou quelques donneurs d'ordre, dans le but de maximiser la disponibilité du Rollup. En revanche, dans un système multi-rollup, il existe plusieurs sous-rollups indépendants, dont chacun doit être en ligne pour rester actif dans tout le système.

Les trieurs seront naturellement incités à rejoindre Rollup pour collecter le MEV, mais il est préférable de fournir des récompenses appropriées à ces trieurs car ils sont plus cohérents et ne désalignent pas les incitations comme le MEV. Ces récompenses devraient provenir de la politique monétaire du hub Rollup.

De plus, il est bon d'avoir plusieurs donneurs d'ordre en attente et prêts à entrer, ces donneurs d'ordre peuvent rejoindre le système lorsque la demande de transaction augmente, et quitter le système lorsqu'il n'y a pas de ressources informatiques.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-02c28a977e-dd1a6f-6d2ef1)

Le séquenceur en veille restera dans la file d'attente du séquenceur et recevra une petite récompense d'engagement de disponibilité. Lorsqu'ils sont échangés en Rollup, ils reçoivent la récompense complète. Les récompenses proviendront du mécanisme de combustion des frais du hub Rollup.

comment utiliser

Les trieurs peuvent rejoindre la file d'attente de tri du hub Rollup en soumettant une caution financière (similaire au système Rollup actuel).

Les clients dans la file d'attente doivent fournir à DA la preuve qu'ils ont le statut de hub Rollup et qu'ils peuvent être lus pour rejoindre Rollup à tout moment.

Lorsqu'ils soumettront des preuves, ils seront récompensés en partie, le jeton natif du système. Ce jeton est un handle sur le hub Rollup.

Si le hub Rollup décide qu'un nouveau Rollup est nécessaire, il lui sera attribué et recevra la récompense complète. Cette récompense est déterminée par le montant total des frais consommés dans le système.

Transactions de cumul croisé

Objectif : les transactions de cumul doivent être instantanées et transparentes pour les utilisateurs.

La transaction cross-Rollup entre le Rollup A et le Rollup B doit comporter deux parties : 1) la transaction sur le Rollup A 2) la transaction sur le Rollup B. Elle ne se produira que lorsque la transaction sur le Rollup A sera réussie et définitive.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-6899964b00-dd1a6f-6d2ef1)

Pour une confirmation rapide, les portefeuilles des utilisateurs peuvent vérifier si la transaction est soumise à la couche DA sous-jacente et prouver sa validité à l'aide de ZK. Si une transaction est incluse et valide, alors le séquenceur doit arriver à la même conclusion pour cette transaction particulière.

Le mérite de l’idée revient à Mustafa Al-Bassam et à Sovereign Labs.

comment utiliser

Un utilisateur soumet une transaction contenant trois cumuls, tels que les cumuls A, B et C.

Pensons à un exemple spécifique, le Rollup A a un contrat intelligent stablecoin, le Rollup B a un DEX et le Rollup C a un protocole de prêt. Dans cet exemple, l'utilisateur souhaite échanger son stablecoin contre un jeton différent et un accord de prêt de dépôt.

Les utilisateurs doivent d'abord soumettre une transaction Rollup A pour transférer des pièces stables vers le DEX sur le Rollup B.

Ils peuvent ensuite soumettre une transaction Rollup B DEX qui échange le stablecoin contre le jeton souhaité sur Rollup B.

À son tour, le jeton était censé être transféré à RollupC, l'utilisateur a donc soumis une troisième transaction, qui a fait exactement cela.

Enfin, l'utilisateur soumet la quatrième et dernière transaction, en déposant les jetons dans le protocole de prêt.

Nœud léger et explorateur de blocs

Objectif : les nœuds légers devraient être capables de vérifier les contrats intelligents dans Rollup, et les explorateurs de blocs devraient fournir une vue unifiée de la chaîne.

Un système blockchain devrait permettre à quiconque d’exécuter un nœud et de vérifier la chaîne elle-même. Dans cette conception multi-rollup, où les contrats intelligents sont constamment réaffectés à différents sous-rollups, il devrait y avoir un moyen de suivre ces contrats intelligents spécifiques. Il s’agit d’un changement de mentalité passant de la validation d’une ou plusieurs chaînes à la validation d’un ou plusieurs contrats intelligents. Les nœuds légers peuvent utiliser des preuves ZK pour vérifier tous les cumuls enfants à faible coût.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-69f308abb1-dd1a6f-6d2ef1)

Comment ça marche (client léger)

Les nœuds de cumul doivent prendre en charge un mode de validation, ainsi que le mode séquenceur.

Le mode de vérification vérifie l'état d'un seul contrat intelligent et ne soumet pas de lots de transactions à la couche DA comme le mode séquenceur.

Si le contrat intelligent modifie le sous-cluster, les validateurs n'ont qu'à mettre à jour le sous-cluster qu'ils écoutent puisqu'ils disposent déjà du stockage du contrat intelligent jusqu'à ce qu'il soit réaffecté.

Les contrats intelligents doivent être traités en un seul cumul à la fois. Puisqu’ils sont limités à un cumul, les nœuds de validation ayant les mêmes spécifications devraient pouvoir les suivre et les vérifier.

Les nœuds légers peuvent utiliser des preuves ZK pour vérifier à moindre coût l'état de la chaîne.

Les explorateurs de blocs font partie intégrante des systèmes blockchain. Ils facilitent les requêtes de solde des actifs natifs, les requêtes de contrats intelligents et conservent l'historique des transactions du premier bloc au bloc actuel. Dans ce système multi-rollup, l'explorateur de blocs doit fournir une vue unifiée de tous les sous-rollups.

! [Rollup] (https://img-cdn.gateio.im/resized-social/moments-40baef27dd-217876ee66-dd1a6f-6d2ef1)

Comment ça marche (Explorateur de blocs)

L'explorateur de blocs doit prendre en charge l'interrogation du solde du hub Rollup (pour les actifs natifs) et l'historique des transactions de tous les sous-Rollups.

Semblable à un système de cumul unique, les explorateurs de blocs utilisent des index pour y parvenir. Un système multi-rollup doit indexer tous les rollups afin de fournir des services de requête pour tout contrat intelligent du système.

Si le hub de rollup décide d'augmenter le nombre de sous-rollups, l'explorateur de blocs doit être prêt à le gérer. Ils doivent fournir plus de capacité de sous-rollups ou disposer d'un système d'orchestration de conteneurs (tel que Kubernetes) pour faire évoluer automatiquement les sous-rollups.

Ils doivent utiliser les numéros de bloc de la couche DA pour maintenir la cohérence dans tous les cumuls.

en conclusion

La conception ci-dessus n'est qu'une idée pour le moment et je ne la mettrai peut-être jamais en œuvre davantage, mais j'espère que la vision vous intéresse. Si la conception réussit, je m'attends à ce qu'elle soit utilisée dans des projets Rollup et s'approche des capacités de mise à l'échelle d'EIP-4844, Celestia ou Avail.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)