Town Crier vs DECO: cilin orakull të përdorni në blockchain?

Sot, vetëm dembelët nuk kanë shkruar për teknologjinë blockchain, kriptovalutat dhe se sa e lezetshme është ajo. Por ky artikull nuk do ta lavdërojë këtë teknologji; ne do të flasim për të metat e saj dhe mënyrat për t'i eliminuar ato.

Town Crier vs DECO: cilin orakull të përdorni në blockchain?

Ndërsa punonte në një nga projektet në Altirix Systems, lindi detyra e konfirmimit të sigurt dhe rezistent ndaj censurës të të dhënave nga një burim i jashtëm në blockchain. Ishte e nevojshme të konfirmoheshin ndryshimet në të dhënat e sistemit të tretë dhe, bazuar në këto ndryshime, të ekzekutohej një ose një degë tjetër në logjikën e kontratës inteligjente. Detyra në shikim të parë është mjaft e parëndësishme, por kur gjendja financiare e njërës prej palëve pjesëmarrëse në proces varet nga rezultati i zbatimit të saj, shfaqen kërkesa shtesë. Para së gjithash, ky është besim gjithëpërfshirës në një mekanizëm të tillë vërtetimi. Por gjërat e para së pari.

Problemi është se vetë blockchain është një entitet autonom, i mbyllur, kështu që kontratat inteligjente brenda blockchain nuk dinë asgjë për botën e jashtme. Në të njëjtën kohë, kushtet e kontratave inteligjente shpesh lidhen me informacione rreth gjërave reale (vonesa e fluturimit, kursi i këmbimit, etj.). Që kontratat inteligjente të funksionojnë siç duhet, informacioni i marrë nga jashtë blockchain duhet të jetë i besueshëm dhe i verifikuar. Ky problem zgjidhet duke përdorur orakuj të tillë si Town Crier dhe DECO. Këto orakuj lejojnë që një kontratë inteligjente në rrjetin blockchain t'i besojë informacionit nga një server në internet i besuar; mund të themi se këta janë ofrues të informacionit të besueshëm.

Orakujt

Imagjinoni që një kontratë inteligjente transferon 0.001 btc në portofolin tuaj bitcoin nëse klubi juaj i preferuar i futbollit fiton Kupën e Rusisë. Në rast të një fitoreje të vërtetë, kontrata inteligjente duhet të transferojë informacione se cili klub fitoi dhe këtu lindin një sërë problemesh: ku mund ta merrni këtë informacion, si ta transferoni atë në mënyrë të sigurt në kontratën inteligjente dhe si të siguroheni që informacioni marrë në kontratën inteligjente është e vlefshme në të vërtetë përkon me realitetin?

Kur bëhet fjalë për burimin e informacionit, mund të ketë 2 skenarë: lidhja e një kontrate inteligjente me një faqe interneti të besuar ku informacioni për rezultatet e ndeshjeve ruhet në qendër, dhe opsioni i dytë është të lidhni disa sajte menjëherë dhe më pas të zgjidhni informacionin nga shumica e burimeve që japin të njëjtat të dhëna. Për të verifikuar saktësinë e informacionit, përdoren orakujt, për shembull Oraclize, i cili përdor TLSNotary (Modifikimi i noterit TLS për të vërtetuar vërtetësinë e të dhënave). Por ka mjaft informacion në Google për Oraclize, dhe ka disa artikuj për Habré.Sot do të flas për orakujt që përdorin një qasje paksa të ndryshme për transmetimin e informacionit: Town Crier dhe DECO. Artikulli ofron një përshkrim të parimeve të funksionimit të të dy orakujve, si dhe një krahasim të detajuar.

Town Crier

