J'ai créé un contrat open-source et un web-front-end, OracleSwap, parce que je veux voir la cryptographie revenir à ses racines hors réseau. Je ne peux pas l'administrer car j'ai trop d'empreintes digitales dessus pour en bénéficier directement. OracleSwap est un modèle qui permet aux programmeurs d'administrer facilement des contrats faisant référence à des résultats objectifs : liquidités ou paris sportifs. Les utilisateurs créent des positions d'échange longues ou courtes (alias CFD) qui font référence à un contrat Oracle unique qui stocke les prix (le prototype fait référence à ETH/USD, BTC/USD et le S&P500). Les seuls utilisateurs de ce contrat sont les fournisseurs de liquidités, les investisseurs et Oracle. L'unique surface d'attaque se fait via un oracle conspirateur affichant un prix frauduleux. Il contient plusieurs innovations, notamment des prix de départ anticipés (comme le marché à la clôture), une exposition nette pour les fournisseurs de liquidités et la capacité et l'incitation pour les parties trompées à éliminer leur tricheur.
Le livre blanc et l'annexe technique le décrivent plus en détail, mais je souhaite expliquer pourquoi un oracle centralisé et pseudonyme est préférable à un oracle décentralisé pour les contrats intelligents. De nombreux leaders de la cryptographie réfléchis pensent que la décentralisation est une condition préalable à tout dapp sur la blockchain, qu'ils définissent comme impliquant de nombreux agents et un mécanisme de consensus. C'est tout simplement incorrect, une erreur de catégorie qui suppose que les parties doivent avoir toutes les caractéristiques du tout. L'essentiel est que les oracles décentralisés sont inefficaces et détournent l'attention du mécanisme fondamental qui rend tout oracle "sans confiance".
Après la première croisade (1099), les Templiers ont protégé les pèlerins vers Jérusalem nouvellement conquise et ont rapidement développé une première banque internationale. Un pèlerin pouvait déposer de l'argent ou des objets de valeur dans une forteresse templière et recevoir une lettre officielle décrivant ce qu'il possédait. Ce pèlerin pouvait alors retirer de l'argent en cours de route pour subvenir à ses besoins. Au 12ème siècle, les déposants pouvaient librement déplacer leur richesse d'une propriété à l'autre.
Les Templiers n'étaient sous le contrôle d'aucun monarque, et pire encore, beaucoup leur devaient de l'argent. Finalement, le roi Philippe IV de France s'est emparé d'une surface d'attaque en arrêtant des centaines de templiers de haut niveau, dont le Grand Maître, tous le même jour à travers l'Europe en 1307. Ils ont été accusés d'hérésie, la version médiévale du risque systématique, une menace claire pour tout ce qui est bon et noble. Quelques années plus tard, de nombreux Templiers ont été exécutés et le système bancaire templier a disparu [des Templiers inconnus ont pu s'enfuir avec leur immense fortune, qui à l'époque n'était pas numérique, et c'est un mystère où elle est allée].
Les gouvernements, les bourses et les institutions financières traditionnelles ont toujours combattu tout ce qui pourrait diminuer leur pouvoir de marché. La décentralisation est essentielle pour résister à leurs attaques inévitables, dans la mesure où si quelqu'un reprend une blockchain existante, elle peut réapparaître via un hard fork. La valeur actuelle de l'ancienne chaîne créerait une armée volontaire et capable de mineurs de substitution si la Chine ou Craig Wright décidaient de s'approprier 51 % des mineurs Ethereum existants.
Vitalik Buterin décrit bien cette résilience dans son admirable évaluation de son pouvoir limité :
Le problème avec les développeurs, c'est que nous sommes des gens assez fongibles. Un développeur tombe en panne et quelqu'un d'autre peut continuer à développer. Si quelqu'un met un pistolet sur ma tempe et me dit d'écrire un patch hard fork, j'écrirai certainement le patch hard fork. J'écrirai le numéro GitHub, j'écrirai le code, je le publierai et je ferai tout ce qu'ils disent. Si je fais cela et que je publie un patch hard fork pour supprimer un tas de comptes, combien de personnes seront prêtes à télécharger la mise à jour, à l'installer et à passer à cette mise à jour ? C'est ce qu'on appelle la décentralisation.
Vitalik Buterin. TechCrunch : Sessions Blockchain 2018.
Le potentiel d'un hard fork en cas d'attaque est la principale protection contre les étrangers. Cela dépend du fait que le protocole dispose d'un ensemble d'utilisateurs et de développeurs approfondis et engagés qui donnent la priorité aux principes essentiels du bitcoin - transparence, immuabilité, pseudonymat, accès à l'épreuve de la confiscation et sans autorisation - et pourquoi la décentralisation est essentielle pour la sécurité cryptographique à long terme.
Les attaques extérieures ont décimé, voire détruit, plusieurs innovations financières autrefois utiles. E-gold, Etherdelta, Intrade et ShapeShift avaient tous des points de centralisation bien visibles, permettant aux autorités de les poursuivre, de les fermer ou de les forcer à se soumettre aux protocoles financiers traditionnels. Un oracle pseudonyme exécutant virtuellement des scripts sur des serveurs distants à travers le monde serait insensible à de telles interférences. Cet héritage est ce qui rend Ethereum si précieux, dans la mesure où les dapps n'ont pas besoin de leurs propres mécanismes de consensus décentralisés pour éviter de telles attaques.
Tout oracle qui facilite le trading de produits dérivés ou les paris sportifs est soumis à une réglementation dans la plupart des pays développés. Les sociétés Dapp sont des surfaces d'attaque remarquables. Dans la mesure où Augur et 0x ne concurrencent pas les institutions traditionnelles, les autorités ont intérêt à les considérer simplement comme des curiosités insignifiantes. Si ces protocoles deviennent un jour compétitifs avec les institutions financières conventionnelles – en fournissant une position à terme sur le prix des ETH, par exemple – toutes les réglementations fiduciaires traditionnelles leur seront imposées sous prétexte de protéger le public. Fabricant ainsi que Maillon de chaîne flirtent déjà avec KYC, parce qu'ils savent qu'ils ne peuvent pas monétiser ostensiblement des marchés qui finiront par générer des profits sans céder aux Collectif Borg.
Satoshi devait rester anonyme aux premiers stades du bitcoin pour éviter qu'un gouvernement local ne le poursuive avant que le bitcoin ne puisse fonctionner sans lui. Le système peer-to-peer bitcoin initialement émulé, Tor, est peuplé de personnes qui ne font pas de publicité sur les plateformes traditionnelles, n'ont pas d'investisseurs institutionnels ou ne prennent pas la parole lors de conférences. Les dapps viables devraient suivre cet exemple et se concentrer moins sur la corporatisation et plus sur le développement de leur réputation parmi les passionnés de cryptographie actuels.
Pour les cas impliquant de petites sommes d'argent, il est difficile pour des individus aléatoires dans des systèmes décentralisés de s'entendre aux dépens d'autres participants. Les coûts de collusion sont trop élevés, ce qui élimine l'effet des trolls et des fauteurs de troubles singuliers. Pourtant, cela crée un dangereux sentiment de complaisance, car tout mécanisme robuste doit inciter à un bon comportement même si il y a collusion. Si nous voulons que la blockchain gère un jour des transactions réelles et importantes, cela implique des cas où il y aurait suffisamment d'ETH en jeu pour présumer que quelqu'un finira par conspirer pour pirater le système.
Satoshi savait que la collusion malveillante serait possible avec une preuve de travail, mais pas problématique car elle serait vouée à l'échec. Dans le Livre blanc Bitcoin, Satoshi a souligné comment la preuve de travail supprimait le besoin d'un tiers de confiance, pourquoi le terme sans confiance est souvent attribué à un réseau décentralisé. Avec la preuve de travail, il n'est pas impossible de doubler les dépenses, contrairement à la rationalité intéressée. Plus précisément, il a écrit que toute personne ayant la capacité de dépenser deux fois 'devrait trouver plus profitable de respecter les règles… que de saper le système et la validité de sa propre richesse.
Pour les grandes chaînes de blocs comme Ethereum et Bitcoin, il faut un équipement minier spécialisé qui n'a de valeur que si les mineurs suivent la lettre et l'esprit de leur loi. Le capital détruit par la manipulation de blocs est mille fois supérieur au coût direct en puissance de hachage d'une telle attaque. Alors qu'une poignée de groupes miniers Bitcoin ou Ethereum peuvent effectivement s'entendre et contrôler 51% du contrôle du réseau, ce n'est pas inquiétant car il ne serait pas dans leur intérêt de concevoir une double dépense compte tenu du coût de la perte de revenus futurs. Par exemple, au printemps 2019, le responsable de Binance, Changpeng Zhao, a suggéré un rollback de la blockchain pour annuler un vol récent. La communauté bitcoin s'est moquée de lui, et il s'est rapidement rétracté parce que ce ne serait pas dans l'intérêt à long terme des mineurs ou des échanges de bitcoin. Économiser 40 millions de dollars décimerait une blockchain de 100 milliards de dollars, ce qui en ferait une décision facile.
Les gens mentionnent souvent résistance à la collusion comme vertu première de la décentralisation. Un meilleur terme serait résistance au complot. Un système décentralisé doit générer des incitations appropriées même s'il y a collusion, car la collusion est toujours possible car, dans la pratique, les grandes chaînes de blocs décentralisées sont contrôlées par une poignée d'équipes (Michels' Loi d'airain de l'oligarchie). Il y a eu plusieurs cas de collision bénigne de la blockchain, qui, lorsqu'elle est appliquée judicieusement et avec parcimonie, augmente la résilience (par exemple, les vulnérabilités de Bitcoin ont été corrigées dans les coulisses en septembre 2018, le fameux rollback d'Ethereum 2016 en réponse au piratage DAO). Professeur de droit Angela Walsh mis en évidence des épisodes de collusion bénigne comme preuve que Bitcoin et Ethereum ne sont pas décentralisés, et devraient donc être davantage réglementés par les institutions standard.
Les avocats sont friands de définitions techniques, mais le point clé est que les régulateurs conventionnels ne peuvent pas réglementer Bitcoin ou Ethereum s'ils essayaient, soulignant l'indispensable décentralisation de ces protocoles. Si la SEC aux États-Unis ou la FCA au Royaume-Uni essayaient de réglementer de manière agressive Ethereum, ils trouveraient bientôt les décideurs en dehors de leur juridiction. chaîne et l'Ether existant seraient plus précieux sur cette nouvelle chaîne. Dans la mesure où une telle décision est probable, le protocole est décentralisé, à l'abri des étrangers qui n'aiment pas sa vision pour une raison quelconque.
La résistance au complot se résume à des incitations, s'assurant que ceux qui dirigent le système trouvent que le fonctionnement du système tel qu'il est généralement compris est plus précieux que la tricherie. Cette même incitation à maximiser les profits non seulement maintient les mineurs honnêtes, mais les protège également d'eux-mêmes. Alors que les blockchains ont beaucoup de choses en commun, elles ont des priorités très différentes. Les utilisateurs qui privilégient la vitesse préfèrent EOS ; ceux qui privilégient l'anonymat, Monero ; acceptation institutionnelle, Ripple. Un quorum de mineurs qui conspirent pour changer radicalement les priorités traditionnelles de leur blockchain dévaluera leur actif en aliénant leur base, et ceux qui partagent la nouvelle priorité ne basculeront pas, mais souligneront plutôt que leur blockchain préférée a toujours eu raison. La concurrence entre les cryptos empêche les initiés hubristes de faire trop de dégâts.
Un suivi rapide et simple est essentiel pour créer un mécanisme compatible avec les incitations. Pour un oracle décentralisé, divers sous-ensembles d'agents travaillent sur n'importe quel résultat. Il est difficile de trouver un ensemble concis de données sur, par exemple, le pourcentage et le type de marchés Augur déclarés invalides, ou une liste des rapports de résultats antérieurs de Chainlink. Bien que tous les rapports oracle existent (immuablement !), Leur assemblage est tout simplement impossible pour un utilisateur moyen. De plus, les erreurs passées et les tricheries sont considérées comme des anomalies, ce qui réduit le coût de la triche.
La bulle ICO de 2017 a encouragé tout le monde dans l'espace crypto à émettre des jetons, quel que soit le besoin ; comment un jeton rendrait un dapp plus efficace était une préoccupation secondaire pour les investisseurs désireux d'investir dans le prochain bitcoin. Même si une petite fraction de l'argent de l'ICO était appliquée à la recherche et au développement, cela implique des centaines de millions de dollars de talent et de temps consacrés à la création d'applications décentralisées qui pourraient justifier leur besoin de jetons. Tous auraient tous reconnu la valeur d'un oracle décentralisé fiable, mais ils n'ont pas été en mesure d'en fournir un, un échec révélateur. Les oracles les plus populaires aujourd'hui sont efficacement centralisés, car ChainLink et MakerDAO ont des surfaces d'attaque remarquables car ils sont tous deux étroitement contrôlés par des initiés. Ils continueront à être efficacement centralisés car l'alternative serait un système de type Augur qui est intolérablement inefficace (contrats lents, piratables, boiteux).
Les oracles décentralisés qui dépendent de la valeur marchande de leurs jetons incitant à un bon comportement ont un écart important entre le montant que les utilisateurs doivent payer à l'oracle et le montant nécessaire pour le garder honnête. Par exemple, supposons qu'il existe un jeu tel que l'on doive payer le journaliste 1 ETH afin que le bénéfice net d'un signalement honnête soit supérieur à une arnaque que le journaliste peut mettre en œuvre. Si seulement 2 % des détenteurs de jetons signalent un résultat, cela implique que nous devons payer 50 ETH à l'oracle collectivement (1/0.02), car nous n'avons aucun moyen de concentrer la valeur actuelle du jeton sur le sous-ensemble de détenteurs de jetons déclarant . On pourrait forcer le journaliste à déposer une caution qui serait perdue s'il faisait un rapport malhonnête, mais pour que cela fonctionne, cela plafonnerait les gains à des niveaux insignifiants basés sur le capital du journaliste, ce qui ignore de manière inefficace la valeur actuelle de l'oracle, et implique également une longue retard de paiement.
Un autre problème avec les oracles décentralisés est qu'ils servent généralement un ensemble diversifié de jeux. Bien que cela facilite les illusions de généralité à la Amazon, cela rend les contrats spécifiques mal alignés sur les incitations oracle. La fréquence et la taille du gain varieront d'une application à l'autre, de sorte qu'un oracle incitant à l'honnêteté à tout moment sera trop cher pour la plupart des applications. Les solutions efficaces minimisent les paramètres contextuels, ce qui implique que la meilleure solution générale sera sous-optimale pour une utilisation particulière.
Bien qu'il y ait des coûts évidents à la décentralisation au sein d'un oracle, il n'y a aucun avantage si l'exigence fondamentale de censure/résistance aux attaques est satisfaite. La sagesse de la foule n'est pas pertinente pour les contrats sur des actifs liquides comme le bitcoin ou le S&P500. Un algorithme de notation de réputation est inutile car le risque le plus évident est une escroquerie à la sortie, qui repose sur un comportement honnête jusqu'à la transaction finale (Bitconnect).
Pour aligner l'espace de gain de l'oracle de manière optimale sur le plan cryptoéconomique, il faut créer un gain d'oracle tel que l'avantage d'un rapport véridique l'emporte toujours sur les coûts d'un rapport erroné. En ayant l'oracle sous contrôle total, ses revenus provenant de rapports véridiques sont maximisés ; en étant sans ambiguïté responsable et facile à auditer et à punir, ses coûts de déclaration erronée sont entièrement supportés par l'oracle ; en jouant à un jeu répété spécifique, le calcul coût/bénéfice est cohérent chaque semaine ; en donnant à un utilisateur trompé la capacité et l'incitation à punir un oracle tricheur, le gain de triche est minimisé. Tout cela conduit à l'efficacité d'un oracle à agent unique.
Les erreurs involontaires peuvent provenir de sources corrompues ou de l'algorithme qui agrège ces prix et affiche un prix unique au contrat. Nous commettons souvent des erreurs involontaires et comptons sur la bonne volonté et le bon sens de ceux avec qui nous faisons affaire pour « défaire » les cas où nous aurions pu ajouter un zéro supplémentaire à un paiement. Les cartes de crédit autorisent les rétrofacturations, et si une banque dépose accidentellement 1 million de dollars sur votre compte, vous êtes tenu de le rembourser. L'inconvénient est que ce processus implique des tiers qui appliquent la règle selon laquelle les grosses erreurs involontaires sont réversibles, ce qui implique qu'ils ont des droits sur les soldes des comptes d'utilisateurs.
Dans OracleSwap, le contrat oracle lui-même comporte deux contrôles d'erreur dans le code de solidité. Premièrement, si les prix évoluent de plus de 50 % par rapport à leur valeur précédente, et deuxièmement, s'ils sont exactement les mêmes que leur valeur précédente. Ces contraintes détectent les erreurs les plus courantes. En dehors de la blockchain, cependant, c'est là que le filtrage des erreurs est traité plus efficacement en général, et en fin de compte, il devrait être transformé en algorithme car sinon, on introduit une surface d'attaque via l'humain qui vérifierait un rapport final. Ainsi, l'utilisation de nombreuses personnes pour réduire les erreurs ne fait qu'ajouter à la source plus subtile et dangereuse des mauvais prix. OracleSwap utilise une extraction automatisée des prix à partir de plusieurs sources indépendantes, sur une fenêtre de quelques minutes, et prend la médiane. Comme le contrat cible les investisseurs à long terme, un prix médian de plusieurs bourses aura une erreur type tolérable ; comme les flux et les échanges précis ne sont pas précisés, cela évite la censure ; comme les prix sont affichés pendant une fenêtre d'une heure qui exclut les transactions, il est facile de collecter et de valider un prix précis.
La décentralisation des oracles résout un problème qu'ils n'ont pas : la résistance aux attaques et à la censure. Un agent mettant à jour un contrat oracle n'a besoin que d'un accès à Internet et d'un pseudonyme pour éviter la censure. Compte tenu de cela, la meilleure façon de créer des incitations oracle appropriées est de créer un jeu où les gains pour l'honnêteté et la tricherie sont bien paramétrés, et les étrangers peuvent facilement vérifier si un agent se comporte honnêtement. La simplicité est essentielle à tout jeu robuste, et cela implique la suppression des parties et des procédures.
Les marchés sont le mécanisme décentralisé par excellence. Ce n'est pas un paradoxe que les marchés se composent d'agents centralisés car c'est souvent la nature des choses que les propriétés existent à des niveaux inférieurs mais pas à des niveaux supérieurs. Un marché décentralisé a juste besoin que les consommateurs aient à la fois le choix et l'information, et que les entreprises aient un accès gratuit. Les marchés ont toujours dépendu d'individus et d'entreprises jouissant d'une réputation précieuse, car la qualité est invariablement difficile à évaluer, de sorte que les consommateurs préfèrent les vendeurs ayant une bonne réputation pour éviter de rentrer chez eux avec de mauvais œufs ou une voiture avec un mauvais câblage. Les blockchains sont le meilleur dispositif de responsabilité de l'histoire, permettant aux contrats de créer une réputation précieuse pour leurs administrateurs tout en restant anonymes et donc non censurables.
Un ensemble de contrats concurrents est plus efficace que des oracles généralisés conçus pour des contrats non spécifiés, ou des protocoles commerciaux généralisés conçus pour des oracles non spécifiés. Un simple contrat lié à un oracle qui est "tout compris" crée une responsabilité claire et sans ambiguïté, générant la plus forte incitation à un rapport honnête