Reliable collaboration platform based on distributed registers
Plateforme fiable de collaboration basée des registres distribués
Abstract
The emergence of new technologies such as 5G, IoT, and cloud computing led to the creation of new business models. These new models are mainly based on open or dynamic collaboration as one of their key concepts. In this context, the business process is defined as a group of activities achieved by the different actors to accomplish business goals. Today, The competition in the global market, changing conditions, and the need to increase productivity make collaboration in business processes across organizations always imperative and required. This collaboration might often involve unknown partners who need to exchange a lot of data which causes serious issues, including non-respect of security requirements, data integrity, and unauthorized access, to cite a few. Consequently, companies have started to look for new decentralized, secured, and trustworthy environments that can enforce, verify, and respect the agreements related to collaborative business processes in a transparent manner.
Since 2015, a technology called blockchain changed the vision of collaboration. In fact, blockchain succeeded to avoid many traditional problems by supporting a trusted, immutable, secure, and decentralized environment. In addition, it provides self-executing codes, known as ""smart contracts"", where the terms of the agreement between contractual partners are written directly into lines of code ( e.g. Solidity language ). These are considered the backbone of blockchain and they can automatically trigger actions or transactions when predefined conditions and rules are met. As a result, many companies have begun to integrate blockchain with their business processes, which has led to the creation of a new notion called ""Collaborative Business Processes based Composite Smart Contracts"". The composite smart contracts represent one or more smart contracts that need to call other contracts, which belong to the same or different business process owners to perform specific tasks.
In this context, new security risks have arisen from new applications based on smart contracts. For the blockchain, security breaches and vulnerabilities in any contract can lead also to a huge loss of funds. Moreover, composite smart contracts may run critical applications that have to produce or make external calls to other contracts to allow them to achieve their goals. This could lead to complex security issues and vulnerabilities, as the called contract may contain malicious code. Thus, formal verification of composite smart contracts is mandatory to ensure the security of the collaboration.
To this end, the aim of this thesis is to define a novel approach for verifying the security and correctness of Ethereum composite smart contracts (written in Solidity) in collaborative business process applications. in this work, we propose a new framework based on the formal verification techniques to verify the static and dynamic composite smart contracts, by considering the general security properties, the context-dependent properties as well as those that rely on contracts external calls. Our proposal is based on the finite state machine models, Temporal logic formulae, and nuXmv model checking method for modeling and verifying the Solidity contracts respectively.
To prove the proposed approach, a Proof of Concept (PoC) with different use cases of composite smart contracts was implemented to conduct the experimentation of our proposal. First, we started with a standard motivation example "" Travel Agency System"" based on static composite smart contracts. Next, we provided a secure end-to-end platform based on dynamic composite smart contracts for network function virtualization (NFV) to orchestrate and manage the lifecycle of virtual functions. The results obtained have proven the effectiveness of our approach, avoiding numerous problems related to security, confidentiality, privacy, integrity, access control, non-repudiation, and many others.
L'émergence de nouvelles technologies telles que la 5G et l'IoT a conduit à la création de nouveaux modèles métiers. Ceux-ci se basent principalement sur une collaboration dite ouverte ou dynamique comme un de leurs concepts clés. Dans ce contexte, le processus métier est défini comme un groupe d'activités réalisées par différents acteurs pour atteindre des objectifs métiers. Aujourd'hui, la concurrence sur le marché mondial et l'évolution des conditions font que la collaboration dans les processus métiers entre les organisations est toujours nécessaire. Celle-ci peut souvent impliquer des partenaires inconnus qui doivent échanger beaucoup de données, ce qui pose de sérieux problèmes, notamment le non-respect des exigences de sécurité et l'accès non autorisé, pour n'en citer que quelques-uns. Par conséquent, les entreprises ont commencé à rechercher de nouveaux environnements décentralisés, sécurisés et fiables qui peuvent appliquer, vérifier et respecter les accords liés aux processus métiers collaboratifs avec une manière transparente.
Depuis 2015, une technologie appelée blockchain a changé la vision de la collaboration. En effet, la blockchain a réussi à corriger de nombreux problèmes traditionnels en soutenant un environnement fiable, immuable, sécurisé et décentralisé. De plus, elle fournit des codes auto-exécutables, appelés ""contrats intelligents"", où les termes de l'accord entre les partenaires contractuels sont écrits directement dans des lignes de code. En conséquence, de nombreuses entreprises ont commencé à intégrer la blockchain à leurs processus métiers, ce qui a conduit à la création d'une nouvelle notion appelée ""Processus métiers collaboratifs basés sur des contrats intelligents composés"". Les contrats intelligents composites représentent un ou plusieurs contrats intelligents qui doivent appeler d'autres contrats appartenant aux mêmes propriétaires ou à différents propriétaires de processus métiers pour effectuer des tâches spécifiques.
Dans ce contexte, de nouveaux risques de sécurité sont apparus avec les nouvelles applications basées sur les contrats intelligents. Pour la blockchain, les violations de sécurité et les vulnérabilités dans n'importe quel contrat peuvent entraîner une énorme perte de fonds. Ainsi, la vérification formelle des contrats intelligents composites est obligatoire pour garantir la sécurité de la collaboration. A cette fin, nous proposons une nouvelle approche pour vérifier la sécurité des contrats intelligents composites Ethereum dans les applications de processus métiers collaboratifs. Dans ce travail, nous proposons un nouveau cadre basé sur les techniques de vérification formelle pour vérifier les contrats intelligents composites statiques et dynamiques, en considérant les propriétés de sécurité générales, les propriétés dépendantes du contexte ainsi que celles qui reposent sur des appels externes de contrats. Notre proposition est basée sur des modèles de machines à états finis, des formules de logique temporelle et la méthode model checking.
Pour prouver l'approche proposée, une preuve de concept (PoC) avec différents cas d'utilisation de contrats intelligents composites a été mise en oeuvre pour expérimenter notre proposition. Tout d'abord, nous avons commencé par un exemple de motivation standard, ""Système d'agence de voyage"", basé sur des contrats intelligents composites statiques. Ensuite, nous avons fourni une plateforme sécurisée de bout en bout basée sur des contrats intelligents composites dynamiques pour la virtualisation des fonctions réseau (NFV) afin d'orchestrer et de gérer le cycle de vie des fonctions virtuelles. Les résultats obtenus ont prouvé l'efficacité de notre approche, évitant de nombreux problèmes liés à la sécurité, à la confidentialité, à la vie privée, à l'intégrité, au contrôle d'accès, à la non-répudiation, et à bien d'autres encore.