Les blockchains sont des machines virtuelles, un modèle informatique basé sur un logiciel qui s'exécute sur un réseau distribué d'ordinateurs physiques auxquels n'importe qui peut se joindre mais qui est extrêmement difficile à contrôler pour une seule entité. Le concept d'une blockchain a été pour la première fois mis par écrit dans le célèbre livre blanc du Bitcoin de Satoshi Nakomoto en 2008, en tant qu'infrastructure de base permettant des paiements pair à pair cryptographiquement sécurisés en Bitcoin. Les transactions sont aux blockchains ce que les journaux sont aux sociétés de médias sociaux et internet ; ils servent de preuves d'activité pour ce réseau particulier, la principale différence étant que les transactions sur une blockchain sont immuables et souvent publiquement observables.
Merci d'avoir lu Shoal Research! Abonnez-vous gratuitement pour recevoir de nouveaux articles et soutenir mon travail.
S'abonner
Mais qu'est-ce qu'une transaction exactement?
Les transactions sur les blockchains impliquent le transfert d'actifs numériques d'une adresse sur le grand livre distribué à une autre, sécurisé par l'utilisation de la cryptographie à clé publique. Les transactions peuvent être utilisées pour des transferts décentralisés de pair à pair, ou pour divers processus d'authentification et de vérification également.
Un exemple de transaction que tout le monde peut observer sur un explorateur de blockchain comme SeiTrace
Lorsqu'une transaction est initiée, c'est-à-dire que Bob envoie des jetons à Alice, la transaction de Bob est diffusée sur le réseau de la blockchain sous-jacente. Par la suite, des clusters de nœuds spécialisés sur le réseau se mettent à vérifier et valider la transaction comme légitime. Une fois que suffisamment de ces nœuds ont vérifié le contenu de la transaction, la transaction est ajoutée à un bloc avec d'autres transactions d'utilisateurs. Une fois qu'un bloc est plein, il est ensuite ajouté à la chaîne, d'où le nom de 'blockchain'. La transaction de Bob fait désormais partie d'un registre sécurisé et transparent, et lui et Alice peuvent tous deux vérifier le contenu.
En termes généraux, toutes les transactions blockchain contiennent des métadonnées qui aident les nœuds opérant et sécurisant le réseau à identifier et exécuter un ensemble donné d'instructions et de paramètres. Chaque transaction aura des données de haut niveau saisies par l'expéditeur d'origine, telles que le montant à transférer, l'adresse de destination et la signature numérique pour confirmer la transaction, ainsi que diverses données de bas niveau créées et attachées automatiquement, bien que ces données varient en fonction du réseau et de la conception.
Finalement, cependant, les processus impliqués en coulisses au niveau du réseau avant l'exécution de la transaction varient en fonction de la conception de la blockchain.
Un pool de mémoire, ou mempool, est une caractéristique commune des conceptions de blockchain, implémentée par des réseaux de blockchain traditionnels tels que Bitcoin et Ethereum. Les mempools ne sont simplement que des zones tampons, ou des 'salles d'attente', pour les transactions en attente qui doivent encore être ajoutées à un bloc et exécutées.
Pour mieux comprendre, nous pouvons exposer le cycle de vie d'une transaction sur une blockchain qui utilise un mempool;
Il est important de noter que certains blockchains, comme Solana, n'utilisent pas de mempool et peuvent plutôt transmettre directement les transactions au producteur de blocs afin de permettre une vitesse et un débit élevés grâce à une production continue de blocs.
Parcourons le cycle de vie d'une transaction sur une blockchain non-mempool :
Les blockchains plus anciennes, à savoir Bitcoin et Ethereum, utilisent un mécanisme d'exécution séquentielle pour les transactions. Chaque transaction ajoutée à la blockchain invoque un changement dans l'état du réseau, et la machine virtuelle est structurée pour ne traiter qu'un changement d'état à la fois à des fins de sécurité.
Cela a entraîné des goulots d'étranglement significatifs pour le débit du réseau sous-jacent, car le nombre de transactions pouvant être ajoutées au bloc est limité, ce qui entraîne des temps d'attente plus longs et des pics sans précédent des coûts de transaction qui peuvent rendre le réseau inutilisable par moments. De plus, les modèles d'exécution séquentielle utilisent les composants matériels de manière plutôt inefficace et ne bénéficient donc pas des avancées en matière de calcul, c'est-à-dire des cœurs de processeur multiples.
L’informatique parallèle est un élément clé de l’architecture informatique dont les origines remontent aussi loin que le fin des années 1950, bien que son idéation et sa théorie remontent même à 1837Par définition, l'informatique parallèle fait référence à l'utilisation simultanée de plusieurs éléments de traitement pour résoudre une opération, dans laquelle une tâche plus grande et plus complexe est divisée en plus petites à compléter de manière plus efficace que de manière sérielle.
À l'origine, uniquement implémenté dans les systèmes informatiques hautes performances, le calcul parallèle a évolué pour devenir le paradigme dominant dans l'architecture informatique d'aujourd'hui, la demande de calcul étant exponentiellement augmentée à l'ère d'Internet, exacerbée par les limitations de l'augmentation de fréquence des décennies précédentes.
Cette norme architecturale s'applique aux blockchains de la même manière, à la seule différence que la tâche principale que les ordinateurs résolvent est le traitement et l'exécution des transactions, ou le transfert de valeur du contrat intelligent A au contrat intelligent B, d'où le terme exécution parallèle.
L'exécution parallèle signifie qu'au lieu de traiter les transactions de manière sérielle, une blockchain peut traiter simultanément plusieurs transactions non conflictuelles. Cela peut considérablement augmenter le débit d'un réseau blockchain, le rendant ainsi plus évolutif et efficace pour gérer des charges d'activité plus élevées et une demande d'espace de blocs.
Pour une analogie plus simple. Pensez à l’efficacité d’une épicerie avec plusieurs files d’attente pour que les clients puissent passer à la caisse. vs un seul pour tout le monde.
L'exécution parallèle dans les blockchains est conçue pour libérer des efficacités en termes de vitesse et de performance d'un réseau, notamment lorsque le réseau voit un trafic plus élevé et une demande de ressources. Dans le contexte des écosystèmes cryptographiques, l'exécution parallèle signifie que si Bob veut émettre la dernière collection populaire de NFT, et qu'Alice veut acheter sa memecoin préférée, le réseau servira les deux utilisateurs sans compromettre la qualité de la performance et donc l'expérience utilisateur.
Bien que cela puisse sembler simplement une fonction intuitive d'amélioration de la qualité de vie, les déblocages des performances du réseau permis par l'exécution parallèle ouvrent la voie au développement de nouveaux et innovants cas d'utilisation et applications qui peuvent tirer parti de faibles latences et de volumes élevés, ce qui pose les bases de l'intégration de la prochaine cohorte massive d'utilisateurs aux écosystèmes cryptographiques.
Bien que la prémisse de l'exécution parallèle soit relativement simple, les nuances dans les conceptions des blockchains sous-jacentes affectent la manière dont le processus d'exécution parallèle se déroule. La caractéristique la plus pertinente pour la conception de blockchains avec exécution parallèle est la capacité des transactions à accéder à l'état de son réseau sous-jacent, y compris les soldes des comptes, le stockage et les contrats intelligents.
L'exécution en parallèle sur les blockchains peut être catégorisée comme déterministe ou optimiste. L'exécution parallèle déterministe, utilisée par des blockchains comme Solana, nécessite intrinsèquement que les transactions déclarent toutes les dépendances mémoire à l'avance, c'est-à-dire quelles parties de l'état global elles souhaitent accéder à l'avance. Bien que cette étape crée une surcharge supplémentaire pour les développeurs, de manière plus générale, elle permet au réseau de trier et d'identifier les transactions non conflictuelles avant l'exécution, créant un système optimisé, prévisible et efficace. En revanche, l'exécution parallèle optimiste est structurée pour traiter toutes les transactions en parallèle, en opérant sous l'hypothèse inhérente qu'il n'y a pas de conflits. Cela permet à la blockchain sous-jacente d'exécuter les transactions plus rapidement, bien que cela entraîne une ré-exécution potentielle par la suite en cas de conflit. Si deux transactions conflictuelles sont soumises, le système peut alors les retraiter et les ré-exécuter soit en parallèle soit séquentiellement.
Afin de mieux comprendre les implications de ces subtilités de conception, il peut être utile d'analyser l'exécution parallèle à travers le prisme des équipes qui poussent aujourd'hui la frontière de l'exécution parallèle.
Afin de mieux comprendre les implications de ces subtilités de conception, il peut être utile d'analyser l'exécution parallèle à travers le prisme des équipes repoussant les limites de l'exécution parallèle aujourd'hui.
Solana a été le premier réseau blockchain à être conçu autour d'une exécution parallèle, inspiré par l'expérience précédente du fondateur Anatoly Yakovenko dans l'industrie des télécommunications. Solana vise à fournir une plateforme de développement qui fonctionne aussi rapidement que la physique le permet, c'est pourquoi la vitesse et l'efficacité débloquées par l'informatique parallèle étaient un choix de conception simple et intuitif.
Dans les environnements SM, Sealevel utilise une architecture multi-threaded, ce qui signifie qu'il peut traiter plusieurs transactions simultanément jusqu'à la capacité du cœur du validateur.
La clé de l'activation de l'exécution parallèle de Solana est que lorsque une transaction est activée, le réseau attribuera une liste d'instructions pour que cette transaction soit exécutée, en précisant quels comptes et états à accéder et quels changements à apporter - c'est la clé pour déterminer quelles transactions ne sont pas en conflit et peuvent s'exécuter simultanément, ainsi que pour permettre aux transactions qui tentent d'accéder au même état de le faire simultanément.
Considérez l'efficacité que les étiquettes apportent aux systèmes de bagages enregistrés dans les aéroports.
Solana utilise également Cloudbreak, son propre accountsDB personnalisé, pour stocker et gérer les données d'état afin de permettre des lectures et écritures concurrentes de transactions. Cloudbreak, optimisé pour l'exécution parallèle, s'étend horizontalement pour distribuer et gérer les données d'état sur plusieurs nœuds.
Grâce à son architecture parallèle, Solana peut gérer un grand nombre de transactions et exécuter rapidement, offrant ainsi une finalité quasi-instantanée des transactions. Solana traite en moyenne entre 2 000 et 10 000 transactions par seconde (TPS) aujourd'hui. De plus, les cas d'utilisation pour le SVM s'étendent lentement mais sûrement, car des équipes comme Eclipse déploient une infrastructure de couche 2 visant à tirer parti du SVM en tant qu'environnement d'exécution.
Le Parallel EVM décrit un nouvel environnement d'exécution pour les blockchains qui vise à apporter le meilleur des deux mondes des conceptions de Solana et d'Ethereum, avec la vitesse et les performances de Solana, et la sécurité et la liquidité d'Ethereum. En traitant les transactions en parallèle plutôt que séquentiellement comme le prévoit la conception traditionnelle de l'EVM, les EVM parallèles permettent aux développeurs de créer des applications sur un réseau très performant tout en pouvant tirer parti des connexions à la liquidité EVM et des outils de développement.
Sei Network est une blockchain de couche 1 open source compatible avec l'EVM qui héberge une variété d'applications décentralisées construites autour de hautes performances. Sei a été construit autour de la livraison de vitesses rapides à faible coût pour les utilisateurs et les développeurs, et l'exécution parallèle est un élément clé permettant cette performance et cette UX. Actuellement, Sei offre des temps de confirmation de bloc de 390ms et a traité plus de 1,9 milliard de transactions sur son mainnet pacifique.
À l'origine, Sei utilisait un modèle d'exécution parallèle déterministe, dans lequel les contrats intelligents déclarent à l'avance leur accès à l'état requis afin que le système puisse exécuter simultanément des transactions non conflictuelles. Avec le lancement de leur mise à niveau V2, Sei passe plutôt à un modèle parallèle optimiste, ce qui signifie que toutes les transactions seront traitées en parallèle dès leur soumission au réseau (étape d'exécution), puis seront examinées pour des informations conflictuelles avec les transactions précédentes (étape de validation). En cas de deux transactions ou plus en conflit, c'est-à-dire de transactions tentant d'accéder au même état du réseau, Sei identifie ce point de conflit, puis réexécute les transactions soit en parallèle, soit séquentiellement en fonction de la nature du conflit.
Afin de stocker et de maintenir les données de transaction, Sei introduira également SeiDB, une base de données personnalisée qui vise à améliorer les lacunes de la v1 en optimisant l'exécution parallèle. SeiDB vise à réduire les frais généraux liés au stockage de données redondantes et à maintenir une utilisation efficace du disque pour une meilleure performance du réseau. La V2 réduit la quantité de métadonnées nécessaires à des fins de suivi et de stockage, et permet un journal des transactions en amont pour aider à la récupération des données en cas de panne.
Enfin, Sei a également récemment annoncé le lancement de son Parallel Stack, un framework open-source permettant aux solutions de mise à l'échelle de la couche 2, c'est-à-dire les rollups, d'utiliser et de bénéficier de l'exécution parallèle.
Monad est une blockchain de couche 1 parallèle à venir qui apporte une compatibilité complète en bytecode et RPC pour les applications et l'infrastructure Ethereum. Grâce à un certain nombre de mises en œuvre techniques innovantes, Monad vise à offrir des expériences plus interactives que les blockchains existantes tout en maintenant des coûts de transaction plus faibles en optimisant les performances et la portabilité, avec des délais de bloc de 1 seconde et une finalité avec jusqu'à 10 000 TPS.
Monad implémente l'exécution parallèle et le pipeline superscalaire pour optimiser la vitesse et le débit des transactions. Tout comme Sei v2, Monad utilisera un modèle d'exécution optimiste, ce qui signifie que le réseau commence à exécuter toutes les transactions entrantes simultanément, puis analyse et valide les transactions pour rechercher des conflits et les réexécute en conséquence, le but final étant que le résultat serait identique si les transactions avaient été exécutées séquentiellement.
Il est important de noter que pour maintenir la synchronicité avec Ethereum, Monad ordonne les transactions dans un bloc dans un ordre linéaire, chaque transaction étant mise à jour séquentiellement.
Afin de maintenir et d'accéder aux données de la blockchain de manière plus efficace que l'état actuel des clients Ethereum ne le propose, Monad a créé son propre MonadDB personnalisé, construit nativement pour les blockchains. MonadDB tire parti des fonctionnalités avancées du noyau Linux pour des opérations de disque asynchrones efficaces, éliminant les contraintes d'accès d'entrée/sortie synchrones. MonadDB offre un accès asynchrone d'entrée/sortie (E/S asynchrones), une fonctionnalité clé permettant une exécution parallèle, le système pouvant ainsi commencer le traitement de la transaction suivante tout en attendant de lire l'état d'une transaction précédente.
Pour une analogie simple, considérez la préparation d'un repas multifacette (spaghetti aux boulettes de viande). Les étapes impliquées sont 1) la préparation d'une sauce, 2) la cuisson des boulettes de viande, et c) la cuisson des pâtes. Un chef efficace commencerait par faire bouillir de l'eau pour les pâtes, puis préparer les ingrédients pour la sauce, puis jeter les pâtes dans l'eau qui bout maintenant, puis cuire la sauce, et enfin les boulettes de viande, au lieu de faire chaque étape une par une, en terminant une tâche dans son intégralité avant de passer à la suivante.
Move est un langage de programmation développé à l'origine par l'équipe de Facebook en 2019 pour son projet désormais abandonné, Diem. Move a été conçu pour gérer de manière sécurisée les contrats intelligents et les données de transaction, éliminant les vecteurs d'attaque propres à d'autres langages tels que les attaques de réentrance.
Le MoveVM sert d'environnement d'exécution natif pour les blockchains basées sur Move, tirant parti de la parallélisation pour offrir des vitesses d'exécution de transaction plus rapides et une efficacité globale accrue.
Aptos est un blockchain de couche 1 basé sur Move développé par des membres de l'ancien projet Diem, qui met en œuvre une exécution parallèle pour offrir un environnement hautes performances aux développeurs d'applications. Aptos utilise Block-STM, une implémentation modifiée du mécanisme de contrôle de la concurrence de la mémoire transactionnelle logicielle (STM).
Block-STM est un moteur d'exécution parallèle multi-threadé qui permet une exécution parallèle optimiste. Les transactions sont pré-ordonnées et séquencées de manière stratégique à l'intérieur des blocs, ce qui est essentiel pour résoudre efficacement les conflits et ré-exécuter ces transactions. Les recherches menées par Aptos ont montré que jusqu'à 160K TPS peuvent être théoriquement pris en charge en utilisant la parallélisation de Block-STM.
Similaire à Aptos, Sui est un blockchain de couche 1 développé par d'anciens membres du projet Diem, qui utilise le langage Move. Cependant, Sui utilise une implémentation personnalisée de Move qui modifie le modèle de stockage et les autorisations d'actifs du design original de Diem. En particulier, cela permet à Sui d'utiliser un modèle de stockage d'état pour représenter des transactions indépendantes en tant qu'objets. Chaque objet a un identifiant unique dans l'environnement d'exécution de Sui, ce qui permet au système d'identifier facilement les transactions non conflictuelles et de les traiter en parallèle.
Similaire à Solana, Sui implémente une exécution parallèle déterministe, ce qui nécessite que les transactions indiquent à l'avance les comptes auxquels elles doivent accéder.
Qu'est-ce que le Mouvement?
Movement construit une suite d'outils de développement et de services d'infrastructure blockchain pour permettre aux développeurs d'accéder facilement aux avantages de la construction sur Move. En opérant en tant que fournisseur de services d'exécution en tant que service de type AWS pour les développeurs de Move, Movement implémente la parallélisation en tant que fonctionnalité de conception centrale pour permettre un débit plus élevé et une efficacité réseau globale accrue. Le MoveVM est un environnement d'exécution modulaire qui permet aux réseaux blockchain d'étendre et d'ajuster leurs capacités de traitement des transactions selon les besoins pour pouvoir prendre en charge un volume croissant de transactions, renforçant leurs capacités à traiter et exécuter des transactions en parallèle.
Architecture MoveVM
Le mouvement lancera également M2, un ZK-rollup qui sera interopérable avec les clients EVM et Move. M2 héritera du moteur de parallélisation Block-STM et devrait fournir des dizaines de milliers de TPS en conséquence.
Quelques questions importantes et considérations à méditer concernant le développement de blocs parallèles;
À un niveau élevé, les blockchains parallèles sont confrontées au risque d'incohérences de registre, c'est-à-dire de doubles dépenses et de changements dans l'ordre des transactions (en effet, c'est le principal avantage de l'exécution séquentielle). La parallélisation déterministe aborde ce problème en créant un système d'étiquetage interne pour les transactions sur la blockchain sous-jacente. Les blockchains mettant en œuvre un traitement optimiste doivent s'assurer que les mécanismes qu'elles utilisent pour valider et réexécuter les transactions sont sécurisés et fonctionnels, et les compromis réalisés en termes de performances peuvent être raisonnablement implémentés.
L'histoire des ordinateurs nous a appris que les systèmes parallèles ont tendance à être plus efficaces et évolutifs au fil du temps que les systèmes séquentiels. L'essor des blockchains parallèles post-Solana souligne que cette notion s'applique également à l'infrastructure crypto. Même Vitalik y a fait allusion parallélisationcomme l'une des solutions clés potentielles pour améliorer récemment la scalabilité des rollups EVM. En termes généraux, la croissance de l'adoption de la crypto/blockchain nécessite des systèmes plus optimaux que ce qui est disponible aujourd'hui, y compris des blockchains parallèles. Les récents problèmes du réseau Solana ont souligné qu'il y a encore beaucoup de place pour l'amélioration dans le développement de blockchains parallèles. À mesure que de plus en plus d'équipes cherchent à repousser les limites de la frontière onchain et à embarquer la prochaine cohorte de masse d'utilisateurs et d'adoption vers des applications et écosystèmes natifs de la blockchain, les modèles d'exécution parallèle fournissent un cadre intuitif pour la construction de systèmes capables de gérer efficacement des magnitudes d'activité réseau à une échelle qui correspond à celle des entreprises Web2 avec facilité.
Pas de conseils financiers ou fiscaux. Le but de cette newsletter est purement éducatif et ne doit pas être considéré comme un conseil en investissement, un conseil juridique, une demande d'achat ou de vente d'actifs, ou une suggestion pour prendre des décisions financières. Ce n'est pas un substitut à un conseil fiscal. Veuillez consulter votre comptable et mener vos propres recherches.
Divulgations. Tous les messages sont la propre opinion des auteurs, et non celle de leur employeur. Ce message a été sponsorisé par la Fondation Aster. Bien que Shoal Research ait reçu un financement pour cette initiative, les sponsors n'influencent pas le contenu analytique. Chez Shoal Research, nous visons à garantir que tout le contenu soit objectif et indépendant. Nos processus de révision interne respectent les normes d'intégrité les plus élevées, et tous les conflits d'intérêts potentiels sont divulgués et gérés de manière rigoureuse pour maintenir la crédibilité et l'impartialité de nos recherches.
Пригласить больше голосов
Les blockchains sont des machines virtuelles, un modèle informatique basé sur un logiciel qui s'exécute sur un réseau distribué d'ordinateurs physiques auxquels n'importe qui peut se joindre mais qui est extrêmement difficile à contrôler pour une seule entité. Le concept d'une blockchain a été pour la première fois mis par écrit dans le célèbre livre blanc du Bitcoin de Satoshi Nakomoto en 2008, en tant qu'infrastructure de base permettant des paiements pair à pair cryptographiquement sécurisés en Bitcoin. Les transactions sont aux blockchains ce que les journaux sont aux sociétés de médias sociaux et internet ; ils servent de preuves d'activité pour ce réseau particulier, la principale différence étant que les transactions sur une blockchain sont immuables et souvent publiquement observables.
Merci d'avoir lu Shoal Research! Abonnez-vous gratuitement pour recevoir de nouveaux articles et soutenir mon travail.
S'abonner
Mais qu'est-ce qu'une transaction exactement?
Les transactions sur les blockchains impliquent le transfert d'actifs numériques d'une adresse sur le grand livre distribué à une autre, sécurisé par l'utilisation de la cryptographie à clé publique. Les transactions peuvent être utilisées pour des transferts décentralisés de pair à pair, ou pour divers processus d'authentification et de vérification également.
Un exemple de transaction que tout le monde peut observer sur un explorateur de blockchain comme SeiTrace
Lorsqu'une transaction est initiée, c'est-à-dire que Bob envoie des jetons à Alice, la transaction de Bob est diffusée sur le réseau de la blockchain sous-jacente. Par la suite, des clusters de nœuds spécialisés sur le réseau se mettent à vérifier et valider la transaction comme légitime. Une fois que suffisamment de ces nœuds ont vérifié le contenu de la transaction, la transaction est ajoutée à un bloc avec d'autres transactions d'utilisateurs. Une fois qu'un bloc est plein, il est ensuite ajouté à la chaîne, d'où le nom de 'blockchain'. La transaction de Bob fait désormais partie d'un registre sécurisé et transparent, et lui et Alice peuvent tous deux vérifier le contenu.
En termes généraux, toutes les transactions blockchain contiennent des métadonnées qui aident les nœuds opérant et sécurisant le réseau à identifier et exécuter un ensemble donné d'instructions et de paramètres. Chaque transaction aura des données de haut niveau saisies par l'expéditeur d'origine, telles que le montant à transférer, l'adresse de destination et la signature numérique pour confirmer la transaction, ainsi que diverses données de bas niveau créées et attachées automatiquement, bien que ces données varient en fonction du réseau et de la conception.
Finalement, cependant, les processus impliqués en coulisses au niveau du réseau avant l'exécution de la transaction varient en fonction de la conception de la blockchain.
Un pool de mémoire, ou mempool, est une caractéristique commune des conceptions de blockchain, implémentée par des réseaux de blockchain traditionnels tels que Bitcoin et Ethereum. Les mempools ne sont simplement que des zones tampons, ou des 'salles d'attente', pour les transactions en attente qui doivent encore être ajoutées à un bloc et exécutées.
Pour mieux comprendre, nous pouvons exposer le cycle de vie d'une transaction sur une blockchain qui utilise un mempool;
Il est important de noter que certains blockchains, comme Solana, n'utilisent pas de mempool et peuvent plutôt transmettre directement les transactions au producteur de blocs afin de permettre une vitesse et un débit élevés grâce à une production continue de blocs.
Parcourons le cycle de vie d'une transaction sur une blockchain non-mempool :
Les blockchains plus anciennes, à savoir Bitcoin et Ethereum, utilisent un mécanisme d'exécution séquentielle pour les transactions. Chaque transaction ajoutée à la blockchain invoque un changement dans l'état du réseau, et la machine virtuelle est structurée pour ne traiter qu'un changement d'état à la fois à des fins de sécurité.
Cela a entraîné des goulots d'étranglement significatifs pour le débit du réseau sous-jacent, car le nombre de transactions pouvant être ajoutées au bloc est limité, ce qui entraîne des temps d'attente plus longs et des pics sans précédent des coûts de transaction qui peuvent rendre le réseau inutilisable par moments. De plus, les modèles d'exécution séquentielle utilisent les composants matériels de manière plutôt inefficace et ne bénéficient donc pas des avancées en matière de calcul, c'est-à-dire des cœurs de processeur multiples.
L’informatique parallèle est un élément clé de l’architecture informatique dont les origines remontent aussi loin que le fin des années 1950, bien que son idéation et sa théorie remontent même à 1837Par définition, l'informatique parallèle fait référence à l'utilisation simultanée de plusieurs éléments de traitement pour résoudre une opération, dans laquelle une tâche plus grande et plus complexe est divisée en plus petites à compléter de manière plus efficace que de manière sérielle.
À l'origine, uniquement implémenté dans les systèmes informatiques hautes performances, le calcul parallèle a évolué pour devenir le paradigme dominant dans l'architecture informatique d'aujourd'hui, la demande de calcul étant exponentiellement augmentée à l'ère d'Internet, exacerbée par les limitations de l'augmentation de fréquence des décennies précédentes.
Cette norme architecturale s'applique aux blockchains de la même manière, à la seule différence que la tâche principale que les ordinateurs résolvent est le traitement et l'exécution des transactions, ou le transfert de valeur du contrat intelligent A au contrat intelligent B, d'où le terme exécution parallèle.
L'exécution parallèle signifie qu'au lieu de traiter les transactions de manière sérielle, une blockchain peut traiter simultanément plusieurs transactions non conflictuelles. Cela peut considérablement augmenter le débit d'un réseau blockchain, le rendant ainsi plus évolutif et efficace pour gérer des charges d'activité plus élevées et une demande d'espace de blocs.
Pour une analogie plus simple. Pensez à l’efficacité d’une épicerie avec plusieurs files d’attente pour que les clients puissent passer à la caisse. vs un seul pour tout le monde.
L'exécution parallèle dans les blockchains est conçue pour libérer des efficacités en termes de vitesse et de performance d'un réseau, notamment lorsque le réseau voit un trafic plus élevé et une demande de ressources. Dans le contexte des écosystèmes cryptographiques, l'exécution parallèle signifie que si Bob veut émettre la dernière collection populaire de NFT, et qu'Alice veut acheter sa memecoin préférée, le réseau servira les deux utilisateurs sans compromettre la qualité de la performance et donc l'expérience utilisateur.
Bien que cela puisse sembler simplement une fonction intuitive d'amélioration de la qualité de vie, les déblocages des performances du réseau permis par l'exécution parallèle ouvrent la voie au développement de nouveaux et innovants cas d'utilisation et applications qui peuvent tirer parti de faibles latences et de volumes élevés, ce qui pose les bases de l'intégration de la prochaine cohorte massive d'utilisateurs aux écosystèmes cryptographiques.
Bien que la prémisse de l'exécution parallèle soit relativement simple, les nuances dans les conceptions des blockchains sous-jacentes affectent la manière dont le processus d'exécution parallèle se déroule. La caractéristique la plus pertinente pour la conception de blockchains avec exécution parallèle est la capacité des transactions à accéder à l'état de son réseau sous-jacent, y compris les soldes des comptes, le stockage et les contrats intelligents.
L'exécution en parallèle sur les blockchains peut être catégorisée comme déterministe ou optimiste. L'exécution parallèle déterministe, utilisée par des blockchains comme Solana, nécessite intrinsèquement que les transactions déclarent toutes les dépendances mémoire à l'avance, c'est-à-dire quelles parties de l'état global elles souhaitent accéder à l'avance. Bien que cette étape crée une surcharge supplémentaire pour les développeurs, de manière plus générale, elle permet au réseau de trier et d'identifier les transactions non conflictuelles avant l'exécution, créant un système optimisé, prévisible et efficace. En revanche, l'exécution parallèle optimiste est structurée pour traiter toutes les transactions en parallèle, en opérant sous l'hypothèse inhérente qu'il n'y a pas de conflits. Cela permet à la blockchain sous-jacente d'exécuter les transactions plus rapidement, bien que cela entraîne une ré-exécution potentielle par la suite en cas de conflit. Si deux transactions conflictuelles sont soumises, le système peut alors les retraiter et les ré-exécuter soit en parallèle soit séquentiellement.
Afin de mieux comprendre les implications de ces subtilités de conception, il peut être utile d'analyser l'exécution parallèle à travers le prisme des équipes qui poussent aujourd'hui la frontière de l'exécution parallèle.
Afin de mieux comprendre les implications de ces subtilités de conception, il peut être utile d'analyser l'exécution parallèle à travers le prisme des équipes repoussant les limites de l'exécution parallèle aujourd'hui.
Solana a été le premier réseau blockchain à être conçu autour d'une exécution parallèle, inspiré par l'expérience précédente du fondateur Anatoly Yakovenko dans l'industrie des télécommunications. Solana vise à fournir une plateforme de développement qui fonctionne aussi rapidement que la physique le permet, c'est pourquoi la vitesse et l'efficacité débloquées par l'informatique parallèle étaient un choix de conception simple et intuitif.
Dans les environnements SM, Sealevel utilise une architecture multi-threaded, ce qui signifie qu'il peut traiter plusieurs transactions simultanément jusqu'à la capacité du cœur du validateur.
La clé de l'activation de l'exécution parallèle de Solana est que lorsque une transaction est activée, le réseau attribuera une liste d'instructions pour que cette transaction soit exécutée, en précisant quels comptes et états à accéder et quels changements à apporter - c'est la clé pour déterminer quelles transactions ne sont pas en conflit et peuvent s'exécuter simultanément, ainsi que pour permettre aux transactions qui tentent d'accéder au même état de le faire simultanément.
Considérez l'efficacité que les étiquettes apportent aux systèmes de bagages enregistrés dans les aéroports.
Solana utilise également Cloudbreak, son propre accountsDB personnalisé, pour stocker et gérer les données d'état afin de permettre des lectures et écritures concurrentes de transactions. Cloudbreak, optimisé pour l'exécution parallèle, s'étend horizontalement pour distribuer et gérer les données d'état sur plusieurs nœuds.
Grâce à son architecture parallèle, Solana peut gérer un grand nombre de transactions et exécuter rapidement, offrant ainsi une finalité quasi-instantanée des transactions. Solana traite en moyenne entre 2 000 et 10 000 transactions par seconde (TPS) aujourd'hui. De plus, les cas d'utilisation pour le SVM s'étendent lentement mais sûrement, car des équipes comme Eclipse déploient une infrastructure de couche 2 visant à tirer parti du SVM en tant qu'environnement d'exécution.
Le Parallel EVM décrit un nouvel environnement d'exécution pour les blockchains qui vise à apporter le meilleur des deux mondes des conceptions de Solana et d'Ethereum, avec la vitesse et les performances de Solana, et la sécurité et la liquidité d'Ethereum. En traitant les transactions en parallèle plutôt que séquentiellement comme le prévoit la conception traditionnelle de l'EVM, les EVM parallèles permettent aux développeurs de créer des applications sur un réseau très performant tout en pouvant tirer parti des connexions à la liquidité EVM et des outils de développement.
Sei Network est une blockchain de couche 1 open source compatible avec l'EVM qui héberge une variété d'applications décentralisées construites autour de hautes performances. Sei a été construit autour de la livraison de vitesses rapides à faible coût pour les utilisateurs et les développeurs, et l'exécution parallèle est un élément clé permettant cette performance et cette UX. Actuellement, Sei offre des temps de confirmation de bloc de 390ms et a traité plus de 1,9 milliard de transactions sur son mainnet pacifique.
À l'origine, Sei utilisait un modèle d'exécution parallèle déterministe, dans lequel les contrats intelligents déclarent à l'avance leur accès à l'état requis afin que le système puisse exécuter simultanément des transactions non conflictuelles. Avec le lancement de leur mise à niveau V2, Sei passe plutôt à un modèle parallèle optimiste, ce qui signifie que toutes les transactions seront traitées en parallèle dès leur soumission au réseau (étape d'exécution), puis seront examinées pour des informations conflictuelles avec les transactions précédentes (étape de validation). En cas de deux transactions ou plus en conflit, c'est-à-dire de transactions tentant d'accéder au même état du réseau, Sei identifie ce point de conflit, puis réexécute les transactions soit en parallèle, soit séquentiellement en fonction de la nature du conflit.
Afin de stocker et de maintenir les données de transaction, Sei introduira également SeiDB, une base de données personnalisée qui vise à améliorer les lacunes de la v1 en optimisant l'exécution parallèle. SeiDB vise à réduire les frais généraux liés au stockage de données redondantes et à maintenir une utilisation efficace du disque pour une meilleure performance du réseau. La V2 réduit la quantité de métadonnées nécessaires à des fins de suivi et de stockage, et permet un journal des transactions en amont pour aider à la récupération des données en cas de panne.
Enfin, Sei a également récemment annoncé le lancement de son Parallel Stack, un framework open-source permettant aux solutions de mise à l'échelle de la couche 2, c'est-à-dire les rollups, d'utiliser et de bénéficier de l'exécution parallèle.
Monad est une blockchain de couche 1 parallèle à venir qui apporte une compatibilité complète en bytecode et RPC pour les applications et l'infrastructure Ethereum. Grâce à un certain nombre de mises en œuvre techniques innovantes, Monad vise à offrir des expériences plus interactives que les blockchains existantes tout en maintenant des coûts de transaction plus faibles en optimisant les performances et la portabilité, avec des délais de bloc de 1 seconde et une finalité avec jusqu'à 10 000 TPS.
Monad implémente l'exécution parallèle et le pipeline superscalaire pour optimiser la vitesse et le débit des transactions. Tout comme Sei v2, Monad utilisera un modèle d'exécution optimiste, ce qui signifie que le réseau commence à exécuter toutes les transactions entrantes simultanément, puis analyse et valide les transactions pour rechercher des conflits et les réexécute en conséquence, le but final étant que le résultat serait identique si les transactions avaient été exécutées séquentiellement.
Il est important de noter que pour maintenir la synchronicité avec Ethereum, Monad ordonne les transactions dans un bloc dans un ordre linéaire, chaque transaction étant mise à jour séquentiellement.
Afin de maintenir et d'accéder aux données de la blockchain de manière plus efficace que l'état actuel des clients Ethereum ne le propose, Monad a créé son propre MonadDB personnalisé, construit nativement pour les blockchains. MonadDB tire parti des fonctionnalités avancées du noyau Linux pour des opérations de disque asynchrones efficaces, éliminant les contraintes d'accès d'entrée/sortie synchrones. MonadDB offre un accès asynchrone d'entrée/sortie (E/S asynchrones), une fonctionnalité clé permettant une exécution parallèle, le système pouvant ainsi commencer le traitement de la transaction suivante tout en attendant de lire l'état d'une transaction précédente.
Pour une analogie simple, considérez la préparation d'un repas multifacette (spaghetti aux boulettes de viande). Les étapes impliquées sont 1) la préparation d'une sauce, 2) la cuisson des boulettes de viande, et c) la cuisson des pâtes. Un chef efficace commencerait par faire bouillir de l'eau pour les pâtes, puis préparer les ingrédients pour la sauce, puis jeter les pâtes dans l'eau qui bout maintenant, puis cuire la sauce, et enfin les boulettes de viande, au lieu de faire chaque étape une par une, en terminant une tâche dans son intégralité avant de passer à la suivante.
Move est un langage de programmation développé à l'origine par l'équipe de Facebook en 2019 pour son projet désormais abandonné, Diem. Move a été conçu pour gérer de manière sécurisée les contrats intelligents et les données de transaction, éliminant les vecteurs d'attaque propres à d'autres langages tels que les attaques de réentrance.
Le MoveVM sert d'environnement d'exécution natif pour les blockchains basées sur Move, tirant parti de la parallélisation pour offrir des vitesses d'exécution de transaction plus rapides et une efficacité globale accrue.
Aptos est un blockchain de couche 1 basé sur Move développé par des membres de l'ancien projet Diem, qui met en œuvre une exécution parallèle pour offrir un environnement hautes performances aux développeurs d'applications. Aptos utilise Block-STM, une implémentation modifiée du mécanisme de contrôle de la concurrence de la mémoire transactionnelle logicielle (STM).
Block-STM est un moteur d'exécution parallèle multi-threadé qui permet une exécution parallèle optimiste. Les transactions sont pré-ordonnées et séquencées de manière stratégique à l'intérieur des blocs, ce qui est essentiel pour résoudre efficacement les conflits et ré-exécuter ces transactions. Les recherches menées par Aptos ont montré que jusqu'à 160K TPS peuvent être théoriquement pris en charge en utilisant la parallélisation de Block-STM.
Similaire à Aptos, Sui est un blockchain de couche 1 développé par d'anciens membres du projet Diem, qui utilise le langage Move. Cependant, Sui utilise une implémentation personnalisée de Move qui modifie le modèle de stockage et les autorisations d'actifs du design original de Diem. En particulier, cela permet à Sui d'utiliser un modèle de stockage d'état pour représenter des transactions indépendantes en tant qu'objets. Chaque objet a un identifiant unique dans l'environnement d'exécution de Sui, ce qui permet au système d'identifier facilement les transactions non conflictuelles et de les traiter en parallèle.
Similaire à Solana, Sui implémente une exécution parallèle déterministe, ce qui nécessite que les transactions indiquent à l'avance les comptes auxquels elles doivent accéder.
Qu'est-ce que le Mouvement?
Movement construit une suite d'outils de développement et de services d'infrastructure blockchain pour permettre aux développeurs d'accéder facilement aux avantages de la construction sur Move. En opérant en tant que fournisseur de services d'exécution en tant que service de type AWS pour les développeurs de Move, Movement implémente la parallélisation en tant que fonctionnalité de conception centrale pour permettre un débit plus élevé et une efficacité réseau globale accrue. Le MoveVM est un environnement d'exécution modulaire qui permet aux réseaux blockchain d'étendre et d'ajuster leurs capacités de traitement des transactions selon les besoins pour pouvoir prendre en charge un volume croissant de transactions, renforçant leurs capacités à traiter et exécuter des transactions en parallèle.
Architecture MoveVM
Le mouvement lancera également M2, un ZK-rollup qui sera interopérable avec les clients EVM et Move. M2 héritera du moteur de parallélisation Block-STM et devrait fournir des dizaines de milliers de TPS en conséquence.
Quelques questions importantes et considérations à méditer concernant le développement de blocs parallèles;
À un niveau élevé, les blockchains parallèles sont confrontées au risque d'incohérences de registre, c'est-à-dire de doubles dépenses et de changements dans l'ordre des transactions (en effet, c'est le principal avantage de l'exécution séquentielle). La parallélisation déterministe aborde ce problème en créant un système d'étiquetage interne pour les transactions sur la blockchain sous-jacente. Les blockchains mettant en œuvre un traitement optimiste doivent s'assurer que les mécanismes qu'elles utilisent pour valider et réexécuter les transactions sont sécurisés et fonctionnels, et les compromis réalisés en termes de performances peuvent être raisonnablement implémentés.
L'histoire des ordinateurs nous a appris que les systèmes parallèles ont tendance à être plus efficaces et évolutifs au fil du temps que les systèmes séquentiels. L'essor des blockchains parallèles post-Solana souligne que cette notion s'applique également à l'infrastructure crypto. Même Vitalik y a fait allusion parallélisationcomme l'une des solutions clés potentielles pour améliorer récemment la scalabilité des rollups EVM. En termes généraux, la croissance de l'adoption de la crypto/blockchain nécessite des systèmes plus optimaux que ce qui est disponible aujourd'hui, y compris des blockchains parallèles. Les récents problèmes du réseau Solana ont souligné qu'il y a encore beaucoup de place pour l'amélioration dans le développement de blockchains parallèles. À mesure que de plus en plus d'équipes cherchent à repousser les limites de la frontière onchain et à embarquer la prochaine cohorte de masse d'utilisateurs et d'adoption vers des applications et écosystèmes natifs de la blockchain, les modèles d'exécution parallèle fournissent un cadre intuitif pour la construction de systèmes capables de gérer efficacement des magnitudes d'activité réseau à une échelle qui correspond à celle des entreprises Web2 avec facilité.
Pas de conseils financiers ou fiscaux. Le but de cette newsletter est purement éducatif et ne doit pas être considéré comme un conseil en investissement, un conseil juridique, une demande d'achat ou de vente d'actifs, ou une suggestion pour prendre des décisions financières. Ce n'est pas un substitut à un conseil fiscal. Veuillez consulter votre comptable et mener vos propres recherches.
Divulgations. Tous les messages sont la propre opinion des auteurs, et non celle de leur employeur. Ce message a été sponsorisé par la Fondation Aster. Bien que Shoal Research ait reçu un financement pour cette initiative, les sponsors n'influencent pas le contenu analytique. Chez Shoal Research, nous visons à garantir que tout le contenu soit objectif et indépendant. Nos processus de révision interne respectent les normes d'intégrité les plus élevées, et tous les conflits d'intérêts potentiels sont divulgués et gérés de manière rigoureuse pour maintenir la crédibilité et l'impartialité de nos recherches.