EVM Parallèle : Surmonter les Goulots d'Étranglement de la Blockchain

Intermédiaire4/15/2024, 3:33:01 PM
Cet article explore les détails techniques et les perspectives du marché des EVM parallèles, analysant les mécanismes d'exécution parallèle des principaux projets blockchain tels que Sei, Monad et Canto, et évaluant leur impact potentiel et leur position sur le marché dans l'industrie. Grâce à l'optimisation de l'exécution parallèle, les réseaux blockchain peuvent améliorer considérablement la vitesse et l'efficacité de traitement, soutenant le développement généralisé du domaine Web3.

TL;DR

  1. Les EVM parallèles représentent une nouvelle narration qui émerge lorsque les volumes de transactions sur chaîne atteignent un certain niveau. Ils sont principalement divisés en blockchains monolithiques et blockchains modulaires, les monolithiques étant ensuite catégorisés en L1 et L2. Les chaînes publiques L1 parallèles sont divisées en deux camps : EVM et non-EVM. Actuellement, la narration parallèle EVM en est à ses débuts de développement.
  2. Le chemin d'implémentation technique des EVM parallèles comprend des machines virtuelles et des mécanismes d'exécution parallèle. Dans le contexte des blockchains, une machine virtuelle est une machine virtuelle de processus qui virtualise la machine à états distribuée pour exécuter des contrats.
  3. L'exécution parallèle fait référence à l'utilisation de processeurs multicœurs pour exécuter simultanément autant que possible plusieurs transactions, tout en veillant à ce que l'état final soit cohérent avec ce qui serait obtenu par une exécution sérielle.
  4. Les mécanismes d'exécution parallèle sont divisés en trois catégories : le passage de messages, la mémoire partagée et les listes d'accès à l'état strict. La mémoire partagée est ensuite divisée en modèle de verrouillage de mémoire et parallélisation optimiste. Indépendamment du mécanisme, chacun augmente la complexité technique.
  5. Le récit des EVM parallèles a non seulement des moteurs intrinsèques de croissance industrielle, mais nécessite également que les praticiens prêtent une attention particulière aux problèmes de sécurité potentiels.
  6. Chaque projet EVM parallèle propose une approche unique de l'exécution parallèle, montrant à la fois des similitudes techniques et des innovations distinctes.

1. Aperçu de l'industrie

1.1 Évolution historique

Les performances sont devenues un obstacle au développement ultérieur de l'industrie. Les réseaux de la Blockchain créent une base de confiance nouvelle et décentralisée pour les transactions entre individus et entreprises.

Les réseaux blockchain de première génération, représentés par Bitcoin, ont ouvert la voie à un nouveau mode de transactions de devises électroniques décentralisées grâce à la technologie des registres distribués, révolutionnant une nouvelle ère. La deuxième génération, incarnée par Ethereum, a pleinement exploité l'imagination pour proposer des applications décentralisées (dApps) grâce à une approche de machine à états distribuée.

Depuis lors, les réseaux blockchain ont entamé leur propre développement rapide sur plus d'une décennie, passant de l'infrastructure Web3 à divers domaines tels que DeFi, NFT, réseaux sociaux et GameFi, donnant naissance à de nombreuses innovations en termes de technologie et de modèles économiques. L'industrie florissante doit continuellement attirer de nouveaux utilisateurs pour participer à l'écosystème des applications décentralisées, ce qui soulève à son tour des exigences plus élevées en matière d'expérience produit.

Web3, en tant que forme de produit novatrice 'sans précédent dans l'histoire', doit innover pour répondre aux besoins des utilisateurs (exigences fonctionnelles) tout en équilibrant la sécurité et les performances (exigences non fonctionnelles). Depuis sa création, diverses solutions ont été proposées pour résoudre les problèmes de performances.

Ces solutions peuvent généralement être catégorisées en deux types : les solutions de mise à l'échelle sur chaîne, telles que le sharding et les Graphes Acycliques Dirigés (DAGs), et les solutions de mise à l'échelle hors chaîne, telles que Plasma, Lightning Networks, les sidechains et les Rollups. Cependant, elles sont encore loin de suivre la croissance rapide des transactions sur chaîne.

Surtout après l'été DeFi de 2020 et la croissance explosive des inscriptions dans l'écosystème Bitcoin vers la fin de 2023, l'industrie a un besoin urgent de nouvelles solutions d'amélioration des performances pour répondre aux demandes de "hautes performances et de faibles frais". C'est dans ce contexte que sont nés les blockchains parallèles.

1.2 Taille du marché

Le récit de l'EVM parallèle signifie un paysage concurrentiel où deux acteurs majeurs dominent dans le domaine des blockchains parallèles. Ethereum traite les transactions de manière sérielle, les exécutant l'une après l'autre, ce qui entraîne une faible utilisation des ressources. Passer d'un traitement sériel à un traitement parallèle pourrait améliorer considérablement les performances.

Les concurrents d'Ethereum tels que Solana, Aptos et Sui, offrent tous des capacités de traitement parallèle intégrées et ont développé des écosystèmes robustes. Leurs capitalisations boursières respectives ont atteint 45 milliards de dollars, 3,3 milliards de dollars et 1,9 milliard de dollars, formant un camp non-EVM parallèle. En réponse à ces défis, l'écosystème Ethereum n'est pas en reste, avec divers projets qui s'engagent à renforcer l'EVM, créant ainsi un camp EVM parallèle.

Sei, dans sa proposition de mise à niveau de la version 2, a déclaré haut et fort qu'elle deviendrait le « premier blockchain EVM parallèle », avec une capitalisation boursière actuelle de 2,1 milliards de dollars et un potentiel de croissance encore plus important. Le nouveau blockchain EVM parallèle Monad, actuellement le plus chaud en matière de ferveur marketing, est très apprécié des investisseurs et possède un potentiel significatif. Pendant ce temps, le blockchain L1 Canto, avec une capitalisation boursière de 170 millions de dollars et sa propre infrastructure publique gratuite, a également annoncé sa proposition de mise à niveau parallèle EVM.

De plus, plusieurs projets L2 au stade initial améliorent les performances inter-écosystèmes en intégrant les capacités de plusieurs chaînes L1. Outre Neon, qui a atteint une valeur marchande circulante de 69 millions de dollars, d'autres projets manquent encore de données pertinentes. Il est prévu que de plus en plus de projets L1 et L2 rejoindront le champ de bataille blockchain parallèle à l'avenir.

Non seulement il existe un potentiel de croissance significatif du marché pour le récit parallèle de l'EVM, mais le secteur plus large des blockchains parallèles auquel l'EVM parallèle appartient également détient un potentiel de croissance de marché substantiel, promettant une perspective de marché étendue.

Actuellement, la capitalisation boursière totale pour la couche 1 et la couche 2 est de 752,123 milliards de dollars, avec des blockchains parallèles ayant une capitalisation boursière de 52,539 milliards de dollars, représentant environ 7%. À l'intérieur, les projets liés au récit EVM parallèle ont une capitalisation boursière de 2,339 milliards de dollars, représentant seulement 4% de la capitalisation boursière de la blockchain parallèle.

1.3 Carte de l'industrie

L'industrie divise généralement les réseaux de blockchain en une structure à quatre couches :

Couche 0 (Réseau) : Il s'agit de la couche de réseau blockchain sous-jacente qui gère les protocoles de communication réseau de base.

Couche 1 (Infrastructure) : Cette couche repose sur divers mécanismes de consensus pour valider les transactions au sein d'un réseau décentralisé.

Couche 2 (Expansion) : Dépendant de la Couche 1, cela implique divers protocoles de deuxième couche visant à résoudre les limitations de la Couche 1, notamment en termes de scalabilité.

Couche 3 (Application): Dépendant de la Couche 2 ou de la Couche 1, cette couche est utilisée pour construire diverses applications décentralisées (dApps).

Les projets narratifs parallèles de la machine virtuelle EVM (Ethereum Virtual Machine) sont principalement divisés en blockchains monolithiques et blockchains modulaires, les blockchains monolithiques étant ensuite divisées en L1 et L2. Du nombre total de projets et du développement de plusieurs grandes pistes, il apparaît que les écosystèmes de chaînes publiques parallèles de la EVM L1 ont encore un potentiel de croissance significatif par rapport à l'écosystème Ethereum.

Dans la catégorie DeFi, il y a une demande de "haute vitesse et de faibles frais", tandis que la catégorie des jeux exige une "forte interaction en temps réel"; les deux nécessitent une certaine vitesse d'exécution. Les EVM parallèles apporteront inévitablement de meilleures expériences utilisateur à ces projets, poussant le développement de l'industrie vers une nouvelle étape.

L1 représente de nouvelles chaînes publiques avec des capacités d'exécution parallèle inhérentes et sert d'infrastructure haute performance. Dans cette faction, des projets tels que Sei v2, Monad et Canto ont conçu indépendamment des EVM parallèles, compatibles avec l'écosystème Ethereum et offrant des capacités de traitement de transactions élevées.

L2, en intégrant les capacités d'autres chaînes L1, offre une capacité étendue de coopération inter-écosystème et est un exemple important de technologie de rollup. Dans cette faction, Neon agit comme un émulateur EVM sur le réseau Solana, tandis qu'Eclipse exécute des transactions sur Solana mais règle sur l'EVM. Lumio est similaire à Eclipse, sauf que la couche d'exécution a été basculée vers Aptos.

Au-delà des solutions de blockchain autonomes susmentionnées, Fuel a introduit son propre concept de blockchain modulaire. Dans sa deuxième version, il vise à se positionner en tant que système d'exploitation rollup Ethereum, offrant des capacités d'exécution modulaire plus flexibles et complètes.

Fuel se concentre sur l'exécution des transactions, tout en externalisant d'autres composants à une ou plusieurs couches indépendantes de la blockchain, permettant ainsi des combinaisons plus flexibles : il peut fonctionner comme une couche 2, une couche 1, voire même comme une sidechain ou un canal d'état. Actuellement, il existe 17 projets au sein de l'écosystème Fuel, se concentrant principalement sur la DeFi, les NFT et l'infrastructure.

Cependant, seul l'oracle Orally cross-chain a été mis en pratique. La plateforme de prêt décentralisée Swaylend et la plateforme de trading de contrats perpétuels SPARK ont été lancées sur des testnets, tandis que d'autres projets sont encore en cours de développement.

2. Voies de mise en œuvre technique

Pour réaliser l'exécution décentralisée des transactions, les réseaux blockchain doivent remplir quatre responsabilités :

  • Exécution : Exécution et validation des transactions.
  • Disponibilité des données: Distribution de nouveaux blocs à tous les nœuds du réseau blockchain.
  • Mécanisme de consensus: Vérification des blocs et atteinte d'un consensus.
  • Règlement : Régler et enregistrer l'état final des transactions.

L'EVM parallèle se concentre principalement sur l'optimisation des performances de la couche d'exécution. Cela se divise en solutions de Couche 1 (L1) et solutions de Couche 2 (L2). Les solutions L1 introduisent un mécanisme pour l'exécution parallèle des transactions, permettant aux transactions d'être exécutées en parallèle au sein de la machine virtuelle autant que possible. Les solutions L2 exploitent fondamentalement la machine virtuelle L1 déjà parallélisée pour atteindre un certain niveau d'« exécution hors chaîne + règlement sur chaîne ».

Par conséquent, pour comprendre les principes techniques de l'EVM parallèle, il est nécessaire de le décomposer : d'abord, comprendre ce qu'est une machine virtuelle (VM), puis comprendre ce que l'exécution parallèle implique.

2.1 Machine virtuelle

En informatique, une machine virtuelle fait référence à la virtualisation ou à l'émulation d'un système informatique.

Il existe deux types de machines virtuelles : les machines virtuelles système, qui peuvent virtualiser une seule machine physique en plusieurs machines exécutant différents systèmes d'exploitation, améliorant ainsi l'utilisation des ressources ; et les machines virtuelles de processus, qui fournissent une abstraction pour certains langages de programmation de haut niveau, permettant aux programmes informatiques écrits dans ces langages de s'exécuter de manière indépendante de la plateforme sur différentes plates-formes.

Le JVM est une machine virtuelle de processus conçue pour le langage de programmation Java. Les programmes écrits en Java sont d'abord compilés en bytecode Java (un état intermédiaire du code binaire), qui est ensuite interprété par le JVM : le JVM envoie le bytecode à un interprète, qui le traduit en code machine pour différentes machines, puis l'exécute sur la machine.

Les machines virtuelles blockchain sont un type de machine virtuelle de processus. Dans le contexte de la blockchain, une machine virtuelle fait référence à la virtualisation d'une machine à états distribuée utilisée pour l'exécution distribuée de contrats, exécutant des dApps. Analogiquement à la JVM, l'EVM est une machine virtuelle de processus conçue pour le langage Solidity, où les contrats intelligents sont d'abord compilés en bytecode d'opcode, puis interprétés par l'EVM.

Les chaînes publiques émergentes au-delà d'Ethereum adoptent souvent des machines virtuelles basées sur le bytecode WASM ou eBPF. WASM est un format de bytecode compact, à chargement rapide, portable basé sur des mécanismes de sécurité sandbox. Les développeurs peuvent écrire des contrats intelligents dans divers langages de programmation (C, C++, Rust, Go, Python, Java, voire TypeScript), les compiler en bytecode WASM et les exécuter. Les contrats intelligents exécutés sur la blockchain Sei utilisent ce format de bytecode.

eBPF a pour origine BPF (Berkeley Packet Filter), initialement utilisé pour un filtrage efficace des paquets réseau, et a évolué en eBPF, offrant un ensemble d'instructions plus riche.

C'est une technologie révolutionnaire qui permet une intervention dynamique et une modification du comportement du noyau du système d'exploitation sans modifier le code source. Plus tard, cette technologie a évolué au-delà du noyau, conduisant au développement du temps d'exécution eBPF dans l'espace utilisateur, qui est très performant, sécurisé et portable. Les smart contracts exécutés sur Solana sont compilés en bytecode eBPF et s'exécutent sur son réseau blockchain.

D'autres chaînes publiques L1 comme Aptos et Sui utilisent le langage de programmation de contrat intelligent Move, compilant en bytecode propriétaire exécuté sur la machine virtuelle Move. Monad a conçu sa propre machine virtuelle compatible avec le bytecode de l'opcode EVM (fork de Shanghai).

2.2 Exécution parallèle

L'exécution parallèle est une technique qui exploite les avantages des processeurs multi-cœurs pour gérer plusieurs tâches simultanément, augmentant ainsi le débit du système. Elle garantit que les résultats des transactions sont identiques à ceux obtenus lorsque les transactions sont exécutées séquentiellement.

Dans les réseaux blockchain, le TPS (Transactions Par Seconde) est couramment utilisé comme indicateur technique pour mesurer la vitesse de traitement. Le mécanisme d'exécution parallèle est complexe et pose un défi aux compétences techniques des développeurs, ce qui rend difficile son explication. Ici, nous utiliserons l'exemple d'une "banque" pour expliquer ce qu'est l'exécution parallèle.

(1) Tout d'abord, qu'est-ce que l'exécution sérielle?

Scénario 1 : Si nous considérons le système comme une banque et le CPU de traitement des tâches comme un guichet, alors l'exécution séquentielle des tâches est semblable à cette banque n'ayant qu'un seul guichet disponible pour le service. Dans ce cas, les clients (tâches) arrivant à la banque doivent former une longue file et traiter leurs affaires un par un. Pour chaque client, le personnel du guichet doit répéter les mêmes actions (exécuter des instructions) pour servir le client. Les clients doivent attendre leur tour, ce qui entraîne des temps de transaction prolongés.

(2) Alors, qu'est-ce que l'exécution parallèle?

Scénario 2 : Si la banque constate qu'elle est bondée, elle pourrait ouvrir plusieurs guichets pour gérer les affaires, avec quatre employés travaillant simultanément aux guichets. Cela augmente la vitesse d'environ quatre fois par rapport à l'original, et le temps que les clients passent en ligne est également réduit à environ un quart de l'original. Ainsi, la vitesse de traitement des affaires à la banque est augmentée.

(3) Quelle erreur se produit s'il n'y a aucune protection en place et que deux personnes transfèrent simultanément de l'argent à une autre personne ?

Scénario 3 : Considérons A, B et C, qui ont respectivement 2 ETH, 1 ETH et 0 ETH sur leurs comptes. Maintenant, A et B souhaitent chacun transférer 0.5 ETH à C. Dans un système qui exécute les transactions séquentiellement, aucun problème ne se produirait (la flèche gauche "<=" indique la lecture du grand livre, et la flèche droite "=>" indique l'écriture dans le grand livre, de même ci-dessous)

Cependant, l'exécution parallèle n'est pas aussi simple qu'il n'y paraît. Il existe de nombreux détails subtils qui peuvent entraîner de graves erreurs si ils ne sont pas gérés avec précaution. Si les transactions de A et B transférant à C sont exécutées en parallèle, la séquence des étapes peut entraîner des résultats incohérents :

La tâche parallèle 1 exécute le transfert de A à C, et la tâche parallèle 2 exécute le transfert de B à C. Les étapes marquées d'un astérisque posent problème : car les tâches sont exécutées en parallèle, à l'étape 2, le calcul de solde effectué par la tâche parallèle 1 n'a pas encore été écrit dans le grand livre. À l'étape 3, la tâche parallèle 2 lit le solde du compte de C (qui est toujours de 0) et effectue un calcul de solde erroné basé sur celui-ci à l'étape 5. Ensuite, dans l'opération de mise à jour du grand livre à l'étape 6, il met à jour incorrectement le solde du compte, qui avait déjà été mis à jour à 0,5 à l'étape 4, à nouveau à 0,5. Cela fait que le solde du compte de C n'est que de 0,5 ETH, bien que A et B aient tous deux transféré 0,5 ETH chacun, entraînant effectivement la disparition des autres 0,5 ETH.

(4) Si aucune protection n'est en place, deux tâches qui ne dépendent pas l'une de l'autre peuvent s'exécuter en parallèle sans erreurs

Scénario 4 : La tâche parallèle 1 exécute un transfert de 0,5 ETH de A (solde 2 ETH) à C (solde 0 ETH), et la tâche parallèle 2 exécute un transfert de 0,5 ETH de B (solde 1 ETH) à D (solde 0 ETH). Il est évident qu'il n'y a pas de dépendance entre ces deux tâches de transfert. Peu importe comment les étapes des deux tâches sont entrelacées, elles ne rencontreront pas les problèmes décrits ci-dessus :

De la comparaison de ces scénarios, on peut analyser que tant qu'il y a une dépendance entre les tâches, des erreurs dans les mises à jour d'état peuvent survenir lors de l'exécution parallèle; sinon, aucune erreur ne se produira. Une tâche (transaction) est considérée comme ayant une relation de dépendance si elle répond à l'une des deux conditions suivantes:

  1. Une tâche écrit à une adresse de sortie qu'une autre tâche lit comme une adresse d'entrée;
  2. Deux tâches en sortie à la même adresse.

Ce problème n'est pas unique aux systèmes décentralisés. Tout scénario impliquant une exécution parallèle peut souffrir d'incohérences de données en raison d'un accès non protégé aux ressources partagées (comme le "registre" dans l'exemple de la banque ou la mémoire partagée dans les systèmes informatiques) entre plusieurs tâches dépendantes, connues sous le nom de courses de données.

L'industrie a proposé trois mécanismes pour résoudre les problèmes de course de données dans l'exécution parallèle : mécanismes de passage de messages, mécanismes de mémoire partagée et mécanismes de liste d'accès à l'état strict.

2.3 Mécanisme de passage de messages

Scénario 5: Considérez une banque avec quatre guichets de service fonctionnant simultanément pour les clients. Chaque guichetier de ces guichets se voit attribuer un grand livre unique, qu'il peut modifier. Ce grand livre enregistre les soldes des comptes des clients qu'ils servent.

Chaque fois qu'un caissier traite une transaction, si les informations du client sont disponibles dans leur grand livre, ils procèdent directement. Sinon, ils appellent d'autres caissiers pour les informer des besoins de transaction du client, et le caissier qui entend prend le relais.

Cela illustre le principe du modèle de passage de message. Le modèle d'acteur est un type de modèle de passage de message, où chaque entité traitant des transactions est un acteur (guichetier), chacun ayant accès à ses données privées (le grand livre exclusif). Accéder aux données privées de quelqu'un d'autre ne peut être réalisé qu'en envoyant des messages.

Avantages du modèle d'acteur :

Chaque acteur n'a accès qu'à ses données privées, évitant ainsi les problèmes de condition de course.

Inconvénients du modèle d'acteur :

Chaque acteur ne peut exécuter que des tâches séquentiellement. Dans certains scénarios, cela n'utilise pas les avantages du parallélisme. Par exemple, si les guichetiers n°2, n°3 et n°4 envoient simultanément des messages pour demander au guichetier n°1 le solde du compte du client A, le guichetier n°1 ne peut traiter ces demandes qu'une par une, même si elles pourraient être gérées en parallèle.

Il n'y a pas de vue globale de l'état actuel du système. Si les opérations du système sont complexes, il devient difficile de comprendre la situation globale, de localiser et de corriger les bogues.

2.4 Mécanisme de mémoire partagée

2.4.1 Modèle de verrouillage de mémoire

Scénario 6 : Imaginez une banque avec un seul grand registre qui enregistre les soldes des comptes de tous ses clients. À côté du registre, il n'y a qu'un seul stylo disponible pour y apporter des modifications.

Dans ce scénario, la compétition entre quatre guichetiers devient une course de vitesse : un guichetier attrape le stylo en premier (le verrouille) et commence à modifier le grand livre, tandis que les trois autres doivent attendre. Une fois que le guichetier a fini et pose le stylo (le déverrouille), les trois guichetiers suivants se précipitent pour attraper le stylo. Ce cycle se répète, illustrant le modèle de verrouillage de mémoire.

Une verrouillage de la mémoire permet aux tâches s'exécutant en parallèle de verrouiller une ressource partagée avant d'y accéder. Après que la ressource est verrouillée, les autres tâches doivent attendre qu'elle ait été modifiée et déverrouillée avant de pouvoir la verrouiller et y accéder à nouveau.

Le modèle de verrou de lecture-écriture offre une approche plus raffinée, permettant à plusieurs tâches parallèles d'ajouter des verrous de lecture à une ressource partagée et d'accéder à ses données plusieurs fois. Pendant cela, les modifications ne sont pas autorisées; cependant, un verrou d'écriture ne peut être appliqué que par un seul à la fois, et une fois appliqué, il accorde un accès exclusif au détenteur de la ressource.

Des plateformes de Blockchain comme Solana, Sui et Sei v1 utilisent un modèle de mémoire partagée basé sur des verrous mémoire. Ce mécanisme peut sembler simple, mais il est complexe à implémenter et nécessite que les développeurs aient des compétences sophistiquées en programmation multithread. L'insouciance peut entraîner divers bugs :

Scénario 1 : Une tâche verrouille une ressource partagée mais plante pendant l'exécution, laissant la ressource inaccessible.

Scénario 2: Une tâche verrouille une ressource mais finit par la verrouiller à nouveau en raison de la logique métier imbriquée, entraînant un deadlock où elle attend sur elle-même.

Le modèle de verrouillage de mémoire est sujet à des problèmes tels que les impasses, les impasses vivantes et la famine :

  1. Une impasse se produit lorsque plusieurs tâches parallèles luttent pour plusieurs ressources partagées, chaque tâche en détenant une partie et attendant que les autres libèrent leurs parties.
  2. L'embouteillage se produit lorsque des tâches parallèles détectent que d'autres tâches sont actives et renoncent volontairement à leur emprise sur les ressources partagées, entraînant un cycle continu de cession.
  3. La famine se produit lorsque les tâches à haute priorité ont systématiquement accès aux ressources partagées, tandis que les tâches à plus faible priorité endurent une attente prolongée.

2.4.2 Optimistic Parallelism

Scenario 7

Dans une banque, quatre guichetiers ont chacun la capacité d'accéder et de modifier indépendamment le registre lors des transactions, indépendamment du fait que d'autres guichetiers utilisent le registre. Lors de l'utilisation du registre, chaque guichetier applique une étiquette personnelle aux entrées auxquelles il accède ou qu'il modifie. Après avoir terminé une transaction, ils examinent à nouveau les entrées; s'ils trouvent une étiquette qui n'est pas la leur, cela indique que l'entrée a été modifiée par un autre guichetier, et la transaction doit être annulée et traitée à nouveau.

Cela illustre le principe de base de l'optimisme parallèle. L'idée principale de l'optimisme parallèle est de supposer initialement que toutes les tâches sont indépendantes. Les tâches sont exécutées en parallèle, puis chaque tâche est validée. Si une tâche échoue à la validation, elle est réexécutée jusqu'à ce que toutes les tâches soient terminées. Supposons qu'il y ait huit tâches parallèles effectuées de manière optimiste, nécessitant l'accès à deux ressources partagées, A et B.

Pendant la phase 1, les tâches 1, 2 et 3 sont exécutées en parallèle. Cependant, les tâches 2 et 3 accèdent simultanément à la ressource partagée B, provoquant un conflit, donc la tâche 3 est reprogrammée pour la phase suivante. En phase 2, les tâches 3 et 4 accèdent toutes les deux à la ressource B, ce qui entraîne le report de la tâche 4, et ainsi de suite, jusqu'à ce que toutes les tâches soient terminées. Comme on peut le voir, les tâches qui rencontrent des conflits sont réexécutées à plusieurs reprises.

Modèle de parallélisme optimiste

Le modèle de parallélisme optimiste utilise une structure de données en mémoire multi-version pour enregistrer chaque valeur écrite et ses informations de version (similaire aux étiquettes utilisées par les caissiers de banque).

L'exécution de chaque tâche parallèle est divisée en deux phases : exécution et validation. Pendant la phase d'exécution, toutes les actions de lecture et d'écriture de données sont enregistrées, formant un ensemble de lecture et un ensemble d'écriture. Pendant la phase de validation, l'ensemble de lecture et l'ensemble d'écriture sont comparés à la structure de données multi-version. Si la comparaison révèle que les données ne sont pas les dernières, la validation échoue.

Le modèle de parallélisme optimiste est issu de la mémoire transactionnelle logicielle (STM), un mécanisme de programmation sans verrouillage dans le domaine des bases de données. Comme les réseaux blockchain maintiennent intrinsèquement un ordre défini des transactions, ce concept a été introduit et évolué en mécanisme de Block-STM. Des plateformes blockchain comme Aptos et Monad ont adopté Block-STM comme mécanisme d'exécution parallèle.

Il convient de mentionner que la chaîne publique Sei, dans sa prochaine version v2, a abandonné le modèle de verrouillage de mémoire d'origine au profit du modèle de parallélisme optimiste. Block-STM exécute des transactions à un rythme extrêmement rapide; dans un environnement de test, Aptos a atteint une vitesse d'exécution de transaction impressionnante de 160 000 transactions par seconde (tps), soit 18 fois plus rapide que le traitement séquentiel des transactions.

Le Bloc-STM délègue l'exécution et la validation complexes des transactions à l'équipe de développement principale, permettant aux développeurs d'écrire des contrats intelligents aussi facilement que s'ils programmaient dans un environnement d'exécution séquentielle.

2.5 Liste d'Accès à l'État Strict

Les mécanismes de passage de messages et de mémoire partagée sont basés sur le modèle de données de compte/solde, qui enregistre les informations de solde de chaque compte sur la blockchain. C'est semblable à la façon dont le grand livre d'une banque montre que le client A a un solde de 1 000 unités et le client B a un solde de 600 unités. Les transactions sont simplement traitées en mettant à jour le statut des soldes des comptes.

Alternativement, on pourrait aussi enregistrer les détails de chaque transaction au moment de la transaction, créant ainsi un registre des transactions. Ce registre peut être utilisé pour calculer les soldes des comptes. Par exemple :

  • Le client A ouvre un compte et dépose 1 000 unités;
  • Le client B ouvre un compte (0 unités);
  • Le client A transfère 100 unités au client B.

En lisant et en calculant le grand livre, il est possible de déterminer que le Client A a un solde de 900 unités et que le Client B a un solde de 100 unités.

UTXO (Unspent Transaction Output) est similaire à ce modèle de données de registre de transactions. Il représente une méthode de notation de la monnaie numérique dans Bitcoin, le blockchain de première génération. Chaque transaction a des entrées (comment les fonds ont été reçus) et des sorties (comment les fonds ont été dépensés), et les UTXO peuvent être simplement compris comme les reçus de fonds qui n'ont pas encore été dépensés.

Par exemple, si le client A a 6 BTC et transfère 5,2 BTC au client B, en laissant 0,8 BTC, d'un point de vue UTXO, cela ressemble à ceci: Les 6 UTXO d'une valeur de 1 BTC chacun sont détruits, et B reçoit un nouveau UTXO d'une valeur de 5,2 BTC, tandis que A reçoit un nouveau UTXO d'une valeur de 0,8 BTC en guise de monnaie. Ainsi, 6 UTXO sont détruits pour créer 2 nouveaux UTXO.

Les entrées et les sorties d'une transaction sont liées et utilisent des signatures numériques pour enregistrer les informations de propriété, formant ainsi le modèle UTXO. Les blockchains qui adoptent ce modèle de données doivent totaliser tous les UTXO pour une adresse de compte particulière afin de déterminer le solde actuel du compte. La liste d'accès à l'état strict (SSAL) est basée sur le modèle UTXO et permet une exécution parallèle. Il précalcule les adresses de compte auxquelles chaque transaction accédera, formant une liste d'accès.

La liste d'accès sert à deux fins :

  1. Évaluation de la sécurité des transactions : Si une transaction accède à une adresse qui ne figure pas sur la liste d'accès, l'exécution échoue.
  2. Exécution parallèle des transactions : Selon la liste d'accès, les transactions sont regroupées en plusieurs ensembles. Comme il n'y a pas de dépendances (pas d'intersections) entre les ensembles sur la liste d'accès, ces ensembles de transactions peuvent être exécutés en parallèle.

3. Les moteurs de croissance de l'industrie

D'un point de vue intrinsèque, le développement de toute chose progresse généralement de l'origine vers le raffinement, et la quête de l'humanité pour la vitesse est éternelle. Pour répondre aux problèmes de vitesse d'exécution dans les réseaux blockchain, une variété de solutions, à la fois on-chain et off-chain, ont émergé. Les solutions off-chain, telles que les rollups, ont été pleinement reconnues pour leur valeur, tandis que le récit des Machines Virtuelles Ethereum (EVM) parallèles offre encore de significatives opportunités d'exploration.

Historiquement, avec l'approbation de la SEC d'un ETF Bitcoin au comptant et l'événement à venir de réduction de moitié de Bitcoin, associé à des éventuelles baisses des taux d'intérêt par la Réserve fédérale, on s'attend à ce que les cryptomonnaies entrent dans un marché haussier significatif. La croissance robuste de l'industrie nécessite des infrastructures de réseau blockchain capables de gérer des débits plus élevés comme base solide.

En termes de gestion des ressources, les réseaux de blockchain traditionnels traitent les transactions séquentiellement, une méthode simple mais inefficace qui gaspille les ressources du processeur. En revanche, les blockchains parallèles utilisent pleinement les ressources informatiques, extrayant considérablement le potentiel de performance des processeurs multicœurs, améliorant ainsi l'efficacité globale des réseaux de blockchain.

En ce qui concerne le développement de l'industrie, bien que diverses innovations technologiques et de modèles commerciaux émergent continuellement, le potentiel de croissance de Web3 reste largement inexploité. Les réseaux centralisés peuvent gérer plus de 50 000 messages par seconde, envoyer 3,4 millions d'e-mails, effectuer 100 000 recherches Google et prendre en charge des dizaines de milliers de joueurs en ligne simultanément, des exploits pas encore réalisables par les réseaux décentralisés. Pour que les systèmes décentralisés puissent rivaliser et se tailler leur propre territoire, une optimisation continue des mécanismes d'exécution parallèle et une amélioration du débit des transactions sont essentielles.

Du point de vue des applications décentralisées, attirer plus d'utilisateurs nécessite des efforts significatifs pour améliorer l'expérience utilisateur. L'optimisation des performances est une direction clé pour améliorer l'expérience utilisateur. Pour les utilisateurs de DeFi, satisfaire les exigences de vitesse de transaction élevée et de faibles frais est crucial. Pour les utilisateurs de GameFi, l'interaction en temps réel est nécessaire. Toutes ces exigences sont soutenues par la robustesse de l'exécution parallèle.

4. Problèmes existants

Le "trilemme de la chaîne de blocs" stipule que la décentralisation, la sécurité et la scalabilité ne peuvent satisfaire que deux des trois attributs simultanément. Comme la "décentralisation" est un pilier immuable, améliorer la "scalabilité" implique une réduction de la "sécurité". Comme le code est écrit par des humains, il est sujet aux erreurs. La complexité technique introduite par le calcul parallèle fournit un terrain propice aux vulnérabilités de sécurité potentielles.

La programmation multithread est particulièrement complexe en raison de deux problèmes principaux : premièrement, elle est sujette aux conditions de course en raison d'une manipulation incorrecte de diverses opérations de contrôle concurrentes complexes ; deuxièmement, elle peut entraîner des plantages en accédant à des adresses mémoire invalides, ce qui pourrait même entraîner des vulnérabilités de débordement de tampon exploitables par des attaquants.

Il existe au moins trois perspectives à partir desquelles évaluer la sécurité d'un projet :

1. Contexte de l'équipe : Les équipes ayant de l'expérience en programmation système sont habituées à la programmation multithread et peuvent résoudre 80% des problèmes complexes. La programmation système implique généralement les domaines suivants :

  • Systèmes d'exploitation
  • Divers pilotes de périphériques
  • Systèmes de fichiers
  • Bases de données
  • Systèmes embarqués
  • Cryptographie
  • Codecs multimédias
  • Gestion de la mémoire
  • Réseau
  • Virtualisation
  • Jeu
  • Langages de programmation avancés

2. Maintenabilité du code: Écrire un code maintenable suit une méthodologie claire, telle que l'existence d'une conception architecturale claire, l'utilisation de motifs de conception pour mettre en œuvre la réutilisabilité du code, l'utilisation de techniques de développement piloté par les tests pour écrire suffisamment de tests unitaires, et l'élimination du code redondant grâce à un refactoring réfléchi.

3. Langage de programmation utilisé : Certains langages de programmation de pointe sont conçus avec un fort accent sur la sécurité de la mémoire et une haute concurrence. Les compilateurs vérifient le code pour détecter les problèmes de concurrence ou les accès potentiels à des adresses mémoire invalides, ce qui entraîne un échec de la compilation s'ils sont détectés, obligeant ainsi les développeurs à écrire un code robuste.

Le langage Rust est exemplaire à cet égard, c'est pourquoi nous constatons que la majorité des projets de blockchain parallèles sont développés en Rust. Certains projets empruntent même la conception de Rust pour implémenter leurs propres langages de smart contract, comme le langage Sway de Fuel.

5. Arrangement cible

5.1 Basé sur le modèle de parallélisation optimiste

5.1.1 Des verrous de mémoire au parallélisme optimiste

Sei est une blockchain publique polyvalente basée sur la technologie open source, créée en 2022. Les fondateurs sont des anciens élèves de l'Université de Californie, Berkeley, et d'autres membres de l'équipe ont également des antécédents dans des universités prestigieuses à l'étranger.

Sei a reçu un financement en trois tours : un tour de table initial de 5 millions de dollars, un premier tour de financement stratégique de 30 millions de dollars, et un deuxième tour de financement stratégique où le montant n'a pas été divulgué. Le réseau Sei a également levé un total de 100 millions de dollars de fonds pour soutenir le développement de son écosystème.

En août 2023, Sei a été lancé sur son mainnet, affirmant être la blockchain publique L1 la plus rapide, capable de traiter 12 500 transactions par seconde, avec une finalité atteinte en seulement 380 ms. Actuellement, elle a une capitalisation boursière d'environ 2,2 milliards de dollars.

Actuellement, l'écosystème Sei comprend 118 projets, se concentrant principalement sur la DeFi, l'infrastructure, les NFT, les jeux et les portefeuilles. La communauté compte actuellement 650 000 membres sur Twitter, 600 000 sur Discord et 40 000 sur Telegram.

À la fin de novembre 2023, Sei a annoncé sur son blog officiel qu'elle lancerait la mise à jour de version la plus importante depuis le lancement du mainnet au premier semestre de 2024 : Sei v2. Sei v2 est présenté comme le premier blockchain EVM parallèle. Cette mise à jour de version introduira les nouvelles fonctionnalités suivantes :

  • Compatibilité ascendante pour les contrats intelligents EVM : les développeurs peuvent migrer et déployer des contrats intelligents EVM sans modifier le code.
  • Réutilisabilité pour des outils/applications communs tels que Metamask.
  • Parallélisation optimiste : Sei v2 abandonnera le mécanisme d'accès partagé des verrous mémoire au profit de la parallélisation optimiste.
  • SeiDB: Optimisation de la couche de stockage.
  • Support pour une interopérabilité transparente entre Ethereum et d'autres chaînes.

À l'origine, l'exécution parallèle des transactions du réseau Sei était basée sur un modèle de verrouillage de mémoire. Avant l'exécution, toutes les dépendances entre les transactions en attente étaient résolues et un DAG était généré, puis, en fonction du DAG, l'ordre d'exécution des transactions était précisément arrangé. Cette méthode a accru la charge mentale des développeurs de contrats car ils devaient incorporer la logique dans le code pendant le développement.

Comme introduit dans la section des principes techniques ci-dessus, avec l'adoption de la parallélisation optimiste dans la nouvelle version, les développeurs peuvent désormais écrire des contrats intelligents comme s'ils écrivaient des programmes exécutés séquentiellement. Des mécanismes complexes tels que la planification, l'exécution et la vérification des transactions sont gérés par les modules sous-jacents. La conception de la proposition d'optimisation de l'équipe principale a également introduit une amélioration supplémentaire des capacités d'exécution parallèle grâce au préremplissage des dépendances.

Plus précisément, cela implique d'introduire un générateur de dépendances dynamique qui analyse les opérations d'écriture des transactions avant l'exécution et les pré-remplit dans une structure de données mémoire multi-version, optimisant ainsi les éventuels conflits de données. Après analyse, l'équipe principale a conclu que, bien qu'un tel mécanisme d'optimisation ne soit pas avantageux dans le meilleur des cas pour le traitement des transactions, il améliore significativement l'efficacité d'exécution dans le pire des cas.

5.1.2 Perturbateur potentiel dans la voie L1 : Monad

Si vous avez manqué le développement des blockchains publiques mentionnées ci-dessus, alors vous ne devriez certainement pas manquer Monad. Il est présenté comme un perturbateur potentiel dans la voie L1.

Monad a été fondé par deux ingénieurs seniors de Jump Crypto en 2022. Le projet a achevé une levée de fonds de démarrage de 19 millions de dollars en février 2023. En mars 2024, Paradigm a mené les négociations pour une levée de fonds de plus de 200 millions de dollars pour Monad. En cas de succès, il s'agirait du plus important financement de cryptomonnaie depuis le début de l'année.

Le projet a déjà atteint l'étape du lancement d'un testnet interne et travaille vers la prochaine étape d'ouverture d'un testnet public.

Monad est très apprécié par le capital pour deux raisons éminentes : l'une est son solide bagage technique, et l'autre est sa compétence dans le battage marketing. L'équipe principale de Monad Labs se compose de 30 membres, tous ayant des décennies d'expérience approfondie dans le trading à haute fréquence, les pilotes de noyau et la technologie financière, ainsi qu'une vaste expérience en développement dans les systèmes distribués.

Les opérations quotidiennes du projet sont également très "ancrées" : s'engager continuellement dans un "marketing magique" avec ses 200 000 abonnés sur Twitter et 150 000 membres sur Discord. Par exemple, organiser des concours hebdomadaires de mèmes, collecter divers emojis ou vidéos d'animaux violets excentriques de la communauté, pour effectuer une "diffusion spirituelle."

La vision de Monad est de devenir une plateforme de contrats intelligents pour les développeurs, apportant des améliorations de performances extrêmes à l'écosystème Ethereum. Monad introduit deux mécanismes à la Machine Virtuelle Ethereum : l'un est le pipeline superscalar, et l'autre est un mécanisme parallèle optimiste amélioré.

Le pipeline superscalaire parallélise la phase d'exécution des transactions. Un exemple illustratif donné dans la documentation officielle est le lavage des vêtements, similaire à la façon dont la blockchain traite les transactions, également réalisées en plusieurs étapes. La méthode traditionnelle traite chaque tas de vêtements sales en passant par le lavage, le séchage, le pliage et le stockage avant de passer au tas suivant.

D'autre part, le pipeline superscalaire commence à laver le deuxième tas de vêtements pendant que le premier tas sèche. Pendant que le premier tas est plié, les deuxième et troisième tas sont respectivement en train de sécher et de laver, maintenant ainsi chaque étape active.

Le mécanisme parallèle optimiste parallélise l'exécution des transactions. Monad utilise le parallélisme optimiste pour l'exécution parallèle. Il a également développé son propre analyseur de code statique pour prédire les dépendances entre les transactions, planifiant les transactions ultérieures uniquement après l'exécution des transactions dépendantes préalables, réduisant ainsi considérablement la ré-exécution des transactions en raison d'échecs de validation.

Actuellement, ses performances atteignent 10 000 TPS et il peut produire des blocs en une seconde. Au fur et à mesure que le projet avance, l'équipe principale continuera à explorer davantage de mécanismes d'optimisation.

5.1.3 Projet L1 Hautement Décentralisé : Canto

Établi en 2022, Canto est un projet L1 hautement décentralisé construit sur le Cosmos SDK. Il fonctionne sans fondation officielle, ne participe pas à des préventes, n'est affilié à aucune organisation, ne cherche pas de financement et est entièrement piloté par la communauté. Même l'équipe principale reste anonyme, travaillant de manière assez organisée.

Bien qu'il s'agisse d'une blockchain générale compatible avec l'EVM, la vision principale de Canto est de devenir une plate-forme de valeur DeFi accessible, transparente, décentralisée et gratuite. À travers des recherches approfondies dans le secteur, il a été constaté que tout écosystème DeFi sain comprend trois éléments fondamentaux :

  1. Les échanges décentralisés (DEX) comme Uniswap et Sushiswap;
  2. Les plateformes de prêt comme Compound et Aave;
  3. Tokens décentralisés comme DAI, USDC, ou USDT.

Cependant, les écosystèmes DeFi traditionnels partagent finalement un destin commun : ils émettent des jetons de protocole de gouvernance, dont la valeur dépend de la quantité de frais d'utilisation que l'écosystème peut extraire de ses futurs utilisateurs - plus il est extrait, plus la valeur est grande. Cela revient à chaque protocole DeFi étant un parking privé qui facture à l'heure - plus il est utilisé, plus sa valorisation est élevée.

Canto adopte une autre approche : Construire une infrastructure publique gratuite pour DeFi (Infrastructure publique gratuite), Vous faire un parking gratuit pour ses projets écologiques.

L'infrastructure se compose de 3 protocoles : l'échange décentralisé Canto DEX, la plateforme de prêt mutualisée Canto Lending Market (CLM) forkée de Compound v2, et la monnaie stable NOTE qui peut être empruntée auprès de CLM grâce à des actifs de garantie.

Canto a adopté une approche novatrice : construire une infrastructure publique gratuite ciblant DeFi, se positionnant comme un parking gratuit disponible pour les projets de son écosystème à utiliser sans frais.

L'infrastructure se compose de trois protocoles : l'échange décentralisé Canto DEX, la plateforme de prêt groupé Canto Lending Market (CLM) forkée à partir de Compound v2, et le stablecoin NOTE, qui peut être emprunté auprès de CLM en utilisant des actifs utilisés en garantie.

Canto DEX fonctionne de manière perpétuelle en tant que protocole non évolutif et sans gouvernance. Il n'émet pas ses jetons et ne facture pas de frais supplémentaires. Cette conception empêche divers comportements de recherche de rente au sein des applications DeFi de l'écosystème, évitant ainsi les jeux à somme nulle prédateurs.

La gouvernance de la plateforme de prêt CLM est contrôlée par les parties prenantes, qui bénéficient pleinement de la croissance de l'écosystème et, à leur tour, créent le meilleur environnement pour les développeurs et les utilisateurs DeFi, les motivant à contribuer continuellement. Les intérêts générés par les prêts émis en NOTE sont versés aux emprunteurs, le protocole ne prenant aucune commission.

Pour les développeurs, Canto a introduit le modèle de revenus sécurisés par contrat, qui alloue un certain pourcentage des frais générés par les interactions on-chain avec les contrats aux développeurs. Cette série d'innovations en matière de modèles commerciaux par Canto, appelée "tuer trois oiseaux d'un coup", favorise un écosystème constructif et prospère en fournissant une infrastructure financière ouverte et gratuite.

Par divers moyens, Canto incite les développeurs et utilisateurs de l'écosystème à rejoindre et enrichir continuellement l'écosystème. En contrôlant étroitement les "droits d'émission", Canto crée des possibilités de liquidité inter-application parmi diverses applications décentralisées. À mesure que l'écosystème prospère, ses jetons augmentent en valeur. Après l'approbation de la proposition CSR par un vote communautaire le 26 janvier 2024, le jeton $CANTO a connu une hausse de prix.

Suite à ces séries d'innovations de modèles commerciaux, le 18 mars 2024, Canto a annoncé sa dernière série d'itérations techniques sur son blog officiel.

En plus d'adopter une nouvelle version du Cosmos SDK et d'intégrer de nouvelles technologies pour réduire les goulots d'étranglement d'accès au stockage, Canto passera également à des EVM parallèles : en introduisant une parallélisation optimiste grâce à la mise en œuvre de Cyclone EVM.

Le SDK Cosmos utilisé par Canto divise le traitement des transactions en trois étapes : Proposition, Vote et Finalisation. Le sous-processus ProcessProposal pendant le Vote est responsable de l'exécution parallèle des transactions. Le moteur d'exécution parallèle gère l'exécution, tandis que le moteur de détection des conflits vérifie la validité des transactions.

Si une transaction est invalide, elle est renvoyée au moteur d'exécution pour être réexécutée ; si elle est valide, elle est consignée dans le flux de traitement ultérieur. On estime que cette série de mises à niveau technologiques rendra les jetons de Canto encore plus attrayants.

5.2 Basé sur des listes d'accès à l'état strictes: Fuel

Fuel, composé de la machine virtuelle FuelVM, du langage de développement de contrats Sway inspiré par Rust, et de sa chaîne d'outils associée, est un "système d'exploitation rollup Ethereum" modulaire sur mesure. Le projet Fuel a été créé en 2019, et en décembre 2020, Fuel Labs a lancé la première couche d'exécution rollup optimiste sur Ethereum, Fuel v1. Après plus de trois ans de développement, le projet est enfin prêt à lancer son mainnet au troisième trimestre de 2024.

Fuel a achevé des tours de financement de 1,5 million de dollars et de 80 millions de dollars en 2021 et 2022, respectivement. L'équipe de base se compose de plus de 60 ingénieurs, le fondateur John Adler étant également co-fondateur de la solution de disponibilité des données Celestia Labs et l'un des premiers défenseurs de l'approche rollup optimiste. En termes d'opérations, le projet compte 270 000 membres sur Twitter et 390 000 sur Discord.

L'exécution des transactions une par une sur la blockchain entraîne des frais de gaz et concurrence pour l'espace de bloc précieux, ce qui est lent. Naturellement, différentes solutions de mise à l'échelle viennent à l'esprit, telles que le traitement par lots des transactions qui sont ensuite regroupées et réglées sur la chaîne pour accélérer l'exécution.

Un rollup est une solution de mise à l'échelle qui fonctionne en dehors de L1, exécutant des transactions par lots hors chaîne, puis envoyant des données de transaction ou des preuves d'exécution à L1. Cela garantit la sécurité grâce à la couche DA et règle les transactions. Il existe deux principaux types de rollups : optimistes et de connaissance nulle (ZK).

Les rollups optimistes supposent que les transactions sont valides et produisent une preuve de fraude pour annuler les transactions malveillantes ou incorrectes sur L1 lorsqu'elles sont détectées. Les rollups ZK génèrent des preuves de validité de transaction grâce à des calculs complexes sans exposer les détails de la transaction, et les publient sur L1 pour démontrer que le rollup a exécuté correctement les transactions. Ainsi, les rollups sont une technologie de couche d'exécution de la blockchain.

Bien que les rollups accélèrent l'exécution des transactions, la plupart des implémentations existantes sont conçues pour des blockchains monolithiques. Les développeurs doivent faire divers compromis techniques, ce qui limite les performances complètes des rollups. Avec la nouvelle tendance vers les blockchains modulaires, il n'y a pas eu de solution de rollup adaptée dans l'industrie. Fuel a été créé pour combler cette lacune.

Fuel utilise le modèle de données UTXO, qui présente l'avantage que ses sorties de transaction n'ont que deux états : soit dépensées, enregistrées de manière permanente dans l'historique des transactions du bloc, soit non dépensées, disponibles pour les transactions futures. Cela réduit au minimum les données d'état stockées sur chaque nœud de la chaîne. Sur cette base, Fuel vérifie les informations de compte auxquelles chaque transaction accède avant l'exécution, identifie les dépendances et planifie l'exécution en parallèle des transactions sans dépendances, améliorant le débit du traitement des transactions.

5.3 Intégration inter-chaînes de L1 avec des solutions L2 : Neno, Eclipse et Lumio

Les solutions de couche 2 partagent une caractéristique commune : elles combinent les capacités de deux types de machines virtuelles pour améliorer la vitesse d'exécution des transactions. Plus précisément, il s'agit d'utiliser des L1 parallèles pour exécuter des transactions tout en maintenant la compatibilité avec d'autres chaînes (prise en charge de la machine virtuelle double). Cependant, les mécanismes de compatibilité adoptés par différents projets varient. À cet égard, Neon, Eclipse et Lumio sont particulièrement représentatifs.

Neon prétend être le premier projet EVM parallèle dans l'écosystème Solana, permettant aux développeurs de migrer sans heurt les projets de l'écosystème Ethereum vers l'écosystème Solana. Eclipse est un autre protocole dans l'écosystème Solana compatible avec EVM, construit avec une architecture modulaire. Parmi ces trois projets, seul Neon a émis son propre jeton, atteignant une valeur marchande en circulation de plus de 78 millions.

Les deux autres projets en sont encore à des stades relativement précoces. Lumio combine Aptos et Ethereum pour créer un protocole rollup L2 optimiste, exécutant efficacement des applications Ethereum à la vitesse du Move VM.

En termes de financement, Neon a terminé la collecte de fonds de 40 millions de dollars en novembre 2021 et de 5 millions de dollars en juin 2023, totalisant 45 millions de dollars. Eclipse a terminé la collecte de fonds de 6 millions de dollars en août 2022, 9 millions de dollars en septembre 2022 et 50 millions de dollars en mars 2024, totalisant 65 millions de dollars. Lumio n'a pas encore levé de fonds.

Aucun des trois projets n'a encore formé un écosystème d'application à grande échelle, mais ils ont des dizaines à des centaines de milliers de followers ou de membres sur les principales plateformes de médias sociaux, ce qui indique une activité communautaire significative.

D'un point de vue mécanique, Neon est un émulateur EVM sur le réseau Solana, fonctionnant comme un contrat intelligent. Les développeurs peuvent utiliser des langages tels que Solidity et Vyper pour écrire des applications dApp, et peuvent utiliser des chaînes d'outils Ethereum et des API RPC Ethereum compatibles, des comptes, des signatures et des normes de jetons, telles que MetaMask, Hardhat et Remix. Pendant ce temps, ils bénéficient des avantages de frais réduits, d'une vitesse d'exécution élevée des transactions et des capacités de traitement parallèle offertes par Solana.

Les transactions Ethereum envoyées depuis le frontend d'application Ethereum sont converties par un proxy en transactions Solana, puis exécutées dans l'émulateur, modifiant l'état de la chaîne. C'est comme les émulateurs de jeux que nous utilisons souvent sur les PC, qui nous permettent de jouer à des jeux exclusifs des consoles comme Switch et PlayStation sur les ordinateurs de bureau. Neon permet aux développeurs Ethereum d'exécuter des applications Ethereum sur le réseau Solana.

Eclipse adopte une approche d'implémentation différente : exécution des transactions via SVM et règlement des transactions via EVM. Eclipse utilise une architecture de blockchain modulaire, où il ne gère que l'exécution des transactions et externalise d'autres responsabilités, formant une solution unifiée grâce à des combinaisons modulaires.

Par exemple, il utilise Celestia pour gérer la disponibilité des données et Ethereum pour exécuter et régler les transactions. Eclipse assure la vitesse d'exécution grâce à SVM et la sécurité grâce à la validation et au règlement d'Ethereum.

Lumio adopte une philosophie de conception indépendante des couches d'exécution et de règlement, prenant en charge diverses machines virtuelles et compatible avec plusieurs réseaux L1/L2 : Ethereum, Aptos, Optimism, Avalanche, zkSync, et d'autres. Il exécute les transactions via Move VM et les règle via EVM, connectant ainsi les écosystèmes Ethereum et Aptos.

Cependant, les ambitions de Lumio ne s'arrêtent pas là. Sa vision est de fournir des appels croisés de machines virtuelles pour atteindre une connectivité de liquidité multi-blockchain à la vitesse la plus élevée et aux tarifs les plus bas.

Ce qui précède sont les principaux projets actuellement liés au récit EVM parallèle, comme le montre le diagramme suivant.

6. Conclusion et perspectives

Les gens comparent souvent le Bitcoin à un 'registre distribué' et l'Ethereum à une 'machine d'état distribuée'. Si nous considérons tous les nœuds opérant un réseau blockchain comme un seul ordinateur, alors les blockchains parallèles étudient fondamentalement comment maximiser l'utilisation des ressources de traitement de ce 'ordinateur' pour atteindre les vitesses d'exécution les plus rapides.

Il s'agit d'une évolution inévitable dans l'histoire de la technologie informatique, similaire au passage des processeurs mono-core aux processeurs multi-core, et aux systèmes d'exploitation évoluant des systèmes mono-utilisateur mono-thread aux systèmes multi-utilisateur multi-threading. Cela a des implications significatives pour le développement continu de l'industrie.

Les principes techniques du EVM parallèle peuvent être décomposés en deux composants : la machine virtuelle et le mécanisme d'exécution parallèle. Dans le contexte de la blockchain, la machine virtuelle intègre un ensemble d'instructions pour exécuter de manière distribuée des contrats et exécuter des dApps. Le mécanisme d'exécution parallèle se concentre principalement sur la maximisation des vitesses d'exécution des transactions tout en garantissant l'exactitude des résultats des transactions.

D'une part, les EVM parallèles partagent des principes techniques communs. Tout d'abord, le modèle de parallélisation optimiste est un consensus pour les blockchains publiques de L1. Cependant, cela ne signifie pas que le modèle de verrouillage de la mémoire est inutile. La supériorité technologique n'existe pas; c'est plutôt le niveau de compétence des développeurs qui varie.

Deuxièmement, des projets comme Fuel croient fermement que les mécanismes de mise à l'échelle hors chaîne ne peuvent atteindre leur performance maximale qu'après la modularisation. Enfin, de nombreux projets L2 cherchent à améliorer le débit des transactions en s'intégrant avec des blockchains publiques parallèles L1, réalisant ainsi des capacités de mise à l'échelle inter-écosystèmes.

D'autre part, les blockchains parallèles ont leurs propres réalisations techniques uniques. Même en adoptant le même modèle d'exécution parallèle, différentes équipes ont mis en œuvre des schémas de conception architecturale, des modèles de données ou des mécanismes de prétraitement variés. L'exploration technologique est sans fin, et différents projets développent des technologies distinctes basées sur des visions différentes pour pousser la pratique à des niveaux plus élevés.

En regardant vers l'avenir, de plus en plus de projets L1 et L2 rejoindront la compétition dans des EVM parallèles. La piste L1 verra une compétition complète entre les EVM parallèles et les camps non-EVM en termes de ressources processeur, ressources de stockage, ressources réseau, ressources système de fichiers et ressources de périphériques. Cette compétition donnera également naissance à de nouveaux récits liés à l'amélioration des performances. Pendant ce temps, la piste L2 évoluera vers des simulateurs de machine virtuelle blockchain ou des blockchains modulaires.

À l'avenir, les optimisations de l'infrastructure apporteront des vitesses plus rapides, des coûts plus bas et une efficacité accrue. Les entrepreneurs Web3 peuvent innover audacieusement les modèles commerciaux pour créer de meilleures expériences de produits décentralisés dans le monde entier, ce qui contribuera davantage à l'épanouissement de l'écosystème industriel. Pour les investisseurs Web3, se concentrer uniquement sur la technologie est insuffisant.

Lors du choix des cibles d'investissement, les investisseurs doivent tenir compte des récits, de la capitalisation boursière et de la liquidité, en choisissant des projets avec de "bons récits," une "faible capitalisation boursière" et une "forte liquidité." Ensuite, ils doivent se plonger dans l'entreprise, les antécédents de l'équipe, le modèle économique, le marketing et les projets écologiques, découvrant ainsi des projets potentiels et trouvant des avenues d'investissement appropriées.

Les EVM parallèles en sont encore aux premiers stades de développement, avec des projets tels que Neon, Monad, Canto, Eclipse, Fuel et Lumio à la phase où leur valeur n'a pas encore été pleinement réalisée. En particulier, Monad, Canto et Fuel.

Du style marketing de Monad, non seulement il est remarquable en soi, mais les projets de mèmes au sein de son écosystème méritent également d'être pris en compte, ce qui pourrait conduire à des histoires d'enrichissement rapide alimentées par l'engouement. Canto répond aux conditions de "bon récit" et "faible valorisation boursière", mais savoir s'il s'agit d'une bonne cible d'investissement nécessite encore un examen approfondi de ses divers indicateurs. Fuel représente une direction populaire dans le développement de blockchains modulaires et pourrait également donner lieu à de nouvelles opportunités d'investissement, toutes ces directions méritent notre attention.

déclaration :

  1. Cet article est reproduit à partir deGryphsis Academy), le titre original est « Ten Thousand Words Interpretation of Parallel EVM : How to Break through the Blockchain Performance Bottleneck ? », le copyright appartient à l’auteur original [@leesper6], si vous avez des objections à la réimpression, veuillez contacterÉquipe Gate Learn, l'équipe le traitera dès que possible selon les procédures pertinentes.

  2. Avis de non-responsabilité : Les points de vue et opinions exprimés dans cet article ne représentent que les points de vue personnels de l'auteur et ne constituent aucun conseil en investissement.

  3. Les autres versions linguistiques de l'article sont traduites par l'équipe Gate Learn et ne sont pas mentionnées dansGateL'article traduit ne peut être reproduit, distribué ou plagié.

EVM Parallèle : Surmonter les Goulots d'Étranglement de la Blockchain

Intermédiaire4/15/2024, 3:33:01 PM
Cet article explore les détails techniques et les perspectives du marché des EVM parallèles, analysant les mécanismes d'exécution parallèle des principaux projets blockchain tels que Sei, Monad et Canto, et évaluant leur impact potentiel et leur position sur le marché dans l'industrie. Grâce à l'optimisation de l'exécution parallèle, les réseaux blockchain peuvent améliorer considérablement la vitesse et l'efficacité de traitement, soutenant le développement généralisé du domaine Web3.

TL;DR

  1. Les EVM parallèles représentent une nouvelle narration qui émerge lorsque les volumes de transactions sur chaîne atteignent un certain niveau. Ils sont principalement divisés en blockchains monolithiques et blockchains modulaires, les monolithiques étant ensuite catégorisés en L1 et L2. Les chaînes publiques L1 parallèles sont divisées en deux camps : EVM et non-EVM. Actuellement, la narration parallèle EVM en est à ses débuts de développement.
  2. Le chemin d'implémentation technique des EVM parallèles comprend des machines virtuelles et des mécanismes d'exécution parallèle. Dans le contexte des blockchains, une machine virtuelle est une machine virtuelle de processus qui virtualise la machine à états distribuée pour exécuter des contrats.
  3. L'exécution parallèle fait référence à l'utilisation de processeurs multicœurs pour exécuter simultanément autant que possible plusieurs transactions, tout en veillant à ce que l'état final soit cohérent avec ce qui serait obtenu par une exécution sérielle.
  4. Les mécanismes d'exécution parallèle sont divisés en trois catégories : le passage de messages, la mémoire partagée et les listes d'accès à l'état strict. La mémoire partagée est ensuite divisée en modèle de verrouillage de mémoire et parallélisation optimiste. Indépendamment du mécanisme, chacun augmente la complexité technique.
  5. Le récit des EVM parallèles a non seulement des moteurs intrinsèques de croissance industrielle, mais nécessite également que les praticiens prêtent une attention particulière aux problèmes de sécurité potentiels.
  6. Chaque projet EVM parallèle propose une approche unique de l'exécution parallèle, montrant à la fois des similitudes techniques et des innovations distinctes.

1. Aperçu de l'industrie

1.1 Évolution historique

Les performances sont devenues un obstacle au développement ultérieur de l'industrie. Les réseaux de la Blockchain créent une base de confiance nouvelle et décentralisée pour les transactions entre individus et entreprises.

Les réseaux blockchain de première génération, représentés par Bitcoin, ont ouvert la voie à un nouveau mode de transactions de devises électroniques décentralisées grâce à la technologie des registres distribués, révolutionnant une nouvelle ère. La deuxième génération, incarnée par Ethereum, a pleinement exploité l'imagination pour proposer des applications décentralisées (dApps) grâce à une approche de machine à états distribuée.

Depuis lors, les réseaux blockchain ont entamé leur propre développement rapide sur plus d'une décennie, passant de l'infrastructure Web3 à divers domaines tels que DeFi, NFT, réseaux sociaux et GameFi, donnant naissance à de nombreuses innovations en termes de technologie et de modèles économiques. L'industrie florissante doit continuellement attirer de nouveaux utilisateurs pour participer à l'écosystème des applications décentralisées, ce qui soulève à son tour des exigences plus élevées en matière d'expérience produit.

Web3, en tant que forme de produit novatrice 'sans précédent dans l'histoire', doit innover pour répondre aux besoins des utilisateurs (exigences fonctionnelles) tout en équilibrant la sécurité et les performances (exigences non fonctionnelles). Depuis sa création, diverses solutions ont été proposées pour résoudre les problèmes de performances.

Ces solutions peuvent généralement être catégorisées en deux types : les solutions de mise à l'échelle sur chaîne, telles que le sharding et les Graphes Acycliques Dirigés (DAGs), et les solutions de mise à l'échelle hors chaîne, telles que Plasma, Lightning Networks, les sidechains et les Rollups. Cependant, elles sont encore loin de suivre la croissance rapide des transactions sur chaîne.

Surtout après l'été DeFi de 2020 et la croissance explosive des inscriptions dans l'écosystème Bitcoin vers la fin de 2023, l'industrie a un besoin urgent de nouvelles solutions d'amélioration des performances pour répondre aux demandes de "hautes performances et de faibles frais". C'est dans ce contexte que sont nés les blockchains parallèles.

1.2 Taille du marché

Le récit de l'EVM parallèle signifie un paysage concurrentiel où deux acteurs majeurs dominent dans le domaine des blockchains parallèles. Ethereum traite les transactions de manière sérielle, les exécutant l'une après l'autre, ce qui entraîne une faible utilisation des ressources. Passer d'un traitement sériel à un traitement parallèle pourrait améliorer considérablement les performances.

Les concurrents d'Ethereum tels que Solana, Aptos et Sui, offrent tous des capacités de traitement parallèle intégrées et ont développé des écosystèmes robustes. Leurs capitalisations boursières respectives ont atteint 45 milliards de dollars, 3,3 milliards de dollars et 1,9 milliard de dollars, formant un camp non-EVM parallèle. En réponse à ces défis, l'écosystème Ethereum n'est pas en reste, avec divers projets qui s'engagent à renforcer l'EVM, créant ainsi un camp EVM parallèle.

Sei, dans sa proposition de mise à niveau de la version 2, a déclaré haut et fort qu'elle deviendrait le « premier blockchain EVM parallèle », avec une capitalisation boursière actuelle de 2,1 milliards de dollars et un potentiel de croissance encore plus important. Le nouveau blockchain EVM parallèle Monad, actuellement le plus chaud en matière de ferveur marketing, est très apprécié des investisseurs et possède un potentiel significatif. Pendant ce temps, le blockchain L1 Canto, avec une capitalisation boursière de 170 millions de dollars et sa propre infrastructure publique gratuite, a également annoncé sa proposition de mise à niveau parallèle EVM.

De plus, plusieurs projets L2 au stade initial améliorent les performances inter-écosystèmes en intégrant les capacités de plusieurs chaînes L1. Outre Neon, qui a atteint une valeur marchande circulante de 69 millions de dollars, d'autres projets manquent encore de données pertinentes. Il est prévu que de plus en plus de projets L1 et L2 rejoindront le champ de bataille blockchain parallèle à l'avenir.

Non seulement il existe un potentiel de croissance significatif du marché pour le récit parallèle de l'EVM, mais le secteur plus large des blockchains parallèles auquel l'EVM parallèle appartient également détient un potentiel de croissance de marché substantiel, promettant une perspective de marché étendue.

Actuellement, la capitalisation boursière totale pour la couche 1 et la couche 2 est de 752,123 milliards de dollars, avec des blockchains parallèles ayant une capitalisation boursière de 52,539 milliards de dollars, représentant environ 7%. À l'intérieur, les projets liés au récit EVM parallèle ont une capitalisation boursière de 2,339 milliards de dollars, représentant seulement 4% de la capitalisation boursière de la blockchain parallèle.

1.3 Carte de l'industrie

L'industrie divise généralement les réseaux de blockchain en une structure à quatre couches :

Couche 0 (Réseau) : Il s'agit de la couche de réseau blockchain sous-jacente qui gère les protocoles de communication réseau de base.

Couche 1 (Infrastructure) : Cette couche repose sur divers mécanismes de consensus pour valider les transactions au sein d'un réseau décentralisé.

Couche 2 (Expansion) : Dépendant de la Couche 1, cela implique divers protocoles de deuxième couche visant à résoudre les limitations de la Couche 1, notamment en termes de scalabilité.

Couche 3 (Application): Dépendant de la Couche 2 ou de la Couche 1, cette couche est utilisée pour construire diverses applications décentralisées (dApps).

Les projets narratifs parallèles de la machine virtuelle EVM (Ethereum Virtual Machine) sont principalement divisés en blockchains monolithiques et blockchains modulaires, les blockchains monolithiques étant ensuite divisées en L1 et L2. Du nombre total de projets et du développement de plusieurs grandes pistes, il apparaît que les écosystèmes de chaînes publiques parallèles de la EVM L1 ont encore un potentiel de croissance significatif par rapport à l'écosystème Ethereum.

Dans la catégorie DeFi, il y a une demande de "haute vitesse et de faibles frais", tandis que la catégorie des jeux exige une "forte interaction en temps réel"; les deux nécessitent une certaine vitesse d'exécution. Les EVM parallèles apporteront inévitablement de meilleures expériences utilisateur à ces projets, poussant le développement de l'industrie vers une nouvelle étape.

L1 représente de nouvelles chaînes publiques avec des capacités d'exécution parallèle inhérentes et sert d'infrastructure haute performance. Dans cette faction, des projets tels que Sei v2, Monad et Canto ont conçu indépendamment des EVM parallèles, compatibles avec l'écosystème Ethereum et offrant des capacités de traitement de transactions élevées.

L2, en intégrant les capacités d'autres chaînes L1, offre une capacité étendue de coopération inter-écosystème et est un exemple important de technologie de rollup. Dans cette faction, Neon agit comme un émulateur EVM sur le réseau Solana, tandis qu'Eclipse exécute des transactions sur Solana mais règle sur l'EVM. Lumio est similaire à Eclipse, sauf que la couche d'exécution a été basculée vers Aptos.

Au-delà des solutions de blockchain autonomes susmentionnées, Fuel a introduit son propre concept de blockchain modulaire. Dans sa deuxième version, il vise à se positionner en tant que système d'exploitation rollup Ethereum, offrant des capacités d'exécution modulaire plus flexibles et complètes.

Fuel se concentre sur l'exécution des transactions, tout en externalisant d'autres composants à une ou plusieurs couches indépendantes de la blockchain, permettant ainsi des combinaisons plus flexibles : il peut fonctionner comme une couche 2, une couche 1, voire même comme une sidechain ou un canal d'état. Actuellement, il existe 17 projets au sein de l'écosystème Fuel, se concentrant principalement sur la DeFi, les NFT et l'infrastructure.

Cependant, seul l'oracle Orally cross-chain a été mis en pratique. La plateforme de prêt décentralisée Swaylend et la plateforme de trading de contrats perpétuels SPARK ont été lancées sur des testnets, tandis que d'autres projets sont encore en cours de développement.

2. Voies de mise en œuvre technique

Pour réaliser l'exécution décentralisée des transactions, les réseaux blockchain doivent remplir quatre responsabilités :

  • Exécution : Exécution et validation des transactions.
  • Disponibilité des données: Distribution de nouveaux blocs à tous les nœuds du réseau blockchain.
  • Mécanisme de consensus: Vérification des blocs et atteinte d'un consensus.
  • Règlement : Régler et enregistrer l'état final des transactions.

L'EVM parallèle se concentre principalement sur l'optimisation des performances de la couche d'exécution. Cela se divise en solutions de Couche 1 (L1) et solutions de Couche 2 (L2). Les solutions L1 introduisent un mécanisme pour l'exécution parallèle des transactions, permettant aux transactions d'être exécutées en parallèle au sein de la machine virtuelle autant que possible. Les solutions L2 exploitent fondamentalement la machine virtuelle L1 déjà parallélisée pour atteindre un certain niveau d'« exécution hors chaîne + règlement sur chaîne ».

Par conséquent, pour comprendre les principes techniques de l'EVM parallèle, il est nécessaire de le décomposer : d'abord, comprendre ce qu'est une machine virtuelle (VM), puis comprendre ce que l'exécution parallèle implique.

2.1 Machine virtuelle

En informatique, une machine virtuelle fait référence à la virtualisation ou à l'émulation d'un système informatique.

Il existe deux types de machines virtuelles : les machines virtuelles système, qui peuvent virtualiser une seule machine physique en plusieurs machines exécutant différents systèmes d'exploitation, améliorant ainsi l'utilisation des ressources ; et les machines virtuelles de processus, qui fournissent une abstraction pour certains langages de programmation de haut niveau, permettant aux programmes informatiques écrits dans ces langages de s'exécuter de manière indépendante de la plateforme sur différentes plates-formes.

Le JVM est une machine virtuelle de processus conçue pour le langage de programmation Java. Les programmes écrits en Java sont d'abord compilés en bytecode Java (un état intermédiaire du code binaire), qui est ensuite interprété par le JVM : le JVM envoie le bytecode à un interprète, qui le traduit en code machine pour différentes machines, puis l'exécute sur la machine.

Les machines virtuelles blockchain sont un type de machine virtuelle de processus. Dans le contexte de la blockchain, une machine virtuelle fait référence à la virtualisation d'une machine à états distribuée utilisée pour l'exécution distribuée de contrats, exécutant des dApps. Analogiquement à la JVM, l'EVM est une machine virtuelle de processus conçue pour le langage Solidity, où les contrats intelligents sont d'abord compilés en bytecode d'opcode, puis interprétés par l'EVM.

Les chaînes publiques émergentes au-delà d'Ethereum adoptent souvent des machines virtuelles basées sur le bytecode WASM ou eBPF. WASM est un format de bytecode compact, à chargement rapide, portable basé sur des mécanismes de sécurité sandbox. Les développeurs peuvent écrire des contrats intelligents dans divers langages de programmation (C, C++, Rust, Go, Python, Java, voire TypeScript), les compiler en bytecode WASM et les exécuter. Les contrats intelligents exécutés sur la blockchain Sei utilisent ce format de bytecode.

eBPF a pour origine BPF (Berkeley Packet Filter), initialement utilisé pour un filtrage efficace des paquets réseau, et a évolué en eBPF, offrant un ensemble d'instructions plus riche.

C'est une technologie révolutionnaire qui permet une intervention dynamique et une modification du comportement du noyau du système d'exploitation sans modifier le code source. Plus tard, cette technologie a évolué au-delà du noyau, conduisant au développement du temps d'exécution eBPF dans l'espace utilisateur, qui est très performant, sécurisé et portable. Les smart contracts exécutés sur Solana sont compilés en bytecode eBPF et s'exécutent sur son réseau blockchain.

D'autres chaînes publiques L1 comme Aptos et Sui utilisent le langage de programmation de contrat intelligent Move, compilant en bytecode propriétaire exécuté sur la machine virtuelle Move. Monad a conçu sa propre machine virtuelle compatible avec le bytecode de l'opcode EVM (fork de Shanghai).

2.2 Exécution parallèle

L'exécution parallèle est une technique qui exploite les avantages des processeurs multi-cœurs pour gérer plusieurs tâches simultanément, augmentant ainsi le débit du système. Elle garantit que les résultats des transactions sont identiques à ceux obtenus lorsque les transactions sont exécutées séquentiellement.

Dans les réseaux blockchain, le TPS (Transactions Par Seconde) est couramment utilisé comme indicateur technique pour mesurer la vitesse de traitement. Le mécanisme d'exécution parallèle est complexe et pose un défi aux compétences techniques des développeurs, ce qui rend difficile son explication. Ici, nous utiliserons l'exemple d'une "banque" pour expliquer ce qu'est l'exécution parallèle.

(1) Tout d'abord, qu'est-ce que l'exécution sérielle?

Scénario 1 : Si nous considérons le système comme une banque et le CPU de traitement des tâches comme un guichet, alors l'exécution séquentielle des tâches est semblable à cette banque n'ayant qu'un seul guichet disponible pour le service. Dans ce cas, les clients (tâches) arrivant à la banque doivent former une longue file et traiter leurs affaires un par un. Pour chaque client, le personnel du guichet doit répéter les mêmes actions (exécuter des instructions) pour servir le client. Les clients doivent attendre leur tour, ce qui entraîne des temps de transaction prolongés.

(2) Alors, qu'est-ce que l'exécution parallèle?

Scénario 2 : Si la banque constate qu'elle est bondée, elle pourrait ouvrir plusieurs guichets pour gérer les affaires, avec quatre employés travaillant simultanément aux guichets. Cela augmente la vitesse d'environ quatre fois par rapport à l'original, et le temps que les clients passent en ligne est également réduit à environ un quart de l'original. Ainsi, la vitesse de traitement des affaires à la banque est augmentée.

(3) Quelle erreur se produit s'il n'y a aucune protection en place et que deux personnes transfèrent simultanément de l'argent à une autre personne ?

Scénario 3 : Considérons A, B et C, qui ont respectivement 2 ETH, 1 ETH et 0 ETH sur leurs comptes. Maintenant, A et B souhaitent chacun transférer 0.5 ETH à C. Dans un système qui exécute les transactions séquentiellement, aucun problème ne se produirait (la flèche gauche "<=" indique la lecture du grand livre, et la flèche droite "=>" indique l'écriture dans le grand livre, de même ci-dessous)

Cependant, l'exécution parallèle n'est pas aussi simple qu'il n'y paraît. Il existe de nombreux détails subtils qui peuvent entraîner de graves erreurs si ils ne sont pas gérés avec précaution. Si les transactions de A et B transférant à C sont exécutées en parallèle, la séquence des étapes peut entraîner des résultats incohérents :

La tâche parallèle 1 exécute le transfert de A à C, et la tâche parallèle 2 exécute le transfert de B à C. Les étapes marquées d'un astérisque posent problème : car les tâches sont exécutées en parallèle, à l'étape 2, le calcul de solde effectué par la tâche parallèle 1 n'a pas encore été écrit dans le grand livre. À l'étape 3, la tâche parallèle 2 lit le solde du compte de C (qui est toujours de 0) et effectue un calcul de solde erroné basé sur celui-ci à l'étape 5. Ensuite, dans l'opération de mise à jour du grand livre à l'étape 6, il met à jour incorrectement le solde du compte, qui avait déjà été mis à jour à 0,5 à l'étape 4, à nouveau à 0,5. Cela fait que le solde du compte de C n'est que de 0,5 ETH, bien que A et B aient tous deux transféré 0,5 ETH chacun, entraînant effectivement la disparition des autres 0,5 ETH.

(4) Si aucune protection n'est en place, deux tâches qui ne dépendent pas l'une de l'autre peuvent s'exécuter en parallèle sans erreurs

Scénario 4 : La tâche parallèle 1 exécute un transfert de 0,5 ETH de A (solde 2 ETH) à C (solde 0 ETH), et la tâche parallèle 2 exécute un transfert de 0,5 ETH de B (solde 1 ETH) à D (solde 0 ETH). Il est évident qu'il n'y a pas de dépendance entre ces deux tâches de transfert. Peu importe comment les étapes des deux tâches sont entrelacées, elles ne rencontreront pas les problèmes décrits ci-dessus :

De la comparaison de ces scénarios, on peut analyser que tant qu'il y a une dépendance entre les tâches, des erreurs dans les mises à jour d'état peuvent survenir lors de l'exécution parallèle; sinon, aucune erreur ne se produira. Une tâche (transaction) est considérée comme ayant une relation de dépendance si elle répond à l'une des deux conditions suivantes:

  1. Une tâche écrit à une adresse de sortie qu'une autre tâche lit comme une adresse d'entrée;
  2. Deux tâches en sortie à la même adresse.

Ce problème n'est pas unique aux systèmes décentralisés. Tout scénario impliquant une exécution parallèle peut souffrir d'incohérences de données en raison d'un accès non protégé aux ressources partagées (comme le "registre" dans l'exemple de la banque ou la mémoire partagée dans les systèmes informatiques) entre plusieurs tâches dépendantes, connues sous le nom de courses de données.

L'industrie a proposé trois mécanismes pour résoudre les problèmes de course de données dans l'exécution parallèle : mécanismes de passage de messages, mécanismes de mémoire partagée et mécanismes de liste d'accès à l'état strict.

2.3 Mécanisme de passage de messages

Scénario 5: Considérez une banque avec quatre guichets de service fonctionnant simultanément pour les clients. Chaque guichetier de ces guichets se voit attribuer un grand livre unique, qu'il peut modifier. Ce grand livre enregistre les soldes des comptes des clients qu'ils servent.

Chaque fois qu'un caissier traite une transaction, si les informations du client sont disponibles dans leur grand livre, ils procèdent directement. Sinon, ils appellent d'autres caissiers pour les informer des besoins de transaction du client, et le caissier qui entend prend le relais.

Cela illustre le principe du modèle de passage de message. Le modèle d'acteur est un type de modèle de passage de message, où chaque entité traitant des transactions est un acteur (guichetier), chacun ayant accès à ses données privées (le grand livre exclusif). Accéder aux données privées de quelqu'un d'autre ne peut être réalisé qu'en envoyant des messages.

Avantages du modèle d'acteur :

Chaque acteur n'a accès qu'à ses données privées, évitant ainsi les problèmes de condition de course.

Inconvénients du modèle d'acteur :

Chaque acteur ne peut exécuter que des tâches séquentiellement. Dans certains scénarios, cela n'utilise pas les avantages du parallélisme. Par exemple, si les guichetiers n°2, n°3 et n°4 envoient simultanément des messages pour demander au guichetier n°1 le solde du compte du client A, le guichetier n°1 ne peut traiter ces demandes qu'une par une, même si elles pourraient être gérées en parallèle.

Il n'y a pas de vue globale de l'état actuel du système. Si les opérations du système sont complexes, il devient difficile de comprendre la situation globale, de localiser et de corriger les bogues.

2.4 Mécanisme de mémoire partagée

2.4.1 Modèle de verrouillage de mémoire

Scénario 6 : Imaginez une banque avec un seul grand registre qui enregistre les soldes des comptes de tous ses clients. À côté du registre, il n'y a qu'un seul stylo disponible pour y apporter des modifications.

Dans ce scénario, la compétition entre quatre guichetiers devient une course de vitesse : un guichetier attrape le stylo en premier (le verrouille) et commence à modifier le grand livre, tandis que les trois autres doivent attendre. Une fois que le guichetier a fini et pose le stylo (le déverrouille), les trois guichetiers suivants se précipitent pour attraper le stylo. Ce cycle se répète, illustrant le modèle de verrouillage de mémoire.

Une verrouillage de la mémoire permet aux tâches s'exécutant en parallèle de verrouiller une ressource partagée avant d'y accéder. Après que la ressource est verrouillée, les autres tâches doivent attendre qu'elle ait été modifiée et déverrouillée avant de pouvoir la verrouiller et y accéder à nouveau.

Le modèle de verrou de lecture-écriture offre une approche plus raffinée, permettant à plusieurs tâches parallèles d'ajouter des verrous de lecture à une ressource partagée et d'accéder à ses données plusieurs fois. Pendant cela, les modifications ne sont pas autorisées; cependant, un verrou d'écriture ne peut être appliqué que par un seul à la fois, et une fois appliqué, il accorde un accès exclusif au détenteur de la ressource.

Des plateformes de Blockchain comme Solana, Sui et Sei v1 utilisent un modèle de mémoire partagée basé sur des verrous mémoire. Ce mécanisme peut sembler simple, mais il est complexe à implémenter et nécessite que les développeurs aient des compétences sophistiquées en programmation multithread. L'insouciance peut entraîner divers bugs :

Scénario 1 : Une tâche verrouille une ressource partagée mais plante pendant l'exécution, laissant la ressource inaccessible.

Scénario 2: Une tâche verrouille une ressource mais finit par la verrouiller à nouveau en raison de la logique métier imbriquée, entraînant un deadlock où elle attend sur elle-même.

Le modèle de verrouillage de mémoire est sujet à des problèmes tels que les impasses, les impasses vivantes et la famine :

  1. Une impasse se produit lorsque plusieurs tâches parallèles luttent pour plusieurs ressources partagées, chaque tâche en détenant une partie et attendant que les autres libèrent leurs parties.
  2. L'embouteillage se produit lorsque des tâches parallèles détectent que d'autres tâches sont actives et renoncent volontairement à leur emprise sur les ressources partagées, entraînant un cycle continu de cession.
  3. La famine se produit lorsque les tâches à haute priorité ont systématiquement accès aux ressources partagées, tandis que les tâches à plus faible priorité endurent une attente prolongée.

2.4.2 Optimistic Parallelism

Scenario 7

Dans une banque, quatre guichetiers ont chacun la capacité d'accéder et de modifier indépendamment le registre lors des transactions, indépendamment du fait que d'autres guichetiers utilisent le registre. Lors de l'utilisation du registre, chaque guichetier applique une étiquette personnelle aux entrées auxquelles il accède ou qu'il modifie. Après avoir terminé une transaction, ils examinent à nouveau les entrées; s'ils trouvent une étiquette qui n'est pas la leur, cela indique que l'entrée a été modifiée par un autre guichetier, et la transaction doit être annulée et traitée à nouveau.

Cela illustre le principe de base de l'optimisme parallèle. L'idée principale de l'optimisme parallèle est de supposer initialement que toutes les tâches sont indépendantes. Les tâches sont exécutées en parallèle, puis chaque tâche est validée. Si une tâche échoue à la validation, elle est réexécutée jusqu'à ce que toutes les tâches soient terminées. Supposons qu'il y ait huit tâches parallèles effectuées de manière optimiste, nécessitant l'accès à deux ressources partagées, A et B.

Pendant la phase 1, les tâches 1, 2 et 3 sont exécutées en parallèle. Cependant, les tâches 2 et 3 accèdent simultanément à la ressource partagée B, provoquant un conflit, donc la tâche 3 est reprogrammée pour la phase suivante. En phase 2, les tâches 3 et 4 accèdent toutes les deux à la ressource B, ce qui entraîne le report de la tâche 4, et ainsi de suite, jusqu'à ce que toutes les tâches soient terminées. Comme on peut le voir, les tâches qui rencontrent des conflits sont réexécutées à plusieurs reprises.

Modèle de parallélisme optimiste

Le modèle de parallélisme optimiste utilise une structure de données en mémoire multi-version pour enregistrer chaque valeur écrite et ses informations de version (similaire aux étiquettes utilisées par les caissiers de banque).

L'exécution de chaque tâche parallèle est divisée en deux phases : exécution et validation. Pendant la phase d'exécution, toutes les actions de lecture et d'écriture de données sont enregistrées, formant un ensemble de lecture et un ensemble d'écriture. Pendant la phase de validation, l'ensemble de lecture et l'ensemble d'écriture sont comparés à la structure de données multi-version. Si la comparaison révèle que les données ne sont pas les dernières, la validation échoue.

Le modèle de parallélisme optimiste est issu de la mémoire transactionnelle logicielle (STM), un mécanisme de programmation sans verrouillage dans le domaine des bases de données. Comme les réseaux blockchain maintiennent intrinsèquement un ordre défini des transactions, ce concept a été introduit et évolué en mécanisme de Block-STM. Des plateformes blockchain comme Aptos et Monad ont adopté Block-STM comme mécanisme d'exécution parallèle.

Il convient de mentionner que la chaîne publique Sei, dans sa prochaine version v2, a abandonné le modèle de verrouillage de mémoire d'origine au profit du modèle de parallélisme optimiste. Block-STM exécute des transactions à un rythme extrêmement rapide; dans un environnement de test, Aptos a atteint une vitesse d'exécution de transaction impressionnante de 160 000 transactions par seconde (tps), soit 18 fois plus rapide que le traitement séquentiel des transactions.

Le Bloc-STM délègue l'exécution et la validation complexes des transactions à l'équipe de développement principale, permettant aux développeurs d'écrire des contrats intelligents aussi facilement que s'ils programmaient dans un environnement d'exécution séquentielle.

2.5 Liste d'Accès à l'État Strict

Les mécanismes de passage de messages et de mémoire partagée sont basés sur le modèle de données de compte/solde, qui enregistre les informations de solde de chaque compte sur la blockchain. C'est semblable à la façon dont le grand livre d'une banque montre que le client A a un solde de 1 000 unités et le client B a un solde de 600 unités. Les transactions sont simplement traitées en mettant à jour le statut des soldes des comptes.

Alternativement, on pourrait aussi enregistrer les détails de chaque transaction au moment de la transaction, créant ainsi un registre des transactions. Ce registre peut être utilisé pour calculer les soldes des comptes. Par exemple :

  • Le client A ouvre un compte et dépose 1 000 unités;
  • Le client B ouvre un compte (0 unités);
  • Le client A transfère 100 unités au client B.

En lisant et en calculant le grand livre, il est possible de déterminer que le Client A a un solde de 900 unités et que le Client B a un solde de 100 unités.

UTXO (Unspent Transaction Output) est similaire à ce modèle de données de registre de transactions. Il représente une méthode de notation de la monnaie numérique dans Bitcoin, le blockchain de première génération. Chaque transaction a des entrées (comment les fonds ont été reçus) et des sorties (comment les fonds ont été dépensés), et les UTXO peuvent être simplement compris comme les reçus de fonds qui n'ont pas encore été dépensés.

Par exemple, si le client A a 6 BTC et transfère 5,2 BTC au client B, en laissant 0,8 BTC, d'un point de vue UTXO, cela ressemble à ceci: Les 6 UTXO d'une valeur de 1 BTC chacun sont détruits, et B reçoit un nouveau UTXO d'une valeur de 5,2 BTC, tandis que A reçoit un nouveau UTXO d'une valeur de 0,8 BTC en guise de monnaie. Ainsi, 6 UTXO sont détruits pour créer 2 nouveaux UTXO.

Les entrées et les sorties d'une transaction sont liées et utilisent des signatures numériques pour enregistrer les informations de propriété, formant ainsi le modèle UTXO. Les blockchains qui adoptent ce modèle de données doivent totaliser tous les UTXO pour une adresse de compte particulière afin de déterminer le solde actuel du compte. La liste d'accès à l'état strict (SSAL) est basée sur le modèle UTXO et permet une exécution parallèle. Il précalcule les adresses de compte auxquelles chaque transaction accédera, formant une liste d'accès.

La liste d'accès sert à deux fins :

  1. Évaluation de la sécurité des transactions : Si une transaction accède à une adresse qui ne figure pas sur la liste d'accès, l'exécution échoue.
  2. Exécution parallèle des transactions : Selon la liste d'accès, les transactions sont regroupées en plusieurs ensembles. Comme il n'y a pas de dépendances (pas d'intersections) entre les ensembles sur la liste d'accès, ces ensembles de transactions peuvent être exécutés en parallèle.

3. Les moteurs de croissance de l'industrie

D'un point de vue intrinsèque, le développement de toute chose progresse généralement de l'origine vers le raffinement, et la quête de l'humanité pour la vitesse est éternelle. Pour répondre aux problèmes de vitesse d'exécution dans les réseaux blockchain, une variété de solutions, à la fois on-chain et off-chain, ont émergé. Les solutions off-chain, telles que les rollups, ont été pleinement reconnues pour leur valeur, tandis que le récit des Machines Virtuelles Ethereum (EVM) parallèles offre encore de significatives opportunités d'exploration.

Historiquement, avec l'approbation de la SEC d'un ETF Bitcoin au comptant et l'événement à venir de réduction de moitié de Bitcoin, associé à des éventuelles baisses des taux d'intérêt par la Réserve fédérale, on s'attend à ce que les cryptomonnaies entrent dans un marché haussier significatif. La croissance robuste de l'industrie nécessite des infrastructures de réseau blockchain capables de gérer des débits plus élevés comme base solide.

En termes de gestion des ressources, les réseaux de blockchain traditionnels traitent les transactions séquentiellement, une méthode simple mais inefficace qui gaspille les ressources du processeur. En revanche, les blockchains parallèles utilisent pleinement les ressources informatiques, extrayant considérablement le potentiel de performance des processeurs multicœurs, améliorant ainsi l'efficacité globale des réseaux de blockchain.

En ce qui concerne le développement de l'industrie, bien que diverses innovations technologiques et de modèles commerciaux émergent continuellement, le potentiel de croissance de Web3 reste largement inexploité. Les réseaux centralisés peuvent gérer plus de 50 000 messages par seconde, envoyer 3,4 millions d'e-mails, effectuer 100 000 recherches Google et prendre en charge des dizaines de milliers de joueurs en ligne simultanément, des exploits pas encore réalisables par les réseaux décentralisés. Pour que les systèmes décentralisés puissent rivaliser et se tailler leur propre territoire, une optimisation continue des mécanismes d'exécution parallèle et une amélioration du débit des transactions sont essentielles.

Du point de vue des applications décentralisées, attirer plus d'utilisateurs nécessite des efforts significatifs pour améliorer l'expérience utilisateur. L'optimisation des performances est une direction clé pour améliorer l'expérience utilisateur. Pour les utilisateurs de DeFi, satisfaire les exigences de vitesse de transaction élevée et de faibles frais est crucial. Pour les utilisateurs de GameFi, l'interaction en temps réel est nécessaire. Toutes ces exigences sont soutenues par la robustesse de l'exécution parallèle.

4. Problèmes existants

Le "trilemme de la chaîne de blocs" stipule que la décentralisation, la sécurité et la scalabilité ne peuvent satisfaire que deux des trois attributs simultanément. Comme la "décentralisation" est un pilier immuable, améliorer la "scalabilité" implique une réduction de la "sécurité". Comme le code est écrit par des humains, il est sujet aux erreurs. La complexité technique introduite par le calcul parallèle fournit un terrain propice aux vulnérabilités de sécurité potentielles.

La programmation multithread est particulièrement complexe en raison de deux problèmes principaux : premièrement, elle est sujette aux conditions de course en raison d'une manipulation incorrecte de diverses opérations de contrôle concurrentes complexes ; deuxièmement, elle peut entraîner des plantages en accédant à des adresses mémoire invalides, ce qui pourrait même entraîner des vulnérabilités de débordement de tampon exploitables par des attaquants.

Il existe au moins trois perspectives à partir desquelles évaluer la sécurité d'un projet :

1. Contexte de l'équipe : Les équipes ayant de l'expérience en programmation système sont habituées à la programmation multithread et peuvent résoudre 80% des problèmes complexes. La programmation système implique généralement les domaines suivants :

  • Systèmes d'exploitation
  • Divers pilotes de périphériques
  • Systèmes de fichiers
  • Bases de données
  • Systèmes embarqués
  • Cryptographie
  • Codecs multimédias
  • Gestion de la mémoire
  • Réseau
  • Virtualisation
  • Jeu
  • Langages de programmation avancés

2. Maintenabilité du code: Écrire un code maintenable suit une méthodologie claire, telle que l'existence d'une conception architecturale claire, l'utilisation de motifs de conception pour mettre en œuvre la réutilisabilité du code, l'utilisation de techniques de développement piloté par les tests pour écrire suffisamment de tests unitaires, et l'élimination du code redondant grâce à un refactoring réfléchi.

3. Langage de programmation utilisé : Certains langages de programmation de pointe sont conçus avec un fort accent sur la sécurité de la mémoire et une haute concurrence. Les compilateurs vérifient le code pour détecter les problèmes de concurrence ou les accès potentiels à des adresses mémoire invalides, ce qui entraîne un échec de la compilation s'ils sont détectés, obligeant ainsi les développeurs à écrire un code robuste.

Le langage Rust est exemplaire à cet égard, c'est pourquoi nous constatons que la majorité des projets de blockchain parallèles sont développés en Rust. Certains projets empruntent même la conception de Rust pour implémenter leurs propres langages de smart contract, comme le langage Sway de Fuel.

5. Arrangement cible

5.1 Basé sur le modèle de parallélisation optimiste

5.1.1 Des verrous de mémoire au parallélisme optimiste

Sei est une blockchain publique polyvalente basée sur la technologie open source, créée en 2022. Les fondateurs sont des anciens élèves de l'Université de Californie, Berkeley, et d'autres membres de l'équipe ont également des antécédents dans des universités prestigieuses à l'étranger.

Sei a reçu un financement en trois tours : un tour de table initial de 5 millions de dollars, un premier tour de financement stratégique de 30 millions de dollars, et un deuxième tour de financement stratégique où le montant n'a pas été divulgué. Le réseau Sei a également levé un total de 100 millions de dollars de fonds pour soutenir le développement de son écosystème.

En août 2023, Sei a été lancé sur son mainnet, affirmant être la blockchain publique L1 la plus rapide, capable de traiter 12 500 transactions par seconde, avec une finalité atteinte en seulement 380 ms. Actuellement, elle a une capitalisation boursière d'environ 2,2 milliards de dollars.

Actuellement, l'écosystème Sei comprend 118 projets, se concentrant principalement sur la DeFi, l'infrastructure, les NFT, les jeux et les portefeuilles. La communauté compte actuellement 650 000 membres sur Twitter, 600 000 sur Discord et 40 000 sur Telegram.

À la fin de novembre 2023, Sei a annoncé sur son blog officiel qu'elle lancerait la mise à jour de version la plus importante depuis le lancement du mainnet au premier semestre de 2024 : Sei v2. Sei v2 est présenté comme le premier blockchain EVM parallèle. Cette mise à jour de version introduira les nouvelles fonctionnalités suivantes :

  • Compatibilité ascendante pour les contrats intelligents EVM : les développeurs peuvent migrer et déployer des contrats intelligents EVM sans modifier le code.
  • Réutilisabilité pour des outils/applications communs tels que Metamask.
  • Parallélisation optimiste : Sei v2 abandonnera le mécanisme d'accès partagé des verrous mémoire au profit de la parallélisation optimiste.
  • SeiDB: Optimisation de la couche de stockage.
  • Support pour une interopérabilité transparente entre Ethereum et d'autres chaînes.

À l'origine, l'exécution parallèle des transactions du réseau Sei était basée sur un modèle de verrouillage de mémoire. Avant l'exécution, toutes les dépendances entre les transactions en attente étaient résolues et un DAG était généré, puis, en fonction du DAG, l'ordre d'exécution des transactions était précisément arrangé. Cette méthode a accru la charge mentale des développeurs de contrats car ils devaient incorporer la logique dans le code pendant le développement.

Comme introduit dans la section des principes techniques ci-dessus, avec l'adoption de la parallélisation optimiste dans la nouvelle version, les développeurs peuvent désormais écrire des contrats intelligents comme s'ils écrivaient des programmes exécutés séquentiellement. Des mécanismes complexes tels que la planification, l'exécution et la vérification des transactions sont gérés par les modules sous-jacents. La conception de la proposition d'optimisation de l'équipe principale a également introduit une amélioration supplémentaire des capacités d'exécution parallèle grâce au préremplissage des dépendances.

Plus précisément, cela implique d'introduire un générateur de dépendances dynamique qui analyse les opérations d'écriture des transactions avant l'exécution et les pré-remplit dans une structure de données mémoire multi-version, optimisant ainsi les éventuels conflits de données. Après analyse, l'équipe principale a conclu que, bien qu'un tel mécanisme d'optimisation ne soit pas avantageux dans le meilleur des cas pour le traitement des transactions, il améliore significativement l'efficacité d'exécution dans le pire des cas.

5.1.2 Perturbateur potentiel dans la voie L1 : Monad

Si vous avez manqué le développement des blockchains publiques mentionnées ci-dessus, alors vous ne devriez certainement pas manquer Monad. Il est présenté comme un perturbateur potentiel dans la voie L1.

Monad a été fondé par deux ingénieurs seniors de Jump Crypto en 2022. Le projet a achevé une levée de fonds de démarrage de 19 millions de dollars en février 2023. En mars 2024, Paradigm a mené les négociations pour une levée de fonds de plus de 200 millions de dollars pour Monad. En cas de succès, il s'agirait du plus important financement de cryptomonnaie depuis le début de l'année.

Le projet a déjà atteint l'étape du lancement d'un testnet interne et travaille vers la prochaine étape d'ouverture d'un testnet public.

Monad est très apprécié par le capital pour deux raisons éminentes : l'une est son solide bagage technique, et l'autre est sa compétence dans le battage marketing. L'équipe principale de Monad Labs se compose de 30 membres, tous ayant des décennies d'expérience approfondie dans le trading à haute fréquence, les pilotes de noyau et la technologie financière, ainsi qu'une vaste expérience en développement dans les systèmes distribués.

Les opérations quotidiennes du projet sont également très "ancrées" : s'engager continuellement dans un "marketing magique" avec ses 200 000 abonnés sur Twitter et 150 000 membres sur Discord. Par exemple, organiser des concours hebdomadaires de mèmes, collecter divers emojis ou vidéos d'animaux violets excentriques de la communauté, pour effectuer une "diffusion spirituelle."

La vision de Monad est de devenir une plateforme de contrats intelligents pour les développeurs, apportant des améliorations de performances extrêmes à l'écosystème Ethereum. Monad introduit deux mécanismes à la Machine Virtuelle Ethereum : l'un est le pipeline superscalar, et l'autre est un mécanisme parallèle optimiste amélioré.

Le pipeline superscalaire parallélise la phase d'exécution des transactions. Un exemple illustratif donné dans la documentation officielle est le lavage des vêtements, similaire à la façon dont la blockchain traite les transactions, également réalisées en plusieurs étapes. La méthode traditionnelle traite chaque tas de vêtements sales en passant par le lavage, le séchage, le pliage et le stockage avant de passer au tas suivant.

D'autre part, le pipeline superscalaire commence à laver le deuxième tas de vêtements pendant que le premier tas sèche. Pendant que le premier tas est plié, les deuxième et troisième tas sont respectivement en train de sécher et de laver, maintenant ainsi chaque étape active.

Le mécanisme parallèle optimiste parallélise l'exécution des transactions. Monad utilise le parallélisme optimiste pour l'exécution parallèle. Il a également développé son propre analyseur de code statique pour prédire les dépendances entre les transactions, planifiant les transactions ultérieures uniquement après l'exécution des transactions dépendantes préalables, réduisant ainsi considérablement la ré-exécution des transactions en raison d'échecs de validation.

Actuellement, ses performances atteignent 10 000 TPS et il peut produire des blocs en une seconde. Au fur et à mesure que le projet avance, l'équipe principale continuera à explorer davantage de mécanismes d'optimisation.

5.1.3 Projet L1 Hautement Décentralisé : Canto

Établi en 2022, Canto est un projet L1 hautement décentralisé construit sur le Cosmos SDK. Il fonctionne sans fondation officielle, ne participe pas à des préventes, n'est affilié à aucune organisation, ne cherche pas de financement et est entièrement piloté par la communauté. Même l'équipe principale reste anonyme, travaillant de manière assez organisée.

Bien qu'il s'agisse d'une blockchain générale compatible avec l'EVM, la vision principale de Canto est de devenir une plate-forme de valeur DeFi accessible, transparente, décentralisée et gratuite. À travers des recherches approfondies dans le secteur, il a été constaté que tout écosystème DeFi sain comprend trois éléments fondamentaux :

  1. Les échanges décentralisés (DEX) comme Uniswap et Sushiswap;
  2. Les plateformes de prêt comme Compound et Aave;
  3. Tokens décentralisés comme DAI, USDC, ou USDT.

Cependant, les écosystèmes DeFi traditionnels partagent finalement un destin commun : ils émettent des jetons de protocole de gouvernance, dont la valeur dépend de la quantité de frais d'utilisation que l'écosystème peut extraire de ses futurs utilisateurs - plus il est extrait, plus la valeur est grande. Cela revient à chaque protocole DeFi étant un parking privé qui facture à l'heure - plus il est utilisé, plus sa valorisation est élevée.

Canto adopte une autre approche : Construire une infrastructure publique gratuite pour DeFi (Infrastructure publique gratuite), Vous faire un parking gratuit pour ses projets écologiques.

L'infrastructure se compose de 3 protocoles : l'échange décentralisé Canto DEX, la plateforme de prêt mutualisée Canto Lending Market (CLM) forkée de Compound v2, et la monnaie stable NOTE qui peut être empruntée auprès de CLM grâce à des actifs de garantie.

Canto a adopté une approche novatrice : construire une infrastructure publique gratuite ciblant DeFi, se positionnant comme un parking gratuit disponible pour les projets de son écosystème à utiliser sans frais.

L'infrastructure se compose de trois protocoles : l'échange décentralisé Canto DEX, la plateforme de prêt groupé Canto Lending Market (CLM) forkée à partir de Compound v2, et le stablecoin NOTE, qui peut être emprunté auprès de CLM en utilisant des actifs utilisés en garantie.

Canto DEX fonctionne de manière perpétuelle en tant que protocole non évolutif et sans gouvernance. Il n'émet pas ses jetons et ne facture pas de frais supplémentaires. Cette conception empêche divers comportements de recherche de rente au sein des applications DeFi de l'écosystème, évitant ainsi les jeux à somme nulle prédateurs.

La gouvernance de la plateforme de prêt CLM est contrôlée par les parties prenantes, qui bénéficient pleinement de la croissance de l'écosystème et, à leur tour, créent le meilleur environnement pour les développeurs et les utilisateurs DeFi, les motivant à contribuer continuellement. Les intérêts générés par les prêts émis en NOTE sont versés aux emprunteurs, le protocole ne prenant aucune commission.

Pour les développeurs, Canto a introduit le modèle de revenus sécurisés par contrat, qui alloue un certain pourcentage des frais générés par les interactions on-chain avec les contrats aux développeurs. Cette série d'innovations en matière de modèles commerciaux par Canto, appelée "tuer trois oiseaux d'un coup", favorise un écosystème constructif et prospère en fournissant une infrastructure financière ouverte et gratuite.

Par divers moyens, Canto incite les développeurs et utilisateurs de l'écosystème à rejoindre et enrichir continuellement l'écosystème. En contrôlant étroitement les "droits d'émission", Canto crée des possibilités de liquidité inter-application parmi diverses applications décentralisées. À mesure que l'écosystème prospère, ses jetons augmentent en valeur. Après l'approbation de la proposition CSR par un vote communautaire le 26 janvier 2024, le jeton $CANTO a connu une hausse de prix.

Suite à ces séries d'innovations de modèles commerciaux, le 18 mars 2024, Canto a annoncé sa dernière série d'itérations techniques sur son blog officiel.

En plus d'adopter une nouvelle version du Cosmos SDK et d'intégrer de nouvelles technologies pour réduire les goulots d'étranglement d'accès au stockage, Canto passera également à des EVM parallèles : en introduisant une parallélisation optimiste grâce à la mise en œuvre de Cyclone EVM.

Le SDK Cosmos utilisé par Canto divise le traitement des transactions en trois étapes : Proposition, Vote et Finalisation. Le sous-processus ProcessProposal pendant le Vote est responsable de l'exécution parallèle des transactions. Le moteur d'exécution parallèle gère l'exécution, tandis que le moteur de détection des conflits vérifie la validité des transactions.

Si une transaction est invalide, elle est renvoyée au moteur d'exécution pour être réexécutée ; si elle est valide, elle est consignée dans le flux de traitement ultérieur. On estime que cette série de mises à niveau technologiques rendra les jetons de Canto encore plus attrayants.

5.2 Basé sur des listes d'accès à l'état strictes: Fuel

Fuel, composé de la machine virtuelle FuelVM, du langage de développement de contrats Sway inspiré par Rust, et de sa chaîne d'outils associée, est un "système d'exploitation rollup Ethereum" modulaire sur mesure. Le projet Fuel a été créé en 2019, et en décembre 2020, Fuel Labs a lancé la première couche d'exécution rollup optimiste sur Ethereum, Fuel v1. Après plus de trois ans de développement, le projet est enfin prêt à lancer son mainnet au troisième trimestre de 2024.

Fuel a achevé des tours de financement de 1,5 million de dollars et de 80 millions de dollars en 2021 et 2022, respectivement. L'équipe de base se compose de plus de 60 ingénieurs, le fondateur John Adler étant également co-fondateur de la solution de disponibilité des données Celestia Labs et l'un des premiers défenseurs de l'approche rollup optimiste. En termes d'opérations, le projet compte 270 000 membres sur Twitter et 390 000 sur Discord.

L'exécution des transactions une par une sur la blockchain entraîne des frais de gaz et concurrence pour l'espace de bloc précieux, ce qui est lent. Naturellement, différentes solutions de mise à l'échelle viennent à l'esprit, telles que le traitement par lots des transactions qui sont ensuite regroupées et réglées sur la chaîne pour accélérer l'exécution.

Un rollup est une solution de mise à l'échelle qui fonctionne en dehors de L1, exécutant des transactions par lots hors chaîne, puis envoyant des données de transaction ou des preuves d'exécution à L1. Cela garantit la sécurité grâce à la couche DA et règle les transactions. Il existe deux principaux types de rollups : optimistes et de connaissance nulle (ZK).

Les rollups optimistes supposent que les transactions sont valides et produisent une preuve de fraude pour annuler les transactions malveillantes ou incorrectes sur L1 lorsqu'elles sont détectées. Les rollups ZK génèrent des preuves de validité de transaction grâce à des calculs complexes sans exposer les détails de la transaction, et les publient sur L1 pour démontrer que le rollup a exécuté correctement les transactions. Ainsi, les rollups sont une technologie de couche d'exécution de la blockchain.

Bien que les rollups accélèrent l'exécution des transactions, la plupart des implémentations existantes sont conçues pour des blockchains monolithiques. Les développeurs doivent faire divers compromis techniques, ce qui limite les performances complètes des rollups. Avec la nouvelle tendance vers les blockchains modulaires, il n'y a pas eu de solution de rollup adaptée dans l'industrie. Fuel a été créé pour combler cette lacune.

Fuel utilise le modèle de données UTXO, qui présente l'avantage que ses sorties de transaction n'ont que deux états : soit dépensées, enregistrées de manière permanente dans l'historique des transactions du bloc, soit non dépensées, disponibles pour les transactions futures. Cela réduit au minimum les données d'état stockées sur chaque nœud de la chaîne. Sur cette base, Fuel vérifie les informations de compte auxquelles chaque transaction accède avant l'exécution, identifie les dépendances et planifie l'exécution en parallèle des transactions sans dépendances, améliorant le débit du traitement des transactions.

5.3 Intégration inter-chaînes de L1 avec des solutions L2 : Neno, Eclipse et Lumio

Les solutions de couche 2 partagent une caractéristique commune : elles combinent les capacités de deux types de machines virtuelles pour améliorer la vitesse d'exécution des transactions. Plus précisément, il s'agit d'utiliser des L1 parallèles pour exécuter des transactions tout en maintenant la compatibilité avec d'autres chaînes (prise en charge de la machine virtuelle double). Cependant, les mécanismes de compatibilité adoptés par différents projets varient. À cet égard, Neon, Eclipse et Lumio sont particulièrement représentatifs.

Neon prétend être le premier projet EVM parallèle dans l'écosystème Solana, permettant aux développeurs de migrer sans heurt les projets de l'écosystème Ethereum vers l'écosystème Solana. Eclipse est un autre protocole dans l'écosystème Solana compatible avec EVM, construit avec une architecture modulaire. Parmi ces trois projets, seul Neon a émis son propre jeton, atteignant une valeur marchande en circulation de plus de 78 millions.

Les deux autres projets en sont encore à des stades relativement précoces. Lumio combine Aptos et Ethereum pour créer un protocole rollup L2 optimiste, exécutant efficacement des applications Ethereum à la vitesse du Move VM.

En termes de financement, Neon a terminé la collecte de fonds de 40 millions de dollars en novembre 2021 et de 5 millions de dollars en juin 2023, totalisant 45 millions de dollars. Eclipse a terminé la collecte de fonds de 6 millions de dollars en août 2022, 9 millions de dollars en septembre 2022 et 50 millions de dollars en mars 2024, totalisant 65 millions de dollars. Lumio n'a pas encore levé de fonds.

Aucun des trois projets n'a encore formé un écosystème d'application à grande échelle, mais ils ont des dizaines à des centaines de milliers de followers ou de membres sur les principales plateformes de médias sociaux, ce qui indique une activité communautaire significative.

D'un point de vue mécanique, Neon est un émulateur EVM sur le réseau Solana, fonctionnant comme un contrat intelligent. Les développeurs peuvent utiliser des langages tels que Solidity et Vyper pour écrire des applications dApp, et peuvent utiliser des chaînes d'outils Ethereum et des API RPC Ethereum compatibles, des comptes, des signatures et des normes de jetons, telles que MetaMask, Hardhat et Remix. Pendant ce temps, ils bénéficient des avantages de frais réduits, d'une vitesse d'exécution élevée des transactions et des capacités de traitement parallèle offertes par Solana.

Les transactions Ethereum envoyées depuis le frontend d'application Ethereum sont converties par un proxy en transactions Solana, puis exécutées dans l'émulateur, modifiant l'état de la chaîne. C'est comme les émulateurs de jeux que nous utilisons souvent sur les PC, qui nous permettent de jouer à des jeux exclusifs des consoles comme Switch et PlayStation sur les ordinateurs de bureau. Neon permet aux développeurs Ethereum d'exécuter des applications Ethereum sur le réseau Solana.

Eclipse adopte une approche d'implémentation différente : exécution des transactions via SVM et règlement des transactions via EVM. Eclipse utilise une architecture de blockchain modulaire, où il ne gère que l'exécution des transactions et externalise d'autres responsabilités, formant une solution unifiée grâce à des combinaisons modulaires.

Par exemple, il utilise Celestia pour gérer la disponibilité des données et Ethereum pour exécuter et régler les transactions. Eclipse assure la vitesse d'exécution grâce à SVM et la sécurité grâce à la validation et au règlement d'Ethereum.

Lumio adopte une philosophie de conception indépendante des couches d'exécution et de règlement, prenant en charge diverses machines virtuelles et compatible avec plusieurs réseaux L1/L2 : Ethereum, Aptos, Optimism, Avalanche, zkSync, et d'autres. Il exécute les transactions via Move VM et les règle via EVM, connectant ainsi les écosystèmes Ethereum et Aptos.

Cependant, les ambitions de Lumio ne s'arrêtent pas là. Sa vision est de fournir des appels croisés de machines virtuelles pour atteindre une connectivité de liquidité multi-blockchain à la vitesse la plus élevée et aux tarifs les plus bas.

Ce qui précède sont les principaux projets actuellement liés au récit EVM parallèle, comme le montre le diagramme suivant.

6. Conclusion et perspectives

Les gens comparent souvent le Bitcoin à un 'registre distribué' et l'Ethereum à une 'machine d'état distribuée'. Si nous considérons tous les nœuds opérant un réseau blockchain comme un seul ordinateur, alors les blockchains parallèles étudient fondamentalement comment maximiser l'utilisation des ressources de traitement de ce 'ordinateur' pour atteindre les vitesses d'exécution les plus rapides.

Il s'agit d'une évolution inévitable dans l'histoire de la technologie informatique, similaire au passage des processeurs mono-core aux processeurs multi-core, et aux systèmes d'exploitation évoluant des systèmes mono-utilisateur mono-thread aux systèmes multi-utilisateur multi-threading. Cela a des implications significatives pour le développement continu de l'industrie.

Les principes techniques du EVM parallèle peuvent être décomposés en deux composants : la machine virtuelle et le mécanisme d'exécution parallèle. Dans le contexte de la blockchain, la machine virtuelle intègre un ensemble d'instructions pour exécuter de manière distribuée des contrats et exécuter des dApps. Le mécanisme d'exécution parallèle se concentre principalement sur la maximisation des vitesses d'exécution des transactions tout en garantissant l'exactitude des résultats des transactions.

D'une part, les EVM parallèles partagent des principes techniques communs. Tout d'abord, le modèle de parallélisation optimiste est un consensus pour les blockchains publiques de L1. Cependant, cela ne signifie pas que le modèle de verrouillage de la mémoire est inutile. La supériorité technologique n'existe pas; c'est plutôt le niveau de compétence des développeurs qui varie.

Deuxièmement, des projets comme Fuel croient fermement que les mécanismes de mise à l'échelle hors chaîne ne peuvent atteindre leur performance maximale qu'après la modularisation. Enfin, de nombreux projets L2 cherchent à améliorer le débit des transactions en s'intégrant avec des blockchains publiques parallèles L1, réalisant ainsi des capacités de mise à l'échelle inter-écosystèmes.

D'autre part, les blockchains parallèles ont leurs propres réalisations techniques uniques. Même en adoptant le même modèle d'exécution parallèle, différentes équipes ont mis en œuvre des schémas de conception architecturale, des modèles de données ou des mécanismes de prétraitement variés. L'exploration technologique est sans fin, et différents projets développent des technologies distinctes basées sur des visions différentes pour pousser la pratique à des niveaux plus élevés.

En regardant vers l'avenir, de plus en plus de projets L1 et L2 rejoindront la compétition dans des EVM parallèles. La piste L1 verra une compétition complète entre les EVM parallèles et les camps non-EVM en termes de ressources processeur, ressources de stockage, ressources réseau, ressources système de fichiers et ressources de périphériques. Cette compétition donnera également naissance à de nouveaux récits liés à l'amélioration des performances. Pendant ce temps, la piste L2 évoluera vers des simulateurs de machine virtuelle blockchain ou des blockchains modulaires.

À l'avenir, les optimisations de l'infrastructure apporteront des vitesses plus rapides, des coûts plus bas et une efficacité accrue. Les entrepreneurs Web3 peuvent innover audacieusement les modèles commerciaux pour créer de meilleures expériences de produits décentralisés dans le monde entier, ce qui contribuera davantage à l'épanouissement de l'écosystème industriel. Pour les investisseurs Web3, se concentrer uniquement sur la technologie est insuffisant.

Lors du choix des cibles d'investissement, les investisseurs doivent tenir compte des récits, de la capitalisation boursière et de la liquidité, en choisissant des projets avec de "bons récits," une "faible capitalisation boursière" et une "forte liquidité." Ensuite, ils doivent se plonger dans l'entreprise, les antécédents de l'équipe, le modèle économique, le marketing et les projets écologiques, découvrant ainsi des projets potentiels et trouvant des avenues d'investissement appropriées.

Les EVM parallèles en sont encore aux premiers stades de développement, avec des projets tels que Neon, Monad, Canto, Eclipse, Fuel et Lumio à la phase où leur valeur n'a pas encore été pleinement réalisée. En particulier, Monad, Canto et Fuel.

Du style marketing de Monad, non seulement il est remarquable en soi, mais les projets de mèmes au sein de son écosystème méritent également d'être pris en compte, ce qui pourrait conduire à des histoires d'enrichissement rapide alimentées par l'engouement. Canto répond aux conditions de "bon récit" et "faible valorisation boursière", mais savoir s'il s'agit d'une bonne cible d'investissement nécessite encore un examen approfondi de ses divers indicateurs. Fuel représente une direction populaire dans le développement de blockchains modulaires et pourrait également donner lieu à de nouvelles opportunités d'investissement, toutes ces directions méritent notre attention.

déclaration :

  1. Cet article est reproduit à partir deGryphsis Academy), le titre original est « Ten Thousand Words Interpretation of Parallel EVM : How to Break through the Blockchain Performance Bottleneck ? », le copyright appartient à l’auteur original [@leesper6], si vous avez des objections à la réimpression, veuillez contacterÉquipe Gate Learn, l'équipe le traitera dès que possible selon les procédures pertinentes.

  2. Avis de non-responsabilité : Les points de vue et opinions exprimés dans cet article ne représentent que les points de vue personnels de l'auteur et ne constituent aucun conseil en investissement.

  3. Les autres versions linguistiques de l'article sont traduites par l'équipe Gate Learn et ne sont pas mentionnées dansGateL'article traduit ne peut être reproduit, distribué ou plagié.

Start Now
Sign up and get a
$100
Voucher!