Thèse soutenue

Vers des processus métier corrects basés sur la Blockchain

FR  |  
EN
Auteur / Autrice : Ikram Garfatta
Direction : Kais KlaiMohamed Graiet
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 13/12/2022
Etablissement(s) : Paris 13
Ecole(s) doctorale(s) : École doctorale Galilée (Villetaneuse, Seine-Saint-Denis)
Partenaire(s) de recherche : Laboratoire : Laboratoire informatique de Paris-Nord (Villetaneuse, Seine-Saint-Denis ; 2001-....)
Jury : Président / Présidente : Nathalie Pernelle
Examinateurs / Examinatrices : Mohamed Graiet, Nathalie Pernelle, Parisa Ghodous, Raimundas Matulevičius, Leila Jemni Ben Ayed, Walid Gaaloul, Sara Tucci-Piergiovanni
Rapporteurs / Rapporteuses : Parisa Ghodous, Raimundas Matulevičius

Résumé

FR  |  
EN

La Blockchain, qui a d'abord été présentée comme la technologie à l'origine du Bitcoin, a désormais dépassé le cadre des crypto-monnaies pour s'imposer dans un large éventail de domaines d'application, dont la gestion des processus métier (BPM). En effet, ses propriétés intrinsèques, telles que sa structure décentralisée, sa capacité à donner confiance à des parties non dignes de confiance, son immuabilité et sa transparence financière, semblent fournir les instruments nécessaires pour concevoir des solutions adaptées aux problèmes actuels de BPM, en particulier pour les collaborations. Cette évolution est principalement due à l'introduction du concept de contrat intelligent dans les Blockchains. Un contrat intelligent permet l'exécution de séquences de transactions interdépendantes tout en respectant les règles qui y sont établies. D'autre part, un processus métier (BP) peut être considéré comme un ensemble d'activités reliées par des relations causales dans le but d'atteindre un objectif métier. Par conséquent, les contrats intelligents semblent être d'excellents candidats pour la mise en œuvre et l'automatisation des BPs. Malgré des avancées significatives dans l'adoption de la Blockchain pour le BPM, la technologie n'en est qu'à ses débuts, et le déploiement de contrats intelligents pour réaliser des BPs ne peut être considéré comme sûr. Par conséquent, la preuve de l'exactitude des contrats intelligents à déployer sur une Blockchain est essentielle pour l'intégrité des processus métier spécifiés. Dans notre travail, nous proposons une approche formelle basée sur la transformation des contrats intelligents Solidity, en tenant compte du contexte BPM dans lequel ils sont utilisés, en un réseau de Petri coloré hiérarchique. Nous exprimons un ensemble de vulnérabilités des contrats intelligents sous forme de formules de logique temporelle (LTL) et utilisons le vérificateur de modèle Helena non seulement pour détecter ces vulnérabilités tout en discernant leur exploitabilité, mais aussi pour vérifier d'autres propriétés spécifiques aux contrats basées sur le temps.L'approche que nous proposons est basée sur la vérification des modèles CPN et comprend principalement trois phases :    1) la transformation du code Solidity des contrats intelligents en sous-modèles CPN correspondant à leurs fonctions.    2) transformer le contexte BPM en un modèle CPN    3) la construction d'un modèle CPN en fonction d'une propriété LTL qui peut exprimer : i) une vulnérabilité dans le code ou ii) une propriété spécifique au contrat, en le reliant à un modèle CPN représentant le comportement à considérer, et l'utilisation du vérificateur de modèles pour vérifier la propriété ciblée sur le modèle construit. Plus précisément, nous optons pour un CPN hiérarchique pour représenter l'exécution et l'interaction des contrats intelligents considérés par rapport à la spécification du contexte BPM fourni. Pour ce faire, nous représentons chaque fonction d'un contrat intelligent par une transition agrégée qui encapsule un sous-modèle correspondant au workflow interne de cette fonction. En fait, notre objectif à cette première étape est d'obtenir des blocs de construction pour le modèle hiérarchique qui sera fourni au vérificateur de modèle. Ensuite, étant donné une spécification de contexte (transformée en CPN) et une propriété LTL à vérifier, le modèle CPN final est construit en (1) reliant la transition agrégée représentant la fonction ciblée au modèle comportemental et (2) construisant une hiérarchie en représentant explicitement les appels de fonctions dans le sous-modèle en question (si la propriété vérifiée le requiert). Nous avons implémenté un outil graphique appelé Solidity2CPN qui automatise les différentes étapes de l'approche proposée et la rend accessible à un plus grand nombre d'utilisateurs qui ne sont pas forcément familiers avec les aspects de la vérification formelle.