Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?

Sehingga kini, hanya mereka yang malas tidak menulis tentang teknologi blockchain, mata wang kripto, dan betapa hebatnya teknologi itu. Tetapi dalam artikel ini tidak akan ada pujian terhadap teknologi ini, ia hanya mengenai kekurangannya dan cara untuk menghapuskannya.

Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?

Semasa mengerjakan salah satu projek di Altirix Systems, tugas untuk pengesahan data yang selamat dan tahan penapisan daripada sumber luar kepada rantaian blok telah timbul. Ia adalah perlu untuk mengesahkan perubahan dalam rekod sistem ketiga dan, berdasarkan perubahan ini, laksanakan satu atau satu lagi cabang dalam logik kontrak pintar. Pada pandangan pertama, tugas itu agak remeh, tetapi apabila keadaan kewangan salah satu pihak yang mengambil bahagian dalam proses itu bergantung pada hasil pelaksanaannya, keperluan tambahan muncul. Pertama sekali, ia adalah amanah menyeluruh dalam mekanisme pengesahan sedemikian. Tetapi perkara pertama dahulu.

Masalahnya ialah blockchain itu sendiri adalah entiti tertutup yang autonomi, jadi kontrak pintar di dalam blockchain tidak tahu apa-apa tentang dunia luar. Pada masa yang sama, syarat kontrak pintar sering dikaitkan dengan maklumat tentang perkara sebenar (kelewatan penerbangan, kadar pertukaran, dll.). Untuk kontrak pintar berfungsi dengan baik, maklumat yang diperoleh dari luar rantaian blok mesti boleh dipercayai dan disahkan. Masalah ini diselesaikan dengan menggunakan oracle seperti Town Crier dan DECO. Oracle ini membenarkan kontrak pintar dalam rangkaian blockchain untuk mempercayai maklumat daripada pelayan web yang dipercayai, kita boleh mengatakan bahawa ini adalah pembekal maklumat yang boleh dipercayai.

Oracles

Bayangkan bahawa kontrak pintar memindahkan 0.001 btc ke dompet bitcoin anda jika kelab bola sepak kegemaran anda memenangi Piala Rusia. Dalam kes kemenangan sebenar, kontrak pintar perlu memindahkan maklumat tentang kelab mana yang menang, dan di sini beberapa masalah timbul: di mana untuk mendapatkan maklumat ini, cara memindahkannya dengan selamat ke kontrak pintar, dan bagaimana untuk memastikan bahawa maklumat yang diterima dalam kontrak pintar pada benar-benar sepadan dengan realiti?

Dalam isu dengan sumber maklumat, terdapat 2 senario: menghubungkan kontrak pintar ke tapak web yang dipercayai yang menyimpan maklumat secara berpusat tentang keputusan perlawanan dan pilihan kedua ialah menyambung beberapa tapak sekali gus kemudian memilih maklumat daripada kebanyakan sumber yang menyediakan data yang sama. Untuk memastikan maklumat adalah betul, oracle digunakan, seperti Oraclize, yang menggunakan TLSNotary (Pengubahsuaian TLS untuk Membuktikan Ketulenan Data). Tetapi terdapat maklumat yang mencukupi tentang Oraclize di Google, dan terdapat beberapa artikel tentang HabrΓ©, tetapi hari ini saya akan bercakap tentang oracle yang menggunakan pendekatan yang sedikit berbeza untuk menghantar maklumat: Town Crier dan DECO. Artikel itu memberikan penerangan tentang prinsip operasi kedua-dua oracle, serta perbandingan terperinci.

Bandar Crier

Town Crier (TC) telah diperkenalkan oleh IC3 (The Initiative for CryptoCurrencies and Contracts) pada 2016 di CCS'16. Idea utama di sebalik TC adalah untuk menghantar maklumat dari tapak web kepada kontrak pintar dan memastikan bahawa maklumat yang dihantar oleh TC adalah sama seperti di tapak web. TC menggunakan TEE (Persekitaran Pelaksanaan Dipercayai) untuk mengesahkan pemilikan data. Versi asal TC menerangkan cara bekerja dengan Intel SGX.
Town Crier terdiri daripada bahagian di dalam blockchain dan sebahagian di dalam OS itu sendiri - TC Server.
Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?
Kontrak TC berada pada rantaian blok dan bertindak sebagai hujung hadapan untuk TC. Ia menerima permintaan daripada CU (Kontrak Pintar Pengguna) dan mengembalikan respons daripada Pelayan TC. Di dalam Pelayan TC terdapat Relay yang menghubungkan enklaf ke Internet (trafik dua arah) dan menghubungkan enklaf ke rantaian blok. Enclave mengandungi progencl, iaitu kod yang membuat permintaan daripada blockchain dan mengembalikan mesej kepada blockchain yang ditandatangani secara digital, progencl mengandungi sebahagian daripada kod kontrak pintar dan sebenarnya melaksanakan beberapa fungsinya.

Enklaf Intel SGX boleh dianggap sebagai perpustakaan kongsi dengan API yang dijalankan melalui ecall. Ecall memindahkan kawalan ke enklaf. Enklaf melaksanakan kodnya sehingga ia tamat atau sehingga pengecualian berlaku. Untuk memanggil fungsi yang ditakrifkan di luar enklaf, gunakan ocall. Ocall berjalan di luar enklaf dan dianggap sebagai panggilan yang tidak dipercayai oleh enklaf. Selepas ocall dilaksanakan, kawalan kembali ke enclave.
Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?
Di bahagian Enklaf, saluran selamat dikonfigurasikan dengan pelayan web, enklaf itu sendiri melakukan jabat tangan TLS dengan pelayan sasaran dan melaksanakan semua operasi kriptografi dalam dirinya sendiri. Pustaka TLS (mbedTLS) dan versi mini kod HTTP telah dieksport ke persekitaran SGX. Juga, Enklaf mengandungi sijil CA akar (pengumpulan sijil) untuk menyemak sijil pelayan jauh. Pengendali Permintaan menerima permintaan datagram dalam format yang disediakan oleh Ethereum, menyahsulitnya dan menghuraikannya. Ia kemudian menjana transaksi Ethereum yang mengandungi datagram yang diminta, menandatanganinya dengan skTC, dan menghantarnya ke Relay.

Bahagian Geganti termasuk Antara Muka Pelanggan, TCP, Antara Muka Rantaian Sekat. Antara Muka Pelanggan diperlukan untuk mengesahkan kod enklaf dan berkomunikasi dengan pelanggan. Pelanggan menghantar permintaan pengesahan menggunakan ecall dan menerima cap waktu yang ditandatangani oleh skTC bersama-sama dengan att (tandatangan pengesahan), kemudian att disahkan menggunakan Perkhidmatan Pengesahan Intel (IAS) dan cap waktu disahkan oleh perkhidmatan masa yang dipercayai. Antara Muka Blockchain mengesahkan permintaan masuk dan meletakkan transaksi pada blockchain untuk menyampaikan datagram. Geth ialah pelanggan Ethereum rasmi dan membenarkan Relay berinteraksi dengan blockchain melalui panggilan RPC.

Bekerja dengan TEE, TC membolehkan anda menjalankan beberapa enklaf secara selari, dengan itu meningkatkan kelajuan pemprosesan maklumat sebanyak 3 kali ganda. Jika dengan satu enklaf yang berfungsi kelajuannya ialah 15 tx/s, maka dengan 20 enklaf larian selari kelajuan meningkat kepada 65 tx/sec, sebagai perbandingan, kelajuan maksimum dalam blockchain Bitcoin ialah 26 tx/sec.

DECO

DECO (Decentralized Oracles for TLS) telah diperkenalkan di CCS'20 dan berfungsi dengan tapak yang menyokong sambungan TLS. Memastikan kerahsiaan dan integriti data.
DECO dengan TLS menggunakan penyulitan simetri, jadi pelanggan dan pelayan web mempunyai kunci penyulitan, dan pelanggan boleh memalsukan data sesi TLS jika mahu. Untuk menyelesaikan masalah ini, DECO menggunakan protokol jabat tangan tiga hala antara prover (kontrak pintar), pengesah (oracle) dan pelayan web (sumber data).

Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?

Cara DECO berfungsi ialah prover menerima sekeping data D dan mengesahkan kepada pengesah bahawa D datang daripada pelayan TLS S. Masalah lain ialah TLS tidak menandatangani data dan sukar untuk pelanggan TLS membuktikan bahawa data diterima daripada pelayan itu (kesukaran asal).

Protokol DECO menggunakan kunci penyulitan KEnc dan Kmac. Pelanggan menghantar permintaan Q ke pelayan web, respons daripada pelayan R disulitkan, tetapi klien dan pelayan memiliki KMac yang sama, dan klien boleh memalsukan mesej TLS. Penyelesaian DECO adalah untuk "menyembunyikan" KMac daripada pelanggan (prover) sehingga ia bertindak balas kepada permintaan. Kini KMac dibahagikan antara prover dan verifier - KpMac dan KvMac. Pelayan menerima KMac untuk menyulitkan respons menggunakan operasi KpMac βŠ• KvMac = KMac pada bahagian kunci.

