Auteur : Vitalik Buterin
Compilé par : Peng Sun, Foresight News
Lien original : https://vitalik.eth.limo/general/2024/05/23/l2exec.html
Il y a deux ans et demi, j'ai mentionné dans l'article "Endgame" que les différentes voies de développement de la blockchain à l'avenir se ressemblent beaucoup, du moins techniquement. Dans les deux cas, il y a un grand nombre de transactions sur la chaîne, et le traitement de ces transactions nécessite : (1) beaucoup de calculs (2) beaucoup de bande passante de données ; Les nœuds Ethereum ordinaires (tels que le nœud d'archive reth de 2 To fonctionnant actuellement sur mon ordinateur), même avec de puissantes performances d'ingénierie logicielle et des arbres Verkle, ne suffisent pas pour vérifier directement l'énorme quantité de données et de calculs. Au contraire, dans les deux schémas de « partitionnement L1 » et centré sur le rollup, ZK-SNARK est utilisé pour vérifier les calculs et DAS est utilisé pour vérifier la disponibilité des données. Qu'il s'agisse de sharding L2 ou de Rollup, le DAS est le même et la technologie ZK-SNARK est la même. Il s’agit à la fois d’un code de contrat intelligent et d’une fonction du protocole. D'un point de vue technique réel, Ethereum est en train de partitionner et Rollup est en train de partitionner.
Cela soulève naturellement la question : quelle est la différence entre les deux ? L'une d'elles est que les conséquences des vulnérabilités du code sont différentes : dans le Rollup, les tokens seront volés lors du sharding, le consensus sera rompu ; Mais je m’attends à ce qu’à mesure que le protocole se stabilise et que les techniques de vérification formelle s’améliorent, l’impact des vulnérabilités du code deviendra de plus en plus faible. Alors, quelles autres différences existent entre ces deux options potentiellement à long terme ?
Diversité dans les environnements d'exécution
Une idée dont nous avons brièvement discuté dans Ethereum en 2019 concernait les environnements d’exécution. Essentiellement, Ethereum aura différentes « zones » qui peuvent avoir des règles différentes pour les comptes (y compris des méthodes complètement différentes comme UTXO), le fonctionnement de la machine virtuelle et d'autres fonctions. Cela permet une diversité de méthodes dans différentes parties de la pile, ce qui serait difficile à réaliser si Ethereum essayait de regrouper plusieurs fonctions en une seule.
Finalement, nous avons abandonné certains des projets les plus ambitieux et n'avons conservé que l'EVM. Cependant, on peut dire qu'Ethereum L2 (y compris les rollups, les valdiums et les plasmas) fonctionne en fin de compte comme un environnement d'exécution. Actuellement, nous nous concentrons souvent sur l’équivalent EVM L2, mais ignorons la diversité apportée par de nombreuses autres méthodes :
● Arbitrum Stylus, qui ajoute un deuxième oracle basé sur WASM en plus d'EVM ;
● Fuel, qui utilise une architecture basée sur UTXO similaire à Bitcoin (mais plus complète) ;
● Aztec, qui introduit un nouveau paradigme de langage et de programmation conçu autour de contrats intelligents préservant la confidentialité et basés sur les ZK-SNARK.
Architecture basée sur UTXO, source : documentation sur les carburants
Nous pouvons essayer de transformer l'EVM en une super machine virtuelle couvrant tous les paradigmes possibles, mais cela réduirait considérablement l'efficacité de chaque fonction. Il est préférable de laisser ces plates-formes faire leur travail professionnel.
Compromis de sécurité : évolutivité et vitesse de transaction
Ethereum L1 offre une sécurité très forte. Si le bloc final complété sur L1 contient certaines données, alors l'ensemble du consensus (y compris le consensus social dans les cas extrêmes) travaillera dur pour garantir que ces données ne seront pas modifiées et que toute exécution déclenchée par ces données ne sera pas annulée. ont toujours accès aux données. Afin d’obtenir cette garantie de sécurité, Ethereum L1 est prêt à accepter un coût élevé. Au moment de la rédaction, les frais de transaction sont relativement faibles : Layer2 facture moins de 1 centime par transaction, et même sur L1, un transfert ETH de base coûte moins de 1 $. Si la technologie progresse suffisamment rapidement et que la croissance de l’espace de bloc disponible suit le rythme de la demande, alors ces frais pourraient rester faibles à l’avenir, mais ce ne sera peut-être pas le cas. Pour de nombreuses applications non financières, telles que les réseaux sociaux ou les jeux, même 0,01 $ par transaction est trop élevé.
Mais les réseaux sociaux et les jeux ne nécessitent pas le même modèle de sécurité que L1. Si quelqu'un peut payer un million de dollars pour annuler son record de défaites aux échecs, ou faire croire qu'un de vos tweets a été publié trois jours après sa publication réelle, ce n'est pas grave. Ces applications ne devraient donc pas payer les mêmes coûts de sécurité. Les solutions L2 y parviennent en prenant en charge une gamme de méthodes de disponibilité des données, des cumuls au plasma en passant par les validiums.
Un autre compromis se pose autour de la question du transfert d’actifs de L2 vers L2. Je prédis que dans les 5 à 10 prochaines années, tous les Rollups seront des Rollups ZK, et des systèmes de preuve ultra-efficaces comme Binius et Circle STARK avec recherches, couplés à une couche d'agrégation de preuves, permettront à L2 de fournir la racine d'état finale dans chaque la fente devient possible. Mais actuellement, nous ne pouvons que combiner de manière complexe Optimistic Rollup et ZK Rollup et utiliser différentes fenêtres de temps de preuve. Si nous implémentons le partitionnement d'exécution en 2021, le modèle de sécurité pour garder les fragments honnêtes sera Optimitic Rollup, pas ZK, donc L1 devra gérer la logique complexe de preuve de fraude du système en chaîne, et les temps de retrait pourront atteindre un week , pour transférer des actifs entre les fragments. Mais comme les bugs de code, je pense que ce problème est finalement temporaire.
La vitesse des transactions est le troisième aspect, le plus permanent, du compromis en matière de sécurité. Ethereum produit des blocs toutes les 12 secondes, et il ne peut pas aller plus vite, sinon le niveau de centralisation serait trop élevé. Cependant, de nombreux L2 explorent la compression des temps de bloc à des centaines de millisecondes. 12 secondes, ce n'est pas si mal : en moyenne, les utilisateurs doivent attendre environ 6 à 7 secondes après avoir soumis une transaction pour être inclus dans un bloc (et pas seulement 6 secondes, puisque le bloc suivant pourrait ne pas les inclure). C'est comparable au temps d'attente que je dois attendre lorsque je paie avec une carte de crédit. Cependant, de nombreuses applications nécessitent des vitesses plus rapides, et L2 peut les fournir.
Pour le rendre plus rapide, L2 dispose d'un mécanisme de préconfirmation : les propres validateurs de L2 promettent numériquement d'inclure une transaction à un moment précis, et ils sont punis si la transaction n'est pas incluse. Le mécanisme StakeSure favorise davantage ce mécanisme.
Pré-confirmation L2
Nous pouvons maintenant essayer d'implémenter toutes ces fonctionnalités dans L1. L1 peut inclure un système de « pré-confirmation rapide » et de « confirmation finale lente ». Il peut contenir différents fragments avec différents niveaux de sécurité. Cependant, cela augmente la complexité du protocole. De plus, effectuer tout le travail en L1 risque de surcharger le consensus, car de nombreuses approches à plus grande échelle ou à plus haut débit présentent des risques de centralisation plus élevés ou nécessitent des formes de « gouvernance » plus fortes si elles sont réalisées en L1. L'impact de ces exigences plus fortes se répercutera sur les autres. d'autres parties de l'accord. Ethereum peut largement éviter ces risques en proposant un compromis avec L2.
Avantages de la couche 2 pour les organisations et la culture
Imaginez un pays divisé en deux, une moitié devenant un pays capitaliste et l'autre moitié un pays fortement dominé par le gouvernement (contrairement à ce qui se passe dans la réalité, supposons dans cette expérience de pensée que cela n'est pas le résultat d'une guerre traumatisante, Mais un jour la limite apparaît naturellement et c'est tout). Dans la partie capitaliste, les restaurants sont tous constitués de différentes propriétés décentralisées, blockchain et droits de vote. Dans un pays dominé par le gouvernement, ce sont toutes des branches du gouvernement, tout comme la police. Dès le premier jour, peu de choses changeront. Les gens suivront en grande partie les habitudes existantes, et ce qui fonctionne et ce qui ne fonctionne pas dépend de réalités techniques telles que les compétences de la main-d'œuvre et les infrastructures. Cependant, après un an, on constate d’énormes changements, car différentes structures d’incitation et de contrôle entraînent d’énormes changements de comportement, qui affectent qui vient et reste, ce qui est construit, ce qui est entretenu et ce qui est abandonné.
La théorie de l'organisation industrielle a beaucoup à dire sur ces distinctions : elle parle non seulement de la différence entre une économie dirigée par l'État et une économie capitaliste, mais aussi d'une économie dominée par les grandes franchises et d'une économie dans laquelle chaque supermarché est géré par un entrepreneur indépendant. Je pense que la différence entre un écosystème centré sur L1 et un écosystème centré sur L2 est similaire.
Il y a un gros problème avec l'architecture "les développeurs principaux gèrent tout"
En tant qu’écosystème centré sur L2, je pense que les principaux avantages d’Ethereum sont les suivants :
Étant donné qu’Ethereum est un écosystème centré sur L2, vous avez la liberté de créer indépendamment un sous-écosystème avec ses propres caractéristiques uniques tout en faisant également partie du plus grand Ethereum.
Si vous créez simplement un client Ethereum, vous faites partie du plus grand Ethereum, et même si vous avez une certaine marge d'innovation, il est loin d'être aussi bon que L2. Et si vous construisez une chaîne totalement indépendante, vous disposez d’une grande marge de créativité, mais vous perdez également les avantages d’une sécurité partagée et des effets de réseau partagés. La L2 est un bon équilibre.
Non seulement il offre des opportunités techniques pour essayer de nouveaux environnements d'exécution et des compromis de sécurité qui permettent l'évolutivité, la flexibilité et la vitesse, mais il fournit également un mécanisme d'incitation qui incite à la fois les développeurs à créer et à maintenir, ainsi que le soutien de la communauté.
Le fait que chaque L2 soit isolé signifie également que le déploiement de nouvelles méthodes se fait sans autorisation : il n'est pas nécessaire de convaincre tous les développeurs principaux que votre nouvelle méthode est « sûre » pour le reste de la chaîne. Si votre L2 échoue, c'est votre responsabilité. N'importe qui peut avoir une idée étrange (par exemple, l'approche Plasma d'Intmax), et même si les principaux développeurs d'Ethereum n'y prêtent pas du tout attention, ils peuvent continuer à la construire et éventuellement la déployer. Ce n’est pas le cas des fonctionnalités L1 et de la précompilation, et même dans Ethereum, le succès ou l’échec du développement L1 finit souvent par être politique dans une plus grande mesure que nous le souhaiterions. Peu importe ce qui peut être construit en théorie, les différentes incitations créées par un écosystème centré sur L1 et un écosystème centré sur L2 auront en fin de compte un impact sérieux sur ce qui est réellement construit, le niveau de qualité et l'ordre dans lequel il est construit. .
À quels défis l’écosystème centré sur L2 d’Ethereum est-il confronté ?
Quelque chose ne va vraiment pas avec l’architecture L1 + L2. Source de l'image : Reddit
Cette approche centrée sur L2 se heurte à un défi clé auquel les écosystèmes centrés sur L1 sont rarement confrontés : la coordination. En d’autres termes, même si Ethereum possède de nombreux L2, le défi est de savoir comment lui donner l’impression qu’il ressemble toujours à « Ethereum » et avoir les effets de réseau d’Ethereum, plutôt que N chaînes indépendantes. Aujourd’hui, cette situation est insatisfaisante à bien des égards :
● Les chaînes croisées entre L2 nécessitent généralement un pont inter-chaînes centralisé, ce qui est très compliqué pour les utilisateurs ordinaires. Si vous avez des jetons sur Optimism, vous ne pouvez pas coller l'adresse Arbitrum de quelqu'un d'autre dans votre portefeuille pour envoyer des fonds.
● Pour les portefeuilles de contrats intelligents personnels et les portefeuilles organisationnels (y compris DAO), la prise en charge des portefeuilles de contrats intelligents inter-chaînes n'est pas très bonne. Si vous changez la clé sur un L2, vous devez également changer la clé sur l'autre L2.
● L'infrastructure de vérification décentralisée fait souvent défaut. Ethereum commence enfin à avoir des clients légers décents, comme Helios. Cependant, cela n'a pas de sens si toutes les activités se déroulent dans L2 et nécessitent son propre RPC centralisé. En principe, il n’est pas difficile de construire un client léger pour L2 une fois que vous disposez de l’en-tête du bloc Ethereum, mais en pratique, on accorde trop peu d’attention à ce point ;
La communauté travaille dur pour améliorer ces trois domaines. Pour l'échange de jetons entre chaînes, la norme ERC-7683 est une nouvelle solution contrairement aux « ponts inter-chaînes centralisés » existants, elle n'a pas de nœuds, de jetons ou de gouvernance centralisés fixes. Pour les comptes inter-chaînes, l'approche adoptée par la plupart des portefeuilles consiste à utiliser des messages rejouables entre chaînes pour mettre à jour les clés à court terme et les cumuls de magasins de clés à long terme. Des clients légers pour L2 commencent à apparaître, comme Beerus pour Starknet. En outre, les récentes améliorations apportées à l'expérience utilisateur grâce aux portefeuilles de nouvelle génération ont résolu des problèmes plus fondamentaux, tels que le fait que les utilisateurs n'ont pas besoin de changer manuellement de réseau pour accéder aux DApps.
Rabby a une vue complète des soldes d'actifs multi-chaînes, ce que les portefeuilles précédents ne pouvaient pas faire !
Mais il est important de réaliser que les écosystèmes centrés sur L2 ont du mal à se coordonner dans une certaine mesure. Parce qu’il n’existe aucune incitation économique naturelle pour qu’un seul L2 construise l’infrastructure de coordination : les L2 à petite échelle ne le feront pas, parce qu’ils veulent seulement obtenir une petite part des bénéfices, pas plus que les L2 à grande échelle, parce qu’ils le peuvent ; bénéficier du renforcement de leurs propres effets de réseau local. Obtenez autant ou plus d'avantages. Si chaque L2 ne pense qu’à lui-même et que personne ne pense à la façon dont il s’intègre dans le système Ethereum plus large, alors nous échouerons, tout comme l’utopie urbaine dans les images quelques paragraphes ci-dessus.
Il est difficile de dire qu'il existe une solution parfaite à ce problème. Tout ce que je peux dire, c'est que l'écosystème doit reconnaître plus pleinement que l'infrastructure cross-L2 est autant un type d'infrastructure Ethereum que les clients, les outils de développement et les langages de programmation L1, et qu'elle doit donc être valorisée et financée. Nous avons la Guilde du Protocole, peut-être avons-nous besoin de la Guilde des Infrastructures de Base.
Résumer
Dans divers débats publics, « L2 » et « sharding » sont souvent considérés comme deux stratégies opposées pour l’expansion de la blockchain. Cependant, lorsque vous examinez la technologie sous-jacente, vous découvrirez une énigme : les méthodes de mise à l'échelle sous-jacentes sont exactement les mêmes. Qu'il s'agisse de partage de données, de validateurs de fraude ou de validateurs ZK-SNARK, ou de solutions qui communiquent à travers des « rollups, fragments », la principale différence est la suivante : qui est responsable de la création et de la mise à jour de ces composants, et de quelle autonomie disposent-ils ?
Un écosystème centré sur L2 est un véritable partitionnement au sens technique, mais dans le cadre du partitionnement, vous pouvez créer vos propres fragments avec vos propres règles. Il s'agit d'une créativité très puissante et illimitée et permet de réaliser de nombreuses innovations indépendantes. Mais cela présente également des défis majeurs, notamment en termes de coordination. Pour qu’un écosystème centré sur L2 comme Ethereum réussisse, il doit comprendre ces défis et les relever de front afin de récolter autant d’avantages que possible d’un écosystème centré sur L1, et proche du meilleur des deux.