Cosmos est un écosystème de blockchains indépendantes, souvent appelées chaînes applicatives, construites avec des composants open source communs et reliées par le protocole Inter-Blockchain Communication (IBC). Un projet peut déployer des smart contracts sur une chaîne existante ou construire sa propre chaîne. Ce choix détermine ce qui doit être audité : le code des contrats seul, ou aussi les modules et la configuration de la chaîne.
Développer sur Cosmos
Les chaînes sont construites avec le Cosmos SDK en Go et utilisent CometBFT pour le consensus. La logique de la chaîne réside dans des modules, tandis que les chaînes qui activent CosmWasm permettent de déployer des smart contracts écrits en Rust et compilés en WebAssembly. IBC permet de faire circuler tokens et messages entre chaînes via des canaux, avec accusés de réception et délais d'expiration.
- Langages : Go pour les modules de chaîne, Rust pour les contrats CosmWasm
- Outils : le Cosmos SDK, les bibliothèques CosmWasm et son framework de tests multi-contrats
- Certaines chaînes font aussi tourner une EVM, ce qui ajoute les risques propres à l'EVM au périmètre
Ce que regardent les auditeurs
- Le traitement IBC : accusés de réception, expirations et remboursements, validation des canaux et de l'origine des tokens
- CosmWasm : sous-messages et traitement des réponses, autorisation des messages d'exécution, droits de migration des contrats
- Les modules de chaîne : code non déterministe, paniques dans les hooks de bloc pouvant arrêter la chaîne, boucles non bornées et mesure du gas
- La gouvernance et les changements de paramètres qui modifient le comportement des modules
- L'arithmétique, les arrondis et la gestion des dénominations entre chaînes
Avant de demander des devis
- Précisez si vous livrez des contrats CosmWasm, des modules SDK ou une chaîne complète, avec les versions du SDK et de CosmWasm
- Décrivez les flux IBC, les chaînes partenaires et le comportement attendu en cas d'expiration
- Fournissez les tests, y compris les simulations multi-contrats ou multichaînes
- Listez qui détient les droits de gouvernance, d'administration et de migration