La Blockchain Mise en place dune blockchain dentreprise
La Blockchain Mise en place d’une blockchain d’entreprise Projet tutoré ASRALL 2019 Tuteurs : Antoine Alluin et Mathieu Goulin Thomas BRASSART – Thomas HAVEZ – Guillaume LEPLAT – Pierrick
Table des matières 2 Présentation du contexte et projet Pourquoi ce projet est-il d’actualité ? Les attentes de ce projet La blockchain qu’est ce que c’est ? Quelques définitions Avantages et inconvénients Mise en place d’une blockchain Étude de solutions Choix de Multichain Déploiement et pilotage Architecture et schéma de flux Tests et automatisation Tests sur les transactions Déploiement et sauvegarde automatisés Cas d’applications de la blockchain Organisation du projet Conclusion et ouvertures
3 I – Présentation du contexte et du projet
Présentation du contexte 4 Première apparition : 2008, en même temps que Bitcoin Un ou des auteurs : Satoshi Nakamoto Son objectif : créer un outil de paiement à l’aide d’un réseau décentralisé Se passer du tiers de confiance : Banque Premières années : uniquement publique Réservée aux crypto-monnaies Depuis quelques années : intéresse de plus en plus les entreprises Apparition des blockchains « privées » Principalement pour la désintermédiation et sécurité
Présentation du projet 5 Découvrir et comprendre la technologie Blockchain Déterminer ses avantages et inconvénients Mettre en place une blockchain « privée » Test des différentes solutions open sources Choix d’une solution et mise en place Industrialiser notre blockchain (automatisation) Être capable d’expliquer le fonctionnement de cette technologie Expliquer à une entreprise les avantages que cela pourrait lui apporter en fonction de ses besoins
6 II – La blockchain, qu’est ce que c’est ?
La Blockchain, qu’est ce que c’est ? 7 C’est une «chaine de blocs» Conteneurs numériques sur lesquels sont stockés des informations : Transactions, contrats, hash de fichiers… L’ensemble de ces blocs forme une base de données distribuée Pas hébergée par un serveur mais par plusieurs. Semblable à un grand livre de comptes, dans lequel on écrit l’historique des transactions.
Les Blocs 8 BLOC 0 Un bloc contient : Un index avec l’horodatage de la création du bloc ENTÊTE 0 et son numéro. Le hash en sha 256 du bloc précédent (d’où la chaine HASH PREC=0 de blocs). Sauf pour le bloc « genesis » . Transactions Des données (transactions). Consensus Mécanisme de consensus. Le hash de son propre bloc : index + données + HASH BLOC 0 mécanisme de consensus. BLOC 0 BLOC 1 BLOC 2 ENTÊTE 0 ENTÊTE 1 ENTÊTE 2 HASH PREC=0 HASH BLOC 1 Transactions Consensus HASH BLOC 0 HASH BLOC 1 HASH BLOC 2
9
Blockchain publique / privée 10 Blockchain publique : Elle a besoin d’une monnaie ou d’un token pour fonctionner. C’est un registre de transaction lisible par n’importe qui sur la planète, n’importe qui peut faire des transactions. Les plus connues : Bitcoin (1ère blockchain créée / 2008 / Satoshi Nakamoto). Ethereum ( juillet 2015 / Vitalik Buterin). Blockchain privée : Blockchain avec des droits spécifiques à certains utilisateurs. Deux types de blockchain privée : Consortium : Chaque nœud possède la blockchain et peut participer à la validation des blocs. Il faut un nombre suffisant de nœuds (50% + 1) validant les transactions. Centralisée : Un nœud principal qui dirige, valide ou non les blocs.
Les Smarts Filters 11 Un smart filter est une partie de code qui s’intègre dans la blockchain, ils permettent de créer des règles customisées. Les filtres peuvent aussi obtenir des informations à propos des articles et des streams créés sur la chaîne. Un stream est un lieu de stockage pensé pour l’archivage et la récupération de données, en fonction d’un groupe ou d’une catégorie prédéfinie. Il y a deux types de smart filters : Les transactions filters : Ils définissent les règles qui décident si une transaction est valide ou non. Les streams filters : Ils régissent les règles qui définissent si un stream est valable ou non.
Avantages et inconvénients 12
13 Il. I – Mise en place d’une blockchain
Étude de plusieurs solutions 14 Plusieurs solutions : Ethereum : Blockchain publique, utilisable en blockchain privée. Restrictions lors du paramétrage Problèmes lors des émissions de transaction : Même principe que sous sa forme Publique. Hyper. Ledger Fabric Open source : Fondation Linux Nombreux Framework : Solution très lourde et complexe Permet de créer des applications basées sur la blockchain.
Tableau comparatif des solutions 15 Fonctionnalités Hyperledger Ethereum Objectif Plateforme de blockchain B 2 B Plateforme de blockchain B 2 C et application généralisée Confidentialité des transactions Confidentielles Transparentes Mode de participation Système privé et système de Privé/Publique et permissions permission Langage de Programmation Langage GO Solidity Adaptabilité au projet Très difficile, nombreux Framework pour développer son application basée sur la blockchain Non, même sous forme privée, Ethereum fonctionne avec de la crypto-monnaie et des mécanismes de ressources nécessaires pour les transactions
Choix de Multichain 16 Solution open source (licence GPLv 3), en cours d’évolution. Une documentation très complète et mise à jour fréquemment. Possible de configurer les paramètres de base de la blockchain Installation et configuration simple et intuitive Un support technique très réactif Possibilité d’administration via CLI ou par interface graphique via navigateur Permet de visualiser le contenu de la blockchain facilement Multichain est donc une solution basée sur une blockchain paramétrable qui ne nécessite aucun crypto-actif pour fonctionner sous forme privée.
Déploiement de Multichain 17 Pour le projet, nous avons déployé la solution complète proposée par Multichain Son Explorer pour naviguer dans nos blocs et transactions :
Déploiement de Multichain 18 Sa web-démo pour travailler sans CLI 3 blockchains différentes : -1 Bloc de 1 Go maximum toutes les 10 minutes. -Maximum 7250 transactions par seconde en théorie.
Pilotage des blockchains 19 Nous avons créé des scripts pour répondre à plusieurs scénarios. Le premier, l’envoi d’un bien immatériel ou d’un produit : Le second, l’utilisation d’un tiers de confiance :
Architecture et schéma de flux 20 Architecture : 5 nœuds interconnectés en peer-to-peer dans le LAN comme nœuds des blockchains. 4 nœuds Debian et un nœud Ubuntu pour tester l’interopérabilité. Une machine (non nœud de la blockchain) dédiée aux sauvegardes. Schéma de flux :
21 IV – Tests et automatisation
Tests sur les transactions 22 Nous avons fait des tests sur les transactions grâce à des smarts filters : Désactivation de certaines fonctions Filtrage de certains formats Filtrage en fonction de métadonnées Limitations du nombre d’articles dans un échange
Déploiement automatique 23 Pourquoi automatiser le déploiement et quoi automatiser ? Déploiement trop chronophage si passage à l’échelle. Risque d’erreurs dans la configuration. Logique de l’automatisation du déploiement :
Sauvegarde automatisée 24 Tout d’abord un script va récupérer différentes informations des comptes des utilisateurs de la blockchain. Ces informations vont être le porte-monnaie, sa liste d’articles et la liste de streams où il est abonné. Ensuite tous ces fichiers sont envoyés vers le serveur de sauvegarde grâce à rsync. La restauration se fera grâce à un administrateur de la blockchain, si un ordinateur vient à tomber en panne ou qu’il y a un autre problème qui résulte en une incapacité à se connecter à son compte alors l’administrateur devra restaurer un nouvel ordinateur avec les informations du compte.
25 V – Cas d’applications
26 Cas d’applications réels en entreprise Traçabilité des produits alimentaires Solution Origin par Bureau Veritas Le domaine bancaire Exemple avec la banque espagnole Santander et l’application One Pay FX La certification des diplômes Application BCDiploma utilisée par ESILV à Paris
27 VI – Organisation du projet
Organisation du projet 28 Réunion tous les 15 jours pour faire un point d’avancement avec les tuteurs. Désignation chaque semaine d’un ’responsable projet’ qui définit les tâches à réaliser dans la semaine et les deadlines à respecter mais aussi assurer un suivi de la documentation. Réunion entre les élèves chaque semaine avec chaque jour un retour sur connaissances pour s’assurer que chacun comprend ce qu’il fait et qu’il peut l’expliquer. Création d’un document technique explicatif pour chaque sujet traité ou chaque test effectué afin de favoriser le partage des connaissances.
29 VII – Conclusion et ouvertures
Conclusion et ouvertures 30 La blockchain est principalement connue pour son lien avec les crypto-monnaies mais ce qu’une facette de ces applications possibles. La technologie est encore en phase de développement ce qui pour le moment ne lui permet pas de s’appliquer parfaitement à tous les domaines d’activités. Multichain aura été la solution la plus adaptée pour répondre aux besoins du projet mais là encore des fonctionnalités sont manquantes. En ouvertures : Comment lier blockchain et RGPD (gestion des droit liés aux données à caractère personnelles) ? Comment étudier les impacts sur les ressources liés aux paramètres des blockchains?
31 QUESTIONS ?
- Slides: 31