Ethereum l2 linea arrête activement 4 rouleaux traditionnels comment résister à la censure

Auteur: Nic Lin, Taipei Ethereum Meetup personne en charge

Titre original: « Introduction au mécanisme d’inclusion de la force de Rollup »

Hier, une chose choquante a été choquée:Ethereum Linea, une deuxième linea de couches lancée par la société mère de Metamask, a pris l’initiative.Cela ne peut s’empêcher de rappeler aux gens la chaîne BSC précédente (chaîne BNB) afin de réduire la perte de pirates, le fonctionnaire a activement coordonné la suspension.Chaque fois que les gens parlent de ce genre de chose, ils doutent de la valeur décentralisée préconisée par Web3.

certainement,La cause principale de l’incident ci-dessus concerne davantage l’infrastructure imparfaite elle-même, c’est-à-dire pas assez de décentralisation: Si une chaîne est suffisamment décentralisée, vous ne devez pas vous arrêter si vous vous arrêtez.En raison de la structure unique du deuxième étage d’Ethereum,La plupart des couches2 dépend du séquenceur centraliséBien que de plus en plus de théorie des trieurs décentralisés ces dernières années, compte tenu du but de l’existence et de la structure du deuxième étage, nous pouvons penser queLe trieur de la couche2 peut ne pas être plus décentralisé, et il peut ne pas être comparable au degré de décentralisation de la chaîne BSC.Si cela est vrai, que devons-nous faire?

En fait, pour le deuxième étage,Le préjudice le plus direct causé par le trieur n’est pas décentralisé est la résistance et l’activité.S’il y a peu d’entités qui gèrent la transaction, il a une puissance absolue si elle vous sert: si vous souhaitez vous rejeter, vous rejeter et vous ne pouvez pas l’aider.Comment résoudre le problème anti-révision de la couche2 est évidemment un sujet important.

Au cours des dernières années, le deuxième étage du majeur Ethereum a proposé une variété de solutions pour les problèmes anti-censure, tels que LOOPRING et Degate et la capacité de retrait forcé de Starkex, d’arbitrum et d’autres fonctions de force de rollp. Peut générer des chèques et contrepoids sur Sequenceer dans certaines conditions pour éviter son rejet gratuit de la demande de transaction de tout utilisateur.

Dans l’article d’aujourd’hui, Nic Lin de la Taipei Ethereum Association est apparu,J’ai personnellement expérimenté la fonction de négociation anti-révision de 4 rouleaux traditionnels et analysé la conception du mécanisme de l’inclusion de la force dans les aspects du flux de travail et de la méthode de fonctionnement.Cela est particulièrement précieux pour la communauté Ethereum et les grands actifs pour détenir des actifs énormes.

Examen des transactions et inclusion de la force

La résistance à la censure est très importante pour une blockchain.Les capacités actuelles de transaction d’Ethereum proviennent de ses nombreux validateurs. Les transactions indésirables qui envoient continuellement les frais de manutention que Bob pour saisir l’espace de bloc.Quelle que soit la méthode, le coût sera très élevé.

Remarque: Dans l’architecture PBS actuelle d’Ethereum, le coût de l’examen des transactions sera beaucoup réduitVous pouvez vous référer au ratio de blocs de la transaction en espèces de tornade avec OFAC.Les capacités anti-examen actuelles dépend des vérifications indépendantes et du relais en dehors de l’OFAC et de la juridiction du gouvernement.

Mais qu’en est-il de Rollup?Rollup n’a pas besoin de beaucoup de validateur pour assurer la sécurité.Mais la capacité de la sécurité et de l’anti-révision est deux choses différentes,Même si un Rollup et Ethereum sont aussi sûrs, mais un seul séquenceur centralisé, vous souhaitez consulter les transactions de tout utilisateur.

Le séquenceur peut refuser de faire face aux transactions utilisateur, ce qui entraîne la détention des fonds utilisateurs et ne peut pas quitter le Rollup

Mécanisme d’inclusion de force

Plutôt que de demander à Rollup d’avoir un grand nombre de séquenceurs décentralisés, il est préférable d’utiliser directement les capacités anti-révision de L1:

À l’origine, le séquenceur devait emballer les données de transaction au contrat Rollup de L1. Il est préférable d’ajouter une conception au contrat.Laissez les utilisateurs insérer la transaction au contrat de Rollup par eux-mêmes.Tant que la séquence ne passe pas en revue les utilisateurs au niveau L1, il ne peut pas empêcher les utilisateurs d’être obligés d’insérer des transactions à L1.De cette façon,Rollup peut hériter de la résistance de L1.

La séquence ne peut pas revoir la transaction L1 de l’utilisateur, sauf si elle paie un coût élevé

Comment les transactions obligatoires devraient-elles entrer en vigueur?

Si la transaction est directement écrite dans le contrat ROLUP (c’est-à-dire le immédiatement) qui est autorisé à être écrit directement par l’inclusion de la force, l’état de Rollup changera immédiatement. Le dernier État sera de 1 000 DAI, et Carol sera 1000 Dai.

Si l’inclusion de la force peut rédiger directement la transaction dans le contrat Rollup et prendre effet immédiatement, l’État changera immédiatement

Si le séquenceur collecte également les transactions dans la chaîne à l’heure actuelle et envoie le prochain lot de transactions au contrat Rollup, les transactions qui peuvent être insérées de force par BOB peuvent être intégrées.Ce type de problème devrait être essayé d’éviter, doncRollup ne permet généralement pas à la transaction d’inclusion de force de prendre effet immédiatement.

Lorsque le séquenceur emballe la transaction en chaîne au contrat ROLLUP, choisissez s’il faut brancher la transaction susmentionnée dans la séquence de trading,Si le séquenceur a toujours ignoré ces transactions dans l’état de « préparation », une fois la période de fenêtre terminée, les utilisateurs peuvent forcer ces transactions dans le contrat Rollup.

La séquence peut décider quand le « revenu » attend dans la file d’attente dans la file d’attente

Le séquenceur peut toujours refuser de gérer les transactions dans la file d’attente d’attente

Si la séquence refuse longtemps, n’importe qui peut insérer de force la transaction dans le contrat Rollup via la fonction d’inclusion de force après une période de temps

Ensuite, nous introduirons quatre mécanismes d’inclusion de la force de rouleaux bien connus tels que l’optimisme, l’arbitrum, le starknet et le zksync dans l’ordre.

Mécanisme d’inclusion de la force de l’optimisme

Présentez d’abord le processus de dépôt d’optimisme.Après avoir reçu le message nouvellement stocké, le nœud L2 convertira le message en une transaction L2 pour l’exécution et l’enverra au récepteur spécifié par le message.

L’utilisateur donne L2 du dépôt L1 à L2

Contrat L1CROSSDOMAINMESSENSER

Lorsqu’un utilisateur souhaite déposer des ETH ou ERC-20 à optimisme, il utilisera la page Web frontale et L1 sur le L1L1standardbridgeL’interaction du contrat, combien le montant à enregistrer et quelle adresse L2 pour recevoir ces actifs.

Le contrat L1StandardBridge passera le message au niveau suivantL1CROSSDOMAINMESSENSERcontracter,Ce contrat est principalement utilisé comme composant de communication entre L1 et L2L1StandardBridge communique via cette composante de communication générale et L2StandardBridge sur L2 pour décider qui peut lancer des jetons à L2 ou qui peut déverrouiller les jetons de L1.

Si les développeurs doivent développer un contrat entre L1 et L2, il peut s’appuyer sur le contrat L1CrossDomainMenger.

Le message de l’utilisateur est transmis de L1 à L2 via le contrat CrossDomainMessager à L2Remarque: Dans certaines photos de cet article, écrivez CrossdomainMessager dans CrosschainMessager

Contrat optimiste

Le contrat L1CrossDomainMessenger enverra le message à la couche inférieureOptimisteContrat, un contrat optimiste sera jeté après le traitementTRANSATIONDEPOSITYLes incidents, les paramètres incluent « les personnes qui envoient des messages », « personne qui reçoit des messages » et des paramètres d’exécution connexes.

Puis L2Optimism Node surveillera l’événement déposé de transaction lancé par un contrat optimiste et convertira les paramètres de l’événement en une transaction L2.L’initiateur de cette transaction est la « personne qui envoie des messages » énoncés dans le paramètre de l’événement de la transaction. événements.

