Towards correct Blockchain-based business processes - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2022

Towards correct Blockchain-based business processes

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

Ikram Garfatta
  • Fonction : Auteur
  • PersonId : 1247827
  • IdRef : 269141251

Résumé

Blockchain, which was first introduced as the technology driving Bitcoin, has now outgrown the confines of cryptocurrencies to find its way into a wide range of application areas, including Business Process Management (BPM). Indeed, its intrinsic properties, such as its decentralized structure, capacity to give trust among untrustworthy parties, immutability, and financial transparency, appear to provide the necessary instruments for devising suitable solutions for current BPM issues, particularly for collaborations. This evolution has been mainly owed to the concept of smart contracts being introduced to Blockchains. A smart contract allows the execution of interdependent transaction sequences while adhering to the rules established in it. On the other hand, a business process may be considered as a set of activities connected by causal relationships with the purpose of attaining a business goal. As a result, smart contracts appear to be excellent candidates for implementing and automating BPs. Despite significant advancements in Blockchain adoption for BPM, the technology is still in its infancy, and deploying smart contracts to carry out BPs cannot be deemed safe. As a result, proving the correctness of the smart contracts to be deployed on a blockchain is critical for the integrity of the specified business processes. In our work we propose a formal approach based on the transformation of Solidity smart contracts, with consideration of the BPM context in which they are used, into a Hierarchical Coloured Petri net. We express a set of smart contract vulnerabilities as temporal logic formulae and use the Helena model checker to, not only detect such vulnerabilities while discerning their exploitability, but also check other temporal-based contract-specific properties.Our proposed approach is based on model checking of CPN models and comprises mainly three phases:    1) transforming the smart contracts' Solidity code into CPN sub-models corresponding to their functions.    2) transforming the BPM context into a CPN model    3) constructing a CPN model w.r.t an LTL property that can express: i) a vulnerability in the code or ii) a contract-specific property, linking it to a CPN model representing the behavior to be considered, and feeding it the model checker to verify the targeted property. More precisely, we opt for a hierarchical CPN to represent the considered smart contracts' execution and interaction w.r.t the provided BPM context specification.To do so, we represent each function of a smart contract by an aggregated transition that encapsulates a sub-model corresponding to the internal workflow of the former.In fact, our aim at this first step is to get building blocks for the hierarchical model that will be fed to the model checker. Then, given a context specification (transformed into CPN) and an LTL property to be verified, the final CPN model is built by (1) linking the aggregated transition representing the targeted function to the behavioral model and (2) building a hierarchy by explicitly representing function calls in the submodel in question (if the checked property requires it). We have implemented a graphical tool called Solidity2CPN that automates the different steps of the proposed approach and makes it accessible to a broader range of users who are unfamiliar with the aspects of formal verification.
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.
Fichier principal
Vignette du fichier
edgalilee_th_2022_garfatta.pdf (2.76 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04071432 , version 1 (17-04-2023)

Identifiants

  • HAL Id : tel-04071432 , version 1

Citer

Ikram Garfatta. Towards correct Blockchain-based business processes. Cryptography and Security [cs.CR]. Université Paris-Nord - Paris XIII, 2022. English. ⟨NNT : 2022PA131089⟩. ⟨tel-04071432⟩
106 Consultations
71 Téléchargements

Partager

Gmail Facebook X LinkedIn More