Réponses>Découvrir les bases de la blockchain>Données « on-chain » et « off-chain » : quelle est la différence ?
Données « on-chain » et « off-chain » : quelle est la différence ?
// Tags
sur la chaîne vs hors chaînestockage des données sur la blockchain
En bref : les données « on-chain » sont stockées directement sur la blockchain, ce qui les rend permanentes, transparentes et vérifiables par tout le monde. Les données « off-chain » sont stockées en dehors de la blockchain, généralement sur des serveurs traditionnels, des réseaux de stockage décentralisés comme l’IPFS ou des bases de données privées. La plupart des applications concrètes combinent ces deux approches : elles conservent les informations critiques sur la blockchain tout en stockant les données plus volumineuses ou moins essentielles hors de celle-ci, afin de réduire les coûts et d’améliorer les performances.
L'explication simple
Chaque blockchain dispose d’un espace limité. Stocker des données sur la blockchain implique de les inscrire dans une transaction ou dans l’état d’un contrat intelligent, qui sont ensuite enregistrés de manière permanente sur tous les nœuds du réseau. Cela rend les données inviolables et accessibles à tous, mais cela a un coût. Sur Ethereum, le stockage de seulement 32 octets de données peut coûter plusieurs dollars, en fonction du prix du gaz. Stocker une image ou un document entier sur la blockchain reviendrait à un coût prohibitif.
C’est là qu’interviennent les données hors chaîne. Au lieu de stocker une image dans son intégralité sur la blockchain, un développeur peut choisir de stocker l’image sur IPFS (un réseau décentralisé de stockage de fichiers) et de n’enregistrer sur la blockchain que le hachage du contenu IPFS. L’enregistrement sur la blockchain atteste de la nature des données, tandis que le stockage hors chaîne les conserve effectivement. Cette approche hybride vous offre la vérifiabilité de la blockchain tout en bénéficiant de l’évolutivité des systèmes de stockage traditionnels ou décentralisés.
Considérez cela comme un acte de propriété. L'acte lui-même (un petit document essentiel attestant de la propriété) est enregistré au greffe du comté. Mais la maison proprement dite, les plans, les rapports d'inspection et les photos se trouvent tous ailleurs. L'acte renvoie à la propriété. La blockchain fonctionne de la même manière : elle stocke les preuves essentielles et les références, tandis que les ensembles de données plus volumineux sont stockés hors chaîne.
Qu'est-ce qui est considéré comme des données « on-chain » ?
Les données « on-chain » englobent tout ce qui est enregistré de manière permanente dans l'état de la blockchain ou dans l'historique des transactions. Cela comprend les enregistrements de transactions (expéditeur, destinataire, montant, horodatage), le code des contrats intelligents et leurs variables d'état (soldes des jetons, registres de propriété, votes de gouvernance), les journaux d'événements générés par les contrats intelligents, ainsi que les métadonnées des blocs, telles que les horodatages et les informations relatives aux validateurs.
Lorsqu'un utilisateur échange des jetons sur une bourse décentralisée, l'intégralité de la transaction, y compris les montants, les adresses concernées et les modifications d'état qui en découlent, est enregistrée sur la blockchain. Lorsqu'un NFT est créé, l'identifiant du jeton, l'adresse du propriétaire et l'URI des métadonnées sont tous stockés dans l'état sur la blockchain du contrat intelligent. Ces données sont immuables une fois confirmées, ce qui signifie que personne ne peut les modifier rétroactivement.
Ce sont les données sur la chaîne qui confèrent à la blockchain sa principale valeur ajoutée : la vérification sans tiers de confiance. Toute personne exploitant un nœud ou interrogeant un point de terminaison RPC peut vérifier de manière indépendante n'importe quelle donnée sur la chaîne sans avoir recours à un tiers. Il s'agit de la seule source de vérité pour le réseau.
Qu'est-ce qui est considéré comme des données hors chaîne ?
Les données hors chaîne désignent tout ce qui existe en dehors de la blockchain mais qui est référencé par l'activité sur la chaîne ou qui s'y rapporte. Cela inclut les images NFT et les fichiers de métadonnées stockés sur IPFS ou sur des serveurs centralisés, les grands ensembles de données utilisés par les dapps (profils d'utilisateurs, historiques de commandes, analyses), les flux de données d'oracles qui intègrent des informations du monde réel (prix, météo, résultats sportifs) dans la blockchain, les données de transaction de la couche 2 avant leur regroupement et leur règlement sur la couche 1, ainsi que les interfaces utilisateur et les API qui interagissent avec les contrats intelligents.
La pratique la plus courante consiste à stocker sur la blockchain un hachage de contenu ou une URI renvoyant vers des données hors chaîne. Par exemple, la plupart des contrats intelligents NFT stockent une « tokenURI » qui renvoie vers un fichier de métadonnées au format JSON hébergé sur IPFS ou sur un serveur web. Ce fichier JSON contient l'URL de l'image, sa description et ses attributs. La blockchain connaît ce pointeur. Le système hors chaîne contient les données proprement dites.
Les oracles tels que Chainlink constituent un pont essentiel entre les mondes « on-chain » et « off-chain ». Les contrats intelligents ne peuvent pas accéder nativement à des données externes. Ils ne peuvent pas consulter le cours d'une action, vérifier un événement météorologique ou confirmer une expédition dans le monde réel. Les oracles récupèrent ces données « off-chain » et les transmettent « on-chain » de manière vérifiable, permettant ainsi aux contrats intelligents de réagir aux événements du monde réel.
Les compromis
Le choix entre le stockage « on-chain » et « off-chain » dépend des critères de coût, de rapidité, de permanence et de confiance. Le stockage « on-chain » est coûteux, mais permanent et ne nécessite aucune confiance. Le stockage hors chaîne est bon marché et rapide, mais implique une dépendance vis-à-vis de systèmes externes. Si l’image d’un NFT est stockée sur un serveur centralisé et que ce serveur tombe en panne, le NFT existe toujours sur la chaîne, mais l’œuvre d’art qu’il représente devient inaccessible. Si l’image se trouve sur IPFS et que personne ne la « fixe » (pinning), la même situation peut se produire.
Les protocoles de stockage décentralisés tels que l’IPFS et Arweave visent à résoudre ce problème en répartissant les fichiers sur un réseau de nœuds plutôt qu’en s’appuyant sur un seul serveur. L’IPFS utilise un stockage à adressage par contenu, ce qui signifie que les fichiers sont référencés par leur hachage cryptographique plutôt que par l’emplacement d’un serveur. Tant qu’au moins un nœud du réseau « épingle » le fichier, celui-ci reste accessible. Arweave va plus loin en encourageant le stockage permanent grâce à un modèle de paiement unique.
Pour les développeurs qui créent des applications de production, l'architecture consiste généralement à conserver sur la blockchain tous les états critiques sur le plan financier (soldes, propriété, autorisations), à stocker les actifs volumineux sur des solutions de stockage décentralisées telles que l'IPFS, à mettre en cache les données fréquemment consultées dans des bases de données hors chaîne pour optimiser les performances, et à utiliser des indexeurs et des pipelines de données pour permettre l'interrogation des données sur la blockchain.
Quelle est la différence entre les données « on-chain » et « off-chain » ?
Les données « on-chain » et « off-chain » se distinguent par leur emplacement et les garanties qu’elles offrent. Les données « on-chain » sont inscrites dans le registre d’une blockchain et validées par chaque nœud, tandis que les données « off-chain » sont stockées dans des systèmes externes auxquels la chaîne se contente de faire référence. Le tableau ci-dessous les compare selon les critères les plus importants.
Attribut
Données sur la chaîne
Données hors chaîne
Lieu
Stockées dans des blocs et dans l'état du contrat
Serveurs, IPFS ou bases de données
Coût
Élevé, payé en essence par octet
Tarifs de stockage bas et standard
Vitesse
Limité par la durée des blocs
Lectures et écritures rapides, quasi instantanées
Permanence
Inaltérable une fois confirmé
Modifiable sauf s'il est verrouillé ou archivé
Transparence
Public et vérifiable par tout le monde
Privé ou à accès contrôlé
Modèle de confiance
Sans tiers de confiance, sécurisé par consensus
Cela dépend de l'hôte ou du réseau de stockage
Idéal pour
Soldes, propriété, justificatifs
Images, fichiers volumineux, données analytiques mises en cache
Quand faut-il stocker les données sur la blockchain plutôt qu'hors chaîne ?
La règle générale est simple : conservez sur la chaîne tout ce qui doit être « trustless », définitif et vérifiable publiquement, et transférez tout le reste hors chaîne afin de réduire les coûts et de gagner en rapidité. Le tableau ci-dessous met en correspondance les types de données courants avec la couche de stockage qui leur convient le mieux.
Type de données
Lieu recommandé
Pourquoi ?
Soldes et détention des jetons
Sur la chaîne
Doit être « trustless » et définitif
Logique des contrats intelligents
Sur la chaîne
L'exécution doit pouvoir être vérifiée
Fichiers multimédias NFT et métadonnées
Hors chaîne (IPFS)
Trop volumineux et trop coûteux pour être stockés sur la blockchain
Analyses et index de recherche
Hors chaîne
Nécessite des requêtes rapides, reconstruites à partir des données de la chaîne
Flux de données issues du monde réel
Hors chaîne via des oracles
Les chaînes ne peuvent pas récupérer de données externes
La logique qui assure le respect de ces règles est intégrée dans des contrats intelligents, et la partie hors chaîne repose généralement sur l'indexation de la blockchain pour transformer les événements bruts de la chaîne en enregistrements rapides et consultables. Si vous cherchez à déterminer comment lire l'état à grande échelle, découvrez comment les équipes abordent l'interrogation des données de la blockchain.
Les transactions de couche 2 et les transactions « rollup » s'effectuent-elles sur la chaîne ou hors chaîne ?
Les transactions de couche 2 commencent hors chaîne et passent sur la chaîne une fois qu'elles sont finalisées. Une blockchain de couche 2 exécute les transactions sur une couche distincte pour gagner en rapidité ; ensuite, un « rollup » regroupe un grand nombre d'entre elles et renvoie les données compressées ainsi qu'une preuve vers la couche 1. L'exécution se fait donc hors chaîne, mais les données finales et la sécurité reposent sur la chaîne. Les deux principaux modèles, les « rollups » optimistes et les « rollups » ZK, diffèrent dans la manière dont ils prouvent la validité du travail hors chaîne regroupé.
Comment les oracles relient-ils les données hors chaîne à la blockchain ?
Les contrats intelligents ne peuvent pas accéder à Internet de manière autonome ; ils s'appuient donc sur des oracles pour intégrer des informations hors chaîne dans la chaîne. Un réseau d’oracles récupère des données externes, telles que les cours des actifs ou les résultats d’événements, parvient à un accord sur la valeur, puis l’inscrit dans un contrat que d’autres contrats peuvent lire. C’est ainsi qu’un protocole DeFi peut réagir à un cours du marché ou qu’un contrat d’assurance peut répondre à un événement du monde réel, tout en conservant sur la chaîne la valeur finale sur laquelle l’action est fondée, et en la rendant vérifiable.
Foire aux questions
Les données hors chaîne sont-elles sécurisées ?
C'est possible, mais les garanties ne sont pas les mêmes. Les données hors chaîne héritent de la sécurité de l'endroit où elles sont stockées ; ainsi, un serveur centralisé constitue un point de défaillance unique, tandis que les réseaux à adressage par contenu, comme IPFS ou Arweave, répartissent les copies sur de nombreux nœuds. Le stockage sur la chaîne d'un hachage cryptographique des données hors chaîne permet à quiconque de vérifier que la charge utile hors chaîne n'a pas été altérée.
Que devient un NFT si l'image hors chaîne qui lui est associée n'est plus accessible ?
Le jeton lui-même existe toujours sur la blockchain, mais l'œuvre d'art à laquelle il renvoie peut devenir inaccessible si l'hébergeur disparaît et que personne ne « fixe » le fichier. C'est pourquoi les projets sérieux stockent les médias NFT sur IPFS ou Arweave et conservent le hachage du contenu sur la blockchain plutôt qu'une URL web fragile.
Les contrats intelligents peuvent-ils lire directement des données hors chaîne ?
Non. Les contrats intelligents sont déterministes et isolés du monde extérieur ; ils ne peuvent donc pas effectuer d'appels réseau. Ils dépendent d'oracles pour que les données hors chaîne soient transmises sur la chaîne sous une forme vérifiable avant de pouvoir les utiliser.
IPFS fonctionne-t-il « on-chain » ou « off-chain » ?
IPFS fonctionne hors chaîne. Il s'agit d'un réseau de stockage décentralisé qui héberge des fichiers en dehors de la blockchain, tandis que celle-ci ne stocke généralement que le hachage du contenu IPFS qui pointe vers ces fichiers.
Comment accéder aux données historiques de la blockchain ?
L'état actuel est facile à consulter depuis n'importe quel nœud, mais l'historique complet nécessite souvent des nœuds d'archivage ou un pipeline de réintégration. Consultez la section « Accès aux données historiques de la blockchain » pour découvrir les approches courantes et leurs avantages et inconvénients.
Le rôle de Quicknode
Travailler à la fois avec des données « on-chain » et « off-chain » nécessite une infrastructure fiable. L’API Core de Quicknode vous offre un accès RPC à faible latence à plus de 80 chaînes pour lire et écrire des données « on-chain ». Quicknode Streams vous permet de capturer des événements de blockchain en temps réel et de les acheminer vers des destinations « off-chain » telles que des webhooks, des bases de données PostgreSQL ou des compartiments S3, facilitant ainsi la création de pipelines de données qui relient les mondes « on-chain » et « off-chain ». Pour le stockage décentralisé, le service de « pinning » IPFS de Quicknode et ses passerelles dédiées vous permettent de stocker et de récupérer du contenu hors chaîne sans avoir à gérer vos propres nœuds IPFS.