Le Industrial Internet Consortium (IIC) est l'un des principaux consortiums IoT au monde, composé des meilleures organisations technologiques mondiales.
Chaque trimestre, les membres de l'IIC, plus de 300 leaders technologiques mondiaux, se réunissent pour partager de nouvelles recherches, des cas d'utilisation et des cadres de développement de produits. Lors de la réunion des membres du deuxième trimestre tenue du 22 au 26 juin, IoTeX a participé à quatre sessions pour partager nos travaux les plus récents avec les membres de l'IIC.
Le point fort pour IoTeX fut notre présentation de Pantheon au groupe de travail Blockchain de l'IIC, dont IoTeX est co-président avec Amazon & Huawei. Dans cette présentation, nous expliquons ce qu'est une blockchain consortium, en quoi Pantheon diffère des autres blockchains consortium, la pile technologique unique et l'architecture de Pantheon, et bien plus encore.
Dans le reste de ce blog, nous partageons l'enregistrement vidéo et la transcription écrite de notre présentation de Pantheon — nous espérons que vous apprécierez !
Présentation — Enregistrement vidéo
Présentation — Transcription écrite
Bonjour à tous ! Je suis Xinxin Fan, responsable de la cryptographie chez IoTeX. Je suis également co-président du groupe de travail Blockchain. Aujourd'hui, je suis heureux de présenter Pantheon, une blockchain consortium orientée entreprise pour l'IoT.

Comme nous le savons tous, l'IoT consiste à prendre des décisions commerciales basées sur les données collectées par des appareils intelligents. Nous avons essentiellement trois blocs ici : 1) toutes sortes d'appareils intelligents collectant des données du monde physique, 2) toutes ces données seront transférées au backend pour stockage, traitement, etc., et 3) visualisation et analyse des données. La fiabilité des données est essentielle au succès de l'IoT, la confiance que vous inspirez à vos clients déterminera la valeur que vous leur apportez.

Une question naturelle est : comment assurer la fiabilité des données dans l'IoT ? C'est un sujet très discuté depuis plusieurs années dans le groupe de travail Sécurité. En bref, nous devrions introduire le concept d'Internet des choses de confiance (IoTT) — nous devons couvrir tout le cycle de vie des données pour l'IoTT afin d'assurer la fiabilité tout au long de ce processus. Nous devons considérer la collecte des données, les données en transit, les données au repos, le traitement des données ainsi que la conservation des données. En gros, vous couvrez depuis l'appareil, dès qu'il commence à collecter des données, et sécurisez la communication lorsque l'appareil envoie des données au backend. Stockez également les données de façon sécurisée et traitez-les de manière sécurisée.

Pourquoi la blockchain est-elle importante ici ? Tout d'abord, regardons brièvement la blockchain — voici une définition donnée par le NIST. La blockchain, comme son nom l'indique, est une chaîne de blocs, chaque bloc incluant un ensemble de transactions. Ce réseau est maintenu par un groupe de nœuds en mode pair-à-pair. La blockchain vous fournit un registre numérique infalsifiable et résistant à la falsification, reposant sur des nœuds distribués pour fonctionner sans autorité centralisée.

Il existe deux types de blockchains largement utilisées dans l'industrie. Le premier est la blockchain sans permission, essentiellement une blockchain publique. Dans ce type de blockchain, tout le monde peut rejoindre le réseau, lire les données du registre et valider les transactions. Ce type de registre reproduit un haut degré de confiance. L'autre type est la blockchain permissionnée, très discutée dans l'industrie. Ce type de blockchain permissionnée est généralement formé par un ensemble de parties ou institutions connues. Elles se réunissent pour gérer ce registre. La validation est contrôlée par un ensemble sélectionné de nœuds déterminé par toutes les parties participantes. Ce type de registre offre un haut degré de transparence et de responsabilité.
Bien que je croie que la blockchain publique est l'avenir, les blockchains permissionnées ont encore une grande valeur durant cette période de transition entre les solutions centralisées que nous utilisons presque tous les jours et un monde entièrement décentralisé. Les versions permissionnées donnent un bon exemple et aident les gens à mieux comprendre la valeur de cette technologie et son fonctionnement en pratique.

Un sujet que nous devons d'abord souligner est « quelles propriétés une blockchain apporte-t-elle aux systèmes IoT ? » Voici cinq propriétés clés fournies par la blockchain. Premièrement, la décentralisation — cela signifie que la blockchain élimine le « point de défaillance unique » incarné par une autorité centrale de confiance. Dans un contexte blockchain, ce réseau est maintenu par un groupe de nœuds au lieu d'une autorité centralisée de confiance. La deuxième propriété est l'immutabilité — la blockchain utilise des fonctions de hachage cryptographiques pour lier tous les blocs ensemble, ce qui signifie qu'une fois l'information enregistrée dans une blockchain, il est très difficile de la modifier. Troisièmement, la transparence — la blockchain fournit un registre entièrement auditable et valide des transactions afin que chaque participant puisse le voir. La quatrième propriété concerne la sécurité et la résilience — la blockchain utilise la cryptographie à clé publique et les signatures numériques pour prouver la propriété des données, ce qui signifie qu'une fois que vous envoyez quelque chose à la blockchain, vous prouvez que vous détenez la clé privée correspondante. Cela permet également le transfert de propriété, c'est-à-dire que si vous transférez un certain actif d'une entité à une autre, vous pouvez utiliser votre clé privée pour cela. La nature de la blockchain signifie que l'information est largement disponible sur tout le réseau, donc si certains nœuds sont hors ligne, ce n'est pas un problème, vos informations restent accessibles. La dernière propriété est l'automatisation — la blockchain fournit un outil très utile appelé contrats intelligents, qui est un morceau de code déployé sur la blockchain. Vous écrivez votre logique métier dans un certain langage de programmation et le but principal est de rationaliser des processus commerciaux complexes. Ces processus impliquent généralement plusieurs intermédiaires dans le monde réel. Le contrat intelligent peut vous aider à simplifier ces processus complexes. Ce sont toutes les caractéristiques clés que la blockchain peut apporter à l'IoT.

Alors pourquoi travaillons-nous sur une autre blockchain d'entreprise ? Il existe plusieurs blockchains consortium comme Hyperledger, Ethereum for Enterprise, R3 Corda, les protocoles Baseline récemment apparus, ainsi que des fournisseurs Cloud comme Amazon et Microsoft Azure qui offrent Blockchain-as-a-Service pour donner aux utilisateurs familiers du Cloud une expérience similaire avec la blockchain. Pourquoi en créer une nouvelle ? Toutes les solutions existantes sont généralement très génériques, permettant de construire de nombreux types d'applications. Certaines blockchains consortium sont plus spécialisées ; par exemple, Corda est principalement utilisée dans le secteur bancaire pour les paiements, et Amazon et Microsoft gèrent leur propre Blockchain-as-a-Service. Nous souhaitons en développer une nouvelle car nous constatons qu'il n'en existe pas de bonne dédiée et conçue pour l'IoT. Nous essayons donc de construire une solution incluant tous les services liés aux applications IoT et offrant une sécurité de bout en bout.

C'est pourquoi nous travaillons sur Pantheon, une blockchain consortium orientée entreprise dédiée et conçue pour l'IoT. Voici une vue d'ensemble de la pile technologique que nous envisageons. Nous avons la couche des appareils IoT pour supporter différents types d'appareils et protocoles de communication. La deuxième couche est une couche hybride avec blockchain consortium et Cloud. Sur cette couche hybride, nous avons les services IoT principaux, incluant la gestion des utilisateurs, des appareils, du stockage, etc. Au-dessus se trouve la couche applicative permettant aux utilisateurs de développer toutes sortes d'applications liées à l'IoT. Pantheon est entièrement open source — vous pouvez accéder à notre dépôt ici. Nous fournirons les services IoT principaux pour couvrir différentes applications IoT. L'objectif est de permettre une sécurité de bout en bout de l'appareil au backend. Notre première version se concentre principalement sur la gestion des utilisateurs et d'autres services principaux sont en cours de développement actif par notre équipe et seront progressivement ajoutés à cette pile technique.

Concernant l'architecture système, voici à quoi ressemble Pantheon. Plusieurs institutions coordonnent pour faire fonctionner cette blockchain consortium. Nous avons une passerelle API des nœuds blockchain pour accéder à toutes les fonctions du système. Nous avons une liste de groupe de consensus, composée d'institutions exécutant un algorithme de consensus. Voici un exemple de flux : un utilisateur souhaite interroger des données sur la blockchain. Par exemple, il interrogera la passerelle API pour obtenir le hachage des données qu'il veut accéder. Il interrogera un proxy d'accès aux données pour récupérer les données depuis la base de données hors chaîne. La politique de contrôle d'accès dans la base vérifiera si l'utilisateur a les permissions nécessaires. Si l'accès est accordé, l'utilisateur peut récupérer les données et comparer avec le hachage reçu de la blockchain. C'est un exemple simple montrant comment l'intégrité des données peut être assurée grâce à notre système blockchain consortium.