Le nœud L2 convertira les paramètres de l’événement de transaction d’OptimismPortalemit en une transaction L2

Par exemple, c’estUn utilisateur de 0,01 transactions ETH via L1StandardBridge contractes via L1StandardBridge.

Les sponsors du message sont le contrat L1CrosdomainMessager;Après cela, certains processus seront déclenchés, tels que l’ajout de 0,01 eth à L2StandardBridge, puis transférés à Bob de ce dernier.

Comment déclencher

Lorsque vous souhaitez forcer la transaction dans le contrat de Rollup d’optimisme, l’effet que vous souhaitez réaliser est de réaliser une « transaction initiée à partir de votre adresse L2 sur L2 et l’exécution de l’exécution » peut être mise en œuvre en douceur.Vous devez utiliser votre propre adresse L2 pour soumettre le message directement au contrat optimiste(Notez que le contrat optimiste est en fait sur L1, mais le format d’adresse d’OP est le même que le format d’adresse L1.Vous pouvez appeler directement le contrat ci-dessus avec le compte L1 de la même adresse que le compte L2À.

Après cela, le « initiateur » de la transformation de l’événement de dépôt de transaction transformé par le contrat sera votre compte L2.

À partir de la transaction L2 convertie de l’événement de dépôt de transaction, le sponsor sera Bob lui-même;

Si vous souhaitez appeler la fonction d’inclusion Force de l’optimisme, vous devez appeler directement la fonction de dépôt du contrat optimiste pour remplir les paramètres que vous souhaitez exécuter sur L2

J’ai fait une expérience d’inclusion de force simple,Cette transaction veut réaliser une telle chose: utilisez mon adresse sur L2 (0XEDC1 … 6909) et est livré avec un message texte de « Inclusion de force ».

Il s’agit de la transaction L1 que j’exécute la fonction de dépôt à travers le contrat optimisteportal.

La valeur dans la colonne de données opaques restante encode le « combien d’ETH appelle la fonction de transaction de dépôt », « combien d’ETH pour envoyer la transaction L2 au récepteur », « transaction Gaslimit » et « donner L2 » « Données du récepteur  » et ainsi de suite.

Après avoir décodé les informations ci-dessus, vous obtiendrez:

« Combien d’ETH sont ajoutés à la personne qui appelle la transaction de dépôt »: « : »0, parce que je ne sauve pas ETH à L2 de L1;

« Combien d’ETHS à envoyer par transaction L2 au récepteur »: 5566 (wei)

« Gaslimit de la transaction L2 »: 50000

« Données pour le récepteur L2 »:0x666f72636520696e636c7573696f6e, c’est-à-dire

Ensuite, la conversion du trading L2 après la conversion n’a pas été longue: j’ai transféré l’argent à ma propre transaction L2,Le montant est de 5566 WEI, et les données sont la chaîne « Force Inclusion ».Et on peut noter que TxNType (type de transaction) dans l’avant-dernière ligne d’autres attributs de la figure montre qu’il s’agit d’une transaction système 126 (système), ce qui signifie que la transaction n’a pas été lancée par moi-même en L2, et elle a été déposée Le trading par transaction L1 est venu de l’événement.

Transaction L2 convertie

Si vous souhaitez appeler le contrat L2 avec l’inclusion de Force et envoyer des données différentes, il n’y a rien de plus que de remplir les paramètres dans la fonction de transaction de dépôt précédente. Votre propre compte L2.

Séquenceurwindow

Le nœud Optimisme L2 mentionné précédemment convertit l’événement de dépôt de transaction en transactions L2.Seule la séquence peut décider quand convertir l’événement susmentionné en transactions L2.

Lorsque j’ai entendu l’incident TransactionDesosité, le séquenceur peut ne pas convertir immédiatement l’événement en transactions L2, et il peut y avoir un retard.

À l’heure actuelle, la fenêtre de séquence sur le réseau principal de l’optimisme est de 24 heures, c’est-à-dire que lorsque l’utilisateur dépose une somme d’argent de L1 ou une inclusion de force, le pire des cas est qu’il a été inclus dans l’histoire du trading L2 après 24 heures .

Mécanisme d’inclusion de la force d’Arbitrum

Dans l’optimisme, l’opération de dépôt de L1 lancera un événement de dépôt de transaction.Cependant, l’opération qui se produit dans L1 dans Arbitrum (économie de l’argent ou message à L2, etc.) sera dans une file d’attente sur L1.Au lieu de lancer un incident simplement.

Le séquenceur aura une période de temps pour intégrer les transactions dans la file d’attente ci-dessus dans l’historique des transactions L2.

Arbitrum maintiendra une file d’attente dans le contrat L1.

Dans la conception d’Arbitrum, les opérations telles que les dépôts sur L1 doivent être des contrats via une boîte de réception retardée. à L1.Chaque fois que la séquence télécharge les transactions L2, vous pouvez prendre certaines transactions à gérer de la boîte de réception retardée à l’historique de la transaction à partir de la boîte de réception retardée.

Lorsque Sequencer écrit une nouvelle transaction, vous pouvez éliminer la transaction de DelayEdInbox pour l’écrire ensembleDesigns complexes et le matériel de référence de Fanxiangye

Si les lecteurs se réfèrent directement aux chapitres officiels de l’arbitrum sur la séquence et l’inclusion de la force, vous verrez comment fonctionne l’inclusion de la force et certains noms de paramètres et noms de fonction:

Les utilisateurs vont en premierRetardéAppel de contratSendunSigNetTransactionFonction, si le séquenceur n’est pas inclus dans environ 24 heures, l’utilisateur peut appelerSéquentinerinboxContracterForcesinclusionfonction.Ensuite, les responsables d’Arbitrum n’ont pas joint le lien de la fonction au document officiel du site Web, et je n’ai pu voir les fonctions correspondantes que dans le code du contrat par eux-mêmes.

Lorsque vous trouvez la fonction SendunSignedTransaction, vous constatez que vous devez remplir la valeur nonce et la valeur maxfeepergas.Quelle adresse est nonce?Quel Maxfeepergas est sur Internet?Comment le remplir?Aucune référence de fichier, pas même NatpSec.Ensuite, vous trouverez un tas de fonctions similaires dans le contrat Arbitrum:

Sendl1FundUnSigNetTransaction, SendunSigNetTractionToFork, SendContr ActTtransaction, Sendl1FundContractTransaction, il n’y a pas de fichiers vous indiquez comment utiliser ces fonctions, comment l’utiliser, paramètres, paramètres, paramètres, paramètres, paramètres, paramètres.

Vous avez essayé les paramètres et envoyé la transaction avec la mentalité d’essayer de l’essayer. Une adresse différente lors du lancement de la transaction, donc votre adresse L2 immobile.

Sendl2Message

Plus tard, je clique sur une recherche sur Google par accident, pour constater que l’arbitrum d’origine lui-même avait une bibliothèque de programme de tutoriel avec une démonstration de script.Sendl2MessageLa fonction et le paramètre de message sont apportés à la transaction avec le compte L2?

Qui sait que « le message à L2 via l’inclusion de la force » sera une « transaction L2 avec le nom »?Et il n’y a pas de fichier et d’explication NATSpec quand et comment utiliser cette fonction.

Conclusion: il est plus difficile de générer manuellement une transaction obligatoire d’arbitrum,Il est recommandé d’exécuter Arbitrum SDK dans le tutoriel officiel.Arbitrum n’a pas de fichiers de développeurs clairs et de notes de code comme les autres Rollup.J’ai également demandé Arbitrum sur Arbitrum Discord, mais je n’ai pas obtenu de réponse satisfaisante.

Interrogé sur Discord, l’autre partie ne m’a dit que de voir Sendl2Message, et ne voulait pas expliquer les fonctions d’autres fonctions (ou même la transaction SendunSignedTransaction mentionnée dans le document d’inclusion Force), comment l’utiliser et quand.

Mécanisme de force de force de Starknet

Malheureusement, Starknet n’a pas de mécanisme de forceclusion.Il n’y a que deux articles discutés dans les forums officiels du forum officiel.

Impossible de prouver une transaction ratée

Les raisons ci-dessus sont en fait parce que le système de preuve zéro de Starknet ne peut pas prouver une transaction ratée, donc l’inclusion de la force ne peut pas être autorisée.parce queSi quelqu’un est malveillant (ou involontaire) que: Parce qu’après que la transaction est revenu de force, le prover doit prouver la transaction de défaillance, mais elle ne peut pas le prouver.

Starknet prévoit d’introduire la fonction des transactions défaillantes dans la version V0.15.0, et il devrait être réalisé en outre pour réaliser davantage le mécanisme d’inclusion de la force.

Mécanisme de force de la force de Zksync

La transmission des messages L2 de Zksync et GT;, Les utilisateurs spécifient l’adresse L2, CallData, la quantité d’ETH supplémentaire, la valeur L2Gaslimit, etc., Requestl2Transactions combinera ces paramètres dans une transaction L2, puis les mettront en priorité. (par la fonction commitbatches) montre que, soit dit en passant, combien de transactions doivent être effectuées dans la file d’attente prioritaire et incluses dans l’enregistrement de transaction L2.

Zksync est très similaire à l’optimisme sous forme d’inclusion de force.(Appels, calldata, etc.), au lieu de remplir une transaction L2 avec un nom signé comme Arbitrum; hors de l’utilisateur directement soumis à la transaction et l’écrivez dans l’historique de la transaction.

Si vous passez par le pont officiel de Zksync au dépôt ethComme cette transaction, il s’agit d’appeler la fonction de demandel2transaction du contrat de boîte aux lettres,Il mettra cette transaction de dépôt eth L2 dans la file d’attente prioritaire et lancera un événement NewPriorityRequestEssenceÉtant donné que le contrat code pour les données de transaction L2 dans une chaîne de chaînes d’octets, il n’est pas facile à lire. Transaction (parce que c’est un dépôt pour vous-même), donc après un certain temps, cette transaction L2 a été retirée de la file d’attente prioritaire par Sequeuncer de la file d’attente prioritaire et a été incluse dans l’historique de la transaction.

Dans la transaction L1Deposit, le sponsor et le récepteur de la transaction sont 0XEDC1 … 6909, le montant est de 0,03 et et le CallData est vide.

Un 0XEDC1 … 6909 sera transféré à votre propre transaction sur L2.

Ensuite, comme la fonction de trading obligatoire de l’expérience précédente OP, j’ai appelé la fonction de demande de requestl2transaction de Zksync pour envoyer un auto-transfert: il n’y avait pas d’ETH, CallData a apporté le codage hexadécimal de la chaîne « inclusion de force ».

Ensuite, il a été converti en transaction sur sa propre transaction sur L2.

Lorsque le séquenceur prend la transaction de PriorityQueue et l’écrit dans l’histoire

Grâce à la fonction Requestl2Transaction, les utilisateurs peuvent soumettre les informations à L1 avec le même compte L1 que l’adresse L2, spécifier le récepteur L2, le montant ETH avec l’ETH ci-joint et le calldata.Si l’utilisateur souhaite appeler d’autres contrats et avec différentes données, remplissez les paramètres un par un dans la fonction de demandel2transaction.

La fonction qui n’a pas permis aux utilisateurs d’être obligés d’être inclus

Bien que la transaction L2 soit placée dans la file d’attente prioritaire, la période d’attente de la transaction L2 est calculée par la transaction L2, mais elleÀ l’heure actuelle, la fonction d’inclusion Force qui ne permet pas aux utilisateurs d’appliquer les utilisateurs dans la conception de Zksync est équivalent à seulement les moitié des ensemblesEssenceAutrement dit, bien qu’il y ait une « période d’attente gratuite », en fait, « voir si la séquence doit être le revenu »: la séquence peut attendre l’expiration de l’expiration pour gagner, et vous ne pouvez jamais gagner de transactions dans la file d’attente prioritaire.

À l’avenir, Zksync devrait ajouter des fonctions pertinentes afin que les utilisateurs puissent forcer la transaction à inclure l’historique des transactions L2 lorsque la période de revenu est terminée mais n’a pas été incluse par Sequeuncer.

Résumer

L1 s’appuie sur un grand nombre de vérifications pour garantir la « sécurité » et les « capacités anti-révision » d’Internet.doncRollup a besoin d’un mécanisme d’inclusion de force pour permettre aux utilisateurs de contourner le séquenceur et d’écrire la transaction dans l’historique.Évitez d’être examiné par le séquenceur, qui ne peut pas être utilisé ou ne peut pas retirer des fonds du Rollup.

Inclusion Force permet aux utilisateurs de forcer les utilisateurs à rédiger des transactions dans l’historique, Mais la conception dans la conception, « si la transaction peut insérer l’historique immédiatement et prendre effet immédiatement ».Si la transaction est autorisée à prendre effet immédiatement, elle aura un impact négatif sur le séquenceur, car les transactions en attente de revenus sur L2 peuvent être affectées par les bourses de revenu forcé L1.

doncÀ l’heure actuelle, le mécanisme d’inclusion de la force de Rollup permettra d’abord que la transaction insérée sur L1 entrera dans l’état d’attente.Et laissez le séquenceur réagir pendant un certain temps pour choisir une transaction en attendant de savoir si le revenu.

Zksync et Arbitrum conservent tous deux une file d’attente dans L1 pour gérer la transaction L2 envoyée par l’utilisateur de L1 ou le message à L2.Arbitrum est appelé retardé; zksync est appelé priorityqueue

maisLa façon dont la façon de Zksync d’envoi des transactions L2 est plus similaire à l’optimismeIls envoient tous des messages à L1 avec une adresse L2.La fonction d’optimisme envoyée par L2 est appelée DepositTransaction; Zksync est appelée demandel2Transaction.Arbitrum génère une transaction L2 complète et la signature, puis l’envoie via la fonction Sendl2Message.

Starknet n’a pas encore le mécanisme d’inclusion de la force;—La prioritaire et la transaction L2 dans chaque file d’attente ont une période valide, mais cette période de validité est actuellement décorative.

  • Related Posts

    Marché des capitaux Internet: compréhension de la croyance et de ses projets écologiques

    Auteur: Dynamo Defi; Traduction: Bitchain Vision Xiaozou 1. Qu’est-ce que exactement« Marché des capitaux Internet« ? En bref, ce sont de vraies entreprises construites sur la chaîne. Ces applications ne sont pas…

    Une mort pré-provocatrice: l’argent et la nature humaine derrière la fausse mort de Jeffy

    Jessy, vision de Bitchain Meme in the Currency Circle a publié un nouveau récit: la piste de la mort. Le 6 mai, une nécrologie de la mort de Zerebro Jeffy…

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    You Missed

    Jalons clés de la feuille de route Vitalik

    • By jakiro
    • mai 16, 2025
    • 0 views
    Jalons clés de la feuille de route Vitalik

    Galaxie: l’état actuel d’Ethereum Blob et du marché des blobs à l’ère post-PECTRA

    • By jakiro
    • mai 16, 2025
    • 0 views
    Galaxie: l’état actuel d’Ethereum Blob et du marché des blobs à l’ère post-PECTRA

    Ethereum sonne la corne de contre-attaque?Comment enflammer le marché de 40%

    • By jakiro
    • mai 16, 2025
    • 0 views
    Ethereum sonne la corne de contre-attaque?Comment enflammer le marché de 40%

    Marché des capitaux Internet: compréhension de la croyance et de ses projets écologiques

    • By jakiro
    • mai 16, 2025
    • 2 views
    Marché des capitaux Internet: compréhension de la croyance et de ses projets écologiques

    Pourquoi la demande ponctuelle sur le marché de la cryptographie est-elle solide et les dérivés sont-ils en retard?

    • By jakiro
    • mai 16, 2025
    • 2 views
    Pourquoi la demande ponctuelle sur le marché de la cryptographie est-elle solide et les dérivés sont-ils en retard?

    Quel impact le rendement du Trésor américain à 10 ans aura-t-il sur les rendements des crypto-monnaies?

    • By jakiro
    • mai 16, 2025
    • 1 views
    Quel impact le rendement du Trésor américain à 10 ans aura-t-il sur les rendements des crypto-monnaies?
    Home
    News
    School
    Search