Grâce aux smart contracts (ou contrats intelligents), il est possible d’automatiser des transactions si les conditions nécessaires à leur exécution sont réunies. Fondamentalement, la vérification des termes des ces contrats se fait sur la base de données stockées dans la Blockchain.
Mais que se passe-t-il lorsque ces informations ne sont pas disponibles sur ledit réseau informatique ? Dans cet article, vous découvrirez ce qu’est un oracle blockchain, à quoi ça sert, quels sont les types d’oracles blockchain existants et quelles sont les limites à l’émergence de ces outils.
Qu’est-ce qu’un oracle blockchain ?
Les oracles sont des services utilisés par les smart contracts pour accéder à des informations se trouvant en dehors de la Blockchain (encore appelées données off-chain).
De nos jours, la quantité de données informatiques enregistrées sur la Blockchain reste limitée. La raison en est que l’utilisation de cette base de données décentralisée est encore très peu répandue auprès des entreprises et des particuliers.
Par conséquent, la majorité des informations pertinentes dont les smart contracts ont besoin pour la prise de décision sont stockées dans des systèmes centralisés, en dehors de la Blockchain.
Les oracles interviennent alors comme des interfaces entre les contrats intelligents et le monde réel en leur fournissant des renseignements tels que la température d’une ville à un moment précis, le résultat d’une élection ou le statut d’un vol.
Pour ce faire, ils extraient lesdites informations de sources externes (site web, objets connectés, humains,…), les vérifient, avant de les partager avec les smart contracts.
Quels sont les différents types d’oracles blockchain ?
Les oracles peuvent être regroupés en catégories en fonction des caractéristiques suivantes :
- la nature de la source des données : il s’agit de savoir si l’information concernée provient d’une instance logicielle, matérielle ou humaine ;
- le sens de circulation des flux : les informations sont-elles transmises de l’extérieur vers la Blockchain ou de la Blockchain vers l’extérieur ?
- la confiance : la structure de collecte et de validation des données est-elle centralisée ou décentralisée ?
Les oracles logiciels et les oracles matériels
Les oracles logiciels constituent le type d’oracle le plus répandu. Ici, les données sont recueillies à partir du réseau Internet (bases de données, serveurs, sites web,…). Les informations collectées peuvent être par exemple le cours des devises, le classement d’un championnat ou la météo. Ces données sont transmises en temps réel aux smart contracts afin de leur indiquer s’ils doivent ou non se déclencher.
Quant à eux, les oracles matériels exploitent les informations fournies par des dispositifs matériels opérant dans le monde réel comme des terminaux de collecte de données (capteurs IoT, lecteurs RFID, lecteurs de codes-barres,…). Les informations ainsi récoltées permettent de suivre les itinéraires des objets le long de la chaîne d’approvisionnement grâce à l’historique des événements enregistrés et publiés sur la Blockchain.
Les oracles humains
Parfois, les contrats intelligents reçoivent des informations directement de sources humaines. En tant qu’oracles, elles se chargent de rechercher et de vérifier l’authenticité des informations requises. Ensuite, elles les numérisent afin de les rendre compréhensibles par les smart contracts. Grâce aux procédés cryptographiques exploités par la Blockchain, il y a peu de risques que des hackers usurpent l’identité de ces oracles pour fournir des données inexactes aux contrats intelligents.
Les oracles d’entrée et de sortie
Les oracles d’entrée transmettent des informations de sources externes vers la Blockchain (ou plus précisément vers les smart contracts). Ils permettent d’automatiser diverses actions qui dépendent de données off-chain. Par exemple, l’on peut imaginer un oracle d’entrée permettant d’initier un contrat intelligent dont le but est de transférer des actifs à titre d’ indemnité si une compagnie aérienne annule un de ses vols.
À l’inverse, les oracles de sortie envoient les informations des smart contracts vers l’extérieur. Ces oracles peuvent être utilisés par exemple pour agir sur des objets connectés si une transaction est validée sur la Blockchain. Un cas d’utilisation concret est celui d’un distributeur de boissons qui accepte les paiements en cryptomonnaies.
Les oracles centralisés et décentralisés
Les oracles centralisés ont la particularité de dépendre d’une seule source de données. C’est cette dernière qui fournit et vérifie les données qui seront utilisées par les smart contracts. Ce type d’oracle est moins sécurisé puisque le fournisseur peut transmettre des données erronées aux contrats intelligents. De plus, si le service en question cesse de fonctionner, les smart contracts ne recevront plus les données nécessaires à la prise de décision.
À contrario, les oracles décentralisés intègrent une démarche de collecte et de vérification des donnés distribuée. Ainsi, ces opérations sont menées de manière collective et en simultané par plusieurs nœuds indépendants. Ceux-ci doivent parvenir à un consensus pour valider les différentes informations recueillies. C’est la raison pour laquelle on parle souvent d’oracle de consensus.
Les défis des oracles blockchain ?
Le principal défi des oracles blockchain est la confiance. En effet, pour que les oracles soient plus largement utilisés, il faudrait que les utilisateurs aient la certitude que ces sources d’information sont fiables, qu’il s’agisse d’un serveur, d’un scanner de codes-barres ou d’un individu.
Comme mentionné ci-dessus, ce sont des services tiers qui n’appartiennent pas directement à l’infrastructure blockchain. Par conséquent, ils ne sont pas soumis aux mêmes protocoles de sécurité que cette dernière. Heureusement, il existe des technologies et des méthodes qui peuvent être exploitées pour renforcer le sentiment de sécurité, notamment la diversification des sources d’informations et le consensus de validation de données.
En ce qui concerne les oracles centralisés, la réputation est un facteur à ne pas sous-estimer. En effet, les prestataires fournissant ce type de service ont tout intérêt à fournir aux smart contracts des données fiables afin de ne pas perdre leur crédibilité.
Par ailleurs, la communication entre les smart contracts et les oracles se faisant principalement via Internet, il existe un risque d’attaques de type “man-in-the-middle“. Cette pratique consiste à intercepter les messages chiffrés entre deux serveurs. Le pirate peut alors recevoir des messages des deux parties et envoyer des réponses à l’une des parties en se faisant passer pour l’autre. Là encore, il existe des techniques pour prévenir ces intrusions.
La question de la robustesse des oracles est d’une importance capitale puisque les contrats intelligents en ont besoin pour prendre des décisions et déclencher des actions spécifiques.
Cette problématique constitue également un obstacle à l’adoption généralisée des smart contracts. Néanmoins, il existe des solutions telles que Chainlink et Band Protocol qui se distinguent nettement sur le marché.