Town Crier (TC) u prezantua nga IC3 (Iniciativa për CryptoCurrencies dhe Kontratat) në 2016 në CCS'16. Ideja kryesore e TC: transferoni informacionin nga një faqe interneti në një kontratë inteligjente dhe sigurohuni që informacioni i dhënë nga TC të jetë i njëjtë si në faqen e internetit. TC përdor TEE (Trusted Execution Environment) për të vërtetuar pronësinë e të dhënave. Versioni origjinal i TC përshkruan se si të punohet me Intel SGX.
Town Crier përbëhet nga një pjesë brenda blockchain dhe një pjesë brenda vetë OS - Server TC.
Town Crier vs DECO: cilin orakull të përdorni në blockchain?
Kontrata TC është në blockchain dhe vepron si fundi i përparmë për TC. Ai pranon kërkesat nga CU (kontrata inteligjente e përdoruesit) dhe kthen një përgjigje nga serveri TC. Brenda Serverit TC ka një Relay, i cili vendos një lidhje midis enklavës dhe internetit (trafiku dydrejtues) dhe lidh enklavën me zinxhirin bllokues. Enclave përmban progencl, i cili është kodi që bën kërkesa nga blockchain dhe kthen mesazhe në blockchain me një nënshkrim dixhital, progencl përmban një pjesë të kodit të kontratës inteligjente dhe në thelb kryen disa nga funksionet e tij.

Enklava Intel SGX mund të mendohet si një bibliotekë e përbashkët me një API që funksionon përmes ecall. Ecall transferon kontrollin në enklavë. Enklava ekzekuton kodin e saj derisa të dalë ose derisa të ndodhë një përjashtim. ocall përdoret për të thirrur funksione të përcaktuara jashtë enklavës. Ocall ekzekutohet jashtë enklavës dhe trajtohet si një thirrje e pabesueshme prej saj. Pasi të ekzekutohet ocall, kontrolli kthehet në enklavë.
Town Crier vs DECO: cilin orakull të përdorni në blockchain?
Në pjesën Enclave, një kanal i sigurt është konfiguruar me një server në internet, vetë enklava kryen një shtrëngim duarsh TLS me serverin e synuar dhe kryen të gjitha operacionet kriptografike brenda. Biblioteka TLS (mbedTLS) dhe kodi i reduktuar HTTP janë eksportuar në mjedisin SGX. Gjithashtu, Enclave përmban certifikata rrënjë CA (një koleksion certifikatash) për të verifikuar certifikatat e serverëve të largët. Trajtuesi i Kërkesave pranon një kërkesë datagrami në formatin e ofruar nga Ethereum, e deshifron atë dhe e analizon atë. Pastaj gjeneron një transaksion Ethereum që përmban datagramin e kërkuar, e nënshkruan atë me skTC dhe e transmeton atë në Relay.

Pjesa Rele përfshin Ndërfaqen e Klientit, TCP, Ndërfaqen e Blockchain. Ndërfaqja e klientit nevojitet për të vërtetuar kodin e enklavës dhe për të komunikuar me klientin. Klienti dërgon një kërkesë vërtetimi duke përdorur ecall dhe merr një vulë kohore të nënshkruar nga skTC së bashku me att (nënshkrimi i vërtetimit), më pas att verifikohet duke përdorur Shërbimin e Vërtetimit të Intel (IAS) dhe vula kohore verifikohet nga një shërbim i besuar i kohës. Ndërfaqja Blockchain verifikon kërkesat hyrëse dhe vendos transaksione në blockchain për dërgimin e të dhënave. Geth është një klient zyrtar i Ethereum dhe lejon Relay të ndërveprojë me blockchain përmes thirrjeve RPC.

Duke punuar me TEE, TC ju lejon të ekzekutoni disa enklava paralelisht, duke rritur kështu shpejtësinë e përpunimit të informacionit me 3 herë. Nëse me një enklavë që funksionon shpejtësia ishte 15 tx/sek, atëherë me 20 enklava paralele të drejtimit shpejtësia rritet në 65 tx/sek; për krahasim, shpejtësia maksimale e funksionimit në blockchain Bitcoin është 26 tx/sek.

Deco

