Town Crier vs DECO: ktoré orákulum použiť v blockchaine?

Dnes len leniví nepísali o blockchain technológii, kryptomenách a o tom, aké je to cool. Tento článok však túto technológiu nebude chváliť, povieme si o jej nedostatkoch a spôsoboch, ako ich odstrániť.

Town Crier vs DECO: ktoré orákulum použiť v blockchaine?

Počas práce na jednom z projektov v Altirix Systems vznikla úloha bezpečného potvrdenia údajov zo zdroja mimo blockchainu odolného voči cenzúre. Bolo potrebné potvrdiť zmeny v záznamoch tretieho systému a na základe týchto zmien vykonať jednu alebo druhú vetvu logiky smart kontraktov. Úloha je na prvý pohľad celkom triviálna, ale keď finančná situácia jednej zo strán zúčastnených na procese závisí od výsledku jej realizácie, objavia sa ďalšie požiadavky. V prvom rade ide o komplexnú dôveru v takýto overovací mechanizmus. Ale prvé veci.

Problém je v tom, že samotný blockchain je autonómna, uzavretá entita, takže smart kontrakty vo vnútri blockchainu nevedia nič o vonkajšom svete. Podmienky smart kontraktov zároveň často súvisia s informáciami o skutočných veciach (meškanie letu, výmenné kurzy atď.). Aby smart kontrakty správne fungovali, informácie prijaté mimo blockchainu musia byť spoľahlivé a overené. Tento problém je vyriešený pomocou veštcov, ako sú Town Crier a DECO. Tieto orakuly umožňujú inteligentnej zmluve na blockchainovej sieti dôverovať informáciám z dôveryhodného webového servera; môžeme povedať, že ide o poskytovateľov spoľahlivých informácií.

Oracles

Predstavte si, že inteligentná zmluva prevedie 0.001 BTC do vašej bitcoinovej peňaženky, ak váš obľúbený futbalový klub vyhrá Ruský pohár. V prípade skutočného víťazstva potrebuje smart kontrakt preniesť informácie o tom, ktorý klub vyhral, ​​a tu vzniká množstvo problémov: kde tieto informácie získať, ako ich bezpečne preniesť do smart kontraktu a ako zabezpečiť, aby informácie prijatý v smart kontrakte je platný skutočne sa zhoduje s realitou?

Pokiaľ ide o zdroj informácií, môžu nastať 2 scenáre: pripojenie inteligentnej zmluvy k dôveryhodnej webovej lokalite, kde sú centrálne uložené informácie o výsledkoch zápasov, a druhou možnosťou je pripojiť niekoľko lokalít naraz a následne vybrať informácie z väčšiny zdrojov. ktoré poskytujú rovnaké údaje. Na overenie správnosti informácií sa používajú orakuly, napríklad Oraclize, ktorý využíva TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Ale na Google je dosť informácií o Oraclize a o Habrém je niekoľko článkov.Dnes budem hovoriť o orákuloch, ktoré používajú trochu iný prístup k prenosu informácií: Town Crier a DECO. Článok poskytuje popis princípov fungovania oboch orakulov, ako aj podrobné porovnanie.

Town Crier

Town Crier (TC) bol predstavený IC3 (Iniciatíva pre kryptomeny a zmluvy) v roku 2016 na CCS'16. Hlavná myšlienka TC: preniesť informácie z webovej stránky do inteligentnej zmluvy a zabezpečiť, aby informácie poskytované TC boli rovnaké ako na webovej stránke. TC používa TEE (Trusted Execution Environment) na overenie vlastníctva údajov. Pôvodná verzia TC popisuje, ako pracovať s Intel SGX.
Town Crier pozostáva z časti vo vnútri blockchainu a časti vo vnútri samotného OS – TC Server.
Town Crier vs DECO: ktoré orákulum použiť v blockchaine?
Zmluva TC je na blockchaine a funguje ako frontend pre TC. Prijíma požiadavky z CU (užívateľský inteligentný kontrakt) a vracia odpoveď zo servera TC. Vo vnútri servera TC sa nachádza relé, ktoré vytvára spojenie medzi enklávou a internetom (obojsmerná prevádzka) a spája enklávu s blockchainom. Enclave obsahuje progencl, čo je kód, ktorý vytvára požiadavky z blockchainu a vracia správy do blockchainu s digitálnym podpisom, progencl obsahuje časť kódu inteligentnej zmluvy a v podstate vykonáva niektoré z jeho funkcií.

Enklávu Intel SGX si možno predstaviť ako zdieľanú knižnicu s API bežiacim cez ecal. Ecall prenáša kontrolu na enklávu. Enkláva vykonáva svoj kód, kým sa neopustí alebo kým nenastane výnimka. ocall sa používa na volanie funkcií definovaných mimo enklávu. Ocall je popravený mimo enklávy a považuje sa za nedôveryhodný hovor. Po vykonaní hovoru sa kontrola vráti do enklávy.
Town Crier vs DECO: ktoré orákulum použiť v blockchaine?
V časti Enkláva je nakonfigurovaný zabezpečený kanál s webovým serverom, samotná enkláva vykonáva TLS handshake s cieľovým serverom a interne vykonáva všetky kryptografické operácie. Knižnica TLS (mbedTLS) a redukovaný kód HTTP boli exportované do prostredia SGX. Enclave tiež obsahuje koreňové certifikáty CA (kolekcia certifikátov) na overenie certifikátov vzdialených serverov. Request Handler prijme datagram požiadavku vo formáte poskytnutom Ethereum, dešifruje ju a analyzuje. Potom vygeneruje Ethereum transakciu obsahujúcu požadovaný datagram, podpíše ho skTC a odošle do Relay.

Časť Relay obsahuje klientske rozhranie, TCP, blockchain rozhranie. Klientske rozhranie je potrebné na certifikáciu kódu enklávy a komunikáciu s klientom. Klient odošle žiadosť o atestáciu pomocou ecall a dostane časovú pečiatku podpísanú skTC spolu s att (atestačný podpis), potom sa att overí pomocou služby Intel Attestation Service (IAS) a časová pečiatka sa overí dôveryhodnou časovou službou. Blockchain Interface overuje prichádzajúce požiadavky a umiestňuje transakcie na blockchain na doručenie datagramov. Geth je oficiálny Ethereum klient a umožňuje Relay interagovať s blockchainom prostredníctvom RPC hovorov.

Práca s TEE vám TC umožňuje paralelne prevádzkovať niekoľko enkláv, čím sa rýchlosť spracovania informácií zvyšuje 3-krát. Ak pri jednej bežiacej enkláve bola rýchlosť 15 tx/s, tak pri 20 paralelne bežiacich enklávach sa rýchlosť zvýši na 65 tx/s; pre porovnanie, maximálna prevádzková rýchlosť v blockchaine Bitcoinu je 26 tx/s.

DECO

DECO (Decentralized Oracles for TLS) bol predstavený na CCS'20, pracuje s lokalitami, ktoré podporujú TLS pripojenia. Zabezpečuje dôvernosť a integritu údajov.
DECO s TLS používa symetrické šifrovanie, takže klient a webový server majú šifrovacie kľúče a klient môže sfalšovať dáta relácie TLS, ak chce. Na vyriešenie tohto problému používa DECO trojcestný protokol handshake medzi overovateľom (inteligentná zmluva), overovateľom (oracle) a webovým serverom (zdroj údajov).

Town Crier vs DECO: ktoré orákulum použiť v blockchaine?

DECO funguje tak, že overovateľ dostane časť údajov D a potvrdí overovateľovi, že D pochádza z TLS servera S. Ďalším problémom je, že TLS nepodpisuje údaje a pre klienta TLS je ťažké dokázať, že údaje boli prijaté presne zo správneho servera (obtiažnosť pôvodu).

Protokol DECO používa šifrovacie kľúče KEnc a KMac. Klient odošle požiadavku Q na webový server, odpoveď zo servera R príde v zašifrovanej forme, ale klient a server vlastnia rovnaký KMac a klient môže sfalšovať správu TLS. Riešením DECO je „skryť“ KMac pred klientom (dokazovateľom), kým neodpovie na požiadavku. Teraz je KMac rozdelený medzi overovateľa a overovateľa - KpMac a KvMac. Server dostane KMac na zašifrovanie odpovede pomocou operácie kľúčovej časti KpMac ⊕ KvMac = KMac.

Nastavením trojstranného handshake bude výmena dát medzi klientom a serverom vykonaná so zárukou bezpečnosti.
Town Crier vs DECO: ktoré orákulum použiť v blockchaine?
Keď hovoríme o decentralizovanom systéme Oracle, nemožno nespomenúť Chainlink, ktorého cieľom je vytvoriť decentralizovanú sieť Oracle uzlov kompatibilných s Ethereum, Bitcoin a Hyperledger, berúc do úvahy modularitu: každá časť systému môže byť aktualizovaná. Zároveň na zaistenie bezpečnosti Chainlink ponúka každému orákulu, ktorý sa podieľa na úlohe, vydať kombináciu kľúčov (verejných a súkromných). Súkromný kľúč sa používa na generovanie čiastočného podpisu, ktorý obsahuje ich rozhodnutie o žiadosti o údaje. Na získanie odpovede je potrebné skombinovať všetky čiastkové podpisy orákulov siete.

Chainlink plánuje uskutočniť prvé PoC DECO so zameraním na decentralizované finančné aplikácie, ako je Mixicles. V čase písania článku sa na Forbes objavila správa, že Chainlink získal DECO z Cornell University.

Útoky na orákula

Town Crier vs DECO: ktoré orákulum použiť v blockchaine?

Z hľadiska informačnej bezpečnosti sa zvažovali tieto útoky na Town Crier:

  1. Nečestné vstrekovanie kódu inteligentného kontaktu do uzlov TEE.
    Podstata útoku: prenesenie zámerne nesprávneho kódu smart kontraktu do TEE, teda útočník, ktorý získal prístup k uzlu, bude môcť vykonať svoj vlastný (podvodný) smart kontrakt na dešifrované dáta. Návratové hodnoty však budú zašifrované súkromným kľúčom a jediný spôsob, ako sa k takýmto údajom dostať, je únik šifrovaného textu pri návrate/výstupe.
    Ochrana pred týmto útokom spočíva v tom, že enkláva kontroluje správnosť kódu umiestneného na aktuálnej adrese. Dá sa to dosiahnuť pomocou schémy adresovania, kde je adresa zmluvy určená hashovaním kódu zmluvy.

  2. Únik zmien šifrového textu zmluvného stavu.
    Podstata útoku: Vlastníci uzlov, na ktorých sú vykonávané smart kontrakty, majú prístup k stavu kontraktu v zašifrovanej podobe mimo enklávu. Útočník, ktorý získal kontrolu nad uzlom, môže porovnať stav kontaktu pred a po transakcii a môže určiť, ktoré argumenty boli zadané a ktorá metóda inteligentnej zmluvy bola použitá, keďže samotný kód inteligentnej zmluvy a jeho technické špecifikácie sú verejne dostupné.
    Ochrana pri zabezpečovaní spoľahlivosti samotného uzla.

  3. Útoky cez bočný kanál.
    Špeciálny typ útoku, ktorý využíva monitorovanie pamäte enklávy a prístupu do vyrovnávacej pamäte v rôznych scenároch. Príkladom takéhoto útoku je Prime a Probe.
    Town Crier vs DECO: ktoré orákulum použiť v blockchaine?
    Poradie útoku:

    • t0: Útočník zaplní celú dátovú vyrovnávaciu pamäť procesu obete.
    • t1: Obeť spustí kód s prístupmi do pamäte, ktoré závisia od citlivých údajov obete (kryptografické kľúče). Riadok vyrovnávacej pamäte sa vyberá na základe hodnoty kľúčového bitu. V príklade na obrázku je kľúčový bit = 0 a načíta sa adresa X v riadku cache 2. Dáta uložené v X sa načítajú do vyrovnávacej pamäte, čím sa nahradia dáta, ktoré tam boli predtým.
    • t2: Útočník skontroluje, ktoré z jeho vyrovnávacích línií boli vyradené – linky používané obeťou. To sa vykonáva meraním času prístupu. Opakovaním tejto operácie pre každý kľúčový bit útočník získa celý kľúč.

Ochrana pred útokmi: Intel SGX má ochranu proti útokom z postranných kanálov, ktorá zabraňuje monitorovaniu udalostí súvisiacich s vyrovnávacou pamäťou, ale útok Prime and Probe bude stále fungovať, pretože útočník monitoruje udalosti vo vyrovnávacej pamäti svojho procesu a zdieľa vyrovnávaciu pamäť s obeťou.
Town Crier vs DECO: ktoré orákulum použiť v blockchaine?
V súčasnosti teda neexistuje spoľahlivá ochrana proti tomuto útoku.

Známe sú aj útoky ako Spectre and Foreshadow (L1TF), podobne ako Prime a Probe. Umožňujú vám čítať údaje z vyrovnávacej pamäte cez kanál tretej strany. Zabezpečená je ochrana proti zraniteľnosti Spectre-v2, ktorá funguje proti dvom z týchto útokov.

Vo vzťahu k DECO poskytuje trojstranné podanie ruky záruku bezpečnosti:

  1. Integrita overovateľa: Napadnutý overovateľ nemôže falšovať informácie o pôvode servera a nemôže spôsobiť, že server akceptuje neplatné požiadavky alebo nesprávne odpovie na platné požiadavky. Toto sa vykonáva prostredníctvom vzorov požiadaviek medzi serverom a overovateľom.
  2. Integrita overovateľa: Napadnutý overovateľ nemôže spôsobiť, že dokazovač dostane nesprávne odpovede.
  3. Súkromie: Napadnutý overovateľ skúma iba verejné informácie (žiadosť, názov servera).

V DECO sú možné len slabé miesta v oblasti vstrekovania dopravy. Po prvé, pomocou trojstranného podania ruky môže overovateľ zistiť identitu servera pomocou nového nonce. Po podaní ruky sa však overovateľ musí spoliehať na indikátory sieťovej vrstvy (IP adresy). Komunikácia medzi overovateľom a serverom teda musí byť chránená pred injektážou prevádzky. To sa dosiahne použitím proxy.

Porovnanie veštcov

Town Crier je založený na práci s enklávou v serverovej časti, zatiaľ čo DECO umožňuje overiť pravosť pôvodu dát pomocou trojstranného handshake a šifrovania dát pomocou kryptografických kľúčov. Porovnanie týchto veštcov sa uskutočnilo podľa nasledujúcich kritérií: výkon, bezpečnosť, cena a praktickosť.

Town Crier
DECO

výkon
Rýchlejšie (0.6 s do konca)
Pomalšie (10.50 s na dokončenie protokolu)

bezpečnosť
Menej bezpečné
Bezpečnejšie

stať
Drahší
Lacnejšie

praktickosť
Vyžaduje špeciálny hardvér
Funguje s akýmkoľvek serverom, ktorý podporuje TLS

Výkon: Pre prácu s DECO je potrebný trojstranný handshake, pri nastavovaní cez LAN to trvá 0.37 sekundy, pre interakciu po nadviazaní spojenia je účinný 2PC-HMAC (0,13 s na zápis). Výkon DECO závisí od dostupných šifrovacích balíkov TLS, veľkosti súkromných údajov a zložitosti dôkazov pre konkrétnu aplikáciu. Ako príklad použijeme aplikáciu binárnej voľby od IC3: dokončenie protokolu cez LAN trvá asi 10,50 sekundy. Pre porovnanie, Town Crier trvá dokončenie podobnej aplikácie približne 0,6 sekundy, čo je približne 20-krát rýchlejšie ako DECO. Ak sú všetky veci rovnaké, TC bude rýchlejší.

zabezpečenia: Útoky na enklávu Intel SGX (útoky na bočný kanál) fungujú a môžu spôsobiť skutočné škody účastníkom smart kontraktu. Pokiaľ ide o DECO, útoky súvisiace s injektovaním návštevnosti sú možné, ale použitie proxy znižuje takéto útoky na nič. Preto je DECO bezpečnejšie.

Štát: Náklady na vybavenie, ktoré podporuje Intel SGX, sú vyššie ako náklady na nastavenie protokolu v DECO. Preto je TC drahší.

praktickosť: Na prácu s Town Crier je potrebné špeciálne vybavenie, ktoré podporuje TEE. Napríklad Intel SGX je podporovaný na 6. generácii rodiny procesorov Intel Core a novších. DECO vám umožňuje pracovať s akýmkoľvek zariadením, aj keď existuje nastavenie DECO pomocou TEE. Podľa procesu nastavenia môže trojstranné podanie ruky DECO chvíľu trvať, ale to nie je nič v porovnaní s hardvérovým obmedzením TC, takže DECO je praktickejšie.

Záver

Ak sa pozrieme na tieto dve orakuly oddelene a porovnáme ich podľa štyroch kritérií, je jasné, že Town Crier je v troch zo štyroch bodov horší ako DECO. DECO je spoľahlivejšie z hľadiska informačnej bezpečnosti, lacnejšie a praktickejšie, aj keď nastavenie trojstranného protokolu môže chvíľu trvať a má svoje nevýhody, napríklad dodatočné operácie so šifrovacími kľúčmi. TC je rýchlejší ako DECO, ale kvôli zraniteľnostiam postranných kanálov je náchylný na stratu dôvernosti. Je potrebné vziať do úvahy, že DECO bolo predstavené v januári 2020 a neuplynulo dosť času na to, aby sme ho považovali za bezpečný. Town Crier je napadnutý už 4 roky a prešiel mnohými testami, takže jeho použitie v mnohých projektoch je opodstatnené.

Zdroj: hab.com

Pridať komentár