Oracle de blockchain
Un oracle de blockchain est une entité de confiance faisant partie d'un réseau informatique, transportant des informations du monde physique vers un contrat intelligent[1].
Il crĂ©e le lien entre le monde physique et une blockchain que des contrats intelligents parcourent, et permet Ă ces contrats de ne pas ĂȘtre limitĂ©s aux informations internes Ă la blockchain. Cette technologie est utilisĂ©e actuellement par des applications dĂ©centralisĂ©es (DApps[2]) utilisant des contrats intelligents nĂ©cessitant l'accĂšs Ă des informations extĂ©rieures[3].
Aspects techniques
Motivations
La nécessité des oracles est apparue à la suite de l'introduction de la technologie blockchain et des contrats intelligents. Ceux ci offrent des transferts d'informations décentralisés et sécurisés, mais ne peuvent pas accéder ou demander des informations extérieures à leur réseau. Les applications nécessitant le transfert de données et donc intéressées par l'utilisation de ces technologies sont limitées et ne peuvent pas accéder à certaines données (prix, prédictions météorologique, position GPS, ...). C'est ce que les oracles de sociétés comme Oraclize ou SmartContract cherchent à permettre[4] - [5].
Fonctionnement
Il n'existe pas de rĂšgles prĂ©cises pour le fonctionnement d'un oracle. De façon gĂ©nĂ©rale, un utilisateur en possession d'un contrat intelligent fait une requĂȘte Ă un service d'oracle pour accĂ©der Ă une ou des informations dont il a besoin. L'oracle va ensuite suivre une procĂ©dure pour trouver ces informations et les renvoyer au contrat intelligent. Cette procĂ©dure peut diffĂ©rer d'un service Ă un autre, le but Ă©tant d'offrir des transferts sĂ©curisĂ©s d'informations vĂ©ridiques. Typiquement, un rĂ©seau d'oracle peut choisir d'adopter une approche centralisĂ©e ou dĂ©centralisĂ©e, un point qui est sujet de controverse[6]. Les oracles blockchain peuvent ĂȘtre classĂ©s en fonction d'un certain nombre de qualitĂ©s diffĂ©rentes[7]:
- Source : les données proviennent-elles de logiciels, de matériel ou d'humains ?
- Direction de l'information : est-elle entrante ou sortante ?
- Confiance : est-elle centralisée ou décentralisée ?
Un seul oracle peut appartenir à plusieurs catégories. Par exemple, un oracle qui tire des informations d'un site Web d'entreprise est un oracle de logiciel entrant centralisé.
Approche centralisée et décentralisée
Un rĂ©seau d'oracles peut ĂȘtre centralisĂ© ou non. A l'heure actuelle, le service d'oracles principal en fonctionnement est centralisĂ© (Oraclize). Un rĂ©seau dĂ©centralisĂ© est plus dĂ©licat Ă mettre en place, la difficultĂ© Ă©mergeant du fait de ne pas pouvoir s'assurer de la provenance d'une information. Des projets d'oracles dĂ©centralisĂ©s comme ChainLink sont en phase de test et donnent des rĂ©sultats convaincants[8]. Une approche dĂ©centralisĂ©e permet aux informations renvoyĂ©es de ne pas dĂ©pendre d'un acteur central. Tandis que les deux approches ont leurs avantages, le modĂšle de sĂ©curitĂ© d'une blockchain et des contrats intelligents suivent une approche dĂ©centralisĂ©e. Les oracles y Ă©tant directement liĂ©s, la volontĂ© de la majoritĂ© des projets et utilisateurs est d'avoir accĂšs Ă des oracles dĂ©centralisĂ©s.
Aspects Ă©conomiques
Lorsqu'un utilisateur nĂ©cessite un service d'oracles, il rĂ©munĂšre un fournisseur pour un certain nombre d'oracles qui lui donneront accĂšs aux informations dont il a besoin. Ces oracles sont liĂ©s Ă une blockchain spĂ©cifique que l'utilisateur aura choisie. Dans le cadre d'un rĂ©seau centralisĂ©, le service d'oracles est directement rĂ©munĂ©rĂ© pour les oracles qu'il met en place[6]. Dans celui d'un rĂ©seau dĂ©centralisĂ©, le service rĂ©munĂšre des opĂ©rateurs de nĆuds qui permettent aux diffĂ©rents oracles utilisĂ©s de fonctionner. Dans le cas de Chainlink par exemple, les opĂ©rateurs de nĆuds sont rĂ©munĂ©rĂ©s par des jetons Link, une cryptomonnaie crĂ©Ă©e par ChainLink dĂ©diĂ©e Ă leurs oracles[8]. L'utilisation d'oracles peut Ă©galement ĂȘtre Ă l'origine de la crĂ©ation de marchĂ© spĂ©cifiques. C'est le cas d'Augur qui est Ă l'origine de marchĂ© prĂ©dictifs utilisant leurs propres oracles[9].
Sécurité et confiance
Les principaux obstacles des oracles concernent les aspects de sĂ©curitĂ© et de confiance au niveau de la vĂ©racitĂ© des informations qu'ils renvoient. Un rĂ©seau centralisĂ© par exemple dĂ©pend d'un acteur central, une entreprise privĂ©e ou gouvernementale, qui peut techniquement altĂ©rer les informations renvoyĂ©es. La confiance dans la vĂ©racitĂ© des informations en devient donc la confiance dans le service d'oracle centralisĂ©s. Les informations peuvent Ă©galement diffĂ©rer d'une source Ă une autre indĂ©pendamment du service d'oracles. Des solutions sont mises en place pour ce genre de complications, notamment d'obtenir des informations de nombreuses sources diffĂ©rentes et de crĂ©er un systĂšme de rĂ©putation pour les opĂ©rateurs de nĆuds permettant de rĂ©compenser et privilĂ©gier le retour d'informations correctes[8]. Les oracles fonctionnent sur des rĂ©seaux informatiques et peuvent donc Ă©galement ĂȘtre sujet Ă des cyberattaques, nuisant Ă leur sĂ©curitĂ©. Les acteurs prĂ©tendant pouvoir offrir un service d'oracles optimal doivent donc surpasser ces difficultĂ©s et convaincre les utilisateurs.
Exemples de réseaux d'oracles
- Oraclize : principal service d'oracles centralisés fonctionnel et public
- Chainlink : réseau de la société SmartContract, acteur important dans la recherche de créations d'oracles décentralisés. Réseau fonctionnel mais encore à l'état de test
- Augur : réseau d'oracles en phase de test visant à créer des marchés prédictifs.
- Iexec: oracle factory permettant la crĂ©ation dâoracles personnalisĂ©s Ă partir de nâimporte quel type de donnĂ©es. Actuellement en bĂȘta test
Notes et références
- Vanessa Rabesandratana, « LâOracle hardware : la couche de confiance entre les blockchains et le monde physique », RĂ©alitĂ©s Industrielles,â (RĂ©alitĂ©s Industrielles)
- Sébastien Leguell, « Qu'est ce qu'une DApp (application décentralisée) ? », sur Au Coin du Bloc, (consulté le )
- (en) « Oraclize-based Ăapps », sur dapps.oraclize.it (consultĂ© le )
- « Oraclize Documentation », sur docs.oraclize.it (consulté le )
- Sergey Nazarov, « ChainLink, an Overview and Our Focus », sur Chainlink, (consulté le )
- « On decentralization of blockchain oracles (Part 1) â Oraclize », Oraclize,â (lire en ligne, consultĂ© le )
- (en) Abdeljalil Beniiche, « A Study of Blockchain Oracles », arXiv:2004.07140 [cs],â (lire en ligne, consultĂ© le )
- (en) Steve Ellis, Ari Juels et Sergey Nazarof, Chainlink a decentralized oracle network, , 38 p. (lire en ligne)
- (en) Jack Peterson, Joseph Krug, Micah Zoltu, Austin K. Williams et Stephanie Alexander, Augur: a Decentralized Oracle and Prediction Market Platform, , 19 p. (lire en ligne)