Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

TĂ€napĂ€eval pole keegi, kes ei oleks rÀÀkinud plokiahela tehnoloogiast, krĂŒptovaluutadest ja nende ĂŒlimusest. Kuid see artikkel ei kiida heaks seda tehnoloogiat, vaid kĂ€sitleb just selle puudusi ja vĂ”imalusi nende lahendamiseks.

Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

ÜkskĂ”ik millise projekti kallal töötades ettevĂ”ttes Altirix Systems, seisime silmitsi vajadusega kaitstud ja tsensuuri-kindlat kinnitust vĂ€lisest plokiahela allikast. Tuli kinnitada muudatused kolmanda sĂŒsteemi kirjetes ja nende pĂ”hjal tĂ€ita sĂŒsteemi nutilepingute loogikas erinevat haru. Esmapilgul nĂ€ib ĂŒlesanne ĂŒsna triviaalne, kuid kui selle tĂ€itmise tulemus mĂ”jutab ĂŒhe osalise finantsseisundit, tekivad tĂ€iendavad nĂ”udmised. KĂ”igepealt on vajalik pĂ”hjalik usaldus sellise valideerimise mehhanismi vastu. Kuid kĂ”igest jĂ€rk-jĂ€rgult.

Probleem on selles, et plokiahel on iseseisev, suletud objekt, seetÔttu ei tea plokiahela sees olevad nutilepingud midagi vÀlistest tingimustest. Samuti on nutilepingute tingimused sageli seotud tegelike asjadega (nt lennu hilinemine, valuutakurss jne). Nutilepingute korrektseks toimimiseks peab plokiahelast vÀljapoole saadud teave olema usaldusvÀÀrne ja kontrollitud. See probleem lahendatakse sellega, et kasutatakse orakleid, nagu Town Crier ja DECO. Need oraklid vÔimaldavad nutilepingul plokiahelas usaldada teavet usaldusvÀÀrselt veebiserverilt, mida vÔib pidada usaldusvÀÀrse teabe pakkujaks.

Oraklid

Kujutage ette, et nutileping viib teie bitcoin-rahakotile ĂŒle 0,001 btc, kui teie lemmik jalgpalliklubi vĂ”idab Venemaa karika. Kui vĂ”it on tĂ”ene, peab nutileping saama teavet selle kohta, milline klubi vĂ”itis, ja siin tekib mitu probleemi: kust saada see teave, kuidas see turvaliselt nutilepingusse edastada ning kuidas veenduda, et nutilepingusse saabunud teave vastab tĂ”ele?

Teabeallika allika kohta vĂ”ib olla kaks stsenaariumi: nutileping ĂŒhendatakse usaldusvÀÀrse veebisaidiga, kus keskelt hallatakse mĂ€ngutulemuste kohta teavet, vĂ”i ĂŒhendatakse kohe mitu saiti, et seejĂ€rel valida teavet enamiku samade andmeid pakkuvate allikate hulgast. Teabe tĂ€psuse kontrollimiseks kasutatakse oraakleid, nĂ€iteks Oraclize, mis kasutab TLSNotary't (TLS modifikatsioon andmete autentimise tĂ”endamiseks). Kuid Oraclize kohta on Google'is piisavalt teavet ning Habr's on mitu artiklit; tĂ€na rÀÀgin oraaklitest, mis kasutavad veidi teistsugust lĂ€henemist teabe edastamiseks: Town Crier ja DECO. Artiklis on kirjeldatud mĂ”lema oraakli tööpĂ”himĂ”tteid ning koos pĂ”hjaliku vĂ”rdluse.

Town Crier

