Définition
RBAC : définition
Le RBAC (Role-Based Access Control) est un modèle de contrôle d'accès dans lequel les fonctions sensibles d'un smart contract ne peuvent être appelées que par des adresses disposant d'un rôle précis, comme administrateur, émetteur ou gestionnaire de pause.
Thème : Sécurité et arnaques
Un smart contract expose souvent des fonctions qui ne doivent pas être accessibles à tous : émettre de nouveaux tokens, suspendre les transferts, modifier des paramètres ou mettre à jour le code. Le modèle le plus simple confie tous ces pouvoirs à une seule adresse, le propriétaire (owner). Le RBAC affine ce schéma en créant plusieurs rôles distincts, chacun limité à certaines actions.
Chaque rôle est identifié dans le contrat, et un administrateur peut l'attribuer ou le retirer à des adresses. Une fonction protégée vérifie, avant de s'exécuter, que l'appelant détient le bon rôle. Des bibliothèques largement utilisées, comme celles d'OpenZeppelin, fournissent ce mécanisme sous une forme standardisée. L'intérêt est d'appliquer le principe du moindre privilège : une adresse chargée uniquement de suspendre le contrat en urgence ne peut pas émettre de tokens. En cas de compromission d'une clé, les dégâts sont limités au rôle concerné.
Un exemple concret
Imaginons un stablecoin dont le contrat définit trois rôles. Le rôle d'émetteur est attribué au système qui crée des tokens lors des dépôts, le rôle de pause à une équipe de sécurité, et le rôle d'administrateur à un multisig. Si la clé de l'équipe de sécurité était volée, l'attaquant pourrait suspendre les transferts, mais pas créer de nouveaux tokens.
Les risques à connaître
Des rôles mal attribués, trop larges ou oubliés après un déploiement peuvent donner un pouvoir excessif. Le rôle d'administrateur, qui gère les autres, reste un point critique ; s'il est détenu par une seule clé, tout le système en dépend. Une fonction sensible sans contrôle d'accès est l'une des failles les plus courantes.
Questions fréquentes sur RBAC
Pourquoi les smart contracts ont-ils des rôles d'administration ?
Pour permettre des opérations nécessaires comme la mise en pause en urgence ou l'émission contrôlée de tokens. Le RBAC limite chaque pouvoir à une adresse précise.
Comment savoir qui détient les rôles d'un contrat ?
Les événements d'attribution de rôles sont enregistrés sur la blockchain et consultables via un explorateur de blocs ; les audits et la documentation du projet les décrivent aussi.