La composabilité décrit la façon dont des composants développés indépendamment peuvent fonctionner ensemble grâce à des interfaces compatibles. En Web3, une application peut appeler des contrats intelligents existants et utiliser leurs tokens, leur liquidité ou leurs fonctions comptables. Les développeurs peuvent s'appuyer sur des composants établis sans reconstruire chaque service sous-jacent.
Combiner des actions dans une transaction
Un contrat peut, par exemple, échanger un token sur une plateforme décentralisée, puis déposer le token reçu dans un protocole de prêt. Si ces actions ont lieu dans une seule transaction et qu'une étape obligatoire échoue, la transaction peut annuler les modifications précédentes des contrats. Cette exécution selon le principe du tout ou rien s'appelle la composabilité atomique.
La compatibilité reste nécessaire. Comportement des tokens, autorisations d'accès, liquidité disponible et interfaces doivent correspondre au processus prévu. Partager une blockchain ne rend pas tous les contrats automatiquement compatibles, et des transactions séparées n'héritent pas de la même garantie atomique.
La réutilisation crée aussi des dépendances
Une application composée dépend du comportement de ses composants. Une panne d'oracle, une mise à jour de contrat, une suspension des retraits ou un protocole compromis peut affecter les applications construites au-dessus.
L'analyse de sécurité doit donc examiner les interactions combinées, pas seulement chaque composant isolément. La composabilité permet des services utiles et un développement plus rapide, mais peut aussi relier des risques qui semblaient distincts lors de l'examen séparé des protocoles.