La plupart des blockchains reposent sur des services d’oracle pour intégrer des données du monde réel dans des smart contracts. L’Internet Computer de @dfinity adopte une approche différente, en intégrant directement cette couche de confiance dans son propre mécanisme de consensus.
Comment fonctionnent les outcalls HTTPS
La fonctionnalité permet aux smart contracts d’appeler directement des serveurs HTTP(S) externes à la blockchain et d’utiliser la réponse dans un traitement ultérieur, sans avoir besoin d’oracles. Elle prend actuellement en charge les méthodes GET, HEAD et POST pour les requêtes HTTP.
Les mécanismes sont simples, mais délibérés. Chaque nœud du sous-réseau qui héberge le smart contract interroge séparément la même URL. Plus des deux tiers de ces nœuds doivent se mettre d’accord sur la réponse avant que le contrat puisse agir, un seuil qui reflète la conception plus large de tolérance aux fautes byzantines d’ICP. Le protocole est conçu pour tenir tant que moins d’un tiers des nœuds d’un sous-réseau sont hors ligne ou malveillants.
Sur un sous-réseau standard de 13 nœuds, cela signifie que 13 appels identiques atteignent l’API cible en même temps. Pour permettre aux nœuds de parvenir à un accord sur ce qu’ils reçoivent, une fonction de transformation côté contrat supprime des parties d’une réponse qui varient naturellement d’une requête à l’autre, comme les horodatages, afin que des nœuds honnêtes puissent produire un résultat concordant. Les développeurs sont également invités à ajouter des clés de déduplication pour empêcher les serveurs de traiter plusieurs fois la même requête logique.
Pourquoi c’est important
L’architecture présente plusieurs avantages pratiques par rapport au modèle d’oracle traditionnel. La décentralisation obtenue grâce aux appels HTTPS sortants est la meilleure possible, car elle n’implique que les réplicas du sous-réseau et le service externe à appeler, sans tiers tels que des services d’oracle. Les utilisateurs obtiennent généralement un service moins coûteux, car les intermédiaires d’oracle sont supprimés, et la latence des appels HTTP directs est plus faible que celle consistant à acheminer une requête via un contrat d’oracle.
Les cas d’usage incluent l’obtention de taux de change en temps réel pour construire des applications DeFi et l’interrogation de données météorologiques pour des produits d’assurance décentralisés. Les appels HTTPS sortants permettent aussi d’envoyer des notifications push et des e-mails via des canaux de communication traditionnels, ainsi que l’intégration à d’autres blockchains en communiquant avec des nœuds cloud basés sur HTTP.
Pour les développeurs, l’arbitrage est le suivant : l’API externe doit pouvoir gérer le pic d’un grand nombre de requêtes simultanées identiques provenant de chaque nœud du sous-réseau. Un usage approprié de la déduplication et des transformations de réponse est donc essentiel au fonctionnement fiable.
Sources :
Internet Computer : appels HTTPS sortants, fonctionnement (documentation officielle)
Internet Computer : utiliser les appels HTTPS sortants (documentation officielle)
Actualités FF : la blockchain ICP introduit les appels HTTPS sortants pour stimuler l’essor de Web3