DECO (Oracles Decentralized for TLS) u prezantua në CCS'20, punon me faqet që mbështesin lidhjet TLS. Siguron konfidencialitetin dhe integritetin e të dhënave.
DECO me TLS përdor kriptim simetrik, kështu që klienti dhe serveri në internet kanë çelësa enkriptimi dhe klienti mund të falsifikojë të dhënat e sesionit TLS nëse dëshiron. Për të zgjidhur këtë problem, DECO përdor një protokoll shtrëngimi duarsh me tre drejtime midis proverit (kontrata inteligjente), verifikuesit (oracle) dhe serverit në internet (burimi i të dhënave).

Town Crier vs DECO: cilin orakull të përdorni në blockchain?

Mënyra se si funksionon DECO është se verifikuesi merr një pjesë të të dhënave D dhe i konfirmon verifikuesit se D erdhi nga serveri TLS S. Një problem tjetër është se TLS nuk nënshkruan të dhënat dhe është e vështirë për klientin TLS të provojë se të dhënat janë marrë pikërisht nga serveri i duhur (vështirësia e origjinës).

Protokolli DECO përdor çelësat e enkriptimit KEnc dhe KMac. Klienti dërgon një kërkesë Q në serverin e uebit, përgjigja nga serveri R vjen në formë të koduar, por klienti dhe serveri zotërojnë të njëjtin KMac dhe klienti mund të falsifikojë mesazhin TLS. Zgjidhja e DECO është të "fshehni" KMac nga klienti (prover) derisa ai t'i përgjigjet kërkesës. Tani KMac është i ndarë midis proverit dhe verifikuesit - KpMac dhe KvMac. Serveri merr KMac për të enkriptuar përgjigjen duke përdorur funksionin e pjesës kryesore KpMac ⊕ KvMac = KMac.

Duke vendosur një shtrëngim duarsh me tre drejtime, shkëmbimi i të dhënave midis klientit dhe serverit do të kryhet me një garanci sigurie.
Town Crier vs DECO: cilin orakull të përdorni në blockchain?
Kur flasim për një sistem orakull të decentralizuar, nuk mund të mos përmendet Chainlink, i cili synon të krijojë një rrjet të decentralizuar të nyjeve të orakullit të pajtueshëm me Ethereum, Bitcoin dhe Hyperledger, duke marrë parasysh modularitetin: çdo pjesë e sistemit mund të përditësohet. Në të njëjtën kohë, për të garantuar sigurinë, Chainlink ofron çdo orakull që merr pjesë në detyrë të lëshojë një kombinim çelësash (publik dhe privat). Çelësi privat përdoret për të gjeneruar një nënshkrim të pjesshëm që përmban vendimin e tyre për kërkesën e të dhënave. Për të marrë një përgjigje, është e nevojshme të kombinohen të gjitha nënshkrimet e pjesshme të orakujve të rrjetit.

Chainlink planifikon të kryejë një PoC DECO fillestare me fokus në aplikacionet e financave të decentralizuara si Mixicles. Në kohën e shkrimit, lajmi doli në Forbes se Chainlink bleu DECO nga Universiteti Cornell.

Sulmet ndaj orakujve

Town Crier vs DECO: cilin orakull të përdorni në blockchain?

Nga pikëpamja e sigurisë së informacionit, sulmet e mëposhtme në Town Crier u konsideruan:

  1. Injeksion mashtrues i kodit të kontaktit inteligjent në nyjet TEE.
    Thelbi i sulmit: transmetimi i një kodi qëllimisht të pasaktë të kontratës inteligjente në TEE, kështu, një sulmues që fitoi akses në nyjen do të jetë në gjendje të ekzekutojë kontratën e tij inteligjente (mashtruese) në të dhënat e deshifruara. Sidoqoftë, vlerat e kthyera do të kodohen me një çelës privat dhe mënyra e vetme për të hyrë në të dhëna të tilla është rrjedhja e tekstit të koduar në kthim/dalje.
    Mbrojtja kundër këtij sulmi konsiston në kontrollimin e korrektësisë së kodit të vendosur në adresën aktuale nga enklava. Kjo mund të arrihet duke përdorur një skemë adresimi ku adresa e kontratës përcaktohet duke hash kodin e kontratës.

  2. Rrjedhje e ndryshimeve të tekstit të shifrimit të gjendjes së kontratës.
    Thelbi i sulmit: Pronarët e nyjeve mbi të cilat ekzekutohen kontratat inteligjente kanë akses në gjendjen e kontratës në formë të koduar jashtë enklavës. Një sulmues, pasi ka marrë kontrollin e një nyje, mund të krahasojë gjendjen e kontaktit para dhe pas transaksionit dhe mund të përcaktojë se cilat argumente janë futur dhe cila metodë e kontratës inteligjente është përdorur, pasi vetë kodi i kontratës inteligjente dhe specifikimet e tij teknike janë të disponueshme publikisht.
    Mbrojtje në sigurimin e besueshmërisë së vetë nyjës.

  3. Sulmet e kanalit anësor.
    Një lloj i veçantë sulmi që përdor monitorimin e memories së enklave dhe aksesin në cache në skenarë të ndryshëm. Një shembull i një sulmi të tillë është Prime dhe Probe.
    Town Crier vs DECO: cilin orakull të përdorni në blockchain?
    Urdhri i sulmit:

    • t0: Sulmuesi mbush të gjithë cache-in e të dhënave të procesit të viktimës.
    • t1: Viktima ekzekuton kodin me aksese në kujtesë që varen nga të dhënat e ndjeshme të viktimës (çelësat kriptografikë). Linja e cache-it zgjidhet bazuar në vlerën e bitit të çelësit. Në shembullin e figurës, lexohet biti i tastierës = 0 dhe adresa X në rreshtin e memories 2. Të dhënat e ruajtura në X ngarkohen në cache, duke zhvendosur të dhënat që ishin aty më parë.
    • t2: Sulmuesi kontrollon se cilat nga linjat e tij të memories janë nxjerrë - linja të përdorura nga viktima. Kjo bëhet duke matur kohën e hyrjes. Duke e përsëritur këtë veprim për çdo bit kyç, sulmuesi merr të gjithë çelësin.

Mbrojtja nga sulmi: Intel SGX ka mbrojtje kundër sulmeve të kanalit anësor që parandalon monitorimin e ngjarjeve të lidhura me cache, por një sulm Prime dhe Probe do të vazhdojë të funksionojë sepse sulmuesi monitoron ngjarjet e cache të procesit të tij dhe ndan cache-in me viktimën.
Town Crier vs DECO: cilin orakull të përdorni në blockchain?
Kështu, për momentin nuk ka asnjë mbrojtje të besueshme kundër këtij sulmi.

Sulmet si Spectre dhe Foreshadow (L1TF), të ngjashme me Prime dhe Probe, janë gjithashtu të njohura. Ato ju lejojnë të lexoni të dhëna nga memoria e memories përmes një kanali të palës së tretë. Sigurohet mbrojtje kundër cenueshmërisë Specter-v2, e cila funksionon kundër dy prej këtyre sulmeve.

Në lidhje me DECO, shtrëngimi i duarve me tre drejtime siguron një garanci sigurie:

  1. Integriteti prover: Një prover i hakuar nuk mund të falsifikojë informacionin e origjinës së serverit dhe nuk mund të bëjë që serveri të pranojë kërkesa të pavlefshme ose t'u përgjigjet gabimisht kërkesave të vlefshme. Kjo bëhet përmes modeleve të kërkesave ndërmjet serverit dhe proverit.
  2. Integriteti i verifikuesit: Një verifikues i hakuar nuk mund të bëjë që proveri të marrë përgjigje të pasakta.
  3. Privatësia: Verifikuesi i hakuar shqyrton vetëm informacionet publike (kërkesa, emri i serverit).

Në DECO, janë të mundshme vetëm dobësitë e injektimit të trafikut. Së pari, me një shtrëngim duarsh në tre drejtime, verifikuesi mund të përcaktojë identitetin e serverit duke përdorur një nonce të re. Megjithatë, pas shtrëngimit të duarve, verifikuesi duhet të mbështetet në treguesit e shtresës së rrjetit (adresat IP). Kështu, komunikimi ndërmjet verifikuesit dhe serverit duhet të mbrohet nga injektimi i trafikut. Kjo arrihet duke përdorur Proxy.

