Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?

Kiwari, ngan nu puguh teu nulis ngeunaan téhnologi blockchain, cryptocurrencies jeung kumaha tiis éta. Tapi artikel ieu moal muji téhnologi ieu, urang bakal ngobrol ngeunaan shortcomings sarta cara pikeun ngaleungitkeun aranjeunna.

Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?

Nalika damel di salah sahiji proyék di Altirix Systems, tugasna timbul tina konfirmasi data anu aman, tahan sénsor tina sumber éksternal kana blockchain. Ieu diperlukeun pikeun ngonfirmasi parobahan dina rékaman tina sistem katilu jeung, dumasar kana parobahan ieu, ngajalankeun hiji atawa cabang sejen dina logika kontrak pinter. Tugas di glance kahiji rada trivial, tapi lamun kaayaan finansial salah sahiji pihak milu dina prosés gumantung kana hasil palaksanaan na, sarat tambahan muncul. Anu mimiti, ieu mangrupikeun kapercayaan komprehensif dina mékanisme validasi sapertos kitu. Tapi hal kahiji kahiji.

Masalahna nyaéta yén blockchain sorangan mangrupikeun éntitas katutup otonom, ku kituna kontrak pinter di jero blockchain henteu terang nanaon ngeunaan dunya luar. Dina waktos anu sami, istilah kontrak pinter sering aya hubunganana sareng inpormasi ngeunaan hal-hal anu nyata (tunda penerbangan, kurs tukar, jsb.). Pikeun kontrak pinter tiasa dianggo leres, inpormasi anu ditampi ti luar blockchain kedah dipercaya sareng diverifikasi. Masalah ieu direngsekeun ku ngagunakeun oracles sapertos Town Crier sareng DECO. Oracles ieu ngamungkinkeun kontrak pinter dina jaringan blockchain pikeun ngandelkeun inpormasi ti server wéb anu dipercaya; urang tiasa nyarios yén ieu mangrupikeun panyadia inpormasi anu dipercaya.

Oracles

Bayangkeun yén kontrak pinter mindahkeun 0.001 btc kana dompét bitcoin anjeun upami klub maén bal favorit anjeun meunang Piala Rusia. Upami kameunangan nyata, kontrak pinter kedah nransferkeun inpormasi ngeunaan klub mana anu dimeunangkeun, sareng sajumlah masalah timbul di dieu: dimana kéngingkeun inpormasi ieu, kumaha amanna nransferkeunana kana kontrak pinter sareng kumaha mastikeun inpormasi éta. narima dina kontrak pinter valid sabenerna coincides jeung kanyataan?

Nalika datang ka sumber inpormasi, tiasa aya 2 skenario: nyambungkeun kontrak pinter ka situs wéb anu dipercaya dimana inpormasi ngeunaan hasil pertandingan disimpen sacara sentral, sareng pilihan kadua nyaéta nyambungkeun sababaraha situs sakaligus teras pilih inpormasi tina seueur sumber. nu nyadiakeun data anu sarua. Pikeun pariksa kabeneran inpormasi, oracle dianggo, contona Oraclize, anu nganggo TLSNotary (TLS Notaris Modifikasi pikeun Ngabuktoskeun Kaaslian Data). Tapi aya inpormasi anu cukup dina Google ngeunaan Oraclize, sareng aya sababaraha tulisan ngeunaan Habré. Dinten ieu kuring bakal ngobrol ngeunaan oracles anu ngagunakeun pendekatan anu rada béda pikeun ngirimkeun inpormasi: Town Crier sareng DECO. Artikel nyadiakeun pedaran ngeunaan prinsip operasi duanana oracles, kitu ogé ngabandingkeun lengkep.

Kota Crier

Town Crier (TC) diwanohkeun ku IC3 (The Initiative for CryptoCurrencies and Contracts) dina 2016 di CCS'16. Gagasan utama TC: mindahkeun inpormasi tina situs wéb ka kontrak pinter sareng pastikeun inpormasi anu dikirimkeun ku TC sami sareng dina halaman wéb. TC ngagunakeun TEE (Trusted Execution Environment) pikeun ngaoténtikasi kapamilikan data. Versi aslina tina TC ngajelaskeun kumaha carana digawekeun ku Intel SGX.
Town Crier diwangun ku bagian di jero blockchain sareng bagian di jero OS sorangan - TC Server.
Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?
Kontrak TC aya dina blockchain sareng janten tungtung hareup pikeun TC. Éta nampi pamundut ti CU (kontrak pinter pangguna) sareng ngabalikeun réspon ti TC Server. Di jero TC Server aya Relay, anu ngawangun sambungan antara enclave sareng Internét (lalulintas dua arah) sareng nyambungkeun enclave sareng blockchain. Enclave ngandung progencl, nyaéta kode anu ngadamel pamundut ti blockchain sareng mulangkeun pesen ka blockchain kalayan tanda tangan digital, progencl ngandung bagian tina kode kontrak pinter sareng dasarna ngalaksanakeun sababaraha fungsina.

Intel SGX enclave bisa dianggap salaku perpustakaan dibagikeun kalawan API ngajalankeun via ecall. Ecall mindahkeun kontrol ka enclave nu. Enclave ngalaksanakeun kode na dugi ka kaluar atanapi dugi ka aya pengecualian. ocall dipaké pikeun nelepon fungsi diartikeun luar enclave nu. Ocall dieksekusi di luar enclave sareng dianggap salaku telepon anu teu dipercaya ku éta. Saatos ocall dieksekusi, kontrol dipulangkeun ka enclave.
Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?
Dina bagian Enclave, saluran aman dikonpigurasikeun sareng server wéb, enclave sorangan ngalakukeun sasalaman TLS sareng server target sareng ngalaksanakeun sadaya operasi kriptografi sacara internal. Perpustakaan TLS (mbedTLS) jeung kode HTTP ngurangan geus diékspor ka lingkungan SGX. Ogé, Enclave ngandung sertipikat CA akar (kumpulan sertipikat) pikeun pariksa sertipikat server jauh. Request Handler nampi pamundut datagram dina format anu disayogikeun ku Ethereum, ngadekrip sareng nga-parse. Lajeng dibangkitkeun hiji transaksi Ethereum ngandung datagram dipénta, tanda eta kalawan skTC sarta ngirimkeun ka Relay.

Bagian Relay kalebet Antarmuka Klién, TCP, Antarmuka Blockchain. Antarmuka Klién diperyogikeun pikeun ngajamin kodeu enclave sareng komunikasi sareng klien. Klien ngirimkeun pamundut attestation nganggo ecall sareng nampi timestamp anu ditandatanganan ku skTC sareng att (tanda tangan attestation), teras att diverifikasi nganggo Intel Attestation Service (IAS), sareng timestamp diverifikasi ku jasa waktos anu dipercaya. Blockchain Interface verifies requests asup sarta nempatkeun transaksi dina blockchain pikeun pangiriman datagrams. Geth mangrupikeun klien Ethereum resmi sareng ngamungkinkeun Relay berinteraksi sareng blockchain liwat telepon RPC.

Gawe sareng TEE, TC ngamungkinkeun anjeun ngajalankeun sababaraha enclaves paralel, ku kituna ningkatkeun laju ngolah inpormasi ku 3 kali. Lamun kalawan hiji enclave ngajalankeun laju éta 15 tx / detik, lajeng kalawan 20 enclaves ngajalankeun paralel speed naek ka 65 tx / detik; pikeun babandingan, speed operasi maksimum dina blockchain Bitcoin nyaeta 26 tx / detik.

DECO

DECO (Desentralisasi Oracles pikeun TLS) dibere dina CCS'20, jalan kalawan loka anu ngarojong sambungan TLS. Mastikeun karusiahan sareng integritas data.
DECO sareng TLS nganggo enkripsi simetris, janten klien sareng server wéb gaduh konci enkripsi, sareng klien tiasa ngajalin data sési TLS upami hoyong. Pikeun ngajawab masalah ieu, DECO ngagunakeun protokol sasalaman tilu arah antara prover (kontrak pinter), verifier (oracle) jeung web-server (sumber data).

Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?

Cara DECO jalan nyaéta yén verifier narima sapotong data D jeung confirms ka verifier yén D asalna ti server TLS S. Masalah sejen nyaeta TLS teu asup data jeung hésé pikeun klien TLS ngabuktikeun yén data ieu ditampi tina persis server katuhu (kasulitan provenance).

Protokol DECO nganggo konci énkripsi KEnc sareng KMac. Klién ngirimkeun pamundut Q ka pangladén wéb, réspon ti server R asalna dina bentuk énkripsi, tapi klien sareng server gaduh KMac anu sami, sareng klien tiasa ngajalin pesen TLS. Solusi DECO nyaéta "nyumputkeun" KMac tina klien (prover) dugi ka ngaréspon kana pamundut. Ayeuna KMac dibagi antara prover na verifier - KpMac na KvMac. Server nampi KMac pikeun énkripsi réspon nganggo operasi bagian konci KpMac ⊕ KvMac = KMac.

Ku netepkeun sasalaman tilu arah, pertukaran data antara klien sareng server bakal dilaksanakeun kalayan jaminan kaamanan.
Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?
Lamun ngobrol ngeunaan sistem Oracle desentralisasi, salah teu bisa gagal nyebut Chainlink, nu boga tujuan pikeun nyieun jaringan desentralisasi titik Oracle cocog sareng Ethereum, Bitcoin na Hyperledger, nyokot kana akun modularity: unggal bagian tina sistem bisa diropéa. Dina waktu nu sarua, pikeun mastikeun kaamanan, Chainlink nawarkeun unggal Oracle ilubiung dina tugas ngaluarkeun kombinasi konci (umum jeung swasta). Konci swasta dipaké pikeun ngahasilkeun tanda tangan parsial anu ngandung kaputusan maranéhanana pikeun pamundut data. Pikeun ménta jawaban, perlu pikeun ngagabungkeun sakabeh tanda tangan parsial oracles jaringan.

Chainlink ngarencanakeun pikeun ngalaksanakeun PoC DECO awal kalayan fokus kana aplikasi kauangan desentralisasi sapertos Mixicles. Dina waktos nyerat, warta kaluar dina Forbes yén Chainlink ngagaduhan DECO ti Universitas Cornell.

Serangan kana oracles

Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?

Tina sudut pandang kaamanan inpormasi, serangan di handap ieu ka Town Crier dianggap:

  1. Rogue pinter-kontak kode suntik on titik TEE.
    Intina serangan: ngirimkeun kode kontrak pinter anu ngahaja lepat ka TEE, ku kituna, panyerang anu ngagaduhan aksés kana simpulna bakal tiasa ngalaksanakeun kontrak pinter (penipuan) sorangan dina data anu didekripsi. Tapi, nilai mulang bakal énkripsi ku konci pribadi, sareng hiji-hijina jalan pikeun ngaksés data sapertos kitu nyaéta ngabocorkeun ciphertext nalika mulang / kaluaran.
    Perlindungan ngalawan serangan ieu diwangun ku enclave mariksa kabeneran kode anu aya di alamat ayeuna. Ieu tiasa dihontal nganggo skéma alamat dimana alamat kontrak ditangtukeun ku hashing kode kontrak.

  2. Parobahan ciphertext kaayaan kontrak bocor.
    Intina serangan: Pamilik titik dimana kontrak pinter dieksekusi gaduh aksés kana kaayaan kontrak dina bentuk énkripsi di luar enclave. Hiji panyerang, sanggeus meunang kadali hiji titik, bisa ngabandingkeun kaayaan kontak saméméh jeung sanggeus urus tur bisa nangtukeun mana argumen diasupkeun jeung métode kontrak pinter nu dipaké, saprak kode kontrak pinter sorangan jeung spésifikasi teknis na sadia pikeun umum.
    Perlindungan dina mastikeun reliabilitas node sorangan.

  3. Serangan saluran samping.
    Jinis serangan khusus anu ngagunakeun ngawaskeun mémori enclave sareng aksés cache dina sababaraha skenario. Conto serangan sapertos nyaéta Prime and Probe.
    Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?
    Urutan serangan:

    • t0: Panyerang ngeusian sakabéh cache data prosés korban.
    • t1: Korban executes kode jeung aksés memori nu gumantung kana data sénsitip korban (konci cryptographic). Garis cache dipilih dumasar kana nilai keybit. Dina conto dina gambar, keybit = 0 jeung alamat X dina cache garis 2. Data nu disimpen dina X dimuat kana cache nu, displacing data nu aya saméméh.
    • t2: Panyerang mariksa mana tina garis cache-na anu digusur-garis anu dianggo ku korban. Hal ieu dilakukeun ku cara ngukur waktos aksés. Ku ngulang operasi ieu pikeun unggal keybit, panyerang meunang sakabéh konci.

Perlindungan Serangan: Intel SGX gaduh panyalindungan ngalawan serangan saluran sisi anu nyegah ngawaskeun kajadian anu aya hubunganana sareng cache, tapi serangan Perdana sareng Probe masih tiasa dianggo kusabab panyerang ngawas acara cache tina prosésna sareng ngabagi cache sareng korban.
Town Crier vs DECO: Oracle mana anu dianggo dina blockchain?
Ku kituna, ayeuna teu aya panyalindungan dipercaya ngalawan serangan ieu.

Serangan sapertos Spectre and Foreshadow (L1TF), sami sareng Perdana sareng Probe, ogé dikenal. Éta ngamungkinkeun anjeun maca data tina mémori cache ngalangkungan saluran pihak katilu. Perlindungan ngalawan kerentanan Specter-v2 disayogikeun, anu tiasa dianggo ngalawan dua serangan ieu.

Dina hubunganana sareng DECO, sasalaman tilu arah nyayogikeun jaminan kaamanan:

  1. Prover Integritas: A prover hacked teu bisa falsify informasi asal server jeung teu bisa ngabalukarkeun server narima requests teu valid atawa ngabales lepat ka requests valid. Hal ieu dilakukeun ngaliwatan pola pamundut antara server na prover.
  2. Verifier Integritas: A verifier hacked teu bisa ngabalukarkeun prover narima jawaban salah.
  3. Privasi: Verifier anu diretas ngan ukur nguji inpormasi umum (pamundut, nami server).

Dina DECO, ngan ukur kerentanan suntikan lalu lintas anu mungkin. Kahiji, ku sasalaman tilu arah, verifier bisa ngadegkeun identitas server ngagunakeun nonce seger. Nanging, saatos sasalaman, verifikasi kedah ngandelkeun indikator lapisan jaringan (alamat IP). Ku kituna, komunikasi antara verifier jeung server kudu ditangtayungan tina suntik lalulintas. Ieu kahontal ku ngagunakeun Proxy.

Babandingan oracles

Kota Crier dumasar kana gawé bareng hiji enclave dina bagian server, bari DECO ngidinan Anjeun pikeun pariksa kaaslian asal data ngagunakeun sasalaman tilu arah sarta enkripsi data kalayan konci cryptographic. Ngabandingkeun oracles ieu dilumangsungkeun nurutkeun kriteria handap: kinerja, kaamanan, ongkos na practicality.

Kota Crier
DECO

kinerja
Langkung gancang (0.6s dugi ka rengse)
Laun (10.50s pikeun ngabéréskeun protokol)

kaamanan
Kurang aman
Leuwih aman

biaya
Leuwih mahal
Langkung mirah

kepraktisan
Merlukeun hardware husus
Gawéna sareng server naon waé anu ngadukung TLS

Kinerja: Pikeun digawekeun ku DECO, sasalaman tilu arah diperlukeun, lamun nyetel via LAN butuh 0.37 detik, pikeun interaksi sanggeus sambungan nu ngadegkeun, 2PC-HMAC éféktif (0,13 s per nulis). Kinerja DECO gumantung kana suite cipher TLS anu sayogi, ukuran data pribadi, sareng pajeulitna bukti pikeun aplikasi khusus. Ngagunakeun aplikasi pilihan binér ti IC3 sabagé conto: ngalengkepan protokol via LAN nyokot ngeunaan 10,50 detik. Ku ngabandingkeun, Town Crier butuh sakitar 0,6 detik pikeun ngarengsekeun aplikasi anu sami, sakitar 20 kali langkung gancang tibatan DECO. Sadayana sami, TC bakal langkung gancang.

kasalametan: Serangan dina enclave Intel SGX (serangan saluran samping) jalan jeung bisa ngabalukarkeun karuksakan nyata pikeun pamilon kontrak pinter. Ngeunaan DECO, serangan anu aya hubunganana sareng suntikan lalu lintas tiasa waé, tapi panggunaan proxy ngirangan serangan sapertos kitu. Kituna DECO leuwih aman.

biaya: Biaya pakakas nu ngarojong Intel SGX leuwih luhur ti biaya nyetel protokol di DECO. Éta sababna TC langkung mahal.

practicality: Pikeun gawé bareng Town Crier, parabot husus nu ngarojong TEE diperlukeun. Salaku conto, Intel SGX dirojong dina kulawarga prosesor Intel Core generasi ka-6 sareng engké. DECO ngamungkinkeun anjeun damel sareng alat naon waé, sanaos aya setélan DECO nganggo TEE. Numutkeun kana prosés pangaturan, sasalaman tilu arah DECO tiasa nyandak sababaraha waktos, tapi ieu sanés dibandingkeun sareng watesan hardware TC, janten DECO langkung praktis.

kacindekan

Ningali dua oracle sacara misah sareng ngabandingkeun kana opat kriteria, jelas yén Town Crier langkung handap tina DECO dina tilu tina opat titik. DECO langkung dipercaya tina sudut pandang kaamanan inpormasi, langkung mirah sareng langkung praktis, sanaos nyetél protokol tilu pihak tiasa nyandak sababaraha waktos sareng gaduh kalemahan, contona, operasi tambahan kalayan konci enkripsi. TC langkung gancang tibatan DECO, tapi kerentanan serangan saluran sisi ngajadikeun éta rentan kaleungitan karusiahan. Éta kedah diperhatoskeun yén DECO diwanohkeun dina Januari 2020, sareng henteu cekap waktos anu parantos nganggap éta aman. Kota Crier parantos diserang salami 4 taun sareng parantos ngaliwat seueur tés, janten panggunaanana dina seueur proyék leres.

sumber: www.habr.com

Tambahkeun komentar