Town Crier (TC) esitati IC3 (The Initiative for CryptoCurrencies and Contracts) 2016. aastal CCS’16 konverentsil. TC pĂ”hieesmĂ€rk on edastada teavet veebisaidilt nutilepingule ja veenduda, et TC edastatud informatsioon on sama, mis veebisaidil. TC kasutab andmete autentsuse tagamiseks TEE (Trusted Execution Environment). Algversioonis on TC kirjeldatud koostööd Intel SGX-iga.
Town Crier koosneb osast, mis on blockchainis, ja osast, mis asub operatsioonisĂŒsteemis — TC Server.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
TC leping asub blockchainis ja toimib TC esidena. See vÔtab vastu pÀringud CU-lt (kasutaja nutileping) ja tagastab vastuse TC Serverilt. TC Serveris on Relay, mis loob sideme anklaviga internetivÔrgus (kahepoolne liiklus) ja seob anklavi blockchainiga. Anklav sisaldab progencl-i, mis on kood, mis tÀidab pÀringud blockchainist ja tagastab sÔnumid blockchaini koos digitaalse allkirjaga; progencl sisaldab osa nutilepingu koodist ja tÀidab pÔhimÔtteliselt osa selle funktsioonidest.

Intel SGX enclave vĂ”ib pidada ĂŒldiseks teegiks, millel on API, mis töötab ecall'i kaudu. Ecall edastab kontrolli enclave'ile. Enclave tĂ€idab oma koodi, kuni see lĂ”petatakse vĂ”i kuni tekib erand. Funktsioonide vĂ€ljakutseteks, mis on mÀÀratletud vĂ€ljaspool enclave'i, kasutatakse ocall'i. Ocall viiakse lĂ€bi enclave'i vĂ€lispoolselt ja töödeldakse seal kui ebausaldusvÀÀrset kutset. PĂ€rast ocall'i tĂ€itmist tagastatakse kontroll enclave'ile.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
Enclave'is toimub turvakanali seadistamine veebiserveriga, enclave ise teostab TLS handshake'i sihtserveriga ja viib kĂ”ik krĂŒptograafilised toimingud lĂ€bi enda sees. TLS teek (mbedTLS) ja HTTP-kood on lĂŒhendatud versioonis eksporditud SGX keskkonda. Samuti sisaldab enclave root CA sertifikaate (sertifikaatide kogum) kaugserverite sertifikaatide kontrollimiseks. Request Handler vĂ”tab vastu datagrammi pĂ€ringu Ethereum'i pakutavas formaadis, dekrĂŒpteerib selle ja analĂŒĂŒsib. SeejĂ€rel genereeritakse Ethereum'i tehing, mis sisaldab nĂ”utud datagrammi, allkirjastatakse see skTC abil ja edastatakse Relay'le.

Relay osa sisaldab Klientide Liidest, TCP-d ja Plokiahela Liidest. Klientide Liides on vajalik anklavikoodide atesteerimiseks ja kliendiga suhtlemiseks. Klient saadab atesteerimissoovi ecall'i kaudu ning saab skTC poolt allkirjastatud ajatempleid koos att (atesteeringu allkiri) - seejÀrel kinnitatakse att Intel Attestation Service (IAS) kaudu ja ajatempli usaldusvÀÀrsust kontrollib usaldusvÀÀrne ajateenistus. Plokiahela Liides kontrollib sissetulevaid pÀringuid ja salvestab tehingud plokiahelasse datagrammide edastamiseks. Geth on ametlik Ethereum'i klient, mis vÔimaldab Relay'l plokiahelaga suhelda RPC-kutsungite kaudu.

TEE töötamisel vĂ”imaldab TC kĂ€ivitada mitmeid anklave korraga, suurendades seelĂ€bi info töötlemise kiirus kolm korda. Kui ĂŒhe töötava anklaviga oli kiirus 15 tx/sek, siis 20 paralleelselt töötava anklaviga tĂ”useb kiirus 65 tx/sek, vĂ”rdluseks Bitcoin'i plokiahela maksimaalne kiirus on 26 tx/sek.

DECO

DECO (Decentralized Oracles for TLS) esitati CCS’20-l, töötab veebilehtedel, mis toetavad TLS ĂŒhendust. Tagab andmete konfidentsiaalsuse ja terviklikkuse.
DECO c TLS kasutab sĂŒmmeetrilist krĂŒptimist, mistĂ”ttu kliendil ja veebiserveril on krĂŒpteerimisvĂ”tmed ning klient vĂ”ib soovi korral TSL sessiooni andmeid valeandmetega petta. Selle probleemi lahendamiseks kasutab DECO kolmekĂŒlgset kĂ€epigistuse protokolli prover (nutileping), verifier (oraakel) ja veebiserver (andmeallikas).

Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