Vous pouvez utiliser notre explorateur blockchain pour vérifier le dernier bloc, toutes les transactions et les nœuds qui maintiennent le système blockchain.

L'enregistrement des institutions est géré par un contrat intelligent dans notre système et toutes les institutions actuelles peuvent voter sur la participation d'une nouvelle institution. Elles décideront si elles souhaitent intégrer une nouvelle institution au consortium. Une institution peut gérer plusieurs opérateurs de blocs — elle décide qui peut être opérateur de bloc au sein de son institution. Elle gère ses opérateurs de manière indépendante.

Cette capture d'écran montre que nous avons plusieurs institutions ici — chaque institution peut gérer plusieurs opérateurs.

En termes de gestion des utilisateurs, cela est effectué hors chaîne par chaque institution. Nous avons cette structure hiérarchique où chaque institution gère ses propres utilisateurs et permissions correspondantes. Les utilisateurs et les données avec permissions sont stockés de manière sécurisée dans une base de données chiffrée. Nous avons également un administrateur qui spécifie comment créer les utilisateurs et définir leurs permissions avec une liste de politique d'accès. Les utilisateurs peuvent aussi être organisés en groupes et gérés par groupe.

La première fois que vous vous connectez au système, vous créez un compte comme d'habitude, puis vous pouvez ajouter plusieurs utilisateurs et spécifier dans quel groupe vous souhaitez placer chaque utilisateur.

Dans un groupe, vous pouvez avoir des utilisateurs réguliers et les administrateurs peuvent créer ou ajouter de nouveaux utilisateurs et groupes, assigner des utilisateurs à différents groupes et attribuer des permissions.

Tout l'accès à la blockchain est basé sur les permissions dans ce cadre consortium. Un utilisateur et un service reçoivent un jeton d'authentification après connexion — ce jeton est essentiellement un JWT. Ce jeton contient les données de permission. Actuellement, nous supportons les permissions lecture-écriture sur toutes les API de la chaîne. Le jeton peut être configuré pour expirer et chaque requête API doit être accompagnée du jeton d'authentification pour accéder à un nœud de la chaîne. Le jeton est validé à la passerelle du nœud comme montré dans notre architecture.

Nous pouvons également gérer la scalabilité Layer 2 dans Pantheon. L'idée est que votre service Layer 2, en cas de forte charge, peut regrouper les requêtes en utilisant un arbre de Merkle. Nous ne validons que la racine Merkle sur la première couche de la chaîne. Cela améliore le débit global.

Enfin, je vous encourage à essayer Pantheon vous-même. C'est très simple. Installez Docker, clonez notre dépôt. Assurez-vous que les ports nécessaires sont disponibles. Ensuite, lancez un script simple — il téléchargera toutes les images Docker depuis Docker Hub et démarrera le service. Ensuite, ouvrez un navigateur et visitez ce localhost sur le port indiqué. Vous avez différentes options — vous pouvez utiliser le Playground pour envoyer une requête au gateway API, c'est une requête GraphQL. Vous obtiendrez différents résultats. Depuis le tableau de bord, vous pouvez voir tous les blocs. En cliquant sur une adresse, vous voyez tous les hachages, l'expéditeur et d'autres informations.

Nous fournissons également un outil de surveillance basé sur Grafana pour faciliter le suivi de vos systèmes blockchain. Par exemple, la hauteur du bloc, si un problème survient, vous pouvez venir ici pour identifier la cause.

Voilà pour ma présentation — une brève introduction à cette solution. Si vous avez des questions, n'hésitez pas à nous contacter. Merci !
À propos d'IoTeX
Fondé en tant que plateforme open source en 2017, IoTeX construit l'Internet des choses de confiance, un écosystème ouvert où toutes les « choses » — humains, machines, entreprises et DApps — peuvent interagir avec confiance et confidentialité. Soutenu par une équipe mondiale de plus de 30 chercheurs et ingénieurs de premier plan, IoTeX combine blockchain, matériel sécurisé et informatique confidentielle pour permettre la prochaine génération d'appareils, réseaux et économies IoT. IoTeX donnera vie à l'économie décentralisée future en « connectant le monde physique, bloc par bloc ».
En savoir plus : Site web | Twitter | Telegram | Medium | Reddit