• Cette technique permet de délocaliser une partie des données et des applications afin d’alléger la blockchain et d’améliorer ainsi la fluidité, la puissance voire la confidentialité des transactions.
• Cette méthode s’avère notamment pertinente pour les données relatives aux objets connectés intégrées dans une blockchain.
Des affaires retentissantes comme la faillite de FTX à l’automne 2022 ou la banqueroute de la plateforme d’échanges de bitcoins Mt.Gox en février 2014 ont écorné l’image de la blockchain auprès du grand public, en la réduisant à son seul usage financier. Si celui-ci reste majoritaire, la blockchain permet aussi de tracer des produits alimentaires, de gérer une flotte de drones, d’enregistrer une propriété intellectuelle ou un diplôme, et même d’échanger des surplus d’énergie renouvelable (le projet Brooklyn Microgrid à New York). Tout transfert de données et d’instructions entre entités connectées (objets, services, véhicules, machines industrielles) peut en réalité être géré par une blockchain. Voilà pour la théorie. Reste à résoudre le problème du passage à l’échelle de cette infrastructure décentralisée, régie automatiquement par des règles informatiques et cryptographiques.
La contrainte de la puissance de calcul
La taille des blocs, qui sont les unités où sont stockées les informations sur les transactions validées par le système, est limitée, et leur émission obéit à un rythme contraignant (un bloc toutes les dix minutes sur la blockchain Bitcoin, toutes les 14 secondes sur Ethereum, toutes les 30 secondes sur Tezos). Décentralisation oblige, tout nœud de la blockchain stocke l’historique des transactions qui y ont eu lieu, sorte de registre comptable de plusieurs dizaines de gigaoctets. Impossible de l’embarquer dans certains objets connectés. De même, une méthode de validation des blocs comme la exige de grandes puissances de calcul que bien des appareils communicants n’ont pas.
Cela n’a pas de sens que des positions de drones d’une petite application soient stockées à jamais sur des milliers de machines !
S’ajoute la question du coût financier de la validation des transactions. Pour des applications qui génèrent énormément de données, il peut être prohibitif. « Et cela n’a pas de sens que des données comme les positions de drones d’une petite application soient stockées à jamais sur des milliers de machines ! » ajoute Jérôme Lacan, responsable du département d’ingénierie des systèmes complexes à l’ISAE-SupAéro, à Toulouse. Avec sa collègue Caroline Chanel et le doctorant Thomas Lavaur, ils décrivent dans un article de la revue Sensors une solution permettant d’éviter ces contraintes : les « rollups ».
Une transaction pour en confirmer des milliers d’autres
Ce mécanisme récent est très en vogue dans le monde des blockchains. « L’idée est de délocaliser une partie des données et des applications sur des rollups, qui peuvent prendre la forme de réseaux locaux, de systèmes d’entreprise ou autre, et d’organiser des échanges entre eux et la blockchain, explique Jérôme Lacan. Les transactions ont lieu sur le rollup et les comptes utilisateurs, bloqués sur la blockchain, sont régulièrement mis à jour. »
Les rollups reposent sur un outil cryptographique appelé , grâce auquel une donnée en entrée est transformée en un résumé de quelques octets (un hash). « En une seule courte transaction, cet arbre de Merkle permet concrètement d’engager et de confirmer non pas une, mais des milliers de transactions avec elle – chose qui n’était pas possible auparavant », écrit Daniel Augot, directeur de recherche Inria, dans une tribune pour l’Institut Polytechnique de Paris. L’opération libère ainsi énormément de bande passante sur la blockchain.
Avec les ZK rollups, un gain de confidentialité
Pour l’Internet des objets, les chercheurs de l’Institut Supérieur de l’Aéronautique et de l’Espace (SupAéro) privilégient l’approche dite des ZK rollups (zero knowledge). « Quelqu’un va créer, avec un programme connu, la preuve que tout s’est déroulé correctement et chacun va pouvoir la vérifier simplement, sans qu’il soit nécessaire d’exécuter la transaction sur la blockchain », explique Thomas Lavaur. Le tout sans affaiblir la sécurité. En toute transparence, les membres du rollup voient les données en entrée mais un seul génère la preuve. Mieux : il est possible de n’envoyer que la preuve sur la blockchain, sans divulguer les informations relatives aux transactions. Dans ce cas, celles-ci restent sur le rollup (« zero knowledge », « aucune connaissance » en anglais). D’où un gain de confidentialité.
« Ce serait relativement facile d’appliquer ce mécanisme à des places de marché de type Uber, estime Jérôme Lacan. Les gens posteraient une transaction précisant leur disponibilité pour une course et l’endroit où ils se trouvent, d’autres indiqueraient où ils souhaitent aller et le tout serait géré par des contrats intelligents (« smart contracts ») dont le code est disponible, avec des règles d’attribution des courses claires, des prix fixés à l’avance, sans acteur central. » Pour l’heure, ce sont des entreprises qui assurent le rollup et la génération de preuve. Mais une autre piste peut déjà être envisagée : qu’un groupe local d’utilisateurs assure lui-même ces opérations.
C’est l’un des mécanismes de consensus qui permet d'obtenir un accord sur le réseau de blockchain, pour confirmer les transactions et produire de nouveaux blocs sur la chaîne.
Un arbre de Merkle, ou arbre de hachage, est un concept mathématique inventé en 1979 par le cryptographe Ralph Merkle. Il s'agit d'un modèle de structure de données contenant un résumé d'information d'un volume de données, généralement grand.