DECO tööpĂ”himĂ”te seisneb selles, et kontrollija (prover) saab osa andmetest D ja kinnitab valideerijale (verifier), et D on saadud TLS-serverilt S. Veel ĂŒks probleem on see, et TLS ei allkirjasta andmeid ning TLS-klientidel on keeruline tĂ”estada, et andmed on saadud just sellelt serverilt (provenance difficulty).

DECO protokollis kasutatakse krĂŒpteerimisvĂ”tmeid KEnc ja KMac. Klient saadab pĂ€ringu Q veebiserver, serverist saabuv vastus R tuleb krĂŒpteeritud kujul, kuid nii kliendil kui serveril on samad KMac, ja klient vĂ”ib TLS sĂ”numit petta. DECO lahendus seisneb KMac 'peitmises' kliendi (prover) eest, kuni ta vastab pĂ€ringule. NĂŒĂŒd on KMac jagatud prover'i ja verifier'i vahel — KpMac ja KvMac. Server saab KMac vastuse krĂŒpteerimiseks, kasutades vĂ”tmeosade operatsiooni KpMac ⊕ KvMac = KMac.

Kolmepoolse kÀepigistuse seadistamisel toimub andmevahetus kliendi ja serveri vahel garanteeritud turvalisusega.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
RÀÀkides detsentraliseeritud oraklite sĂŒsteemist, ei saa mainimata jĂ€tta Chainlinki, mille eesmĂ€rk on luua detsentraliseeritud oraklite sĂ”lmede vĂ”rk, mis on ĂŒhilduv Ethereumiga, Bitcoiniga ja Hyperledgeriga, arvestades modularsust: iga osa sĂŒsteemist saab uuendada. Samuti, et tagada turvalisus, pakub Chainlink igale ĂŒlesandes osalevale oraklile vĂ”tmete (avatud ja suletud) kombinatsiooni vĂ€ljastamist. Suletud vĂ”tit kasutatakse osalise allkirja genereerimiseks, mis sisaldab nende lahendust andmete taotlusele. Vastuse saamiseks on vajalik kĂ”ikide vĂ”rgus olevate oraklite osaliste allkirjade ĂŒhendamine.

Chainlink plaanib teostada esialgse PoC DECO, keskendudes detsentraliseeritud finantss rakendustele, nagu Mixicles. Artikli kirjutamise hetkel ilmus Forbesis uudis, et Chainlink omandas DECO Cornell Universitylt.

RĂŒnnakud oraklitele

Town Crier vs DECO: millist oraaklit kasutada plokiahelas?