Krahasimi i orakujve

Town Crier bazohet në punën me një enklavë në pjesën e serverit, ndërsa DECO ju lejon të verifikoni vërtetësinë e origjinës së të dhënave duke përdorur një shtrëngim duarsh në tre drejtime dhe kriptim të të dhënave me çelësa kriptografikë. Krahasimi i këtyre orakujve u krye sipas kritereve të mëposhtme: performanca, siguria, kostoja dhe praktika.

Town Crier
Deco

performancës
Më shpejt (0.6 sekonda për të përfunduar)
Më i ngadalshëm (10.50 sekonda për të përfunduar protokollin)

безопасность
Më pak të sigurt
Më të sigurt

kosto
Më e shtrenjtë
Më lirë

praktike
Kërkon pajisje speciale
Punon me çdo server që mbështet TLS

shpejtësi: Për të punuar me DECO, kërkohet një shtrëngim duarsh në tre drejtime, kur konfigurohet nëpërmjet LAN kërkon 0.37 sekonda, për ndërveprim pas vendosjes së lidhjes, 2PC-HMAC është efektiv (0,13 s për shkrim). Performanca e DECO varet nga paketat e disponueshme të shifrave TLS, madhësia e të dhënave private dhe kompleksiteti i provave për një aplikacion të caktuar. Përdorimi i aplikacionit të opsioneve binare nga IC3 si shembull: plotësimi i protokollit nëpërmjet LAN merr rreth 10,50 sekonda. Për krahasim, Town Crier merr rreth 0,6 sekonda për të përfunduar një aplikacion të ngjashëm, që është afërsisht 20 herë më i shpejtë se DECO. Nëse të gjitha gjërat janë të barabarta, TC do të jetë më i shpejtë.

siguri: Sulmet në enklavën Intel SGX (sulmet e kanalit anësor) funksionojnë dhe mund të shkaktojnë dëme reale për pjesëmarrësit e kontratës inteligjente. Sa i përket DECO, sulmet që lidhen me injektimin e trafikut janë të mundshme, por përdorimi i një përfaqësuesi i zvogëlon sulmet e tilla në asgjë. Prandaj DECO është më i sigurt.

Kosto: Kostoja e pajisjeve që mbështet Intel SGX është më e lartë se kostoja e konfigurimit të protokollit në DECO. Kjo është arsyeja pse TC është më e shtrenjtë.

praktike: Për të punuar me Town Crier, nevojiten pajisje speciale që mbështesin TEE. Për shembull, Intel SGX mbështetet në familjen e procesorëve Intel Core të gjeneratës së 6-të dhe më vonë. DECO ju lejon të punoni me çdo pajisje, megjithëse ekziston një cilësim DECO duke përdorur TEE. Sipas procesit të konfigurimit, shtrëngimi i duarve në tre drejtime i DECO mund të marrë pak kohë, por kjo nuk është asgjë në krahasim me kufizimin e harduerit të TC, kështu që DECO është më praktik.

Përfundim

Duke parë dy orakujt veç e veç dhe duke i krahasuar me katër kritere, është e qartë se Town Crier është inferior ndaj DECO në tre nga katër pika. DECO është më i besueshëm nga pikëpamja e sigurisë së informacionit, më i lirë dhe më praktik, megjithëse vendosja e një protokolli trepalësh mund të marrë pak kohë dhe ka disavantazhet e tij, për shembull, operacione shtesë me çelësa kriptimi. TC është më i shpejtë se DECO, por dobësitë e sulmit të kanalit anësor e bëjnë atë të ndjeshëm ndaj humbjes së konfidencialitetit. Duhet të kihet parasysh se DECO u prezantua në janar 2020 dhe nuk ka kaluar kohë e mjaftueshme për ta konsideruar të sigurt. Town Crier është sulmuar prej 4 vitesh dhe ka kaluar shumë prova, ndaj përdorimi i tij në shumë projekte është i justifikuar.

Burimi: www.habr.com

Shto një koment