Une des innovations les plus déterminantes de la blockchain Monad est son modèle d'exécution parallèle optimiste. Cette approche repense la façon dont les transactions sont traitées au niveau du protocole, en abordant une limitation clé des blockchains traditionnelles : l'exécution séquentielle. Sur des plateformes comme Ethereum, les transactions sont exécutées une par une, ce qui garantit la cohérence de l'état mais restreint sévèrement le débit et les performances globales.
La machine virtuelle de Monad introduit le parallélisme en supposant que la plupart des transactions au sein d'un bloc sont indépendantes et n'interagissent pas avec les mêmes parties de l'état de la blockchain. Sur la base de cette hypothèse, les transactions sont regroupées et planifiées pour s'exécuter simultanément sur plusieurs threads de traitement. Cela augmente considérablement le débit d'exécution, notamment en cas de charge réseau élevée, en exploitant de manière plus efficace les processeurs multi-cœurs modernes que les modèles séquentiels.
Cependant, la concurrence introduit des risques potentiels de conflit de données, tels que deux transactions tentant de modifier le même compte ou contrat. Monad aborde cela en incorporant un système de détection et de résolution des conflits. Après l'exécution parallèle des transactions, le système vérifie les incohérences. Si des conflits sont détectés, seules les transactions concernées sont réexécutées ou réordonnées en toute sécurité. Cela garantit que la blockchain maintient la correction et les transitions d'état déterministes, tout en bénéficiant de l'efficacité du traitement concurrent.
Ce modèle ressemble au contrôle de concurrence optimiste dans les systèmes de base de données modernes, où la plupart des opérations sont supposées ne pas être en conflit et sont traitées simultanément. Ce n'est que dans des cas exceptionnels que le système intervient. Le résultat est une couche d'exécution évolutive et adaptative adaptée aux applications à volume de transactions élevé et à charges de travail variées.
L'exécution parallèle optimiste est particulièrement avantageuse pour des cas d'utilisation comme DeFi, les jeux et les places de marché NFT, où de nombreux utilisateurs interagissent simultanément mais rarement avec les mêmes données. Monad peut gérer ces opérations en parallèle, réduisant la congestion et améliorant la réactivité des applications décentralisées sans avoir besoin de couches de mise à l'échelle hors chaîne.
Un autre avantage clé est la simplicité pour les développeurs. L'environnement compatible avec l'EVM de Monad permet aux contrats intelligents écrits en Solidity de s'exécuter normalement, sans nécessiter que les développeurs gèrent manuellement la concurrence. Le protocole gère la logique d'exécution en arrière-plan, préservant l'expérience des développeurs tout en améliorant les performances du réseau.
Complétant son modèle d'exécution parallèle, Monad implémente l'exécution asynchrone, une fonction architecturale qui sépare l'exécution des transactions du processus de consensus. Dans les blockchains traditionnelles, le consensus et l'exécution sont étroitement liés : les validateurs doivent exécuter toutes les transactions avant de convenir et de finaliser un bloc. Ce couplage introduit une latence et limite la vitesse à laquelle de nouveaux blocs peuvent être produits.
Monad sépare ces fonctions en finalisant d'abord l'ordre des transactions, grâce au consensus, puis en les exécutant par la suite. Cette conception permet à la couche de consensus d'opérer de manière indépendante et continue, tandis que l'exécution se déroule en parallèle en arrière-plan. Cela augmente l'efficacité des validateurs et réduit le temps de blocage, car les validateurs ne sont plus contraints par le temps nécessaire pour calculer les résultats de chaque transaction.
Le système maintient le déterminisme et la sécurité en veillant à ce que tous les nœuds exécutent exactement les mêmes transactions, dans le même ordre convenu, même si l'exécution elle-même se produit à des moments différents. Cela garantit la cohérence à travers le réseau et empêche la divergence dans l'état de la blockchain.
L'exécution asynchrone complète également le parallélisme optimiste de Monad. Alors que le consensus progresse et que de nouveaux blocs sont finalisés rapidement, l'exécution a lieu simultanément sur plusieurs threads, ne résolvant les conflits que lorsque c'est nécessaire. Cette combinaison parallèle-asynchrone maximise la concurrence du système et l'utilisation des ressources sans compromettre la correction.
Du point de vue de l'utilisateur et du développeur, cette architecture se traduit par une inclusion plus rapide des transactions, des applications plus réactives et une meilleure évolutivité. Les validateurs bénéficient également de la réduction des goulots d'étranglement, ce qui conduit à un réseau plus efficace et décentralisé.
Le consensus dans Monad est atteint grâce à MonadBFT, une adaptation personnalisée du protocole HotStuff Byzantine Fault Tolerant (BFT). Ce mécanisme de consensus est optimisé à la fois pour les performances et la sécurité, soutenant les objectifs de Monad en matière de finalité à faible latence et de débit élevé, tout en restant accessible aux validateurs décentralisés.
HotStuff a été initialement développé pour réduire le nombre de tours de communication nécessaires pour finaliser un bloc. MonadBFT s'appuie sur cela en permettant une finalité en un seul slot, où les blocs sont finalisés en un seul tour de consensus sans attendre de confirmations multiples. Cela offre une finalité de transaction immédiate, améliorant la prévisibilité des applications et réduisant le risque de réorganisation de la chaîne.
MonadBFT utilise un modèle basé sur un leader. À chaque tour, un validateur propose un bloc pendant que les autres le valident et votent pour lui. Si les deux tiers de l'ensemble des validateurs confirment le bloc, il est finalisé. Ce processus simplifié réduit les frais généraux et accélère la production de blocs, notamment dans des conditions de fonctionnement normales.
Pour garantir la vivacité, MonadBFT inclut des stratégies de rotation des leaders et de délai d'attente. Si un leader échoue à proposer un bloc, le prochain validateur prend automatiquement le relais. Cette résilience garantit que la chaîne continue de progresser même si certains validateurs sont hors ligne ou non réactifs.
Du point de vue de la sécurité, MonadBFT adhère au seuil BFT typique, tolérant jusqu'à un tiers des validateurs agissant de manière malveillante sans compromettre la sécurité. Une fois qu'un bloc est finalisé, il est cryptographiquement scellé et ne peut être inversé sans la collusion d'acteurs malhonnêtes contrôlant la majorité du pouvoir de validation.
Le protocole est étroitement intégré au modèle d'exécution asynchrone de Monad. Comme les blocs sont finalisés avant l'exécution, le système peut continuer à progresser sans délai, tandis que la couche d'exécution traite les transactions de manière indépendante. Cette architecture réduit la charge de travail des validateurs et permet au système de maintenir des performances élevées sans dépendre de services de séquençage centralisés ou d'intermédiaires de confiance.
Une exécution efficace et un consensus reposent sur un système de gestion d'état haute performance. Dans Monad, ce rôle est rempli par MonadDB, la couche de stockage d'état personnalisée de la blockchain. MonadDB est responsable du stockage de toutes les données on-chain, y compris les soldes des comptes, le stockage des contrats et d'autres variables d'état persistantes. Il est conçu pour être rapide, concurrent et entièrement compatible avec le moteur d'exécution parallèle de Monad.
MonadDB utilise un magasin de clés-valeurs persistant et versionné, lui permettant de conserver plusieurs instantanés de l'état en même temps. Cela est essentiel pour prendre en charge l'exécution spéculative, où plusieurs transactions sont traitées en parallèle et peuvent être annulées ou ajustées en fonction des conflits. En stockant différentes versions de l'état, MonadDB permet au moteur d'exécution d'isoler et de résoudre efficacement les conflits de données.
Au cœur de MonadDB, on retrouve une structure de données de type arbre de Patricia Merkle - un arbre cryptographiquement sécurisé qui permet une vérification rapide de l'état de la blockchain. Cette structure en trie garantit que tout changement d'état entraîne un nouveau hash racine, qui peut être validé par tous les nœuds. Elle prend en charge la synchronisation sans confiance, les clients légers et la vérification d'état basée sur la preuve, qui sont fondamentaux pour la conception sécurisée et évolutive de la blockchain.
Pour gérer le volume de transactions prévu, MonadDB est conçu pour des lectures et des écritures à faible latence. Il intègre la mise en cache, les contrôles d'accès sûrs pour la concurrence et le stockage sur disque haute vitesse pour garantir une récupération et une modification rapides des entrées d'état. Ces optimisations permettent à la couche d'exécution de fonctionner à haut débit sans être ralentie par les retards d'accès aux données.
Du point de vue du développeur, MonadDB est entièrement abstrait. Les développeurs de contrats intelligents interagissent avec la blockchain à travers des constructions Solidity familières, sans avoir besoin de gérer les mécanismes d'état sous-jacents. MonadDB garantit que l'état est mis à jour et stocké avec précision, même en cas de charge élevée ou lors de l'exécution de contrats complexes.
Une des innovations les plus déterminantes de la blockchain Monad est son modèle d'exécution parallèle optimiste. Cette approche repense la façon dont les transactions sont traitées au niveau du protocole, en abordant une limitation clé des blockchains traditionnelles : l'exécution séquentielle. Sur des plateformes comme Ethereum, les transactions sont exécutées une par une, ce qui garantit la cohérence de l'état mais restreint sévèrement le débit et les performances globales.
La machine virtuelle de Monad introduit le parallélisme en supposant que la plupart des transactions au sein d'un bloc sont indépendantes et n'interagissent pas avec les mêmes parties de l'état de la blockchain. Sur la base de cette hypothèse, les transactions sont regroupées et planifiées pour s'exécuter simultanément sur plusieurs threads de traitement. Cela augmente considérablement le débit d'exécution, notamment en cas de charge réseau élevée, en exploitant de manière plus efficace les processeurs multi-cœurs modernes que les modèles séquentiels.
Cependant, la concurrence introduit des risques potentiels de conflit de données, tels que deux transactions tentant de modifier le même compte ou contrat. Monad aborde cela en incorporant un système de détection et de résolution des conflits. Après l'exécution parallèle des transactions, le système vérifie les incohérences. Si des conflits sont détectés, seules les transactions concernées sont réexécutées ou réordonnées en toute sécurité. Cela garantit que la blockchain maintient la correction et les transitions d'état déterministes, tout en bénéficiant de l'efficacité du traitement concurrent.
Ce modèle ressemble au contrôle de concurrence optimiste dans les systèmes de base de données modernes, où la plupart des opérations sont supposées ne pas être en conflit et sont traitées simultanément. Ce n'est que dans des cas exceptionnels que le système intervient. Le résultat est une couche d'exécution évolutive et adaptative adaptée aux applications à volume de transactions élevé et à charges de travail variées.
L'exécution parallèle optimiste est particulièrement avantageuse pour des cas d'utilisation comme DeFi, les jeux et les places de marché NFT, où de nombreux utilisateurs interagissent simultanément mais rarement avec les mêmes données. Monad peut gérer ces opérations en parallèle, réduisant la congestion et améliorant la réactivité des applications décentralisées sans avoir besoin de couches de mise à l'échelle hors chaîne.
Un autre avantage clé est la simplicité pour les développeurs. L'environnement compatible avec l'EVM de Monad permet aux contrats intelligents écrits en Solidity de s'exécuter normalement, sans nécessiter que les développeurs gèrent manuellement la concurrence. Le protocole gère la logique d'exécution en arrière-plan, préservant l'expérience des développeurs tout en améliorant les performances du réseau.
Complétant son modèle d'exécution parallèle, Monad implémente l'exécution asynchrone, une fonction architecturale qui sépare l'exécution des transactions du processus de consensus. Dans les blockchains traditionnelles, le consensus et l'exécution sont étroitement liés : les validateurs doivent exécuter toutes les transactions avant de convenir et de finaliser un bloc. Ce couplage introduit une latence et limite la vitesse à laquelle de nouveaux blocs peuvent être produits.
Monad sépare ces fonctions en finalisant d'abord l'ordre des transactions, grâce au consensus, puis en les exécutant par la suite. Cette conception permet à la couche de consensus d'opérer de manière indépendante et continue, tandis que l'exécution se déroule en parallèle en arrière-plan. Cela augmente l'efficacité des validateurs et réduit le temps de blocage, car les validateurs ne sont plus contraints par le temps nécessaire pour calculer les résultats de chaque transaction.
Le système maintient le déterminisme et la sécurité en veillant à ce que tous les nœuds exécutent exactement les mêmes transactions, dans le même ordre convenu, même si l'exécution elle-même se produit à des moments différents. Cela garantit la cohérence à travers le réseau et empêche la divergence dans l'état de la blockchain.
L'exécution asynchrone complète également le parallélisme optimiste de Monad. Alors que le consensus progresse et que de nouveaux blocs sont finalisés rapidement, l'exécution a lieu simultanément sur plusieurs threads, ne résolvant les conflits que lorsque c'est nécessaire. Cette combinaison parallèle-asynchrone maximise la concurrence du système et l'utilisation des ressources sans compromettre la correction.
Du point de vue de l'utilisateur et du développeur, cette architecture se traduit par une inclusion plus rapide des transactions, des applications plus réactives et une meilleure évolutivité. Les validateurs bénéficient également de la réduction des goulots d'étranglement, ce qui conduit à un réseau plus efficace et décentralisé.
Le consensus dans Monad est atteint grâce à MonadBFT, une adaptation personnalisée du protocole HotStuff Byzantine Fault Tolerant (BFT). Ce mécanisme de consensus est optimisé à la fois pour les performances et la sécurité, soutenant les objectifs de Monad en matière de finalité à faible latence et de débit élevé, tout en restant accessible aux validateurs décentralisés.
HotStuff a été initialement développé pour réduire le nombre de tours de communication nécessaires pour finaliser un bloc. MonadBFT s'appuie sur cela en permettant une finalité en un seul slot, où les blocs sont finalisés en un seul tour de consensus sans attendre de confirmations multiples. Cela offre une finalité de transaction immédiate, améliorant la prévisibilité des applications et réduisant le risque de réorganisation de la chaîne.
MonadBFT utilise un modèle basé sur un leader. À chaque tour, un validateur propose un bloc pendant que les autres le valident et votent pour lui. Si les deux tiers de l'ensemble des validateurs confirment le bloc, il est finalisé. Ce processus simplifié réduit les frais généraux et accélère la production de blocs, notamment dans des conditions de fonctionnement normales.
Pour garantir la vivacité, MonadBFT inclut des stratégies de rotation des leaders et de délai d'attente. Si un leader échoue à proposer un bloc, le prochain validateur prend automatiquement le relais. Cette résilience garantit que la chaîne continue de progresser même si certains validateurs sont hors ligne ou non réactifs.
Du point de vue de la sécurité, MonadBFT adhère au seuil BFT typique, tolérant jusqu'à un tiers des validateurs agissant de manière malveillante sans compromettre la sécurité. Une fois qu'un bloc est finalisé, il est cryptographiquement scellé et ne peut être inversé sans la collusion d'acteurs malhonnêtes contrôlant la majorité du pouvoir de validation.
Le protocole est étroitement intégré au modèle d'exécution asynchrone de Monad. Comme les blocs sont finalisés avant l'exécution, le système peut continuer à progresser sans délai, tandis que la couche d'exécution traite les transactions de manière indépendante. Cette architecture réduit la charge de travail des validateurs et permet au système de maintenir des performances élevées sans dépendre de services de séquençage centralisés ou d'intermédiaires de confiance.
Une exécution efficace et un consensus reposent sur un système de gestion d'état haute performance. Dans Monad, ce rôle est rempli par MonadDB, la couche de stockage d'état personnalisée de la blockchain. MonadDB est responsable du stockage de toutes les données on-chain, y compris les soldes des comptes, le stockage des contrats et d'autres variables d'état persistantes. Il est conçu pour être rapide, concurrent et entièrement compatible avec le moteur d'exécution parallèle de Monad.
MonadDB utilise un magasin de clés-valeurs persistant et versionné, lui permettant de conserver plusieurs instantanés de l'état en même temps. Cela est essentiel pour prendre en charge l'exécution spéculative, où plusieurs transactions sont traitées en parallèle et peuvent être annulées ou ajustées en fonction des conflits. En stockant différentes versions de l'état, MonadDB permet au moteur d'exécution d'isoler et de résoudre efficacement les conflits de données.
Au cœur de MonadDB, on retrouve une structure de données de type arbre de Patricia Merkle - un arbre cryptographiquement sécurisé qui permet une vérification rapide de l'état de la blockchain. Cette structure en trie garantit que tout changement d'état entraîne un nouveau hash racine, qui peut être validé par tous les nœuds. Elle prend en charge la synchronisation sans confiance, les clients légers et la vérification d'état basée sur la preuve, qui sont fondamentaux pour la conception sécurisée et évolutive de la blockchain.
Pour gérer le volume de transactions prévu, MonadDB est conçu pour des lectures et des écritures à faible latence. Il intègre la mise en cache, les contrôles d'accès sûrs pour la concurrence et le stockage sur disque haute vitesse pour garantir une récupération et une modification rapides des entrées d'état. Ces optimisations permettent à la couche d'exécution de fonctionner à haut débit sans être ralentie par les retards d'accès aux données.
Du point de vue du développeur, MonadDB est entièrement abstrait. Les développeurs de contrats intelligents interagissent avec la blockchain à travers des constructions Solidity familières, sans avoir besoin de gérer les mécanismes d'état sous-jacents. MonadDB garantit que l'état est mis à jour et stocké avec précision, même en cas de charge élevée ou lors de l'exécution de contrats complexes.