Town Crier vs DECO: hvilket orakel skal bruges i blockchain?

I dag er det kun de dovne, der ikke har skrevet om blockchain-teknologi, kryptovalutaer og hvor fedt det er. Men denne artikel vil ikke rose denne teknologi; vi vil tale om dens mangler og måder at eliminere dem på.

Town Crier vs DECO: hvilket orakel skal bruges i blockchain?

Mens man arbejdede på et af projekterne hos Altirix Systems, opstod opgaven med sikker, censur-resistent bekræftelse af data fra en kilde eksternt til blockchain. Det var nødvendigt at bekræfte ændringer i registreringerne af det tredje system og, baseret på disse ændringer, udføre en eller anden gren i den smarte kontraktlogik. Opgaven ved første øjekast er ret triviel, men når den økonomiske tilstand for en af ​​parterne, der deltager i processen, afhænger af resultatet af dens implementering, opstår der yderligere krav. Først og fremmest er dette omfattende tillid til en sådan valideringsmekanisme. Men først ting først.

Problemet er, at selve blockchainen er en selvstændig, lukket enhed, så de smarte kontrakter inde i blockchainen ved intet om omverdenen. Samtidig er vilkårene for smarte kontrakter ofte relateret til information om rigtige ting (flyforsinkelse, valutakurser osv.). For at smarte kontrakter kan fungere korrekt, skal information modtaget uden for blockchain være pålidelig og verificeret. Dette problem løses ved at bruge orakler som Town Crier og DECO. Disse orakler tillader en smart kontrakt på blockchain-netværket for at stole på information fra en betroet webserver; vi kan sige, at disse er udbydere af pålidelig information.

Orakler

Forestil dig, at en smart kontrakt overfører 0.001 btc til din bitcoin-pung, hvis din foretrukne fodboldklub vinder den russiske Cup. I tilfælde af en reel sejr skal den smarte kontrakt overføre information om, hvilken klub der vandt, og her opstår en række problemer: hvor kan man få disse oplysninger, hvordan man sikkert overfører dem til den smarte kontrakt og hvordan man sikrer, at oplysningerne modtaget i den smarte kontrakt er gyldig faktisk falder sammen med virkeligheden?

Når det kommer til informationskilden, kan der være 2 scenarier: at forbinde en smart kontrakt til en betroet hjemmeside, hvor information om kampresultater lagres centralt, og den anden mulighed er at forbinde flere websteder på én gang og derefter vælge information fra de fleste kilder der giver de samme data. For at verificere rigtigheden af ​​oplysningerne anvendes orakler, for eksempel Oraclize, som anvender TLSNotary (TLS Notary Modification to Prove the Authenticity of Data). Men der er nok information på Google om Oraclize, og der er flere artikler om Habré.I dag vil jeg tale om orakler, der bruger en lidt anden tilgang til at overføre information: Town Crier og DECO. Artiklen giver en beskrivelse af funktionsprincipperne for begge orakler samt en detaljeret sammenligning.

Town Crier

Town Crier (TC) blev introduceret af IC3 (The Initiative for CryptoCurrencies and Contracts) i 2016 på CCS'16. Hovedideen med TC: Overfør information fra et websted til en smart kontrakt og sørg for, at oplysningerne leveret af TC er de samme som på webstedet. TC bruger TEE (Trusted Execution Environment) til at autentificere dataejerskab. Den originale version af TC beskriver, hvordan man arbejder med Intel SGX.
Town Crier består af en del inde i blockchain og en del inde i selve OS - TC Server.
Town Crier vs DECO: hvilket orakel skal bruges i blockchain?
TC Contract er på blockchain og fungerer som frontend for TC. Den accepterer anmodninger fra CU (bruger smart kontrakt) og returnerer et svar fra TC-serveren. Inde i TC Serveren er der et Relay, som etablerer en forbindelse mellem enklaven og internettet (tovejstrafik) og forbinder enklaven med blockchain. Enclave indeholder progencl, som er kode, der sender anmodninger fra blockchain og returnerer beskeder til blockchain med en digital signatur, progencl indeholder en del af den smarte kontraktkode og udfører i det væsentlige nogle af dens funktioner.

Intel SGX-enklaven kan opfattes som et delt bibliotek med en API, der kører via ecall. Ecall overfører kontrollen til enklaven. Enklaven udfører sin kode, indtil den afsluttes, eller indtil der opstår en undtagelse. ocall bruges til at kalde funktioner defineret uden for enklaven. Ocall udføres uden for enklaven og behandles som et upålidende opkald af det. Efter at ocall er udført, returneres kontrollen til enklaven.
Town Crier vs DECO: hvilket orakel skal bruges i blockchain?
I Enclave-delen er en sikker kanal konfigureret med en webserver, selve enklaven udfører et TLS-håndtryk med målserveren og udfører alle kryptografiske operationer internt. TLS-biblioteket (mbedTLS) og reduceret HTTP-kode er blevet eksporteret til SGX-miljøet. Enclave indeholder desuden rod-CA-certifikater (en samling af certifikater) til at verificere certifikaterne på fjernservere. Request Handler accepterer en datagramanmodning i formatet leveret af Ethereum, dekrypterer den og analyserer den. Derefter genererer den en Ethereum-transaktion, der indeholder det anmodede datagram, signerer den med skTC og sender den til Relay.

Relæ-delen inkluderer Client Interface, TCP, Blockchain Interface. Klientgrænsefladen er nødvendig for at certificere enklavekoden og kommunikere med klienten. Klienten sender en attestationsanmodning ved hjælp af ecall og modtager et tidsstempel underskrevet af skTC sammen med att (attestationssignatur), derefter verificeres att ved hjælp af Intel Attestation Service (IAS), og tidsstemplet verificeres af en betroet tidstjeneste. Blockchain Interface verificerer indkommende anmodninger og placerer transaktioner på blockchain for levering af datagrammer. Geth er en officiel Ethereum-klient og giver Relay mulighed for at interagere med blockchain via RPC-opkald.

Ved at arbejde med TEE giver TC dig mulighed for at køre flere enklaver parallelt, hvorved hastigheden på informationsbehandlingen øges med 3 gange. Hvis hastigheden med en kørende enklave var 15 tx/sek, så med 20 parallelløbende enklaver øges hastigheden til 65 tx/sek; til sammenligning er den maksimale driftshastighed i Bitcoin blockchain 26 tx/sek.

DECO

DECO (Decentralized Oracles for TLS) blev præsenteret på CCS'20, arbejder med websteder, der understøtter TLS-forbindelser. Sikrer datafortrolighed og integritet.
DECO med TLS bruger symmetrisk kryptering, så klienten og webserveren har krypteringsnøgler, og klienten kan forfalske TLS-sessionsdata, hvis den ønsker det. For at løse dette problem bruger DECO en tre-vejs håndtryksprotokol mellem prover (smart kontrakt), verifikator (oracle) og web-server (datakilde).

Town Crier vs DECO: hvilket orakel skal bruges i blockchain?

Måden DECO fungerer på er, at verifikatoren modtager et stykke data D og bekræfter over for verifikatoren, at D kom fra TLS-serveren S. Et andet problem er, at TLS ikke signerer dataene, og det er svært for TLS-klienten at bevise, at data blev modtaget fra præcis den rigtige server (herkomstsværhedsgrad).

DECO-protokollen bruger KEnc- og KMac-krypteringsnøgler. Klienten sender en anmodning Q til webserveren, svaret fra serveren R kommer i krypteret form, men klienten og serveren ejer den samme KMac, og klienten kan forfalske TLS-meddelelsen. DECO's løsning er at "skjule" KMac'en for klienten (proveren), indtil den svarer på anmodningen. Nu er KMac delt mellem prover og verifikator - KpMac og KvMac. Serveren modtager KMac for at kryptere svaret ved hjælp af nøgledelens operation KpMac ⊕ KvMac = KMac.

Ved at oprette et tre-vejs håndtryk vil dataudveksling mellem klient og server blive udført med en garanti for sikkerhed.
Town Crier vs DECO: hvilket orakel skal bruges i blockchain?
Når man taler om et decentraliseret orakelsystem, kan man ikke undlade at nævne Chainlink, som har til formål at skabe et decentraliseret netværk af orakelknuder, der er kompatibelt med Ethereum, Bitcoin og Hyperledger, under hensyntagen til modularitet: hver del af systemet kan opdateres. For at sikre sikkerheden tilbyder Chainlink samtidig hvert orakel, der deltager i opgaven, at udstede en kombination af nøgler (offentlige og private). Den private nøgle bruges til at generere en delvis signatur, der indeholder deres beslutning om dataanmodningen. For at få et svar er det nødvendigt at kombinere alle delsignaturerne fra netværkets orakler.

Chainlink planlægger at gennemføre en indledende PoC DECO med fokus på decentraliserede finansieringsapplikationer såsom Mixicles. I skrivende stund kom der nyheder på Forbes om, at Chainlink erhvervede DECO fra Cornell University.

Angreb på orakler

Town Crier vs DECO: hvilket orakel skal bruges i blockchain?

Fra et informationssikkerhedssynspunkt blev følgende angreb på Town Crier overvejet:

  1. Rogue smart-contact-kodeindsprøjtning på TEE-noder.
    Essensen af ​​angrebet: at sende en bevidst forkert smart kontraktkode til TEE, således vil en angriber, der fik adgang til noden, være i stand til at udføre sin egen (svigagtige) smart kontrakt på de dekrypterede data. Returværdierne vil dog være krypteret med en privat nøgle, og den eneste måde at få adgang til sådanne data er at lække chifferteksten ved retur/output.
    Beskyttelse mod dette angreb består i, at enklaven kontrollerer rigtigheden af ​​koden på den aktuelle adresse. Dette kan opnås ved hjælp af et adresseringsskema, hvor kontraktadressen bestemmes ved at hashing kontraktkoden.

  2. Kontrakt tilstand chiffertekst ændringer læk.
    Essensen af ​​angrebet: Ejere af noder, hvorpå der udføres smarte kontrakter, har adgang til kontrakttilstanden i krypteret form uden for enklaven. En angriber, der har fået kontrol over en node, kan sammenligne kontakttilstanden før og efter transaktionen og kan bestemme, hvilke argumenter der blev indtastet, og hvilken smart kontraktmetode der blev brugt, da selve smart kontraktkoden og dens tekniske specifikationer er offentligt tilgængelige.
    Beskyttelse for at sikre pålideligheden af ​​selve noden.

  3. Sidekanalangreb.
    En speciel type angreb, der bruger overvågning af enklavehukommelse og cache-adgang i forskellige scenarier. Et eksempel på et sådant angreb er Prime and Probe.
    Town Crier vs DECO: hvilket orakel skal bruges i blockchain?
    Angrebsrækkefølge:

    • t0: Angriberen udfylder hele datacachen for offerprocessen.
    • t1: Offeret udfører kode med hukommelsesadgange, der afhænger af offerets følsomme data (kryptografiske nøgler). Cachelinjen vælges baseret på keybit-værdien. I eksemplet i figuren læses keybit = 0 og adressen X i cache-linje 2. Dataene, der er lagret i X, indlæses i cachen, og fortrænger de data, der var der før.
    • t2: Angriberen tjekker, hvilke af hans cache-linjer der er blevet smidt ud – linjer brugt af offeret. Dette gøres ved at måle adgangstiden. Ved at gentage denne operation for hver keybit får angriberen hele nøglen.

Angrebsbeskyttelse: Intel SGX har beskyttelse mod sidekanalangreb, der forhindrer overvågning af cache-relaterede hændelser, men et Prime and Probe-angreb vil stadig fungere, fordi angriberen overvåger cachehændelserne i sin proces og deler cachen med offeret.
Town Crier vs DECO: hvilket orakel skal bruges i blockchain?
Således er der i øjeblikket ingen pålidelig beskyttelse mod dette angreb.

Angreb som Spectre og Foreshadow (L1TF), der ligner Prime og Probe, er også kendt. De giver dig mulighed for at læse data fra cachehukommelsen gennem en tredjepartskanal. Der tilbydes beskyttelse mod Spectre-v2-sårbarheden, som virker mod to af disse angreb.

I forhold til DECO giver trevejshåndtrykket en garanti for sikkerhed:

  1. Proverintegritet: En hacket prover kan ikke forfalske serveroprindelsesoplysninger og kan ikke få serveren til at acceptere ugyldige anmodninger eller reagere forkert på gyldige anmodninger. Dette gøres gennem anmodningsmønstre mellem server og prover.
  2. Verifikatorintegritet: En hacket verifikator kan ikke få beviseren til at modtage forkerte svar.
  3. Privatliv: Den hackede verifikator undersøger kun offentlige oplysninger (anmodning, servernavn).

I DECO er kun trafikinjektion sårbarheder mulige. For det første, med et tre-vejs håndtryk, kan verifikatoren fastslå serverens identitet ved hjælp af en ny nonce. Efter håndtrykket skal verifikatoren dog stole på netværkslagsindikatorer (IP-adresser). Kommunikationen mellem verifikatoren og serveren skal således beskyttes mod trafikinjektion. Dette opnås ved at bruge Proxy.

Sammenligning af orakler

Town Crier er baseret på at arbejde med en enklave i serverdelen, mens DECO giver dig mulighed for at verificere ægtheden af ​​oprindelsen af ​​data ved hjælp af et tre-vejs håndtryk og datakryptering med kryptografiske nøgler. Sammenligning af disse orakler blev udført i henhold til følgende kriterier: ydeevne, sikkerhed, omkostninger og praktisk.

Town Crier
DECO

ydeevne
Hurtigere (0.6 s til slut)
Langsommere (10.50s for at afslutte protokollen)

sikkerhed
Mindre sikker
Mere sikker

koste
Dyrere
Billigere

praktisk
Kræver speciel hardware
Fungerer med enhver server, der understøtter TLS

hastighed: For at arbejde med DECO kræves et tre-vejs håndtryk, ved opsætning via LAN tager det 0.37 sekunder, for interaktion efter forbindelsen er etableret er 2PC-HMAC effektiv (0,13 s pr. skrivning). DECOs ydeevne afhænger af de tilgængelige TLS-krypteringspakker, størrelsen af ​​de private data og kompleksiteten af ​​beviserne for en bestemt applikation. Brug af den binære option-applikation fra IC3 som et eksempel: at færdiggøre protokollen via LAN tager omkring 10,50 sekunder. Til sammenligning tager Town Crier cirka 0,6 sekunder at fuldføre en lignende ansøgning, hvilket er cirka 20 gange hurtigere end DECO. Alt andet lige vil TC være hurtigere.

Безопасность: Angreb på Intel SGX-enklaven (sidekanalangreb) virker og kan forårsage reel skade på deltagerne i den smarte kontrakt. Med hensyn til DECO er angreb relateret til trafikinjektion mulige, men brugen af ​​en proxy reducerer sådanne angreb til ingenting. Derfor er DECO sikrere.

Omkostninger: Udgifterne til udstyr, der understøtter Intel SGX, er højere end omkostningerne ved at opsætte protokollen i DECO. Derfor er TC dyrere.

praktisk: For at arbejde med Town Crier kræves specialudstyr, der understøtter TEE. For eksempel understøttes Intel SGX på 6. generations Intel Core-processorfamilie og senere. DECO giver dig mulighed for at arbejde med ethvert udstyr, selvom der er en DECO indstilling ved hjælp af TEE. Ifølge opsætningsprocessen kan DECOs tre-vejs håndtryk tage noget tid, men dette er ingenting sammenlignet med hardwarebegrænsningen i TC, så DECO er mere praktisk.

Konklusion

Ser man på de to orakler hver for sig og sammenligner dem på fire kriterier, er det klart, at Town Crier er underlegen i forhold til DECO på tre ud af fire punkter. DECO er mere pålidelig ud fra et informationssikkerhedssynspunkt, billigere og mere praktisk, selvom opsætning af en trepartsprotokol kan tage noget tid og har sine ulemper, for eksempel yderligere operationer med krypteringsnøgler. TC er hurtigere end DECO, men side-channel angrebssårbarheder gør det modtageligt for tab af fortrolighed. Det skal tages i betragtning, at DECO blev introduceret i januar 2020, og der er ikke gået nok tid til at betragte det som sikkert. Town Crier har været under angreb i 4 år og har gennemgået mange tests, så dets brug i mange projekter er berettiget.

Kilde: www.habr.com

Tilføj en kommentar