{"id":93794,"date":"2020-09-10T07:42:27","date_gmt":"2020-09-10T05:42:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne"},"modified":"2020-09-10T07:42:27","modified_gmt":"2020-09-10T05:42:27","slug":"town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","title":{"rendered":"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Aujourd'hui, seul un paresseux n'a pas \u00e9crit sur la technologie blockchain, les cryptomonnaies et \u00e0 quel point c'est incroyable. Mais dans cet article, il n'y aura pas d'\u00e9loge de cette technologie, nous allons aborder ses inconv\u00e9nients et les moyens de les surmonter. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/af435f4c102071d7248778ff5354ed5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>En travaillant sur l'un des projets de la soci\u00e9t\u00e9 Altirix Systems, un besoin s'est pr\u00e9sent\u00e9 pour une confirmation de donn\u00e9es prot\u00e9g\u00e9e et r\u00e9sistante \u00e0 la censure \u00e0 partir d'une source externe pour la blockchain. Il \u00e9tait n\u00e9cessaire de confirmer les modifications dans les enregistrements d'un tiers et, sur la base de ces modifications, d'effectuer tel ou tel chemin dans la logique du smart contract. La t\u00e2che, \u00e0 premi\u00e8re vue, semble assez triviale, mais lorsque le r\u00e9sultat de son ex\u00e9cution d\u00e9pend de la situation financi\u00e8re d'une des parties impliqu\u00e9es dans le processus, des exigences suppl\u00e9mentaires apparaissent. Avant tout, c'est la confiance totale envers un tel m\u00e9canisme de validation. Mais parlons de tout cela dans l'ordre. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Le probl\u00e8me r\u00e9side dans le fait que la blockchain est en soi un objet autonome et ferm\u00e9, donc les smart contracts au sein de la blockchain ne savent rien sur le monde ext\u00e9rieur. En m\u00eame temps, les conditions des smart contracts sont souvent li\u00e9es \u00e0 des informations sur des \u00e9v\u00e9nements r\u00e9els (retard de vol, taux de change, etc.). Pour un bon fonctionnement des smart contracts, les donn\u00e9es obtenues en dehors de la blockchain doivent \u00eatre fiables et v\u00e9rifi\u00e9es. Ce probl\u00e8me est r\u00e9solu avec l'utilisation d'oracles, tels que Town Crier et DECO. Ces oracles permettent \u00e0 un smart contract sur la blockchain de faire confiance \u00e0 des informations provenant d'un serveur web v\u00e9rifi\u00e9, on peut dire que ce sont des fournisseurs d'informations fiables. <\/p>\n<p><\/p>\n<h1 id=\"orakuly\">Oracles<\/h1>\n<p><\/p>\n<p>Imaginez un smart contract qui effectue un transfert de 0.001 btc vers votre portefeuille bitcoin en cas de victoire de votre club de football pr\u00e9f\u00e9r\u00e9 en Coupe de Russie. En cas de victoire r\u00e9elle, il est n\u00e9cessaire de transmettre au smart contract l'information concernant le club gagnant, et c'est ici qu'un certain nombre de probl\u00e8mes surviennent : o\u00f9 obtenir cette information, comment la transmettre en toute s\u00e9curit\u00e9 au smart contract et comment s'assurer que l'information transmise au smart contract correspond bien \u00e0 la r\u00e9alit\u00e9 ? <\/p>\n<p><\/p>\n<p>Dans le domaine des sources d'information, deux sc\u00e9narios peuvent se pr\u00e9senter : connecter un contrat intelligent \u00e0 un site web de confiance, o\u00f9 les r\u00e9sultats des matchs sont stock\u00e9s de mani\u00e8re centralis\u00e9e, ou connecter plusieurs sites et s\u00e9lectionner les informations \u00e0 partir de la majorit\u00e9 des sources fournissant des donn\u00e9es identiques. Pour s'assurer de l'exactitude des informations, des oracles sont utilis\u00e9s, comme Oraclize, qui utilise TLSNotary (une modification de TLS pour prouver l'authenticit\u00e9 des donn\u00e9es). Cependant, il existe suffisamment d'informations sur Oraclize dans Google, et plusieurs articles sur Habr\u00e9. Aujourd'hui, je vais parler des oracles qui adoptent une approche l\u00e9g\u00e8rement diff\u00e9rente pour transmettre des informations : Town Crier et DECO. Cet article d\u00e9crit les principes de fonctionnement des deux oracles ainsi qu'une comparaison d\u00e9taill\u00e9e. <\/p>\n<p><\/p>\n<h1 id=\"town-crier\">Town Crier<\/h1>\n<p><\/p>\n<p>Town Crier (TC) a \u00e9t\u00e9 introduit par IC3 (The Initiative for CryptoCurrencies and Contracts) en 2016 lors de CCS\u201916. L'id\u00e9e principale de TC est de transmettre des informations d'un site web \u00e0 un contrat intelligent et de s'assurer que les informations d\u00e9livr\u00e9es par TC sont identiques \u00e0 celles pr\u00e9sentes sur le site. TC utilise un TEE (Trusted Execution Environment) pour garantir l'authenticit\u00e9 de la propri\u00e9t\u00e9 des donn\u00e9es. Dans sa version originale, TC d\u00e9crit le travail avec Intel SGX.<br \/>\nTown Crier se compose d'une partie dans la blockchain et d'une partie au sein du syst\u00e8me d'exploitation lui-m\u00eame \u2014 le serveur TC.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/d94251340bfe563ca69bf74c358caf62.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLe contrat TC se trouve dans la blockchain et agit comme l'interface utilisateur pour TC. Il re\u00e7oit des requ\u00eates du CU (contrat intelligent utilisateur) et renvoie des r\u00e9ponses du serveur TC. Au sein du serveur TC se trouve un relais qui \u00e9tablit la connexion entre l'enclave et Internet (trafic bidirectionnel) et relie l'enclave \u00e0 la blockchain. L'enclave contient progencl, qui est un code ex\u00e9cutant les requ\u00eates de la blockchain et renvoyant des messages dans la blockchain avec une signature num\u00e9rique ; progencl inclut une partie du code du contrat intelligent et ex\u00e9cute en fait certaines de ses fonctions. <\/p>\n<p><\/p>\n<p>L'enclave Intel SGX peut \u00eatre consid\u00e9r\u00e9e comme une biblioth\u00e8que commune avec une API, fonctionnant par le biais d'ecall. Ecall transf\u00e8re le contr\u00f4le \u00e0 l'enclave. L'enclave ex\u00e9cute son code jusqu'\u00e0 son ach\u00e8vement ou jusqu'\u00e0 ce qu'une exception se produise. Pour appeler des fonctions d\u00e9finies en dehors de l'enclave, des ocall sont utilis\u00e9s. Ocall s'ex\u00e9cute en dehors de l'enclave et est trait\u00e9 comme un appel non fiable. Apr\u00e8s l'ex\u00e9cution de l'ocall, le contr\u00f4le est restitu\u00e9 \u00e0 l'enclave.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/6b4e0952862d6fe8597793cac03e760c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDans la partie Enclave, un canal s\u00e9curis\u00e9 est configur\u00e9 avec le serveur web, l'enclave effectue elle-m\u00eame la poign\u00e9e de main TLS avec le serveur cible et ex\u00e9cute toutes les op\u00e9rations cryptographiques en interne. La biblioth\u00e8que TLS (mbedTLS) et le code HTTP en version r\u00e9duite sont export\u00e9s vers l'environnement SGX. De plus, l'Enclave contient des certificats racine CA (une collection de certificats) pour v\u00e9rifier les certificats des serveurs distants. Le gestionnaire de requ\u00eates accepte une demande de datagramme au format fourni par Ethereum, la d\u00e9chiffre et l'analyse. Ensuite, il g\u00e9n\u00e8re une transaction Ethereum contenant le datagramme demand\u00e9, la signe avec skTC et la transmet au Relay.<\/p>\n<p><\/p>\n<p>La partie Relay comprend l'interface client, TCP et l'interface blockchain. L'interface client est n\u00e9cessaire pour l'attestation du code de l'enclave et la communication avec le client. Le client envoie une requ\u00eate d'attestation via ecall et re\u00e7oit un horodatage, sign\u00e9 par skTC, avec att (signature d'attestation), ensuite att est confirm\u00e9 via Intel Attestation Service (IAS) et l'horodatage est v\u00e9rifi\u00e9 par un service de temps de confiance. L'interface blockchain v\u00e9rifie les demandes entrantes et place les transactions dans la blockchain pour la livraison des datagrams. Geth est le client officiel Ethereum et permet \u00e0 Relay d'interagir avec la blockchain via des appels RPC. <\/p>\n<p><\/p>\n<p>En travaillant avec TEE, TC permet de lancer plusieurs enclaves en parall\u00e8le, augmentant ainsi la vitesse de traitement des informations par trois. Si avec une seule enclave en fonctionnement, la vitesse \u00e9tait de 15 tx\/sec, alors avec 20 enclaves lanc\u00e9es simultan\u00e9ment, la vitesse augmente jusqu'\u00e0 65 tx\/sec, pour comparaison, la vitesse maximale de fonctionnement dans la blockchain Bitcoin est de 26 tx\/sec.<\/p>\n<p><\/p>\n<h1 id=\"deco\">DECO<\/h1>\n<p><\/p>\n<p>DECO (Oracles D\u00e9centralis\u00e9s pour TLS) a \u00e9t\u00e9 pr\u00e9sent\u00e9 lors de CCS'20, il fonctionne avec des sites prenant en charge la connexion TLS. Il garantit la confidentialit\u00e9 et l'int\u00e9grit\u00e9 des donn\u00e9es.<br \/>\nDECO avec TLS utilise le cryptage sym\u00e9trique, permettant ainsi au client et au serveur web de disposer de cl\u00e9s de cryptage, et le client, s'il le souhaite, peut falsifier les donn\u00e9es de la session TLS. Pour r\u00e9soudre ce probl\u00e8me, DECO utilise un protocole de poign\u00e9e de main tripartite entre le prouveur (smart contract), le v\u00e9rificateur (oracle) et le serveur web (source de donn\u00e9es).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/17245f0af8d3cf448291652fd58312f2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le principe de fonctionnement de DECO est que le v\u00e9rificateur (prouveur) obtienne une partie des donn\u00e9es D et confirme au v\u00e9rificateur que D provient du serveur TLS S. Un autre probl\u00e8me est que TLS ne signe pas les donn\u00e9es et le client TLS a du mal \u00e0 prouver que les donn\u00e9es proviennent bien de ce serveur (difficult\u00e9 de provenance). <\/p>\n<p><\/p>\n<p>Dans le protocole DECO, des cl\u00e9s de chiffrement KEnc et KMac sont utilis\u00e9es. Le client envoie une requ\u00eate Q \u00e0 <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/server\/\"   title=\"serveur web\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1157\">serveur web<\/a>, la r\u00e9ponse du serveur R arrive sous forme chiffr\u00e9e, mais le client et le serveur poss\u00e8dent les m\u00eames KMac, permettant au client de falsifier un message TLS. La solution de DECO consiste \u00e0 \"cacher\" KMac du client (prover) jusqu'\u00e0 ce qu'il r\u00e9ponde \u00e0 la requ\u00eate. Maintenant, KMac est divis\u00e9 entre le prover et le v\u00e9rificateur \u2014 KpMac et KvMac. Le serveur obtient KMac pour chiffrer la r\u00e9ponse \u00e0 l'aide de l'op\u00e9ration sur les parties de la cl\u00e9 KpMac \u2295 KvMac = KMac.<\/p>\n<p><\/p>\n<p>Avec un \u00e9change \u00e0 trois voies \u00e9tabli, les donn\u00e9es entre le client et le serveur seront \u00e9chang\u00e9es avec une garantie de s\u00e9curit\u00e9.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/2d6405ae1e7e2b283539d3a4bd8c315c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEn parlant des syst\u00e8mes d'oracles d\u00e9centralis\u00e9s, on ne peut pas manquer de mentionner Chainlink, qui cherche \u00e0 cr\u00e9er un r\u00e9seau d\u00e9centralis\u00e9 de n\u0153uds d'oracle compatible avec Ethereum, Bitcoin et Hyperledger, en tenant compte de la modularit\u00e9 : chaque partie du syst\u00e8me peut \u00eatre mise \u00e0 jour. De plus, pour assurer la s\u00e9curit\u00e9, Chainlink propose \u00e0 chaque oracle participant \u00e0 la mission d'\u00e9mettre une combinaison de cl\u00e9s (publique et priv\u00e9e). La cl\u00e9 priv\u00e9e est utilis\u00e9e pour g\u00e9n\u00e9rer une signature partielle, qui contient leur r\u00e9ponse \u00e0 la demande de donn\u00e9es. Pour obtenir une r\u00e9ponse, il est n\u00e9cessaire de combiner toutes les signatures partielles des oracles du r\u00e9seau.<\/p>\n<p><\/p>\n<p>Chainlink pr\u00e9voit de r\u00e9aliser un PoC DECO initial ax\u00e9 sur des applications financi\u00e8res d\u00e9centralis\u00e9es telles que Mixicles. Au moment de la r\u00e9daction, une nouvelle sur Forbes indiquait que Chainlink avait acquis DECO de l'Universit\u00e9 Cornell.<\/p>\n<p><\/p>\n<h1 id=\"ataki-na-orakuly\">Attaques sur les oracles<\/h1>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/ce964b3961f4b0035f96e33777ed77d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Du point de vue de la s\u00e9curit\u00e9 de l'information, les attaques suivantes sur Town Crier ont \u00e9t\u00e9 examin\u00e9es :<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Injection de code malveillant sur des n\u0153uds TEE.<br \/>\nNature de l'attaque : transmission d'un code de contrat intelligent manifestement incorrect dans le TEE, permettant \u00e0 un attaquant ayant acc\u00e8s au n\u0153ud d'ex\u00e9cuter son propre contrat intelligent (frauduleux) sur des donn\u00e9es d\u00e9chiffr\u00e9es. Cependant, les valeurs retourn\u00e9es seront chiffr\u00e9es \u00e0 l'aide de la cl\u00e9 priv\u00e9e, et la seule mani\u00e8re d'acc\u00e9der \u00e0 ces donn\u00e9es r\u00e9side dans la fuite du texte chiffr\u00e9 lors du retour \/ de la sortie.<br \/>\nLa protection contre cette attaque r\u00e9side dans la v\u00e9rification par l'enclave de la validit\u00e9 du code \u00e0 l'adresse actuelle. Cela peut \u00eatre accompli gr\u00e2ce \u00e0 un sch\u00e9ma d'adressage o\u00f9 l'adresse du contrat est d\u00e9termin\u00e9e par le hachage du code du contrat. <\/p>\n<p>\n<\/li>\n<li>\n<p>Les changements de ciphertext de l'\u00e9tat du contrat provoquent des fuites.<br \/>\nLa nature de l'attaque : Les propri\u00e9taires des n\u0153uds sur lesquels s'ex\u00e9cutent des smart contracts ont acc\u00e8s \u00e0 l'\u00e9tat du contrat sous une forme chiffr\u00e9e en dehors de l'enclave. Un attaquant qui prend le contr\u00f4le d'un n\u0153ud peut comparer l'\u00e9tat du contrat avant et apr\u00e8s l'ex\u00e9cution d'une transaction et peut d\u00e9terminer quels arguments ont \u00e9t\u00e9 ajout\u00e9s et quelle m\u00e9thode sp\u00e9cifique du smart contract a \u00e9t\u00e9 utilis\u00e9e, car le code m\u00eame du smart contract et ses sp\u00e9cifications techniques sont accessibles au public.<br \/>\nProtection en garantissant la fiabilit\u00e9 du n\u0153ud lui-m\u00eame.<\/p>\n<p>\n<\/li>\n<li>\n<p>Attaques par canaux auxiliaires.<br \/>\nUn type particulier d'attaques qui utilise la surveillance des acc\u00e8s \u00e0 la m\u00e9moire et au cache de l'enclave dans divers sc\u00e9narios. Un exemple de cette attaque est le Prime and Probe.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/df57664f060e294b969f96dda8a69b32.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nProc\u00e9dure de l'attaque :<\/p>\n<p><\/p>\n<ul>\n<li>t0 : L'attaquant remplit tout le cache de donn\u00e9es du processus de la victime.<\/li>\n<li>t1 : La victime ex\u00e9cute du code avec des acc\u00e8s \u00e0 la m\u00e9moire qui d\u00e9pendent des donn\u00e9es confidentielles de la victime (cl\u00e9s cryptographiques). Le choix de la ligne de cache se fait selon la valeur de keybit. Dans l'exemple illustr\u00e9, keybit = 0 et l'adresse X a \u00e9t\u00e9 lue dans la ligne de cache 2. Les donn\u00e9es stock\u00e9es dans X sont charg\u00e9es dans le cache, \u00e9vincant les donn\u00e9es qui y \u00e9taient pr\u00e9c\u00e9demment. <\/li>\n<li>t2 : L'attaquant v\u00e9rifie quelles de ses lignes de cache ont \u00e9t\u00e9 \u00e9vinc\u00e9es \u2014 celles utilis\u00e9es par la victime. Cela se fait en mesurant le temps d'acc\u00e8s. En r\u00e9p\u00e9tant cette op\u00e9ration pour chaque keybit, l'attaquant obtient la cl\u00e9 enti\u00e8re. <\/li>\n<\/ul>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<p>Protection contre l'attaque : Intel SGX dispose d'une protection contre les attaques par canaux auxiliaires, qui interdit la surveillance des \u00e9v\u00e9nements li\u00e9s au cache, mais l'attaque Prime and Probe r\u00e9ussira quand m\u00eame, car l'attaquant observe les \u00e9v\u00e9nements du cache de son propre processus et partage le cache avec la victime.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO : quel oracle utiliser dans la blockchain ?\" src=\"\/wp-content\/uploads\/2020\/09\/9b2821eedacc189f44cf903aad0fdba3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAinsi, \u00e0 ce jour, il n'existe pas de protection fiable contre cette attaque.<\/p>\n<p><\/p>\n<p>On conna\u00eet \u00e9galement des attaques de type Spectre et Foreshadow (L1TF), similaires \u00e0 Prime and Probe. Elles permettent de lire des donn\u00e9es \u00e0 partir de la m\u00e9moire cache par le biais d'un canal auxiliaire. Une protection contre la vuln\u00e9rabilit\u00e9 Spectre-v2 est pr\u00e9vue, qui fonctionne contre ces deux attaques. <\/p>\n<p><\/p>\n<p>Concernant DECO, un handshake \u00e0 trois voies garantit une s\u00e9curit\u00e9 : <\/p>\n<p><\/p>\n<ol>\n<li>Int\u00e9grit\u00e9 du Prover : un prover compromis ne peut pas falsifier les informations sur l'origine du serveur et ne peut pas amener le serveur \u00e0 accepter des requ\u00eates non valides ou \u00e0 r\u00e9pondre incorrectement \u00e0 des requ\u00eates valides. Cela est r\u00e9alisable via des mod\u00e8les de requ\u00eates entre le serveur et le prover. <\/li>\n<li>Int\u00e9grit\u00e9 du V\u00e9rificateur : un v\u00e9rificateur compromis ne peut pas amener le prover \u00e0 recevoir des r\u00e9ponses incorrectes.<\/li>\n<li>Confidentialit\u00e9 : Un verifier pirat\u00e9 n'examine que les informations publiques (requ\u00eate, nom du serveur).<\/li>\n<\/ol>\n<p><\/p>\n<p>Dans DECO, seules les vuln\u00e9rabilit\u00e9s li\u00e9es \u00e0 l'injection de trafic sont possibles. Au d\u00e9part, lors de la poign\u00e9e de main \u00e0 trois voies, le verifier peut \u00e9tablir l'identit\u00e9 du serveur gr\u00e2ce \u00e0 un fresh nonce. Cependant, apr\u00e8s la poign\u00e9e de main, le verifier doit compter sur des indicateurs de niveau r\u00e9seau (<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/fr\/lir\/ipv4\/\"   title=\"adresses IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"674\">adresses IP<\/a>). Ainsi, la liaison entre le verifier et le server doit \u00eatre prot\u00e9g\u00e9e contre l'injection de trafic. Cela est r\u00e9alis\u00e9 en utilisant un Proxy.<\/p>\n<p><\/p>\n<h1 id=\"sravnenie-orakulov\">Comparaison des oracles<\/h1>\n<p><\/p>\n<p>Town Crier repose sur le travail avec un enclavement c\u00f4t\u00e9 serveur, tandis que DECO permet la v\u00e9rification de l'authenticit\u00e9 de l'origine des donn\u00e9es gr\u00e2ce \u00e0 une poign\u00e9e de main \u00e0 trois voies et \u00e0 un chiffrement des donn\u00e9es par des cl\u00e9s cryptographiques. La comparaison des donn\u00e9es des oracles a \u00e9t\u00e9 effectu\u00e9e selon les crit\u00e8res suivants : performance, s\u00e9curit\u00e9, co\u00fbt et praticit\u00e9. <\/p>\n<p><\/p>\n<p>Town Crier<br \/>\nDECO<\/p>\n<p>performance<br \/>\nPlus rapide (0,6 s pour finir)<br \/>\nPlus lent (10,50 s pour finir le protocole)<\/p>\n<p>s\u00e9curit\u00e9<br \/>\nMoins s\u00e9curis\u00e9<br \/>\nPlus s\u00e9curis\u00e9<\/p>\n<p>le co\u00fbt<br \/>\nPlus cher<br \/>\nMoins cher<\/p>\n<p>praticit\u00e9<br \/>\nN\u00e9cessite un mat\u00e9riel sp\u00e9cial<br \/>\nFonctionne avec n'importe quel serveur prenant en charge TLS<\/p>\n<p><\/p>\n<p><strong>Performance<\/strong>: Pour utiliser DECO, une configuration de la poign\u00e9e de main \u00e0 trois voies est requise, ce qui prend 0,37 secondes via LAN, et pour les interactions apr\u00e8s l'\u00e9tablissement de la connexion, 2PC-HMAC est efficace (0,13 s pour l'\u00e9criture). La performance de DECO d\u00e9pend des suites de chiffrement TLS disponibles, de la taille des donn\u00e9es personnelles et de la complexit\u00e9 des preuves pour une application donn\u00e9e. Par exemple, pour l'application d'options binaires d'IC3 : la fin du protocole via LAN prend environ 10,50 s. En comparaison, Town Crier n\u00e9cessite environ 0,6 seconde pour ex\u00e9cuter une application similaire, soit environ 20 fois plus rapide que DECO. Dans des conditions \u00e9quivalentes, TC sera plus rapide. <\/p>\n<p><\/p>\n<p><strong>S\u00e9curit\u00e9<\/strong>: Les attaques sur l'enclavement Intel SGX (attaques par canaux auxiliaires) fonctionnent et peuvent causer des dommages r\u00e9els aux participants du smart contract. Pour DECO, des attaques li\u00e9es \u00e0 l'injection de trafic sont possibles, mais l'utilisation de proxy les annule. Ainsi, DECO est plus s\u00e9curis\u00e9.<\/p>\n<p><\/p>\n<p><strong>Co\u00fbt<\/strong>: Le co\u00fbt du mat\u00e9riel compatible avec Intel SGX est sup\u00e9rieur au co\u00fbt de configuration du protocole dans DECO. Par cons\u00e9quent, TC est plus cher.<\/p>\n<p><\/p>\n<p><strong>Praticit\u00e9<\/strong>: Pour utiliser Town Crier, un \u00e9quipement sp\u00e9cial prenant en charge TEE est indispensable. Par exemple, Intel SGX est support\u00e9 sur les processeurs de la famille Intel Core de 6\u00e8me g\u00e9n\u00e9ration et plus. DECO, en revanche, fonctionne avec n'importe quel \u00e9quipement, bien qu'il existe une configuration DECO utilisant TEE. Le processus de configuration du protocole \u00e0 trois voies pour DECO peut prendre un certain temps, mais cela ne se compare en rien \u00e0 la contrainte mat\u00e9rielle de TC, donc DECO est plus pratique.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Conclusion<\/h1>\n<p><\/p>\n<p>En examinant les deux oracles s\u00e9par\u00e9ment et en les comparant selon quatre crit\u00e8res, on constate que Town Crier est inf\u00e9rieur \u00e0 DECO sur trois des quatre points. DECO est plus fiable en termes de s\u00e9curit\u00e9 informatique, moins cher et plus pratique, bien que la configuration du protocole \u00e0 trois voies puisse prendre du temps et ait ses inconv\u00e9nients, comme des op\u00e9rations suppl\u00e9mentaires sur les cl\u00e9s de cryptage. TC fonctionne plus rapidement que DECO, mais la vuln\u00e9rabilit\u00e9 li\u00e9e aux attaques par canal auxiliaire le rend risqu\u00e9 en mati\u00e8re de confidentialit\u00e9. Il faut \u00e9galement prendre en compte que DECO a \u00e9t\u00e9 pr\u00e9sent\u00e9 en janvier 2020, et il n'y a pas eu assez de temps pour le consid\u00e9rer comme s\u00fbr. Town Crier a d\u00e9j\u00e0 \u00e9t\u00e9 soumis \u00e0 des attaques pendant 4 ans et a travers\u00e9 de nombreux tests, ce qui justifie son utilisation dans de nombreux projets.<\/p>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/518234\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0410\u043b\u044c\u0442\u0438\u0440\u0438\u043a\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u0441, \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0437\u0430\u0434\u0430\u0447\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e, \u0446\u0435\u043d\u0437\u0443\u0440\u043e\u0441\u0442\u043e\u0439\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0434\u043b\u044f \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":93795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-93794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Town Crier vs DECO: \u043a\u0430\u043a\u043e\u0439 \u043e\u0440\u0430\u043a\u0443\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-10T05:42:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-10T05:42:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Town Crier vs DECO : quel oracle utiliser dans la blockchain ? | ProHoster","description":"Aujourd'hui, seul un paresseux n'a pas \u00e9crit sur la technologie blockchain, les cryptomonnaies et \u00e0 quel point c'est incroyable. Mais dans cet article, il n'y aura pas d'\u00e9loge de cette technologie, nous allons aborder ses inconv\u00e9nients et les moyens de les surmonter.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Town Crier vs DECO: \u043a\u0430\u043a\u043e\u0439 \u043e\u0440\u0430\u043a\u0443\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d\u0435? | ProHoster","og:description":"\u041d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0431\u043b\u043e\u043a\u0447\u0435\u0439\u043d, \u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0430\u043b\u044e\u0442\u044b \u0438 \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e. \u041d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u043e \u0435\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0430\u0445 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u0445 \u0438\u0445 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-10T05:42:27+00:00","article:modified_time":"2020-09-10T05:42:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"93794","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:39:33","updated":"2026-02-09 15:05:02","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/93794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=93794"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/93794\/revisions"}],"predecessor-version":[{"id":158360,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/93794\/revisions\/158360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/93795"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=93794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=93794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=93794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}