MAX est un simulateur d’applications et de protocoles mettant en jeu des technologies de registres distribués. Il permet par exemple de simuler différentes blockchains. Il met à disposition une bibliothèque de protocoles prêts à l’emploi, comme Tendermint, Hyperledger, Bracha’s BRB ou DagRider. Son moteur de simulation à base d’agents offre une grande latitude en termes de scénarios d’expérimentation d’applications complexes et distribuées, incluant la présence d’un adversaire programmable et la gestion probabiliste des délais de communication.
MAX permet de simuler des systèmes distribués modélisés en trois couches : une couche réseau où les communications pair à pair sont simulées et peuvent être paramétrées via des distributions probabilistes de délai de transmissions ; une couche algorithmique, où sont implémentées des fonctions de plus haut niveau, telles que des protocoles de diffusion fiable (reliable broadcast), de consensus, et, plus largement, des registres distribués ; et enfin une couche applicative, qui implémente le service fourni par le système distribué.
MAX fournit un outillage de monitoring détaillé des simulations sur chacune des trois couches. Ceci inclus à la fois des métriques quantitatives sur les données transitant entre les nœuds et qualitatives sur le respect de propriétés de sécurité.
Il est également possible de simuler un adversaire pouvant maîtriser la couche réseau (créer, supprimer, rediriger ou ralentir des messages) et/ou prendre le contrôle d’un sous-ensemble des nœuds. Ceci permet d’évaluer la robustesse d’un système aussi bien que d’observer l’impact qu’un adversaire plus ou moins puissant peut avoir sur les propriétés de sécurité.
MAX inclut une collection de protocoles sur étagère avec, par exemple, Tendermint/CometBFT, HyperLedger Fabric ou DagRider ainsi que des attaques visant spécifiquement ces algorithmes.
Ses principales forces :
Dans le cadre du projet CyberQL, en partenariat avec EDF, MAX a été utilisé pour évaluer et comparer la tolérance à la censure de deux registres distribués différents. La résistance à la censure désigne la capacité d’un système à garantir que les transactions ne peuvent être arbitrairement bloquées, retardées ou modifiées par une entité malveillante. L’étude porte sur un protocole de blockchain permissionnée classique (HyperLedger Fabric) et un protocole basé sur un DAG (DagRider). La tolérance à la censure était particulièrement pertinente pour le cas d’usage d’EDF qui impliquait la notarisation de rapports d’étude sur des installations techniques. Ces travaux ont été poursuivis et généralisé à l’étude de propriétés de sécurité plus avancées, comme l’order fairness, qui établit des ordres à respecter pour le traitement des transactions en entrée du registre. Ces études ont donné lieu à des publications.
Adversary-Augmented Simulation to evaluate order-fairness on HyperLedger Fabric, E. Mahe, R. Abdallah, S. Tucci-Piergiovanni, P-Y. Piriou. In LADC 2024
Simulation study of Sycomore++, a self-adapting graph-based permissionless distributed ledger, A. Djari, E. Anceaume, S. Tucci-Piergiovanni. In BRAINS 2022
An extensive agent-based simulation study of sycomore++, a DAG-based permissionless ledger, A. Djari, E. Anceaume, S. Tucci-Piergiovanni. In SAC 2022
Blockchain Abstract Data Type, E. Anceaume, A. Del Pozzo, R. Ludinard, M. Potop-Butucaru, and S. Tucci-Piergiovanni. In SPAA 2019
Dissecting Tendermint, Y. Amoussou-Guenou, A. Del Pozzo, M. Potop-Butucaru, and S. Tucci-Piergiovanni. In NETYS 2019
A generic testing framework for agent-based simulation models, Ö. Gürcan, O. Dikenelli, C. Bernon. In J. of Simulation 2013