Dengan menyediakan jabat tangan tiga hala, pertukaran data antara pelanggan dan pelayan akan dijalankan dengan jaminan keselamatan.
Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?
Bercakap tentang sistem oracle terdesentralisasi, seseorang tidak boleh gagal untuk menyebut Chainlink, yang bertujuan untuk mencipta rangkaian nod oracle terdesentralisasi yang serasi dengan Ethereum, Bitcoin dan Hyperledger, dengan modulariti dalam fikiran: setiap bahagian sistem boleh dinaik taraf. Pada masa yang sama, untuk memastikan keselamatan, Chainlink menawarkan setiap oracle yang mengambil bahagian dalam tugas untuk mengeluarkan gabungan kunci (awam dan peribadi). Kunci persendirian digunakan untuk menjana tandatangan separa yang mengandungi keputusan mereka untuk meminta data. Untuk mendapatkan jawapan, adalah perlu untuk menggabungkan semua tandatangan sebahagian daripada oracle rangkaian.

Chainlink merancang PoC DECO awal yang memfokuskan pada aplikasi kewangan terdesentralisasi seperti Mixicles. Pada masa penulisan, terdapat berita di Forbes bahawa Chainlink telah memperoleh DECO dari Cornell University.

serangan terhadap oracle

Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?

Dari sudut keselamatan maklumat, serangan berikut terhadap Town Crier telah dipertimbangkan:

  1. Suntikan kod kenalan pintar penyangak pada nod TEE.
    Intipati serangan: menghantar kod kontrak pintar yang secara sedar tidak betul kepada TEE, supaya penyerang yang telah mendapat akses kepada nod akan dapat melaksanakan kontrak pintarnya sendiri (penipuan) pada data yang dinyahsulit. Walau bagaimanapun, nilai yang dikembalikan akan disulitkan dengan kunci persendirian, dan satu-satunya cara untuk mengakses data tersebut adalah dengan membocorkan teks sifir pada pemulangan/keluaran.
    Perlindungan terhadap serangan ini terdiri daripada menyemak ketepatan kod yang terletak di alamat semasa oleh enklaf. Ini boleh dicapai dengan skim pengalamatan di mana alamat kontrak ditentukan dengan pencincangan kod kontrak.

  2. Kebocoran perubahan teks sifir keadaan kontrak.
    Intipati serangan: Pemilik nod di mana kontrak pintar dilaksanakan mempunyai akses kepada keadaan kontrak dalam bentuk yang disulitkan di luar enklaf. Penyerang, setelah mendapat kawalan ke atas nod, boleh membandingkan keadaan hubungan sebelum dan selepas transaksi dan boleh menentukan hujah yang dimasukkan dan kaedah kontrak pintar yang digunakan, memandangkan kod kontrak pintar itu sendiri dan spesifikasi teknikalnya tersedia secara umum.
    Perlindungan dalam memastikan kebolehpercayaan nod itu sendiri.

  3. Serangan saluran sampingan.
    Jenis serangan khas yang menggunakan pemantauan memori enklaf dan capaian cache dalam pelbagai senario. Contoh serangan sedemikian ialah Prime dan Probe.
    Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?
    Perintah serangan:

    • t0: Penyerang mengisi keseluruhan cache data proses mangsa.
    • t1: Mangsa melaksanakan kod dengan akses memori yang bergantung pada data sensitif mangsa (kunci kriptografi). Barisan cache dipilih oleh nilai bit kekunci. Dalam contoh dalam rajah, bit kekunci = 0 dan baca alamat X dalam baris cache 2. Data yang disimpan dalam X dimuatkan ke dalam cache, menggantikan data yang ada sebelum ini.
    • t2: Penyerang menyemak baris cachenya yang mana telah diusir - baris yang digunakan oleh mangsa. Ini dilakukan dengan mengukur masa capaian. Dengan mengulangi operasi ini untuk setiap bit kekunci, penyerang memperoleh keseluruhan kunci.

Perlindungan serangan: Intel SGX mempunyai perlindungan terhadap serangan saluran sisi yang melumpuhkan pemantauan peristiwa berkaitan cache, tetapi serangan Prime dan Probe masih akan berlalu, memandangkan penyerang memerhatikan peristiwa cache prosesnya dan berkongsi cache dengan mangsa.
Town Crier vs DECO: oracle mana yang hendak digunakan dalam blockchain?
Oleh itu, pada masa ini tiada perlindungan yang boleh dipercayai terhadap serangan ini.

Serangan Spectre and Foreshadow (L1TF) yang serupa dengan Prime dan Probe juga diketahui. Mereka membenarkan anda membaca data daripada cache melalui saluran pihak ketiga. Perlindungan terhadap kelemahan Spectre-v2 disediakan, yang berfungsi terhadap kedua-dua serangan ini.

Berhubung dengan DECO, jabat tangan tiga hala menyediakan jaminan keselamatan:

  1. Integriti Prover: Prover yang dikompromi tidak boleh memalsukan maklumat asal pelayan dan tidak boleh menyebabkan pelayan menerima permintaan yang tidak sah atau memberi respons yang salah kepada permintaan yang sah. Ini dilakukan melalui pola permintaan antara pelayan dan prover.
  2. Integriti Pengesah: Pengesah yang digodam tidak boleh menyebabkan prover mendapat jawapan yang salah.
  3. Privasi: Pengesah yang digodam hanya memeriksa maklumat yang tersedia secara umum (permintaan, nama pelayan).

Dalam DECO, hanya kelemahan suntikan trafik yang mungkin. Pertama, dengan jabat tangan tiga hala, pengesah boleh mewujudkan identiti pelayan dengan nonce baru. Walau bagaimanapun, selepas jabat tangan, pengesah mesti bergantung pada penunjuk lapisan rangkaian (alamat IP). Oleh itu, komunikasi antara pengesah dan pelayan mesti dilindungi daripada suntikan trafik. Ini dicapai dengan menggunakan proksi.

Perbandingan ramalan

Town Crier berdasarkan kerja dengan enklaf di bahagian belakang, manakala DECO membolehkan anda mengesahkan asal data menggunakan jabat tangan tiga hala dan menyulitkan data dengan kunci kriptografi. Perbandingan ramalan ini telah dijalankan mengikut kriteria berikut: kelajuan, keselamatan, kos dan kepraktisan.

Bandar Crier
DECO

prestasi
Lebih cepat (0.6s hingga selesai)
Lebih perlahan (10.50s untuk menyelesaikan protokol)

keselamatan
Kurang selamat
Lebih selamat

kos
Lebih mahal
Lebih murah

praktikal
Memerlukan perkakasan khas
Berfungsi dengan mana-mana pelayan yang menyokong TLS

PrestasiJ: DECO memerlukan persediaan jabat tangan 0.37 hala, mengambil masa 2 saat apabila disediakan melalui LAN, 0,13PC-HMAC (3s setiap tulis) berkesan untuk komunikasi selepas sambungan diwujudkan. Prestasi DECO bergantung pada suite sifir TLS yang tersedia, saiz data peribadi dan kerumitan bukti untuk aplikasi tertentu. Menggunakan aplikasi pilihan binari daripada IC10,50 sebagai contoh: ia mengambil masa kira-kira 0,6 saat untuk melengkapkan protokol melalui LAN. Sebagai perbandingan, Town Crier mengambil masa kira-kira 20 saat untuk menyelesaikan aplikasi serupa, iaitu kira-kira XNUMX kali lebih pantas daripada DECO. Di bawah keadaan yang sama, TC akan menjadi lebih pantas.

keselamatan: Serangan pada enklaf Intel SGX (serangan saluran sisi) berfungsi dan boleh menyebabkan kerosakan sebenar kepada peserta kontrak pintar. Berkenaan dengan DECO, serangan suntikan trafik adalah mungkin, tetapi penggunaan proksi membatalkan serangan tersebut. Oleh itu DECO lebih selamat.

Kos: Kos perkakasan yang menyokong kerja dengan Intel SGX adalah lebih tinggi daripada kos mengkonfigurasi protokol dalam DECO. Oleh itu TC lebih mahal.

Praktikal: Untuk bekerja dengan Town Crier, peralatan khas yang menyokong TEE diperlukan. Sebagai contoh, Intel SGX disokong pada pemproses keluarga Intel Core Generasi Ke-6 dan kemudiannya. DECO membolehkan anda bekerja dengan sebarang peralatan, walaupun terdapat tetapan DECO menggunakan TEE. Mengikut proses persediaan, jabat tangan XNUMX hala DECO mungkin mengambil sedikit masa, tetapi ini tidak seberapa berbanding dengan had perkakasan untuk TC, jadi DECO lebih praktikal.

Kesimpulan

Melihat dua oracle secara berasingan dan membandingkannya pada empat kriteria, jelas bahawa Town Crier lebih rendah daripada DECO dengan tiga mata daripada empat. DECO lebih dipercayai dari segi keselamatan maklumat, lebih murah dan lebih praktikal, walaupun menyediakan protokol tiga hala boleh mengambil sedikit masa dan mempunyai kelemahannya, seperti operasi tambahan dengan kunci penyulitan. TC lebih pantas daripada DECO, tetapi kerentanan serangan saluran sisi menjadikannya berisiko kehilangan privasi. Perlu diingat bahawa DECO telah diperkenalkan pada Januari 2020, dan tidak cukup masa untuk menganggapnya selamat. Town Crier telah diserang selama 4 tahun sekarang dan telah melalui banyak ujian, jadi penggunaannya dalam banyak projek adalah wajar.

Sumber: www.habr.com

Tambah komen