Infoturbe seisukohalt on kĂ€sitletud jĂ€rgmisi rĂŒnnakuid Town Crierile:

  1. Pahaloomulise nutika lepingu koodi sisestamine TEE sÔlmedesse.
    RĂŒnnaku olemus: vale nutilepingukoodi edastamine TEE-sse, vĂ”imaldades seega rĂŒndajal, kes on saanud juurdepÀÀsu sĂ”lmele, kĂ€ivitada oma (petlik) nutilepingud dekodeeritud andmete jaoks. Tagastatavad vÀÀrtused aga krĂŒpteeritakse privaatvĂ”tmega, ja ainus juurdepÀÀs nendele andmetele on krĂŒpteeritud teksti lekke kaudu tagastamisel/vĂ€ljastamisel.
    Kaitse selle rĂŒnnaku eest seisneb selles, et kontrolleks anklav koodi Ă”igsust, mis asub praeguses aadressis. Seda saab saavutada aadressindusskeemi abil, kus lepinguaadress mÀÀratakse lepingukoodi hashimise teel.

  2. Lepinguriigi salakoodide muutused lekitavad.
    RĂŒnnaku olemus: sĂ”lmed, kus nutilepingud töötavad, pÀÀsevad ligi lepinguriigile krĂŒpteeritud kujul vĂ€ljaspool anklavit. RĂŒndaja, kes saab sĂ”lmest juhtimise, saab vĂ”rrelda lepinguriiki enne ja pĂ€rast tehingut ning tuvastada, milliseid argumente esitati ja millist nutilepingute meetodit kasutati, kuna nutilepingukood ja selle tehnilised spetsifikatsioonid on ĂŒldiselt kergesti kĂ€ttesaadavad.
    UsaldusvÀÀrsuse tagamise kaitse nodi.

  3. KĂŒlgkanali rĂŒnnakud.
    Eri tĂŒĂŒpi rĂŒnnakud, mis kasutavad juurdepÀÀsu jĂ€lgimist mĂ€lu ja vahemĂ€lu kaudu enklaavi erinevates stsenaariumites. Üks nĂ€ide sellisest rĂŒnnakust on Prime and Probe.
    Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
    RĂŒnnaku lĂ€biviimise jĂ€rjestus:

    • t0: RĂŒndaja tĂ€idab kĂ”ik kahjustatud protsessi andmete vahemĂ€lu.
    • t1: Ohver tĂ€idab koodi, mille mĂ€lu juurdepÀÀs sĂ”ltub ohvri konfidentsiaalsetest andmetest (krĂŒptograafilised vĂ”tmed). VahemĂ€lu rida valitakse keybit'i vÀÀrtuse alusel. NĂ€ites on keybit = 0 ja aadress X on loetud vahemĂ€lu reas 2. Xis hoitud andmed laaditakse vahemĂ€lu, asendades seal varem olnud andmed.
    • t2: RĂŒndaja kontrollib, millised tema vahemĂ€lu read on asendatud — read, mida ohver kasutas. Seda tehakse juurdepÀÀsuaja mÔÔtmisega. Korrates seda tegevust iga keybit'i jaoks, saab rĂŒndaja kogu vĂ”tme.

Kaitse rĂŒnnaku eest: Intel SGX-s on kaitse kĂŒlgkanali rĂŒnnakute vastu, mis takistab vahemĂ€lu seonduvate sĂŒndmuste jĂ€lgimist, kuid rĂŒnnak Prime and Probe lĂ€bib ikkagi, kuna rĂŒndaja jĂ€lgib oma protsessi vahemĂ€lu sĂŒndmusi ja jagab vahemĂ€lu ohvriga.
Town Crier vs DECO: millist oraaklit kasutada plokiahelas?
Seega pole praegu selle rĂŒnnaku vastu tĂ”husat kaitset.

On teada ka Spectre ja Foreshadow (L1TF) rĂŒnnakud, mis on sarnased Prime and Probe'ile. Need vĂ”imaldavad andmete lugemist vahemĂ€lust kĂ”rvalkanali kaudu. Spectre-v2 haavatavuse eest on olemas kaitse, mis kaitseb ka kahe eespool nimetatud rĂŒnnaku eest.

DECO puhul annab kolmeosalise kÀepigistuse turvalisuse garandi:

  1. Prover Integrity: hÀkitud prover ei saa vale teavet serveri pÀritolu kohta valevÀrbamise kaudu, samuti ei saa ta sundida serverit aktsepteerima kehtetuid pÀringuid vÔi vastama Ôigesti kehtetele pÀringutele. See on teostatav pÀringute mallide kaudu serveri ja prover'i vahel.
  2. Verifier Integrity: hÀkitud verifier ei saa sundida proverit saama vale vastuseid.
  3. Privaatsus: hÀkitud verifier uurib ainult avalikku teavet (pÀring, serveri nimi).

DECO-s on vĂ”imalikud ainult rĂŒnnakud, mis on seotud liikluse sissetoomisega. Algselt, kolmeosalise kĂ€epigistuse ajal vĂ”ib verifier serveri identiteedi kindlaks teha vĂ€rskendatud nonce'i abil. KĂŒll aga peab verifier pĂ€rast kĂ€epigistust toetuma vĂ”rgu tasandi indikaatoritele.IP-aadressid). Seega peab verifier ja server vaheline ĂŒhendus olema kaitstud liikluse sisestamise eest. See saavutatakse Proxy kasutamisega.

Oracle'ide vÔrdlemine

Town Crier pĂ”hineb töötlusel serveripoolse enclave'i kaudu, samas kui DECO vĂ”imaldab andmete pĂ€ritolu autentimist kolmiköövĂ”tmise ja krĂŒpteerimise abil krĂŒptograafiliste vĂ”tmete kaudu. Oracle'ide andmete vĂ”rdlemine toimus jĂ€rgmiste kriteeriumide alusel: töökiirus, turvalisus, hind ja kasulikkus.

Town Crier
DECO

töökiirus
Kiirem (0.6s lÔppeda)
Aeglasem (10.50s protokolli lÔpetamiseks)

turvalisus
Mugavam
Turvalisem

hind
Kallim
Odavam

kasulikkus
NÔuab spetsiaalset riistvara
Töötleb igat serverit, mis toetab TLS-i

Töökiirus: DECO tööks on vajalik kolmik-kĂ€epigistus, LAN-i kaudu seadistamisel kestab see 0,37 sekundi. PĂ€rast ĂŒhenduse loomist on tĂ”hus 2PC-HMAC (0,13 s kirjutamiseks). DECO jĂ”udlus sĂ”ltub TLS-i krĂŒptograafilistest komplektidest, isikuandmete suurusest ja tĂ”endusmaterjali keerukusest konkreetse rakenduse jaoks. NĂ€iteks IC3 binaarsete optsioonide rakenduse puhul kestab protokolli lĂ”puleviimine LAN-i kaudu umbes 10,50 s. VĂ”rdluseks, Town Crier vajab sarnase rakenduse tĂ€itmiseks umbes 0,6 sekundit, mis on umbes 20 korda kiiremini kui DECO. Samadel tingimustel on TC kiirem.

Ohutus: Intel SGX klastrite rĂŒnnakud (kĂŒlgkanali rĂŒnnakud) toimivad ja vĂ”ivad tekitada tĂ”elist kahju nutilepingute osalistele. DECO-ga on vĂ”imalikud rĂŒnnakud, mis on seotud liikluse sissetoomisega, kuid proxy kasutamine kĂ”rvaldab sellised rĂŒnnakud. Seega on DECO turvalisem.

Hind: Intel SGX-iga töötavat seadmete maksumus ĂŒletab DECO protokolli seadistamise maksumuse. SeetĂ”ttu on TC kallim.

Praktilisus: Town Crieri kasutamiseks on vajalik spetsiaalne riistvara, mis toetab TEE-d. NÀiteks toetavad Intel SGX 6. pÔlvkonna ja uuemate Intel Core'i protsessorite pered. DECO seevastu vÔimaldab töötamist igasuguste seadmetega, kuigi DECO-l on TEE kasutamiseks kohandatud seadistus. DECO kolmeosalise kÀepigistuse seadistusprotsess vÔib vÔtta aega, kuid see ei saa vÔrreldagi TC riistvara piirangutega, mistÔttu on DECO praktilisem.

KokkuvÔte

Vaadates kahte oraklit eraldi ja vĂ”rreldes neid nelja kriteeriumi pĂ”hjal, on selge, et Town Crier jÀÀb DECO-le alla kolmes neljast punktist. DECO on usaldusvÀÀrsem teabe turvalisuse osas, odavam ja praktilisem, kuigi kolmeosalise protokolli seadistamine vĂ”ib vĂ”tta aega ja sellega on seotud mĂ”ned miinused, nĂ€iteks tĂ€iendavad ĆĄifreerimise vĂ”tmega seotud toimingud. TC töötab kiiremini kui DECO, kuid side-channel attack'iga seotud haavatavus muudab selle konfidentsiaalsuse kadumise riski alla. Tuleb arvestada, et DECO esitati jaanuaris 2020 ja pole veel piisavalt aega möödunud, et pidada seda ohutuks. Town Crier on juba 4 aastat olnud rĂŒnnakute all ja on lĂ€binud mitmeid kontrolle, mistĂ”ttu on selle kasutamine paljudes projektides pĂ”hjendatud.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster