Town Crier vs DECO: koje proročište 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 za njihovo uklanjanje.

Town Crier vs DECO: koje proročište koristiti u blockchainu?

Tokom rada na jednom od projekata u Altirix Systems-u, pojavio se zadatak sigurne, cenzure otporne potvrde podataka iz izvora izvan blockchaina. Bilo je potrebno potvrditi promjene u evidenciji trećeg sistema i na osnovu tih promjena izvršiti jednu ili drugu granu u logici pametnog ugovora. Zadatak je na prvi pogled prilično trivijalan, ali kada finansijsko stanje jedne od strana koja učestvuje u procesu zavisi od rezultata njegove implementacije, pojavljuju se dodatni zahtjevi. Prije svega, ovo je sveobuhvatno povjerenje u takav mehanizam validacije. Ali prvo stvari.

Problem je u tome što je sam blockchain autonoman, zatvoren entitet, tako da pametni ugovori unutar blockchaina ne znaju ništa o vanjskom svijetu. Istovremeno, uslovi pametnih ugovora često se odnose na informacije o stvarnim stvarima (kašnjenje leta, kursevi itd.). Da bi pametni ugovori ispravno funkcionirali, informacije primljene izvan blockchaina moraju biti pouzdane i provjerene. Ovaj problem je riješen korištenjem proročišta kao što su Town Crier i DECO. Ova proročanstva omogućavaju pametnom ugovoru na blockchain mreži da vjeruje informacijama s pouzdanog web servera, možemo reći da su to dobavljači pouzdanih informacija.

Oracles

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

Kada je u pitanju izvor informacija, mogu postojati 2 scenarija: povezivanje pametnog ugovora sa pouzdanom web-stranicom na kojoj se centralno pohranjuju podaci o rezultatima utakmica, a druga opcija je povezivanje nekoliko stranica odjednom, a zatim odabir informacija iz većine izvora koji daju iste podatke. Kako bi se provjerila tačnost informacija, koriste se orakuli, na primjer Oraclize, koji koristi TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Ali na Google-u ima dovoljno informacija o Oraclizeu, a postoji nekoliko članaka na Habréu. Danas ću govoriti o proročištima koja koriste malo drugačiji pristup prenošenju informacija: Town Crier i DECO. Članak daje opis principa rada oba orakula, kao i detaljno poređenje.

Town Crier

Town Crier (TC) je predstavio IC3 (The Initiative for CryptoCurrenci and Contracts) 2016. godine na CCS'16. Glavna ideja TC-a: prenesite informacije s web stranice na pametni ugovor i pobrinite se da informacije koje dostavlja TC budu iste kao na web stranici. TC koristi TEE (Trusted Execution Environment) za autentifikaciju vlasništva podataka. Originalna verzija TC-a opisuje kako se radi sa Intel SGX.
Town Crier se sastoji od dijela unutar blockchaina i dijela unutar samog OS - TC Server.
Town Crier vs DECO: koje proročište koristiti u blockchainu?
TC Contract je na blockchainu i djeluje kao front end za TC. Prihvata zahtjeve od CU (korisnički pametni ugovor) i vraća odgovor od TC servera. Unutar TC servera nalazi se Relej, koji uspostavlja vezu između enklave i interneta (dvosmjerni promet) i povezuje enklavu sa blockchainom. Enclave sadrži progencl, što 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 suštini obavlja neke od njegovih funkcija.

Intel SGX enklava se može zamisliti kao zajednička biblioteka sa API-jem koji radi preko ecall-a. Ecall prenosi kontrolu na enklavu. Enklava izvršava svoj kod dok ne izađe ili dok se ne dogodi izuzetak. Za pozivanje funkcija definiranih izvan enklave, koristi se ocall. Ocall se izvršava izvan enklave i tretira se kao nepouzdani poziv. Nakon što se poziv izvrši, kontrola se vraća enklavi.
Town Crier vs DECO: koje proročište koristiti u blockchainu?
U delu Enklave, sigurni kanal je konfigurisan sa web serverom, sama enklava obavlja TLS rukovanje sa ciljnim serverom i izvodi sve kriptografske operacije interno. TLS biblioteka (mbedTLS) i smanjeni HTTP kod su izvezeni u SGX okruženje. Također, Enclave sadrži root CA certifikate (kolekciju certifikata) za provjeru certifikata udaljenih servera. Request Handler prihvaća zahtjev datagrama u formatu koji pruža Ethereum, dešifrira ga i analizira. Zatim generira Ethereum transakciju koja sadrži traženi datagram, potpisuje ga sa skTC i prenosi ga Relayu.

Relejni dio uključuje klijentsko sučelje, TCP, blokčein sučelje. Klijentski interfejs je potreban za certifikaciju enklavnog koda i komunikaciju sa klijentom. Klijent šalje zahtev za atestiranje koristeći ecall i prima vremensku oznaku koju je potpisao skTC zajedno sa att (potpis atestiranja), zatim se att verifikuje korišćenjem Intel Attestation Service (IAS), a vremenska oznaka je verifikovana od pouzdanog vremenskog servisa. Blockchain Interface provjerava dolazne zahtjeve i postavlja transakcije na blockchain za isporuku datagrama. Geth je službeni Ethereum klijent i omogućava Relayu interakciju s blockchainom putem RPC poziva.

