Dans un billet de blogue antérieur, nous avons discuté de la consommation énergétique des chaînes de blocs. Nous aborderons cette fois-ci l’espace de stockage requis pour exploiter ce type de système. En raison de la structure distribuée des chaînes de blocs, elles exigent un espace de stockage beaucoup plus important que les bases de données centralisées traditionnelles. Cependant, la confiance entre les différentes parties utilisant une base de données centralisée est souvent faible, ce qui peut entraîner la création de silos de données « cachés » et augmenter les coûts de main-d’œuvre. Pour évaluer l’espace de stockage requis pour chaque système, nous examinerons des cas d’utilisation réels permettant de comparer une base de données centralisée et une chaîne de blocs.
Cas d’utilisation
Trois entreprises vendent la chaleur résiduelle qu’elles produisent à un fournisseur d’énergie. Ce fournisseur est le propriétaire du réseau informatique et, à ce titre, doit s’assurer que les factures qu’il reçoit correspondent bien à la quantité d’énergie que les entreprises lui procurent. Pour ce faire, il fait un suivi de tous les intrants énergétiques de chaque entreprise. Cependant, étant donné que toutes les parties ont intérêt à ce que les données soient exactes, chacune des trois entreprises tient aussi son propre registre de production d’énergie. Puisqu’elles ne font pas entièrement confiance au système centralisé du fournisseur, elles créent des silos de données supplémentaires, ce qui accroît l’espace de stockage requis.
Base de données centralisée
Pour assurer l’exactitude de la facturation, le fournisseur analyse des points de données horodatés enregistrés toutes les heures et indiquant la quantité d’énergie thermique produite en mégawattheures. La taille du fichier contenant ces points de données est de 430 Ko. Parallèlement, chaque entreprise productrice gère son propre fichier de données, qui est moins volumineux que celui entretenu par le fournisseur. Le processus de facturation repose donc sur quatre fichiers occupant un espace total de 1,08 Mo.
S’il existe une différence entre l’ensemble de données d’une entreprise et celui du fournisseur, l’espace de stockage nécessaire augmente en raison de l’échange accru de courriels et de pièces jointes qui s’ensuit. Ces fichiers sont ensuite comparés et stockés dans le réseau. Autrement dit, chaque échange de courriel double l’espace de stockage requis. Ce scénario illustre bien pourquoi les bases de données centralisées exigent habituellement un espace de stockage supérieur à la taille du fichier initial. En outre, chaque erreur et tentative de correction rehausse les exigences en matière de stockage. Malgré tous ces facteurs, l’espace nécessaire pour exploiter une base de données centralisée est beaucoup moins important que celui utilisé par une base de données distribuée, comme nous le démontrons ci-dessous. Il faut toutefois noter que chaque erreur doit être corrigée par une personne, ce qui augmente les coûts de main-d’œuvre (et les erreurs). Et même si les données sont identiques dans tous les fichiers, chaque partie doit adopter sa propre stratégie de redondance des données, et s’assurer de disposer du personnel nécessaire pour appliquer cette stratégie et la revoir au besoin.
Chaîne de blocs
Dans notre cas illustrant l’utilisation d’une chaîne de blocs, chaque partie exploite son propre nœud à source ouverte afin de contribuer à l’algorithme de consensus permettant de faire un suivi des données. Chaque nœud exécute une application identique, qui contient une logique applicative déterminant la façon dont les transactions entre les nœuds sont résolues. La structure de données utilisée pour atteindre un consensus de façon autonome comporte plusieurs éléments occupant un espace de stockage total de 42 Mo par nœud. Chaque partie a donc besoin d’un espace de stockage de 42 Mo, ce qui totalise 168 Mo pour les quatre parties de notre cas d’utilisation. Bref, l’espace requis pour exploiter une chaîne de blocs est nettement supérieur à celui utilisé par une base de données centralisée.
Cependant, cet écart est justifiable. Premièrement, les données produites par la chaîne de blocs sont entièrement exemptes d’erreurs et ont été validées par toutes les parties, ce qui élimine le besoin de consacrer du temps supplémentaire à la correction. Deuxièmement, la chaîne de blocs dont il est question dans notre cas d’utilisation repose sur une technologie de chiffrement avancée prévenant les fuites de données, qui pourraient autrement faire augmenter substantiellement l’espace de stockage requis. Troisièmement, les chaînes de blocs sont un système sans point de défaillance. Puisque toutes les parties parviennent à un consensus afin de valider les données, chaque nœud peut les récupérer automatiquement auprès des autres nœuds du réseau en cas de perte. Cette redondance fait partie intégrante de toute chaîne de blocs et ne nécessite aucune ressource supplémentaire. Finalement, une grande partie de l’espace de stockage est utilisée pour exécuter les processus autonomes d’établissement de consensus. Il est important de noter que l’espace nécessaire pour accomplir cette tâche augmentera au fil du temps, même si aucune donnée n’est ajoutée à la chaîne de blocs.
Conclusion
Selon ces cas d’utilisation, nous pouvons conclure qu’une chaîne de blocs nécessite beaucoup plus d’espace de stockage qu’une base de données centralisée, même si cette dernière comporte des erreurs imprévisibles et des lacunes en matière de confiance. Néanmoins, puisque le prix moyen d’un gigaoctet diminue de façon constante, c’est peu cher payé pour profiter d’une source de données reposant sur une confiance distribuée* qui résout les problèmes de façon autonome et ne comporte aucun point de défaillance. Les bases de données centralisées sont une option plus efficace pour les organisations pour lesquelles les coûts de stockage posent problème, mais elles devront toujours recourir à une solution tierce de confiance.
En plus d’héberger les données brutes, la chaîne de blocs contient tout le nécessaire pour parvenir à un consensus et permettre aux parties prenantes d’accéder à des données valides. Contrairement aux bases de données centralisées, dont les coûts liés à la résolution de problèmes augmentent à mesure que le système gagne en complexité (lorsqu’on y ajoute de nouveaux acteurs, par exemple), les frais associés à l’exploitation d’une chaîne de blocs demeurent constants. Les seuls coûts qui augmentent sont ceux liés à l’espace de stockage. Bien sûr, il y a plusieurs facteurs autres que l’espace de stockage à considérer avant de mettre en œuvre une chaîne de blocs. La décision d’aller de l’avant (ou non) doit toujours être prise après avoir pesé le pour et le contre, comme c’est le cas pour toute technologie.
CGI croit que les chaînes de blocs s’avéreront utiles pour soutenir, voire accélérer, la transition énergétique. Pour en savoir davantage au sujet de notre vision en matière de chaînes de blocs, lisez notre étude technique sur les occasions pour le secteur de l’énergie ou notre article sur l’utilisation de la chaîne de blocs au sein de systèmes de production d’énergie décentralisés**.
*Une chaîne de blocs n’est pas nécessairement un système de confiance. Elle élimine plutôt le besoin d’accorder sa confiance à chacune des parties prenantes. Pour en savoir davantage à ce sujet, lisez l’article « What do we mean by "blockchains are trustless?" »**.
**En anglais seulement