{"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\/ro\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","title":{"rendered":"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ast\u0103zi, doar cei lene\u0219i nu au scris despre tehnologia blockchain, criptomonede \u0219i c\u00e2t de tare este. \u00cens\u0103 \u00een acest articol nu va fi o laud\u0103 pentru aceast\u0103 tehnologie, ci despre deficien\u021bele ei \u0219i modalit\u0103\u021bile de a le remedia. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/af435f4c102071d7248778ff5354ed5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00cen timpul lucrului la unul dintre proiectele din compania Altirix Systems, a ap\u0103rut sarcina de a avea o confirmare protejat\u0103 \u0219i rezistent\u0103 la cenzur\u0103 a datelor provenite dintr-o surs\u0103 extern\u0103 pentru blockchain. Era necesar s\u0103 se confirme modific\u0103rile \u00een \u00eenregistr\u0103rile unui sistem ter\u021b \u0219i, pe baza acestor modific\u0103ri, s\u0103 se execute o anumit\u0103 ramificare \u00een logica smart contractului. Sarcina pare destul de simpl\u0103 la prima vedere, dar c\u00e2nd rezultatul s\u0103u afecteaz\u0103 starea financiar\u0103 a uneia dintre p\u0103r\u021bile implicate \u00een proces, apar cerin\u021be suplimentare. \u00cen primul r\u00e2nd, este vorba despre o \u00eencredere total\u0103 \u00een acest mecanism de validare. Dar s\u0103 le lu\u0103m pe r\u00e2nd. <\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Problema const\u0103 \u00een faptul c\u0103 blockchain-ul, \u00een sine, este un obiect autonom \u0219i \u00eenchis, iar smart contractele din interiorul blockchain-ului nu \u0219tiu nimic despre lumea exterioar\u0103. \u00cen acela\u0219i timp, condi\u021biile smart contractelor sunt adesea legate de informa\u021bii despre evenimente reale (\u00eent\u00e2rzierea unui zbor, cursul valutar etc.). Pentru ca smart contractele s\u0103 func\u021bioneze corect, informa\u021biile ob\u021binute din afara blockchain-ului trebuie s\u0103 fie fiabile \u0219i verificate. Aceast\u0103 problem\u0103 este rezolvat\u0103 prin utilizarea oracolelor, cum ar fi Town Crier \u0219i DECO. Aceste oracole permit smart contractului din re\u021beaua blockchain s\u0103 aib\u0103 \u00eencredere \u00een informa\u021biile de pe un server web verificat, se poate spune c\u0103 sunt furnizori de informa\u021bii de \u00eencredere. <\/p>\n<p><\/p>\n<h1 id=\"orakuly\">Oracole<\/h1>\n<p><\/p>\n<p>Imagina\u021bi-v\u0103 c\u0103 un smart contract efectueaz\u0103 un transfer de 0.001 btc c\u0103tre portofelul dumneavoastr\u0103 bitcoin \u00een cazul \u00een care echipa dumneavoastr\u0103 favorit\u0103 c\u00e2\u0219tig\u0103 Cupa Rusiei. \u00cen cazul unei victorii reale, smart contractul trebuie s\u0103 primeasc\u0103 informa\u021bii despre echipa care a c\u00e2\u0219tigat, iar aici apar mai multe probleme: de unde s\u0103 ob\u021bine\u021bi aceast\u0103 informa\u021bie, cum s\u0103 o transmite\u021bi \u00een siguran\u021b\u0103 c\u0103tre smart contract \u0219i cum s\u0103 v\u0103 asigura\u021bi c\u0103 informa\u021biile transmise c\u0103tre smart contract coincid cu realitatea? <\/p>\n<p><\/p>\n<p>\u00cen ceea ce prive\u0219te sursa de informa\u021bii, pot exista 2 scenarii: conectarea unui smart contract la un site web de \u00eencredere, pe care este stocat\u0103 centralizat informa\u021bia despre rezultatele meciurilor, \u0219i a doua variant\u0103 \u2014 conectarea la mai multe site-uri \u0219i apoi selectarea informa\u021biilor din majoritatea surselor care ofer\u0103 date identice. Pentru a ne asigura de corectitudinea informa\u021biei, se utilizeaz\u0103 oracole, cum ar fi Oraclize, care folose\u0219te TLSNotary (o modificare TLS pentru a dovedi autenticitatea datelor). Dar despre Oraclize informa\u021biile \u00een Google sunt suficiente, iar pe Habr sunt c\u00e2teva articole; ast\u0103zi voi vorbi despre oracolele care folosesc o abordare pu\u021bin diferit\u0103 \u00een transmiterea informa\u021biilor: Town Crier \u0219i DECO. Articolul prezint\u0103 descrierea principiilor de func\u021bionare a ambelor oracole, precum \u0219i o compara\u021bie detaliat\u0103. <\/p>\n<p><\/p>\n<h1 id=\"town-crier\">Town Crier<\/h1>\n<p><\/p>\n<p>Town Crier (TC) a fost prezentat de IC3 (The Initiative for CryptoCurrencies and Contracts) \u00een 2016 la CCS\u201916. Ideea principal\u0103 a TC: transmiterea informa\u021biei de la un site web c\u0103tre smart contract \u0219i asigurarea c\u0103 informa\u021bia livrat\u0103 de TC este aceea\u0219i ca pe site-ul web. TC utilizeaz\u0103 TEE (Trusted Execution Environment) pentru autenticitatea propriet\u0103\u021bii datelor. \u00cen varianta sa original\u0103, TC descrie lucrul cu Intel SGX.<br \/>\nTown Crier const\u0103 dintr-o parte \u00een interiorul blockchain-ului \u0219i o parte \u00een interiorul sistemului de operare \u2014 TC Server.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/d94251340bfe563ca69bf74c358caf62.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTC Contract se afl\u0103 \u00een blockchain \u0219i ac\u021bioneaz\u0103 ca frontend pentru TC. Acesta prime\u0219te cereri de la CU (smart contractul utilizatorului) \u0219i returneaz\u0103 un r\u0103spuns de la TC Server. \u00cen interiorul TC Server se afl\u0103 Relay, care stabile\u0219te o conexiune a enclavei cu internetul (trafic bidirec\u021bional) \u0219i leag\u0103 enclavea de blockchain. Enclave con\u021bine progencl, care este codul care execut\u0103 cereri din blockchain \u0219i returneaz\u0103 mesaje \u00een blockchain cu semn\u0103tur\u0103 digital\u0103; progencl con\u021bine o parte a codului smart contractului \u0219i, \u00een esen\u021b\u0103, execut\u0103 unele dintre func\u021biile acestuia. <\/p>\n<p><\/p>\n<p>Enclave-ul Intel SGX poate fi considerat ca o bibliotec\u0103 comun\u0103 cu API, care func\u021bioneaz\u0103 prin ecalls. Ecall transmite controlul enclavei. Enclavea \u00ee\u0219i execut\u0103 codul p\u00e2n\u0103 c\u00e2nd se finalizeaz\u0103 sau p\u00e2n\u0103 c\u00e2nd apare o excep\u021bie. Pentru a apela func\u021bii definite \u00een afara enclavei, se folosesc ocalls. Ocall se execut\u0103 \u00een afara enclavei \u0219i este tratat\u0103 de aceasta ca un apel nesigur. Dup\u0103 executarea ocall, controlul se \u00eentoarce enclavei.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/6b4e0952862d6fe8597793cac03e760c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n\u00cen partea Enclave se configureaz\u0103 canalul sigur cu serverul web, iar enclava realizeaz\u0103 singur\u0103 handshake-ul TLS cu serverul \u021bint\u0103 \u0219i efectueaz\u0103 toate opera\u021biile criptografice \u00een interiorul s\u0103u. Biblioteca TLS (mbedTLS) \u0219i codul HTTP \u00een variant\u0103 redus\u0103 sunt exportate \u00een mediu SGX. De asemenea, Enclave con\u021bine certificate root CA (o colec\u021bie de certificate) pentru a verifica certificatele serverelor externe. Request Handler prime\u0219te o solicitare datagram \u00een formatul furnizat de Ethereum, o decripteaz\u0103 \u0219i o analizeaz\u0103. Apoi genereaz\u0103 o tranzac\u021bie Ethereum, care con\u021bine datagramul solicitat, o semneaz\u0103 cu skTC \u0219i o transmite \u00een Relay.<\/p>\n<p><\/p>\n<p>Partea Relay include Client Interface, TCP, Blockchain Interface. Client Interface este necesar pentru atestarea codului enclavei \u0219i pentru comunicarea cu clientul. Clientul trimite o solicitare de atestare prin ecall \u0219i prime\u0219te un timestamp, semnat cu skTC \u00eempreun\u0103 cu att (semn\u0103tura atest\u0103rii), ulterior att este validat prin Intel Attestation Service (IAS), iar timestamp-ul este verificat de un serviciu de timp de \u00eencredere. Blockchain Interface verific\u0103 solicit\u0103rile primite \u0219i plaseaz\u0103 tranzac\u021biile \u00een blockchain pentru livrarea datagramelor. Geth este clientul oficial Ethereum \u0219i permite Relay s\u0103 interac\u021bioneze cu blockchainul prin apeluri RPC. <\/p>\n<p><\/p>\n<p>Lucr\u00e2nd cu TEE, TC permite s\u0103 se ruleze simultan mai multe enclava \u00een paralel, cresc\u00e2nd astfel viteza de procesare a informa\u021biilor de 3 ori. Dac\u0103, cu o enclav\u0103 activ\u0103, viteza era de 15 tx\/sec, cu 20 de enclava activate simultan, viteza cre\u0219te la 65 tx\/sec, pentru compara\u021bie, viteza maxim\u0103 de func\u021bionare \u00een blockchainul Bitcoin este de 26 tx\/sec.<\/p>\n<p><\/p>\n<h1 id=\"deco\">DECO<\/h1>\n<p><\/p>\n<p>DECO (Oracole Decentralizate pentru TLS) a fost prezentat la CCS\u201920, func\u021bioneaz\u0103 cu site-uri care suport\u0103 conexiune TLS. Asigur\u0103 confiden\u021bialitatea \u0219i integritatea datelor.<br \/>\nDECO cu TLS folose\u0219te criptare simetric\u0103, astfel \u00eenc\u00e2t clientul \u0219i serverul web au chei de criptare, iar clientul, dac\u0103 dore\u0219te, poate falsifica datele sesiunii TLS. Pentru a rezolva aceast\u0103 problem\u0103, DECO folose\u0219te un protocol de handshake \u00een trei p\u0103r\u021bi \u00eentre prover (smart contract), verifier (oracle) \u0219i web-server (sursa de date).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/17245f0af8d3cf448291652fd58312f2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Principiul de func\u021bionare al DECO const\u0103 \u00een faptul c\u0103 verificatorul (prover) ob\u021bine o parte din date D \u0219i confirm\u0103 verifier-ului (verifier) c\u0103 D provine de la serverul TLS S. O alt\u0103 problem\u0103 este c\u0103 TLS nu semneaz\u0103 datele \u0219i clientului TLS \u00eei este greu s\u0103 demonstreze c\u0103 datele au fost ob\u021binute de la acel server (dificultate de provenien\u021b\u0103). <\/p>\n<p><\/p>\n<p>\u00cen protocolul DECO sunt utilizate cheile de criptare KEnc \u0219i KMac. Clientul trimite o cerere Q c\u0103tre <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/server\/\"   title=\"server web\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1157\">server web<\/a>, iar r\u0103spunsul de la server R vine criptat, dar at\u00e2t clientul, c\u00e2t \u0219i serverul au acelea\u0219i KMac, permi\u021b\u00e2nd clientului s\u0103 falsifice mesajul TLS. Solu\u021bia oferit\u0103 de DECO este de a \u201eascunde\u201d KMac de client (prover) p\u00e2n\u0103 c\u00e2nd acesta r\u0103spunde cererii. Acum KMac este \u00eemp\u0103r\u021bit \u00eentre prover \u0219i verifier \u2014 KpMac \u0219i KvMac. Serverul prime\u0219te KMac pentru a cripta r\u0103spunsul prin opera\u021bia asupra p\u0103r\u021bilor cheii KpMac \u2295 KvMac = KMac.<\/p>\n<p><\/p>\n<p>Configur\u00e2nd un handshake tripartit, schimbul de date \u00eentre client \u0219i server se va desf\u0103\u0219ura cu garan\u021bia securit\u0103\u021bii.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/2d6405ae1e7e2b283539d3a4bd8c315c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nVorbind despre sistemele de oracle-uri descentralizate, nu se poate s\u0103 nu men\u021bion\u0103m Chainlink, care \u00ee\u0219i propune s\u0103 creeze o re\u021bea descentralizat\u0103 de noduri oracle compatibile cu Ethereum, Bitcoin \u0219i Hyperledger, \u021bin\u00e2nd cont de modularitate: fiecare parte a sistemului poate fi actualizat\u0103. \u00cen plus, pentru a asigura securitatea, Chainlink ofer\u0103 fiec\u0103rui oracle participant la sarcin\u0103 combina\u021bia de chei (public\u0103 \u0219i privat\u0103). Cheia privat\u0103 este utilizat\u0103 pentru a genera o semn\u0103tur\u0103 par\u021bial\u0103, care con\u021bine solu\u021bia lor la cererea de date. Pentru a ob\u021bine r\u0103spunsul este necesar\u0103 combinarea tuturor semn\u0103turilor par\u021biale ale oracle-urilor din re\u021bea.<\/p>\n<p><\/p>\n<p>Chainlink inten\u021bioneaz\u0103 s\u0103 realizeze un PoC ini\u021bial DECO axat pe aplica\u021bii financiare descentralizate, cum ar fi Mixicles. La momentul redact\u0103rii acestui articol, a ap\u0103rut o \u0219tire pe Forbes, conform c\u0103reia Chainlink a achizi\u021bionat DECO de la Universitatea Cornell.<\/p>\n<p><\/p>\n<h1 id=\"ataki-na-orakuly\">Atacuri asupra oracle-urilor<\/h1>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/ce964b3961f4b0035f96e33777ed77d0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Din perspectiva securit\u0103\u021bii informa\u021biilor, au fost analizate urm\u0103toarele atacuri asupra Town Crier:<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Injec\u021bia de cod mali\u021bios pe nodurile TEE prin smart contracte.<br \/>\nEsenta atacului: transmiterea unui cod de smart contract eronat \u00een TEE, astfel \u00eenc\u00e2t un atacator care ar avea acces la nod ar putea executa propriul s\u0103u smart contract (fraudulent) pe datele decriptate. Cu toate acestea, valorile returnate vor fi criptate cu cheia privat\u0103, iar singura modalitate de acces la aceste date const\u0103 \u00een scurgerea textului criptat la returnare\/\u00eenc\u0103rcare.<br \/>\nProtec\u021bia \u00eempotriva acestui atac const\u0103 \u00een verificarea de c\u0103tre enclav\u0103 a corectitudinii codului aflat la adresa curent\u0103. Acest lucru poate fi realizat printr-un sistem de adresare, unde adresa contractului este definit\u0103 prin hash-ul codului contractului. <\/p>\n<p>\n<\/li>\n<li>\n<p>Schimb\u0103rile \u00een textul criptat al st\u0103rii contractului scurg.<br \/>\nEsenta atacului: Proprietarii nodurilor care execut\u0103 smart contracte au acces la contract state \u00een form\u0103 criptat\u0103 \u00een afara enclavei. Un atacator, ob\u021bin\u00e2nd controlul peste nod, poate compara contract state \u00eenainte \u0219i dup\u0103 execu\u021bia unei tranzac\u021bii \u0219i poate determina ce argumente au fost introduse \u0219i ce metod\u0103 a smart contractului a fost utilizat\u0103, deoarece codul smart contractului \u0219i specifica\u021biile sale tehnice sunt publice.<br \/>\nProtec\u021bie \u00een asigurarea fiabilit\u0103\u021bii nodului \u00een sine.<\/p>\n<p>\n<\/li>\n<li>\n<p>Atacuri prin canal lateral.<br \/>\nUn tip special de atacuri care implic\u0103 monitorizarea accesului la memoria \u0219i cache-ul enclavei \u00een diferite scenarii. Un exemplu de astfel de atac este Prime and Probe.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/df57664f060e294b969f96dda8a69b32.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nProcedura de efectuare a atacului:<\/p>\n<p><\/p>\n<ul>\n<li>t0: Atacatorul umple tot cache-ul de date al procesului victimei.<\/li>\n<li>t1: Victima execut\u0103 cod cu apeluri la memorie care depind de datele confiden\u021biale ale victimei (chei criptografice). Se alege cache line pe baza valorii keybit. \u00cen exemplul din imagine, keybit = 0 \u0219i s-a citit adresa X \u00een cache line 2. Datele stocate \u00een X sunt \u00eenc\u0103rcate \u00een cache, \u00eenlocuind datele care au fost acolo \u00eenainte. <\/li>\n<li>t2: Atacatorul verific\u0103 care dintre liniile sale de cache au fost \u00eenlocuite \u2014 liniile utilizate de victim\u0103. Acest lucru se face prin m\u0103surarea timpului de acces. Repet\u00e2nd aceast\u0103 opera\u021biune pentru fiecare keybit, atacatorul ob\u021bine \u00eentreaga cheie. <\/li>\n<\/ul>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<p>Protec\u021bie \u00eempotriva atacului: Intel SGX are protec\u021bie \u00eempotriva atacurilor prin canal lateral, care interzice monitorizarea evenimentelor legate de cache, dar atacul Prime and Probe va reu\u0219i \u00een continuare, deoarece atacatorul observ\u0103 evenimentele de cache ale procesului s\u0103u \u0219i \u00eemp\u0103rt\u0103\u0219e\u0219te cache-ul cu victima.<br \/>\n<img decoding=\"async\" alt=\"Town Crier vs DECO: ce oracle s\u0103 folose\u0219ti \u00een blockchain?\" src=\"\/wp-content\/uploads\/2020\/09\/9b2821eedacc189f44cf903aad0fdba3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAstfel, \u00een prezent nu exist\u0103 o protec\u021bie sigur\u0103 \u00eempotriva acestui atac.<\/p>\n<p><\/p>\n<p>De asemenea, sunt cunoscute atacuri de tip Spectre \u0219i Foreshadow (L1TF), asem\u0103n\u0103toare cu Prime and Probe. Acestea permit citirea datelor din cache prin intermediul unui canal lateral. Este prev\u0103zut\u0103 o protec\u021bie \u00eempotriva vulnerabilit\u0103\u021bii Spectre-v2, care func\u021bioneaz\u0103 \u00eempotriva acestor dou\u0103 atacuri. <\/p>\n<p><\/p>\n<p>\u00cen raport cu DECO, str\u00e2ngerea de m\u00e2ini \u00een trei p\u0103r\u021bi ofer\u0103 o garan\u021bie de securitate: <\/p>\n<p><\/p>\n<ol>\n<li>Integritatea Proverului: un prover spart nu poate falsifica informa\u021biile despre originile serverului \u0219i nu poate determina serverul s\u0103 accepte cereri nevalide sau s\u0103 r\u0103spund\u0103 gre\u0219it la cereri valide. Acest lucru se poate realiza prin modele de cereri \u00eentre server \u0219i prover. <\/li>\n<li>Integritatea Verificatorului: un verificator spart nu poate determina proverul s\u0103 primeasc\u0103 r\u0103spunsuri gre\u0219ite.<\/li>\n<li>Confiden\u021bialitate: Verificatorul compromis analizeaz\u0103 doar informa\u021biile publice (cerere, numele serverului).<\/li>\n<\/ol>\n<p><\/p>\n<p>\u00cen DECO pot exista doar vulnerabilit\u0103\u021bi legate de injectarea traficului. La \u00eenceput, \u00een timpul handshake-ului trilateral, verificatorul poate stabili identitatea serverului folosind un nonce proasp\u0103t. Cu toate acestea, dup\u0103 handshake, verificatorul trebuie s\u0103 se bazeze pe indicatorii de nivel de re\u021bea (<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/ro\/lir\/ipv4\/\"   title=\"adrese IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"674\">adrese IP<\/a>). Prin urmare, leg\u0103tura dintre verificator \u0219i server trebuie protejat\u0103 \u00eempotriva inject\u0103rii trafic. Acest lucru se realizeaz\u0103 prin utilizarea unui proxy.<\/p>\n<p><\/p>\n<h1 id=\"sravnenie-orakulov\">Compararea oracle-urilor<\/h1>\n<p><\/p>\n<p>Town Crier se bazeaz\u0103 pe lucrul cu un enclave pe partea serverului, iar DECO permite validarea autenticit\u0103\u021bii originii datelor printr-un handshake trilateral \u0219i criptarea datelor cu chei criptografice. Compararea datelor oracle-urilor a fost efectuat\u0103 pe urm\u0103toarele criterii: performan\u021b\u0103, securitate, cost \u0219i practicitate. <\/p>\n<p><\/p>\n<p>Town Crier<br \/>\nDECO<\/p>\n<p>performan\u021b\u0103<br \/>\nMai rapid (0,6s pentru finalizare)<br \/>\nMai lent (10,50s pentru finalizarea protocolului)<\/p>\n<p>securitate<br \/>\nMai pu\u021bin sigur<br \/>\nMai sigur<\/p>\n<p>pre\u021bul<br \/>\nMai scump<br \/>\nMai ieftin<\/p>\n<p>practicitate<br \/>\nNecesit\u0103 hardware special<br \/>\nFunc\u021bioneaz\u0103 cu orice server care suport\u0103 TLS<\/p>\n<p><\/p>\n<p><strong>Performan\u021b\u0103<\/strong>: Pentru a lucra cu DECO, este necesar s\u0103 se configureze un handshake trilateral, configurarea prin LAN dureaz\u0103 0,37 secunde, iar pentru interac\u021biunea dup\u0103 stabilirea conexiunii, este eficient 2PC-HMAC (0,13 s pentru scriere). Performan\u021ba DECO depinde de seturile de cifrare TLS disponibile, de dimensiunea datelor personale \u0219i de complexitatea dovezilor pentru o aplica\u021bie specific\u0103. De exemplu, pentru aplica\u021bia de op\u021biuni binare de la IC3: finalizarea protocolului prin LAN dureaz\u0103 aproximativ 10,50 s. \u00cen compara\u021bie, Town Crier necesit\u0103 pentru a realiza o aplica\u021bie similar\u0103 aproximativ 0,6 secunde, adic\u0103 de aproximativ 20 de ori mai rapid dec\u00e2t DECO. \u00cen condi\u021bii egale, TC va fi mai rapid. <\/p>\n<p><\/p>\n<p><strong>Securitate<\/strong>: Atacurile asupra enclavei Intel SGX (atacuri de tip side-channel) func\u021bioneaz\u0103 \u0219i pot provoca daune reale participan\u021bilor la contractul inteligent. \u00cen ceea ce prive\u0219te DECO, pot exista atacuri legate de injectarea traficului, dar utilizarea unui proxy reduce astfel de atacuri. Prin urmare, DECO este mai sigur.<\/p>\n<p><\/p>\n<p><strong>Pre\u021b<\/strong>: Costul echipamentului care suport\u0103 func\u021bionarea cu Intel SGX este mai mare dec\u00e2t costul configur\u0103rii protocolului \u00een DECO. Prin urmare, TC este mai scump.<\/p>\n<p><\/p>\n<p><strong>Practicitate<\/strong>: Pentru a lucra cu Town Crier, este necesar\u0103 o echipare special\u0103 care s\u0103 suporte TEE. De exemplu, Intel SGX este suportat pe procesoarele din familia Intel Core de a 6-a genera\u021bie \u0219i mai recente. DECO, pe de alt\u0103 parte, permite lucrul cu orice echipament, de\u0219i exist\u0103 o configura\u021bie DECO care utilizeaz\u0103 TEE. \u00cen procesul de configurare, schimbul de chei \u00een trei pa\u0219i la DECO poate dura ceva timp, \u00eens\u0103 acest lucru nu se compar\u0103 cu limit\u0103rile hardware pentru TC, astfel c\u0103 DECO este mai practic.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Concluzie<\/h1>\n<p><\/p>\n<p>Analiz\u00e2nd cele dou\u0103 oracle separat \u0219i compar\u00e2ndu-le dup\u0103 patru criterii, se observ\u0103 c\u0103 Town Crier cedeaz\u0103 \u00een fa\u021ba DECO la trei din cele patru puncte. DECO este mai fiabil din perspectiva securit\u0103\u021bii informa\u021biilor, mai ieftin \u0219i mai practic, de\u0219i configurarea protocolului \u00een trei pa\u0219i poate dura ceva timp \u0219i are propriile dezavantaje, cum ar fi opera\u021biuni suplimentare cu chei de criptare. TC func\u021bioneaz\u0103 mai repede dec\u00e2t DECO, dar vulnerabilitatea asociat\u0103 cu atacurile de tip side-channel \u00eei expune riscurilor de pierdere a confiden\u021bialit\u0103\u021bii. Trebuie s\u0103 \u021binem cont c\u0103 DECO a fost lansat \u00een ianuarie 2020 \u0219i nu a trecut suficient timp pentru a-l considera complet sigur. Town Crier a fost supus atacurilor timp de 4 ani \u0219i a trecut prin numeroase verific\u0103ri, astfel c\u0103 utilizarea sa \u00een multe proiecte este justificat\u0103.<\/p>\n<p>Sursa: <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.1 - 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\/ro\/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.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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: ce oracle s\u0103 folose\u0219ti \u00een blockchain? | ProHoster","description":"Ast\u0103zi, doar cei lene\u0219i nu au scris despre tehnologia blockchain, criptomonede \u0219i c\u00e2t de tare este. \u00cens\u0103 \u00een acest articol nu va fi o laud\u0103 pentru aceast\u0103 tehnologie, ci despre deficien\u021bele ei \u0219i modalit\u0103\u021bile de a le remedia.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/town-crier-vs-deco-kakoj-orakul-ispolzovat-v-blokchejne","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/93794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=93794"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/93794\/revisions"}],"predecessor-version":[{"id":158360,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/93794\/revisions\/158360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/93795"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=93794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=93794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=93794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}