# 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.
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) utilisant des contrats intelligents nécessitant l'accès à des informations extérieures.

## 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$^,$.

### 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. Les oracles blockchain peuvent être classés en fonction d'un certain nombre de qualités différentes:
* 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. À 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. 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. 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. L'utilisation d'oracles peut également être à l'origine de la création de marché spécifiques. C'est le cas d'Augur (en) qui est à l'origine de marché prédictifs utilisant leurs propres oracles.

## 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'oracles 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. 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 (en) : 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