Explorateurs de blocs : la blockchain est-elle vraiment transparente ?
- Transparence : en raison de son caractère public et accessible, la blockchain permet à chacun d’accéder à l’historique des transactions, en incluant les montants, les expéditeurs et les destinataires.
- Traçabilité : toute la donnée est accessible depuis le premier bloc créé, ce qui permet de suivre le cycle de vie d’un token1, ou d’identifier l’origine des fonds d’une personne.
- Immutabilité : une donnée enregistrée ne peut plus être modifiée, car les mécanismes cryptographiques empêchent toute altération de l’historique de la blockchain. De plus, les données enregistrées sont accessibles à toutes les personnes du réseau et une modification ne serait donc pas autorisée.
Cependant, comment accéder réellement à ces données ? L’accès reste complexe et demeure aujourd’hui largement centralisé.
Accéder aux données de manière simple et directe
Les personnes qui s'intéressent à la blockchain et aux crypto-monnaies utilisent généralement des explorateurs de blocs. Ces outils permettent de consulter l'état d'une transaction récente et d’en vérifier le solde. Ils offrent un accès simple et visuel à toutes les transactions publiques d’une blockchain.
Il en existe une multitude, certains dédiés à une blockchain, d’autre compatibles avec plusieurs2. Le point commun entre ces explorateurs de blocs ? Ce sont des « boites noires ».
Nous ignorons comment les données sont collectées et traitées. De plus, la plupart ne sont pas open source, c’est-à-dire que leur code n’est pas accessible en ligne. C’est paradoxal pour une technologie qui prône la transparence. Malgré la promesse de transparence, utiliser un site web non audité et non vérifié pour vérifier ses soldes comporte des risques réels, car les informations affichées peuvent être inexactes. Le risque est d’autant plus accru pour les professionnels ayant des besoins légaux en matière de vérification des soldes ou des transactions.
Mais les risques ne se limitent pas uniquement aux sites web eux-mêmes. Nous pouvons notamment être confrontés à :
- Des attaques de type « man in the middle », où un individu malveillant s’intercale entre notre ordinateur et l’explorateur de blocs pour transmettre des informations falsifiées en se faisant passer pour le site d’origine.
- Une éventuelle censure par les acteurs géants du cloud, étant donné que la majorité des explorateurs de blocs sont hébergés sur des plateformes telles qu’AWS (Amazon Web Services), GCP (Google Cloud Platform) ou Azure.
De plus, une vingtaine d’explorateurs de blocs existent aujourd’hui. Ce monopole peut impacter l’usage de la blockchain : en cas de défaillance des principaux explorateurs, de nombreux utilisateurs pourraient temporairement délaisser ces blockchains par mesure de précaution.
Mais alors, comment parcourir les données de la blockchain sans ces explorateurs de blocs ?
Accéder aux données sans tiers
Pour pouvoir accéder aux données de manière autonome, sans l’intervention d’un tiers, un des prérequis est de disposer de son propre nœud blockchain.
Pour comprendre ce qu’est un nœud blockchain, il convient d’examiner le fonctionnement même de cette technologie. Une blockchain se définit comme un réseau d’utilisateurs partageant une base de données commune qui regroupe l’ensemble des transactions effectuées. Chaque utilisateur transmet ses données en temps réel aux autres participants dans le but de vérifier constamment la véracité des données reçues. Cette démarche requiert l’utilisation de nœuds : des programmes informatiques permettant de réaliser ces actions.
ll existe différents types de nœuds blockchain : light node, full node et archive node. Chaque nœud conserve plus ou moins d’informations, nécessitant ainsi différents niveaux de stockage et de temps de synchronisation.
Par défaut, un nœud blockchain expose une interface, une « porte d’entrée », appelée RPC (Remote Procedure Call) permettant d’accéder à certaines données. Ce RPC donne accès aux données des smart contracts, au solde d’une adresse, ainsi qu’aux reçus de transaction. Grâce aux différentes fonctions proposées par le RPC, il est possible de parcourir et de récupérer un large éventail de données. Ces fonctions varient selon la blockchain concernée, tout comme les paramètres associés.
En outre, il n’est pas obligatoire d’utiliser son propre nœud pour accéder à ces données. En effet, des prestataires spécialisés proposent des RPC publics afin de requêter les données. C’est notamment le cas de Infura ou Alchemy. Toutefois, ces systèmes comportent certaines limites : des tarifs parfois élevés, un nombre d’appels limité par jour ou par minute, et des questions de de transparence puisque les appels sont tracés et l’identité de l’appelant est enregistrée. Il appartient à l’utilisateur final de juger si ces contraintes sont acceptables en contrepartie de la mise en place d’un protocole RPC public et simple d’utilisation.
De plus, les fonctions disponibles via RPC sont généralement limitées car les données disponibles diffèrent selon les clients de nœuds (Geth, Erigon, Bitcoin core, etc) et selon les blockchains concernées. De plus, il n’existe aucune fonction permettant de récupérer l’ensemble des transactions pour une adresse spécifique, ce qui est l’une des principales fonctionnalités proposées par les explorateurs de blocs.
Mais alors, comment parcourir les transactions sans recourir à ces explorateurs de blocs ?
Parcourir les transactions sans tiers
Pour pouvoir parcourir les transactions, par adresse ou selon une période spécifique, il est essentiel de comprendre où sont stockées ces transactions. L’ensemble des transactions est reçu en temps réel via les nœuds de la blockchain. Il est donc nécessaire de disposer d'une méthode efficace permettant de collecter ces transactions dès qu'elles arrivent sur le nœud concerné. À cette fin, l'utilisation d'un indexeur s'impose.
L’indexeur collecte les transactions dès qu’elles sont disponibles sur le nœud, puis les organise dans une base de données indexée par adresses. Ainsi, en accédant directement à cette base de données, il est possible d’utiliser les mêmes fonctionnalités qu’un explorateur de blocs. Ces mêmes indexeurs sont utilisés par les explorateurs de blocs aujourd'hui.
Plusieurs points subsistent tout de même :
- La synchronisation d’un indexeur nécessite un archive node, ce qui implique beaucoup de stockage et de puissance.
- Les coûts de stockage de la base de données et de calcul pour l’indexeur peuvent être très élevés, parfois deux fois supérieurs à ceux de l’archive node.
- Implémenter un indexeur est complexe : il faut maîtriser la programmation, comprendre les spécificités de la blockchain3 et avoir des compétences en bases de données pour optimiser l’accès aux données.
Des indexeurs open source ont été afin de simplifier le développement et la gestion des bases de données associées. Toutefois, malgré leur caractère open source, la mise en œuvre d'un indexeur demeure complexe en raison des ressources nécessaires, telles qu’un archive node, un espace de stockage conséquent et une puissance de calcul appropriée.
Ce tableau présente un récapitulatif des diverses technologies présentées précédemment :
| Abonnement | Stockage nécessaire | Puissance nécessaire | Complexité de mise en place | Transparence | Fiabilité des données |
|---|---|---|---|---|---|---|
| Explorateur de blocs | 0 | 0 | 0 | 0 | ++ | + |
| Indexeur open source | 0 | +++ | +++ | ++ | ++++ | +++ |
| Indexeur custom | 0 | +++ | +++ | +++ | ++++ | ++++ |
| RPC public | + | 0 | 0 | 0 | + | ++ |
| RPC privé | 0 | ++ | ++ | + | ++++ | +++ |
L'univers des explorateurs de blocs sur la blockchain est parfois assimilé à des « boîtes noires » susceptible de ne fournir qu’une vision partielle ou fausse des transactions. Cependant, l’accès aux données via les RPC ou le développement de son indexeur personnalisé ouvre la voie à une transparence accrue. Les utilisateurs ont alors la possibilité d’examiner et d’analyser de façon autonome les transactions associées à une adresse spécifique. Cette démarche vise à rendre l’information sur la blockain plus accessible, contribuant ainsi à une meilleure compréhension de cette technologie innovante.
Explorer et analyser les données blockchain de façon personnalisée permet une approche plus ouverte et participative. Et il est intéressant de noter qu’à ce jour, aucun explorateur blockchain n’a sciemment publié de fausses données, malgré leur usage quotidien par de nombreux utilisateurs.
1Un token est une unité numérique créée sur une blockchain, qui peut représenter une valeur (comme une cryptomonnaie), un actif, un droit ou même un accès à un service.
2Voici une liste non exhaustive des explorateurs de blocs les plus connus : Blockchains EVMS (Ethereum, Binance Smart Chain, Polygon, Fantom) : Etherscan ou ethplorer ; Tezos : TzKT ou TzStats ; Solana : Solana explorer ou Solscan ; Bitcoin : Blockstream ou Mempool ; Cosmos : Atomscan ou Mintscan ; Avalanche : Snowtrace ou Avascan
3Par exemple, le modèle UTXO sur bitcoin est différent du modèle account-based sur Ethereum