Rad sa TEE, TC vam omogućava da pokrenete nekoliko enklava paralelno, čime se brzina obrade informacija povećava za 3 puta. Ako je sa jednom pokrenutom enklavom brzina bila 15 tx/sec, onda se sa 20 paralelnih enklava brzina povećava na 65 tx/sec za poređenje, maksimalna radna brzina u Bitcoin blockchainu je 26 tx/sec.

DECO

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

Town Crier vs DECO: koje proročište koristiti u blockchainu?

Način na koji DECO funkcionira je da verifikator prima dio podataka D i potvrđuje verifikatoru da je D došao sa TLS servera S. Drugi problem je što TLS ne potpisuje podatke i TLS klijentu je teško dokazati da je podaci su primljeni sa tačno pravog servera (poteškoća porekla).

DECO protokol koristi ključeve za šifriranje KEnc i KMac. Klijent šalje zahtjev Q na web serverOdgovor od servera R stiže šifriran, ali klijent i server dijele isti KMac, te klijent može krivotvoriti TLS poruku. DECO-ovo rješenje je da "sakrije" KMac od klijenta (dokazivača) dok ne odgovori na zahtjev. Sada je KMac podijeljen između dokazivača i verifikatora - KpMac i KvMac. Server dobija KMac za šifriranje odgovora koristeći operaciju particioniranja ključa KpMac ⊕ KvMac = KMac.

Postavljanjem trosmjernog rukovanja, razmjena podataka između klijenta i servera će se odvijati uz garanciju sigurnosti.
Town Crier vs DECO: koje proročište koristiti u blockchainu?
Kada se govori o decentralizovanom sistemu orakula, ne može se ne spomenuti Chainlink, koji ima za cilj stvaranje decentralizovane mreže orakul čvorova kompatibilnih sa Ethereumom, Bitcoin i Hyperledger, uzimajući u obzir modularnost: svaki deo sistema se može ažurirati. Istovremeno, da bi se osigurala sigurnost, Chainlink nudi svakom proročištu koje učestvuje u zadatku da izda kombinaciju ključeva (javnih i privatnih). Privatni ključ se koristi za generiranje djelomičnog potpisa koji sadrži njihovu odluku o zahtjevu za podacima. Da biste dobili odgovor, potrebno je kombinovati sve delimične potpise proročišta mreže.

Chainlink planira provesti početni PoC DECO s fokusom na decentralizirane finansijske aplikacije kao što je Mixicles. U vrijeme pisanja, na Forbesu su izašle vijesti da je Chainlink kupio DECO sa Univerziteta Cornell.

Napadi na proročišta

Town Crier vs DECO: koje proročište koristiti u blockchainu?

Sa stanovišta informacione sigurnosti, razmatrani su sljedeći napadi na Town Crier:

  1. Lažno ubrizgavanje koda pametnog kontakta na TEE čvorove.
    Suština napada: prenošenje namjerno pogrešnog koda pametnog ugovora na TEE, tako da će napadač koji je dobio pristup čvoru moći izvršiti vlastiti (lažni) pametni ugovor na dešifrovanim podacima. Međutim, povratne vrijednosti će biti šifrirane privatnim ključem, a jedini način da se pristupi takvim podacima je curenje šifriranog teksta na povratku/izlazu.
    Zaštita od ovog napada sastoji se od enklave koja provjerava ispravnost koda koji se nalazi na trenutnoj adresi. Ovo se može postići korišćenjem šeme adresiranja gde se adresa ugovora određuje heširanjem koda ugovora.

  2. Promjene šifriranog teksta stanja ugovora propuštaju.
    Suština napada: Vlasnici čvorova na kojima se izvršavaju pametni ugovori imaju pristup stanju ugovora u šifriranom obliku izvan enklave. Napadač, nakon što je stekao kontrolu nad čvorom, može uporediti stanje kontakta prije i nakon transakcije i može odrediti koji su argumenti uneseni i koja metoda pametnog ugovora je 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 sa strane.
    Poseban tip napada koji koristi praćenje enklavne memorije i pristupa kešu u različitim scenarijima. Primjer takvog napada su Prime i Probe.
    Town Crier vs DECO: koje proročište koristiti u blockchainu?
    Redoslijed napada:

    • t0: Napadač ispunjava čitavu keš podataka procesa žrtve.
    • t1: Žrtva izvršava kod s pristupima memoriji koji zavise od žrtvinih osjetljivih podataka (kriptografskih ključeva). Linija keš memorije se bira na osnovu vrijednosti bita ključa. U primjeru na slici, bit ključa = 0 i adresa X u keš liniji 2 se učitava u keš memoriju, zamjenjujući podatke koji su bili tamo prije.
    • t2: Napadač provjerava koje su njegove linije keša izbačene - linije koje je koristila žrtva. Ovo se radi mjerenjem vremena pristupa. Ponavljanjem ove operacije za svaki bit ključa, napadač dobija cijeli ključ.

Zaštita od napada: Intel SGX ima zaštitu od napada sa strane kanala koja sprečava praćenje događaja u vezi sa kešom, ali Prime i Probe napad će i dalje raditi jer napadač prati keš događaje svog procesa i deli keš sa žrtvom.
Town Crier vs DECO: koje proročište koristiti u blockchainu?
Dakle, trenutno ne postoji pouzdana zaštita od ovog napada.

Napadi kao što su Spectre i Foreshadow (L1TF), slični Prime i Probe, takođe su poznati. Omogućavaju vam čitanje podataka iz keš memorije putem kanala treće strane. Obezbeđena je zaštita od ranjivosti Spectre-v2, koja radi protiv dva od ovih napada.

U odnosu na DECO, trosmjerno rukovanje daje garanciju sigurnosti:

  1. Integritet dokazivača: Hakirani dokazivač ne može krivotvoriti informacije o porijeklu servera i ne može uzrokovati da server prihvati nevažeće zahtjeve ili da neispravno odgovori na važeće zahtjeve. Ovo se radi kroz obrasce zahtjeva između servera i provera.
  2. Integritet verifikatora: Hakirani verifikator ne može prouzrokovati da dokazivač dobije netačne odgovore.
  3. Privatnost: Hakovani verifikator ispituje samo javne informacije (zahtev, ime servera).

U DECO-u su moguće samo ranjivosti ubrizgavanja prometa. U početku, tokom trostrukog rukovanja, verifikator može utvrditi identitet servera koristeći novi nonce. Međutim, nakon rukovanja, verifikator se mora osloniti na indikatore mrežnog sloja (IP adrese). Stoga, veza između verifikatora i servera mora biti zaštićena od ubrizgavanja prometa. To se postiže korištenjem proxyja.

Poređenje proročišta

Town Crier je baziran na radu sa enklavom u serverskom dijelu, dok DECO omogućava provjeru autentičnosti porijekla podataka korištenjem trosmjernog rukovanja i enkripcije podataka kriptografskim ključevima. Poređenje ovih orakula je izvršeno prema sljedećim kriterijima: performanse, sigurnost, cijena i praktičnost.

Town Crier
DECO

bystrodeystvie
Brže (0.6s do kraja)
Sporije (10.50s do završetka protokola)

sigurnost
Manje sigurno
Sigurnije

trošak
Skuplje
Jeftinije

praktičnost
Zahtijeva poseban hardver
Radi sa bilo kojim serverom koji podržava TLS

Performanse: Za rad sa DECO-om potrebno je trosmjerno rukovanje, pri postavljanju preko LAN-a potrebno je 0.37 sekundi, za interakciju nakon uspostavljanja veze, 2PC-HMAC je efikasan (0,13 s po pisanju). Performanse DECO-a zavise od dostupnih TLS paketa šifriranja, veličine privatnih podataka i složenosti dokaza za određenu aplikaciju. Koristeći aplikaciju binarnih opcija iz IC3 kao primjer: kompletiranje protokola putem LAN-a traje oko 10,50 sekundi. Poređenja radi, Town Crieru treba otprilike 0,6 sekundi da završi sličnu aplikaciju, što je otprilike 20 puta brže od DECO-a. Kada su sve stvari jednake, TC će biti brži.

Sigurnost: Napadi na Intel SGX enklavu (napadi sa strane kanala) rade i mogu uzrokovati stvarnu štetu učesnicima pametnog ugovora. Što se tiče DECO-a, mogući su napadi povezani sa ubacivanjem prometa, ali korištenje proxyja takve napade svodi na ništa. Stoga je DECO sigurniji.

trošak: Cena opreme koja podržava Intel SGX veća je od cene podešavanja protokola u DECO. Zato je TC skuplji.

Praktičnost: Za rad sa Town Crier-om potrebna je posebna oprema koja podržava TEE. Na primjer, Intel SGX je podržan u porodici Intel Core procesora 6. generacije i novijim. DECO vam omogućava rad sa bilo kojom opremom, iako postoji DECO postavka pomoću TEE. Prema procesu podešavanja, DECO-ovo trosmerno rukovanje može potrajati, ali to nije ništa u poređenju sa hardverskim ograničenjem TC-a, tako da je DECO praktičniji.

zaključak

Posmatrajući dva proročišta odvojeno i upoređujući ih po četiri kriterijuma, jasno je da je Town Crier inferioran u odnosu na DECO po tri od četiri poena. DECO je pouzdaniji sa stanovišta sigurnosti informacija, jeftiniji i praktičniji, iako postavljanje trostranog protokola može potrajati i ima svoje nedostatke, na primjer, dodatne operacije sa ključevima za šifriranje. TC je brži od DECO-a, ali ranjivosti napada sa strane kanala čine ga podložnim gubitku povjerljivosti. Mora se uzeti u obzir da je DECO uveden u januaru 2020. godine i nije prošlo dovoljno vremena da se smatra sigurnim. Town Crier je bio na udaru već 4 godine i prošao je mnoge testove, pa je njegova upotreba u mnogim projektima opravdana.

izvor: www.habr.com

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster