Town Crier vs DECO: cili orakull të përdoret në blockchain?

Sot kĂ«rkohet vetĂ«m nga ata qĂ« janĂ« me fat qĂ« kanĂ« shkruar pĂ«r teknologjinĂ« blockchain, criptovalutat dhe sa e shkĂ«lqyer Ă«shtĂ« ajo. Por nĂ« kĂ«tĂ« artikull nuk do tĂ« ketĂ« lĂ«vdata pĂ«r kĂ«tĂ« teknologji, do tĂ« flasim pikĂ«risht pĂ«r disavantazhet e saj dhe mĂ«nyrat pĂ«r t’i zgjidhur ato.

Town Crier vs DECO: cili orakull të përdoret në blockchain?

Gjatë punës në një nga projektet në kompaninë Altirix Systems, u shfaq nevoja për një konfirmim të sigurt dhe të qëndrueshëm ndaj censurës të të dhënave nga një burim të jashtëm për blockchain. Duhej të konfirmoheshin ndryshimet në regjistrimet e një sistemi të tretë dhe në përputhje me këto ndryshime të ekzekutohej një degë në logjikën e kontratës inteligjente. Detyra në pamje të parë duket mjaft e thjeshtë, por kur rezultati i saj ndikon në gjendjen financiare të një prej palëve përfshira, shfaqen kërkesa të tjera. Para së gjithash, kjo është besimi i plotë në një mekanizëm të tillë validimi. Por gjithçka me rend.

Problemi përbëhet nga fakti se blockchain as vetë është një objekt autonom dhe i mbyllur, prandaj kontratat inteligjente brenda blockchain nuk dinë asgjë për botën e jashtme. Në të njëjtën kohë, kushtet e kontratave inteligjente shpesh lidhen me informacione mbi realitetin (vonesa të fluturimeve, kurset e këmbimit etj.). Për të siguruar funksionimin e duhur të kontratave inteligjente, informacioni i marrë jashtë blockchain duhet të jetë i besueshëm dhe i verifikuar. Ky problem zgjidhet përmes përdorimit të orakulave, si Town Crier dhe DECO. Këta orakulë lejojnë kontratave inteligjente në rrjetin blockchain t'i besojnë informacionit nga një server web të verifikuar, mund të thuhet se ata janë furnizues të informacionit të besueshëm.

Orakulët

Imagjinoni se njĂ« kontratĂ« inteligjente kryen njĂ« transferim prej 0.001 btc nĂ« portofolin tuaj bitcoin nĂ« rast se klubi juaj i preferuar fiton kupĂ«n e RusisĂ«. NĂ« rastin e njĂ« fitoreje tĂ« vĂ«rtetĂ«, kontratĂ«s inteligjente duhet t’i dĂ«rgohet informacioni se cili klub fitoi, dhe kĂ«tu lindin disa probleme: ku mund ta gjejmĂ« kĂ«tĂ« informacion, si ta dĂ«rgojmĂ« atĂ« nĂ« mĂ«nyrĂ« tĂ« sigurt nĂ« kontratĂ«n inteligjente dhe si tĂ« sigurohemi qĂ« informacioni i ardhur nĂ« kontratĂ«n inteligjente pĂ«rputhet me realitetin?

NĂ« çështjen e burimit tĂ« informacionit mund tĂ« jenĂ« 2 skenarĂ«: lidhja e kontratĂ«s inteligjente me njĂ« faqe tĂ« besueshme, ku informacioni mbi rezultatet e ndeshjeve ruhet nĂ« mĂ«nyrĂ« qendrore dhe varianti i dytĂ« — tĂ« lidhemi menjĂ«herĂ« me disa faqe dhe mĂ« pas tĂ« bĂ«jmĂ« njĂ« pĂ«rzgjedhje tĂ« informacionit nga shumica e burimeve qĂ« ofrojnĂ« tĂ« dhĂ«na tĂ« njĂ«jta. PĂ«r tĂ« siguruar saktesinĂ« e informacionit, pĂ«rdoren orakulĂ«, si Oraclize, qĂ« pĂ«rdor TLSNotary (Modifikimi i TLS pĂ«r tĂ« provuar autencitetin e tĂ« dhĂ«nave). Por pĂ«r Oraclize informacioni nĂ« Google Ă«shtĂ« mjaftueshĂ«m dhe nĂ« Habr janĂ« disa artikuj, unĂ« sot do tĂ« flas pĂ«r orakulĂ«t qĂ« pĂ«rdorin njĂ« qasje pak ndryshe pĂ«r dĂ«rgimin e informacionit: Town Crier dhe DECO. NĂ« artikull janĂ« pĂ«rshkruar parimet e punĂ«s sĂ« tĂ« dy orakulĂ«ve, si dhe njĂ« krahasim i detajuar.

Town Crier

Town Crier (TC) u prezantua nga IC3 (Iniciativa pĂ«r Kriptovalutat dhe Kontratate) nĂ« vitin 2016 nĂ« CCS’16. Ideja kryesore e TC: tĂ« dĂ«rgojĂ« informacionin nga njĂ« faqe web nĂ« kontratĂ«n inteligjente dhe tĂ« sigurojĂ« qĂ« informacioni i dĂ«rguar nga TC Ă«shtĂ« i njĂ«jtĂ« me atĂ« nĂ« faqen e internetit. TC pĂ«rdor TEE (Mjedisi i Ekzekutimit tĂ« Besuar) pĂ«r tĂ« garantuar autenticitetin e tĂ« dhĂ«nave. NĂ« versionin origjinal, TC pĂ«rshkruan funksionimin me Intel SGX.
Town Crier pĂ«rbĂ«het nga njĂ« pjesĂ« brenda blockchain dhe njĂ« pjesĂ« brenda vetĂ« OS – TC Server.
Town Crier vs DECO: cili orakull të përdoret në blockchain?
Kontrata TC ndodhet në blockchain dhe vepron si frontend për TC. Ajo pranon kërkesa nga CU (kontrata inteligjente e përdoruesit) dhe kthen një përgjigje nga TC Server. Brenda TC Server ndodhet Relay, i cili krijon lidhjen e enklavës me internetin (trafiku dy-direksional) dhe lidh enklavën me blockchain. Enclave përmban progencl, i cili është kodi që ekzekuton kërkesat nga blockchain dhe kthen mesazhe në blockchain me një nënshkrim digjital, progencl përmban një pjesë të kodit të kontratës inteligjente dhe në thelb ekzekuton disa nga funksionet e saj.

Enklava Intel SGX mund të konsiderohet si një bibliotekë e zakonshme me API, e cila punon përmes ecall. Ecall transferon kontrollin në enklavë. Enklava ekzekuton kodin e saj, derisa të përfundojë, ose derisa të ndodhi një përjashtim. Për thirrjen e funksioneve, të përcaktuara jashtë enklavës, përdoren ocall. Ocall ekzekutohet jashtë enklavës dhe përpunohet prej saj si një thirrje e pasigurt. Pas ekzekutimit të ocall, kontrolli kthehet në enklavë.
Town Crier vs DECO: cili orakull të përdoret në blockchain?
Në pjesën Enclave, ndodhet konfigurimi i kanalit të sigurt me serverin web; Enclave vetë kryen TLS handshake me serverin e synuar dhe realizon të gjitha operacionet kriptografike brenda vetes. Biblioteka TLS (mbedTLS) dhe kodi HTTP janë eksportuar në mënyrë të reduktuar në ambientin SGX. Gjithashtu, Enclave përmban certifikatat root CA (një koleksion certifikatash) për të verifikuar certifikatat e serverëve të largët. Request Handler pranon një kërkesë datagram në formatin e ofruar nga Ethereum, e dekripton atë dhe e analizon. Pastaj gjeneron një transaksion Ethereum që përmban datagramin e kërkuar, e nënshkruan atë me skTC dhe e dërgon në Relay.

Pjesa Relay përfshin Client Interface, TCP, Blockchain Interface. Client Interface është i nevojshëm për atestimin e kodit të Enclave dhe komunikimin me klientin. Klienti dërgon një kërkesë për atestim përmes ecall dhe merr një timestamp të nënshkruar me skTC së bashku me att (nënshkrimi i atestimit); më pas, att konfirmohet përmes Shërbimit të Atestimit Intel (IAS), ndërsa timestamp verifikohet nga një shërbim të besueshëm të kohës. Blockchain Interface verifikon kërkesat e pranuara dhe vendos transaksionet në blockchain për të dërguar datagramet. Geth është klienti zyrtar i Ethereum dhe lejon Relay të interaktojë me blockchain përmes RPC calls.

Duke punuar me TEE, TC e lejon çeljen e disa Enclaves njëkohësisht, duke rritur kështu shpejtësinë e përpunimit të informacionit me 3 herë. Nëse me një Enclave aktive shpejtësia ishte 15 tx/sec, atëherë me 20 Enclaves të hapura njëkohësisht shpejtësia rritet në 65 tx/sec; për krahasim, shpejtësia maksimale e punës në blockchain-in Bitcoin është 26 tx/sec.

DECO

DECO (Orakujt e decentralizuar për TLS) u prezantua në CCS'20, punon me faqet që mbështesin lidhjen TLS. Siguron privatësinë dhe integritetin e të dhënave.
DECO me TLS përdor enkriptimin simetrik, duke lejuar që klienti dhe serveri web të kenë çelësa enkriptimi dhe, nëse klienti dëshiron, mund të manipulojë të dhënat e sesionit TLS. Për zgjidhjen e këtij problemi, DECO përdor një protokoll tre-anëtarësh ndërshtesë mes prover (kontrata inteligjente), verifier (orakulli) dhe web-server (burimi i të dhënave).

Town Crier vs DECO: cili orakull të përdoret në blockchain?

Principi i operimit të DECO qëndron në faktin se provuesi (prover) merr një pjesë të të dhënave D dhe konfirmon për verifikuesin (verifier) se D ka ardhur nga serveri TLS S. Problemi tjetër është se TLS nuk nënshkruan të dhënat dhe është e vështirë për klientin TLS të provojë se të dhënat janë marrë pikërisht nga ai server (vështirësi në provinencë).

NĂ« protokollin DECO pĂ«rdoren çelĂ«sa enkriptimi KEnc dhe KMac. Klienti dĂ«rgon njĂ« kĂ«rkesĂ« Q nĂ« server web, pĂ«rgjigja nga serveri R vjen e enkriptuar, por klienti dhe serveri zotĂ«rojnĂ« tĂ« njĂ«jtin KMac, dhe klienti mund tĂ« sajojĂ« mesazhin TLS. Zgjidhja nga DECO Ă«shtĂ« tĂ« "fshehĂ«" KMac nga klienti (prover) derisa ai tĂ« pĂ«rgjigjet nĂ« kĂ«rkesĂ«. Tani KMac Ă«shtĂ« i ndarĂ« midis prover dhe verifier — KpMac dhe KvMac. Serveri merr KMac pĂ«r enkriptimin e pĂ«rgjigjes pĂ«rmes operacionit mbi pjesĂ«t e çelĂ«sit KpMac ⊕ KvMac = KMac.

Duke konfiguruar një duar të tretë për shkëmbimin e të dhënave ndërmjet klientit dhe serverit, do të kryhet me një garanci sigurie.
Town Crier vs DECO: cili orakull të përdoret në blockchain?
Duke folur pĂ«r sistemin e orakujve tĂ« decentralizuar, nuk mund tĂ« mos pĂ«rmendim Chainlink, i cili synon tĂ« krijojĂ« njĂ« rrjet tĂ« decentralizuar tĂ« nyjeve tĂ« orakujve, tĂ« pĂ«rputhshĂ«m me Ethereum, Bitcoin dhe Hyperledger, duke u bazuar nĂ« modularitet: çdo pjesĂ« e sistemit mund tĂ« pĂ«rditĂ«sohet. PĂ«r mĂ« tepĂ«r, pĂ«r tĂ« siguruar sigurinĂ«, Chainlink ofron çdo orakulli qĂ« merr pjesĂ« nĂ« njĂ« kĂ«rkesĂ« pĂ«r tĂ« dhĂ«nĂ« njĂ« kombinim çelesh (publik dhe privat). ÇelĂ«si privat pĂ«rdoret pĂ«r tĂ« gjeneruar njĂ« nĂ«nshkrim tĂ« pjesshĂ«m qĂ« pĂ«rmban zgjidhjen e tyre nĂ« kĂ«rkesĂ«n e tĂ« dhĂ«nave. PĂ«r tĂ« marrĂ« njĂ« pĂ«rgjigje, kĂ«rkohet bashkimi i tĂ« gjitha nĂ«nshkrimeve tĂ« pjesshme tĂ« orakujve tĂ« rrjetit.

Chainlink planifikon të realizojë një Proof of Concept (PoC) të DECO me fokus tek aplikacionet financiare të decentralizuara, siç janë Mixicles. Në kohën e shkrimit të këtij artikulli, u publikua një lajm në Forbes se Chainlink kishte blerë DECO nga Universiteti Cornell.

Sulmet ndaj orakujve

Town Crier vs DECO: cili orakull të përdoret në blockchain?

Në këndvështrimin e sigurisë informative, u shqyrtuan sulmet e mëposhtme ndaj Town Crier:

  1. Injeksioni i kodit të kontratës inteligjente te nodet TEE.
    Thelbi i sulmit: transmetimi në TEE i një kodi të dyshimtë të kontratës inteligjente, kështu që një sulmues, i cili ka akses në nyjë, do të ketë mundësinë të ekzekutojë kontratën e tij (të mashtrimit) mbi të dhënat e dekriptuara. Megjithatë, vlerat e kthyer do të jenë të enkriptuara me çelësin privat, dhe alternativa e vetme për akses në të dhëna të tilla është rrjedhja e tekstit të enkriptuar gjatë kthimit/zhvendosjes.
    Mbrojtja nga ky sulm qëndron në verifikimin e Enclave-it për saktësinë e kodit që ndodhet në adresën aktuale. Kjo mund të arrihet përmes një skeme adresimi, ku adresa e kontratës përcaktohet nga hashimi i kodit të kontratës.

  2. Ndryshimet e ciphertext të gjendjes së kontratës rrjedhin.
    The essence of the attack: Node owners where smart contracts execute have access to the contract state in encrypted form outside the enclave. An attacker who gains control of a node can compare the contract state before and after a transaction, determining which arguments were provided and which specific method of the smart contract was used, as the smart contract code and its technical specifications are publicly available.
    Protection in ensuring the reliability of the node itself.

  3. Side-channel attacks.
    A special type of attacks that utilize monitoring access to memory and the cache of the enclave in various scenarios. An example of such an attack is Prime and Probe.
    Town Crier vs DECO: cili orakull të përdoret në blockchain?
    The procedure for carrying out an attack:

    • t0: The attacker fills the entire data cache of the victim process.
    • t1: The victim executes code with memory accesses that depend on the victim's confidential data (cryptographic keys). The cache line is selected based on the keybit value. In the example in the figure, keybit = 0 and address X is read in cache line 2. The data stored in X is loaded into the cache, evicting the data that was previously there.
    • t2: The attacker checks which of their cache lines have been evicted — lines used by the victim. This is done by measuring access time. By repeating this operation for each keybit, the attacker obtains the entire key.

Protection against the attack: Intel SGX has protection against side-channel attacks that disallows monitoring events related to the cache, but the Prime and Probe attack will still succeed, as the attacker observes events in their own process's cache and shares cache with the victim.
Town Crier vs DECO: cili orakull të përdoret në blockchain?
Thus, currently there is no reliable protection against this attack.

Attacks such as Spectre and Foreshadow (L1TF) are also known, similar to Prime and Probe. They allow reading data from the cache via a side channel. Protection against the Spectre-v2 vulnerability is provided, which works against both of these attacks.

With respect to DECO, a three-way handshake provides security guarantees:

  1. Prover Integrity: a compromised prover cannot falsify information about the server's origin and cannot force the server to accept invalid requests or respond incorrectly to valid requests. This is accomplished through request templates between the server and prover.
  2. Verifier Integrity: a compromised verifier cannot force the prover to receive incorrect responses.
  3. Confidentiality: A compromised verifier only studies publicly available information (request, server name).

In DECO, only vulnerabilities related to traffic injection are possible. Initially, during the three-way handshake, the verifier can establish the server's identity using a fresh nonce. However, after the handshake, the verifier must rely on network-level indicators (IP të përkushtuar). Thus, the connection between the verifier and server must be protected against traffic injection. This is achieved through the use of a Proxy.

Comparison of oracles

Town Crier is based on working with enclaves on the server side, while DECO allows authenticating the origin of data using a three-way handshake and encrypting data with cryptographic keys. The comparison of oracle data was conducted based on the following criteria: performance, security, cost, and practicality.

Town Crier
DECO

performance
Faster (0.6s to finish)
Slower (10.50s to finish the protocol)

siguria
Less secure
More secure

çmimi
More expensive
Cheaper

practicality
Requires special hardware
Works with any server supporting TLS

performance: To work with DECO, a three-way handshake setup is required, which takes 0.37 seconds over LAN, for interaction after establishing a connection, 2PC-HMAC is effective (0.13 seconds on write). The performance of DECO depends on the available TLS cipher suites, the size of personal data, and the complexity of proofs for a specific application. In the example of the binary options application from IC3: the completion of the protocol over LAN takes about 10.50 seconds. In comparison, Town Crier requires around 0.6 seconds to perform a similar application, making it about 20 times faster than DECO. Under equal conditions, TC will be faster.

Siguria: Attacks on the Intel SGX enclave (side-channel attacks) work and can cause real damage to participants in the smart contract. With respect to DECO, traffic injection attacks are possible, but the use of a proxy mitigates such attacks. Therefore, DECO is more secure.

Çmimi: The cost of equipment supporting Intel SGX operation is higher than the cost of setting up the protocol in DECO. Therefore, TC is more expensive.

Practicality: Për të punuar me Town Crier, nevojitet pajisje speciale që mbështet TEE. Për shembull, Intel SGX mbështetet në procesorët e familjes Intel Core të gjeneratës së 6-të dhe më të reja. DECO lejon përdorimin e çdo pajisjeje, megjithatë ka një konfigurim DECO që përdor TEE. Procesi i konfigurimit të dorëzimit të tretë në DECO mund të zgjasë një kohë, por kjo nuk krahasohet me kufizimin e harduerit për TC, prandaj DECO është më praktik.

Përfundimi

Duke shqyrtuar dy orakujt veçmas dhe duke i krahasuar ata sipas katër kritereve, duket se Town Crier është në disavantazh ndaj DECO në tre nga katër pika. DECO është më i besueshëm në aspektin e sigurisë informative, më i lirë dhe më praktik, megjithatë konfigurimi i protokollit të dorëzimit të tretë mund të zgjasë një kohë dhe ka disavantazhe të veta, siç janë operacionet shtesë me çelësat e kriptimit. TC funksionon më shpejt se DECO, por vulnerabiliteti i lidhur me sulmin nga kanali anësor e bën atë të rrezikshëm për humbjen e privatësisë. Duhet marrë parasysh se DECO u prezantua në janar 2020, dhe nuk ka kaluar mjaft kohë për ta konsideruar atë të sigurt. Town Crier është goditur për 4 vjet me radhë dhe ka kaluar nëpër shumë kontrolle, kështu që përdorimi i tij në shumë projekte është i justifikuar.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster