Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?

Danas samo lijeni nisu pisali o blockchain tehnologiji, kriptovalutama i kako je to cool. Ali ovaj članak neće hvaliti ovu tehnologiju, govorit ćemo o njenim nedostacima i načinima njihovog uklanjanja.

Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?

Tijekom rada na jednom od projekata u Altirix Systemsu pojavio se zadatak sigurne, na cenzuru otporne potvrde podataka iz izvora izvan blockchaina. Bilo je potrebno potvrditi promjene u zapisima trećeg sustava i na temelju tih promjena izvršiti jednu ili drugu granu u logici pametnog ugovora. Zadatak je na prvi pogled prilično trivijalan, ali kada financijsko stanje jedne od strana koje sudjeluju u procesu ovisi o rezultatu njegove provedbe, pojavljuju se dodatni zahtjevi. Prije svega, to je sveobuhvatno povjerenje u takav mehanizam provjere valjanosti. Ali prvo o svemu.

Problem je u tome što je sam blockchain autonomna, zatvorena cjelina, tako da pametni ugovori unutar blockchaina ne znaju ništa o vanjskom svijetu. U isto vrijeme, uvjeti pametnih ugovora često su povezani s informacijama o stvarnim stvarima (kašnjenje leta, tečajevi itd.). Da bi pametni ugovori ispravno funkcionirali, informacije primljene izvan blockchaina moraju biti pouzdane i provjerene. Ovaj problem je riješen korištenjem orakula kao što su Town Crier i DECO. Ova proročanstva omogućuju pametnom ugovoru na blockchain mreži da vjeruje informacijama s pouzdanog web poslužitelja; možemo reći da su to pružatelji pouzdanih informacija.

Proročišta

Zamislite da pametni ugovor prenosi 0.001 btc u vaš bitcoin novčanik ako vaš omiljeni nogometni klub osvoji Kup Rusije. U slučaju stvarne pobjede, pametni ugovor treba prenijeti informaciju o tome koji je klub pobijedio, a tu nastaju brojni problemi: gdje dobiti te informacije, kako ih sigurno prenijeti u pametni ugovor i kako osigurati da informacije primljeno u pametnom ugovoru valjano se zapravo poklapa sa stvarnošću?

Što se tiče izvora informacija, mogu postojati 2 scenarija: povezivanje pametnog ugovora s pouzdanom web stranicom na kojoj se centralno pohranjuju podaci o rezultatima utakmica, a druga opcija je povezivanje nekoliko stranica odjednom i odabir informacija iz većine izvora. koji pružaju iste podatke. Za provjeru točnosti podataka koriste se orakuli, primjerice Oraclize koji koristi TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Ali na Googleu ima dovoljno informacija o Oraclizeu, a postoji i nekoliko članaka na Habréu. Danas ću govoriti o proročištima koja koriste malo drugačiji pristup prijenosu informacija: Town Crier i DECO. Članak daje opis principa rada oba proročišta, kao i detaljnu usporedbu.

Gradski glasnik

Town Crier (TC) je predstavio IC3 (The Initiative for CryptoCurrencies and Contracts) 2016. na CCS'16. Glavna ideja TC-a: prenijeti informacije s web stranice na pametni ugovor i pobrinuti se da informacije koje isporučuje TC budu iste kao na web stranici. TC koristi TEE (Trusted Execution Environment) za provjeru autentičnosti vlasništva podataka. Izvorna verzija TC-a opisuje kako raditi s Intel SGX.
Town Crier se sastoji od dijela unutar blockchaina i dijela unutar samog OS-a – TC Servera.
Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?
TC Contract je na blockchainu i djeluje kao front end za TC. Prihvaća zahtjeve od CU (korisnički pametni ugovor) i vraća odgovor od TC poslužitelja. Unutar TC Servera nalazi se Relay, koji uspostavlja vezu između enklave i Interneta (dvosmjerni promet) i povezuje enklavu s blockchainom. Enclave sadrži progencl, koji je kod koji šalje zahtjeve iz blockchaina i vraća poruke u blockchain s digitalnim potpisom, progencl sadrži dio koda pametnog ugovora i u biti obavlja neke od njegovih funkcija.

Enklava Intel SGX može se smatrati dijeljenom bibliotekom s API-jem koji radi putem ecall-a. Ecall prenosi kontrolu na enklavu. Enklava izvršava svoj kod dok ne izađe ili dok se ne dogodi iznimka. ocall se koristi za pozivanje funkcija definiranih izvan enklave. Ocall se izvršava izvan enklave i ona ga tretira kao nepouzdani poziv. Nakon što se ocall izvrši, kontrola se vraća enklavi.
Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?
U dijelu enklave, sigurni kanal je konfiguriran s web poslužiteljem, enklava sama izvodi TLS rukovanje s ciljnim poslužiteljem i obavlja sve kriptografske operacije interno. TLS biblioteka (mbedTLS) i smanjeni HTTP kod izvezeni su u SGX okruženje. Također, Enclave sadrži korijenske CA certifikate (zbirku certifikata) za provjeru certifikata udaljenih poslužitelja. Rukovatelj zahtjevima prihvaća zahtjev za datagramom u formatu koji nudi Ethereum, dekriptira ga i analizira. Zatim generira Ethereum transakciju koja sadrži traženi datagram, potpisuje je sa skTC i šalje Relayu.

Relay dio uključuje sučelje klijenta, TCP, Blockchain sučelje. Klijentsko sučelje potrebno je za certificiranje koda enklave i komunikaciju s klijentom. Klijent šalje zahtjev za atestiranje pomoću ecall-a i prima vremensku oznaku koju potpisuje skTC zajedno s att (atestacijski potpis), zatim se att provjerava pomoću Intel Attestation Service (IAS), a vremensku oznaku provjerava pouzdana vremenska usluga. Blockchain sučelje provjerava dolazne zahtjeve i postavlja transakcije na blockchain za isporuku datagrama. Geth je službeni Ethereum klijent i omogućuje Relayu interakciju s blockchainom putem RPC poziva.

Rad s TEE-om, TC vam omogućuje paralelno pokretanje nekoliko enklava, čime se povećava brzina obrade informacija za 3 puta. Ako je s jednom pokrenutom enklavom brzina bila 15 tx/sek, tada se s 20 paralelno pokrenutih enklava brzina povećava na 65 tx/sek; za usporedbu, maksimalna radna brzina u Bitcoin blockchainu je 26 tx/sek.

DECO

DECO (Decentralized Oracles for TLS) predstavljen je na CCS'20, radi sa stranicama koje podržavaju TLS veze. Osigurava povjerljivost i integritet podataka.
DECO s TLS-om koristi simetričnu enkripciju, tako da klijent i web poslužitelj imaju ključeve za šifriranje, a klijent može krivotvoriti podatke TLS sesije ako želi. Kako bi riješio ovaj problem, DECO koristi trosmjerni protokol rukovanja između dokazivača (pametni ugovor), verifikatora (oracle) i web-poslužitelja (izvor podataka).

Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?

Način na koji DECO radi je da verifikator prima dio podataka D i potvrđuje verifikatoru da je D došao s TLS poslužitelja S. Drugi problem je što TLS ne potpisuje podatke i TLS klijentu je teško dokazati da je podaci su primljeni s točno pravog poslužitelja (poteškoće s porijeklom).

DECO protokol koristi KEnc i KMac ključeve za šifriranje. Klijent šalje zahtjev Q web poslužitelju, odgovor s poslužitelja R dolazi u šifriranom obliku, ali klijent i poslužitelj posjeduju isti KMac, a klijent može krivotvoriti TLS poruku. DECO-ovo rješenje je "sakriti" KMac od klijenta (provera) dok ne odgovori na zahtjev. Sada je KMac podijeljen između dokazivača i verifikatora - KpMac i KvMac. Poslužitelj prima KMac za šifriranje odgovora koristeći operaciju dijela ključa KpMac ⊕ KvMac = KMac.

Postavljanjem trosmjernog rukovanja razmjena podataka između klijenta i poslužitelja odvijat će se uz jamstvo sigurnosti.
Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?
Kada govorimo o decentraliziranom Oracle sustavu, ne možemo ne spomenuti Chainlink, čiji je cilj stvoriti decentraliziranu mrežu Oracle čvorova kompatibilnih s Ethereumom, Bitcoinom i Hyperledgerom, uzimajući u obzir modularnost: svaki dio sustava može se ažurirati. U isto vrijeme, kako bi se osigurala sigurnost, Chainlink nudi svakom proročištu koje sudjeluje u zadatku da izda kombinaciju ključeva (javnih i privatnih). Privatni ključ koristi se za generiranje djelomičnog potpisa koji sadrži njihovu odluku o zahtjevu za podacima. Za dobivanje odgovora potrebno je kombinirati sve parcijalne potpise mrežnih orakula.

Chainlink planira provesti početni PoC DECO s fokusom na decentralizirane financijske aplikacije kao što su Mixicles. U vrijeme pisanja, na Forbesu je izašla vijest da je Chainlink kupio DECO sa Sveučilišta Cornell.

Napadi na proročišta

Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?

Sa stajališta informacijske sigurnosti, razmatrani su sljedeći napadi na Town Crier:

  1. Lagano ubacivanje koda pametnog kontakta na TEE čvorove.
    Bit napada: odašiljanje namjerno netočnog koda pametnog ugovora TEE-u, tako da će napadač koji je dobio pristup čvoru moći izvršiti vlastiti (lažni) pametni ugovor na dekriptiranim podacima. Međutim, povratne vrijednosti bit će šifrirane privatnim ključem, a jedini način pristupa takvim podacima je curenje šifriranog teksta pri povratku/izlazu.
    Zaštita od ovog napada sastoji se u tome da enklava provjerava ispravnost koda koji se nalazi na trenutnoj adresi. To se može postići korištenjem sheme adresiranja gdje se adresa ugovora određuje raspršivanjem koda ugovora.

  2. Curenje šifriranih promjena stanja ugovora.
    Bit napada: vlasnici čvorova na kojima se izvršavaju pametni ugovori imaju pristup stanju ugovora u šifriranom obliku izvan enklave. Napadač, nakon što je preuzeo kontrolu nad čvorom, može usporediti stanje kontakta prije i nakon transakcije te može utvrditi koji su argumenti uneseni i koja je metoda pametnog ugovora korištena, budući da su sam kod pametnog ugovora i njegove tehničke specifikacije javno dostupni.
    Zaštita u osiguravanju pouzdanosti samog čvora.

  3. Napadi s bočnog kanala.
    Posebna vrsta napada koja koristi nadzor memorije enklave i pristup predmemoriji u različitim scenarijima. Primjer takvog napada su Prime i Probe.
    Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?
    Redoslijed napada:

    • t0: Napadač ispunjava cijelu predmemoriju podataka žrtvenog procesa.
    • t1: Žrtva izvršava kod s pristupima memoriji koji ovise o žrtvinim osjetljivim podacima (kriptografski ključevi). Redak predmemorije odabire se na temelju vrijednosti ključnog bita. U primjeru na slici, bit ključa = 0 i čita se adresa X u retku predmemorije 2. Podaci pohranjeni u X učitavaju se u predmemoriju, zamjenjujući podatke koji su tamo bili prije.
    • t2: Napadač provjerava koje su njegove linije iz predmemorije izbačene - linije koje koristi žrtva. To se postiže mjerenjem vremena pristupa. Ponavljanjem ove operacije za svaki bit ključa, napadač dobiva cijeli ključ.

Zaštita od napada: Intel SGX ima zaštitu od napada s bočnih kanala koji sprječavaju praćenje događaja povezanih s predmemorijom, ali će napad Prime i Probe i dalje funkcionirati jer napadač nadzire događaje u predmemoriji svog procesa i dijeli predmemoriju sa žrtvom.
Town Crier vs DECO: koje proročanstvo koristiti u blockchainu?
Dakle, u ovom trenutku ne postoji pouzdana zaštita od ovog napada.

Poznati su i napadi kao što su Spectre i Foreshadow (L1TF), slični Prime i Probe. Omogućuju vam čitanje podataka iz predmemorije putem kanala treće strane. Osigurana je zaštita od ranjivosti Spectre-v2, koja djeluje protiv dva od ovih napada.

U odnosu na DECO, trosmjerno rukovanje daje jamstvo sigurnosti:

  1. Integritet ispitivača: Hakirani ispitivač ne može krivotvoriti informacije o podrijetlu poslužitelja i ne može uzrokovati da poslužitelj prihvati nevažeće zahtjeve ili netočno odgovori na važeće zahtjeve. To se radi putem obrazaca zahtjeva između poslužitelja i dokazivača.
  2. Integritet verifikatora: Hakirani verifikator ne može izazvati primanje netočnih odgovora.
  3. Privatnost: Hakirani verifikator ispituje samo javne informacije (zahtjev, naziv poslužitelja).

U DECO-u su moguće samo ranjivosti umetanja prometa. Prvo, s trosmjernim rukovanjem, verifikator može utvrditi identitet poslužitelja korištenjem novog nonce-a. Međutim, nakon rukovanja, verifikator se mora osloniti na indikatore mrežnog sloja (IP adrese). Dakle, komunikacija između verifikatora i poslužitelja mora biti zaštićena od umetanja prometa. To se postiže korištenjem Proxyja.

Usporedba proročišta

Town Crier se temelji na radu s enklavom u serverskom dijelu, dok DECO omogućuje provjeru autentičnosti podrijetla podataka pomoću trosmjernog rukovanja i enkripcije podataka kriptografskim ključevima. Usporedba ovih orakula provedena je prema sljedećim kriterijima: performanse, sigurnost, cijena i praktičnost.

Gradski glasnik
DECO

izvođenje
Brže (0.6 s do kraja)
Sporije (10.50 s do završetka protokola)

sigurnosni
Manje siguran
Sigurniji

koštati
Skuplje
Jeftinije

praktičnost
Zahtijeva poseban hardver
Radi s bilo kojim poslužiteljem koji podržava TLS

brzina: Za rad s DECO potrebno je trosmjerno rukovanje, kod postavljanja preko LAN-a potrebno je 0.37 sekundi, za interakciju nakon uspostavljanja veze učinkovit je 2PC-HMAC (0,13 s po pisanju). Učinkovitost DECO-a ovisi o dostupnim paketima TLS šifri, veličini privatnih podataka i složenosti dokaza za određenu aplikaciju. Korištenje aplikacije binarne opcije iz IC3 kao primjera: dovršavanje protokola putem LAN-a traje oko 10,50 sekundi. Usporedbe radi, Town Crieru treba otprilike 0,6 sekundi da završi sličnu aplikaciju, što je otprilike 20 puta brže od DECO-a. Pod jednakim uvjetima, TC će biti brži.

sigurnosti: Napadi na Intel SGX enklavu (napadi s bočnih kanala) djeluju i mogu uzrokovati stvarnu štetu sudionicima pametnog ugovora. Što se tiče DECO-a, mogući su napadi vezani uz umetanje prometa, ali upotreba proxyja takve napade svodi na ništa. Stoga je DECO sigurniji.

trošak: Cijena opreme koja podržava Intel SGX veća je od cijene postavljanja protokola u DECO. Zato je TC skuplji.

praktičnost: Za rad s Town Crierom potrebna je posebna oprema koja podržava TEE. Na primjer, Intel SGX je podržan na obitelji procesora Intel Core 6. generacije i novijim. DECO vam omogućuje rad s bilo kojom opremom, iako postoji DECO postavka pomoću TEE. Prema postupku postavljanja, DECO-ovo trosmjerno rukovanje može potrajati neko vrijeme, ali to nije ništa u usporedbi s hardverskim ograničenjima TC-a, tako da je DECO praktičniji.

Zaključak

Gledajući dva proročanstva zasebno i uspoređujući ih po četiri kriterija, jasno je da je Town Crier inferioran DECO-u po tri od četiri točke. DECO je pouzdaniji sa stajališta informacijske sigurnosti, jeftiniji i praktičniji, iako postavljanje trostranog protokola može potrajati i ima svoje nedostatke, na primjer, dodatne operacije s ključevima za šifriranje. TC je brži od DECO-a, ali ranjivosti bočnog kanala čine ga osjetljivim na gubitak povjerljivosti. Mora se uzeti u obzir da je DECO predstavljen u siječnju 2020., a nije prošlo dovoljno vremena da bi se smatrao sigurnim. Town Crier je bio na udaru već 4 godine i prošao je mnoge testove, tako da je njegova upotreba u mnogim projektima opravdana.

Izvor: www.habr.com

Dodajte komentar