Monad : vue d’ensemble des solutions de scaling

solutions de scaling Monad

Monad est un projet de machine virtuelle Ethereum (EVM) parallèle qui a pour objectif de paralléliser l’exécution des instructions EVM afin que le réseau puisse traiter plusieurs milliers transactions en simultané. Cela permet ainsi de traiter un plus grand nombre de transactions, d’augmenter le débit et de réduire les coûts.

La parallélisation consiste à décomposer l’exécution des transactions en tâches plus petites et indépendantes qui peuvent être traitées simultanément. Monad introduit quatre optimisations pour améliorer le consensus, l’exécution et le stockage des données : MonadBFT, l’exécution différée, l’exécution parallèle et MonadDb.

Découvrons plus en détail danbs cet artcile les apports et le fonctionnement des ces quatre solutions de scaling pleines de promesses.

MonadBFT

MonadBFT est un algorithme de tolérance aux pannes Byzantine à deux phases en pipeline, conçu pour améliorer l’évolutivité et l’efficacité de la blockchain. Il s’agit d’un dérivé de l’algorithme HotStuff optimisé pour fonctionner dans des conditions partiellement synchrones.

Cette optimisation est importante, car la plupart des réseaux du monde réel ne présentent pas un comportement parfaitement synchrone en raison des délais variables de livraison des messages dus à la congestion du réseau, à la latence et à d’autres facteurs. En s’adaptant à ces conditions partiellement synchrones, MonadBFT garantit des performances et une fiabilité décentes dans les déploiements pratiques.

L’algorithme HotStuff est un protocole de consensus conçu pour les systèmes de blockchain afin d’atteindre la tolérance aux fautes byzantines (BFT), c’est-à-dire la capacité d’un système informatique à continuer à fonctionner même si certains de ses nœuds agissent de manière malveillante ou sont défectueux.

Cette robustesse est obtenue grâce à une série de cycles de communication entre les nœuds pour s’accorder sur le bloc suivant de la chaîne. HotStuff nécessite trois cycles de communication pour parvenir à un consensus, ce qui peut devenir un goulot d’étranglement pour l’évolutivité et l’efficacité. MonadBFT améliore HotStuff en réduisant les tours de communication nécessaires au consensus de trois à deux.

Exécution différée (Deferred Execution)

L’exécution différée dissocie l’exécution des transactions du consensus. Contrairement aux blockchains traditionnelles telles qu’Ethereum, où les nœuds doivent exécuter les transactions avant d’établir un consensus, le consensus MonadBFT se concentre uniquement sur l’ordre des transactions.

Sur Ethereum, les nœuds doivent parvenir à un consensus à la fois sur la liste des transactions dans le bloc et sur la racine de l’arbre de Merkle pour l’état après l’exécution de la transaction. Cela signifie que le leader du consensus doit exécuter les transactions avant de soumettre le bloc, et que les nœuds de validation doivent tous refaire cette exécution avant de voter.

execution différée
0xbara

Les temps de bloc peuvent donc devenir assez longs, et la complexité des calculs que le réseau peut traiter est réduite. Le mécanisme de consensus de MonadBFT ne détermine que l’ordre des transactions et permet à l’exécution de se produire indépendamment une fois le consensus atteint.

Pour garantir une exécution correcte, Monad retarde de D blocs l’accord sur la racine de Merkle de l’état. D est un paramètre à l’échelle du système qui devrait actuellement être égal à 10.

Exécution parallèle (Parallel Execution)

Monad utilise l’exécution optimiste pour réaliser le traitement parallèle des transactions. Cette méthode est quelque peu analogue à l’exécution spéculative employée par les unités centrales de traitement (CPU), où les processeurs prédisent le chemin des instructions de branchement et les exécutent à l’avance.

Le moteur d’exécution de Monad commence à traiter les nouvelles transactions avant même que l’exécution des transactions précédentes ne soit terminée, ce qui augmente le débit global.

Monad Parallel Execution

Cependant, cette stratégie, appelée contrôle optimiste de la concurrence, peut entraîner des erreurs lorsque les transactions suivantes sont interdépendantes. Si un conflit est détecté (par exemple, lorsque deux transactions tentent de modifier le même solde de compte), les transactions concernées sont réexécutées pour corriger les divergences.

Dans le pire des cas, une transaction doit être exécutée deux fois, mais dans l’ensemble, cela n’ajoute que 1,5 % de frais généraux. Monad utilise également un analyseur de code statique pour prédire à l’avance les dépendances entre les transactions. Cette analyse statique permet à Monad d’identifier les conflits potentiels avant l’exécution et, bien qu’elle n’empêche pas tous les conflits, elle aide à optimiser l’ordonnancement initial des transactions pour une exécution parallèle optimiste plus efficace.

Sei utilise également la parallélisation optimiste, en supposant que les transactions n’entreront pas en conflit, mais il adopte une approche distincte pour gérer les conflits. Au cours du processus de parallélisation, Sei suit les parties de l’état qui sont en conflit avec les transactions.

L’exécution optimiste élimine également le besoin d’algorithmes complexes d’ordonnancement et d’analyse des dépendances, qui sont nécessaires pour les méthodologies déterministes. Dans l’approche déterministe employée par Sui et Solana, les transactions doivent déclarer les parties de l’état auxquelles elles vont accéder avant l’exécution.

Cette déclaration préalable permet au système de programmer les transactions de manière à éviter les conflits pendant l’exécution. Le principal avantage de cette méthode est la prévisibilité : Les dépendances étant connues à l’avance, le système peut s’assurer que les transactions n’interfèrent pas les unes avec les autres, ce qui permet d’obtenir des résultats cohérents et fiables.

Cependant, cette prévisibilité a un coût. L’analyse des dépendances et l’ordonnancement des transactions nécessitent des algorithmes sophistiqués, qui doivent tenir compte de toutes les interactions potentielles entre les transactions et introduire une surcharge de calcul, ce qui se traduit par des exigences matérielles plus élevées.

La nécessité d’une analyse et d’un ordonnancement en temps réel ajoute également à la complexité, car le système doit surveiller et ajuster en permanence l’ordre d’exécution pour éviter les conflits.

En outre, une approche déterministe peut se heurter à des difficultés d’échelonnement efficace. À mesure que le nombre de transactions augmente, la complexité de l’analyse des dépendances croît de manière exponentielle.

MonadDB

MonadDB est une base de données personnalisée conçue spécifiquement pour optimiser la mise en œuvre de l’exécution parallèle. Dans les blockchains traditionnelles telles qu’Ethereum, l’accès aux entrées/sorties (E/S) devient un goulot d’étranglement important, principalement parce que ces systèmes reposent sur des opérations d’E/S synchrones.

Les processus doivent attendre que chaque opération de lecture ou d’écriture soit terminée avant de passer à la suivante, ce qui limite considérablement le débit et les performances globales. Pour surmonter cette limitation, MonadDB utilise des opérations de disque asynchrones, qui permettent au système de lancer simultanément plusieurs opérations de lecture et d’écriture sans attendre la fin de chacune d’entre elles. Cela améliore la vitesse globale du traitement des transactions, en particulier lorsqu’il est combiné à une exécution parallèle.

Pour finir

Monad représente une avancée significative dans la technologie blockchain. Il utilise des techniques innovantes telles que l’exécution optimiste, l’exécution différée et une base de données personnalisée, MonadDB, pour améliorer l’évolutivité et l’efficacité.

Sa méthode de parallélisation optimiste, qui s’apparente à l’exécution spéculative des processeurs, permet un débit élevé en traitant les transactions simultanément et en ne réexécutant les transactions conflictuelles qu’en cas de nécessité.

Combinée à l’analyse statique du code, cette méthode optimise la programmation des transactions et réduit la probabilité de conflits. Comparée à d’autres projets EVM parallèles comme Sei et à des systèmes déterministes comme Sui et Solana, l’approche de Monad équilibre l’efficacité et la complexité, fournissant une solution robuste pour des volumes de transactions élevés.

L’introduction de MonadBFT, un algorithme en pipeline à deux phases tolérant aux fautes de Byzantine, garantit une finalisation rapide des blocs et la sécurité du réseau.

Alors que Monad se prépare à son réseau de test public fin 2024 et au déploiement du réseau principal début 2025, il se positionne comme un acteur redoutable de la prochaine génération de plateformes blockchain évolutives.

Article précédentVitalik Buterin fait un don de 500 000 dollars en memes coins à des œuvres caritatives!
Julien
Passionné par l’univers des cryptos depuis 2015, je passe la plupart de mon temps à suivre les actualités pour vous les retranscrire et en ne conservant que les informations vérifiées et de haute qualité.