Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?

Saat ini, hanya orang malas yang belum menulis tentang teknologi blockchain, mata uang kripto, dan betapa kerennya teknologi tersebut. Namun artikel ini tidak akan memuji teknologi ini, kami akan membahas kekurangannya dan cara menghilangkannya.

Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?

Saat mengerjakan salah satu proyek di Altirix Systems, muncul tugas untuk memastikan konfirmasi data yang aman dan tahan sensor dari sumber di luar blockchain. Penting untuk mengonfirmasi perubahan dalam catatan sistem ketiga dan, berdasarkan perubahan ini, menjalankan satu atau beberapa cabang dalam logika kontrak pintar. Tugasnya sekilas memang sepele, namun ketika kondisi keuangan salah satu pihak yang ikut serta dalam proses tersebut bergantung pada hasil pelaksanaannya, maka muncul persyaratan tambahan. Pertama-tama, ini adalah kepercayaan komprehensif terhadap mekanisme validasi tersebut. Tapi hal pertama yang pertama.

Masalahnya adalah blockchain itu sendiri adalah entitas yang otonom dan tertutup, sehingga kontrak pintar di dalam blockchain tidak mengetahui apa pun tentang dunia luar. Pada saat yang sama, ketentuan kontrak pintar sering kali dikaitkan dengan informasi tentang hal-hal nyata (penundaan penerbangan, nilai tukar, dll.). Agar kontrak pintar dapat berfungsi dengan baik, informasi yang diterima dari luar blockchain harus dapat diandalkan dan diverifikasi. Masalah ini diselesaikan dengan menggunakan oracle seperti Town Crier dan DECO. Oracle ini memungkinkan kontrak pintar di jaringan blockchain untuk mempercayai informasi dari server web tepercaya; kita dapat mengatakan bahwa ini adalah penyedia informasi yang dapat diandalkan.

Oracle

Bayangkan kontrak pintar mentransfer 0.001 btc ke dompet bitcoin Anda jika klub sepak bola favorit Anda memenangkan Piala Rusia. Jika terjadi kemenangan nyata, kontrak pintar perlu mentransfer informasi tentang klub mana yang menang, dan sejumlah masalah muncul di sini: di mana mendapatkan informasi ini, bagaimana cara mentransfernya dengan aman ke kontrak pintar dan bagaimana memastikan bahwa informasi tersebut diterima dalam kontrak pintar apakah valid sebenarnya sesuai dengan kenyataan?

Mengenai sumber informasi, ada 2 skenario: menghubungkan kontrak pintar ke situs web tepercaya di mana informasi tentang hasil pertandingan disimpan secara terpusat, dan opsi kedua adalah menghubungkan beberapa situs sekaligus lalu memilih informasi dari sebagian besar sumber. yang memberikan data yang sama. Untuk memverifikasi kebenaran informasi digunakan oracle, misalnya Oraclize yang menggunakan TLSNotary (Modifikasi Notaris TLS untuk Membuktikan Keaslian Data). Tetapi ada cukup informasi di Google tentang Oraclize, dan ada beberapa artikel di HabrΓ©. Hari ini saya akan berbicara tentang oracle yang menggunakan pendekatan yang sedikit berbeda dalam mengirimkan informasi: Town Crier dan DECO. Artikel tersebut memberikan penjelasan tentang prinsip pengoperasian kedua oracle, serta perbandingan mendetail.

Kota Crier

Town Crier (TC) diperkenalkan oleh IC3 (Inisiatif untuk Mata Uang Kripto dan Kontrak) pada tahun 2016 di CCS'16. Ide utama TC: mentransfer informasi dari situs web ke kontrak pintar dan memastikan bahwa informasi yang disampaikan oleh TC sama dengan di situs web. TC menggunakan TEE (Trusted Execution Environment) untuk mengautentikasi kepemilikan data. Versi asli TC menjelaskan cara bekerja dengan Intel SGX.
Town Crier terdiri dari bagian di dalam blockchain dan bagian di dalam OS itu sendiri - TC Server.
Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?
Kontrak TC ada di blockchain dan bertindak sebagai front end untuk TC. Ia menerima permintaan dari CU (kontrak pintar pengguna) dan mengembalikan respons dari Server TC. Di dalam TC Server terdapat Relay, yang membuat koneksi antara enclave dan Internet (lalu lintas dua arah) dan menghubungkan enclave dengan blockchain. Enklave berisi progencl, yaitu kode yang membuat permintaan dari blockchain dan mengembalikan pesan ke blockchain dengan tanda tangan digital, progencl berisi bagian dari kode kontrak pintar dan pada dasarnya menjalankan beberapa fungsinya.

Enklave Intel SGX dapat dianggap sebagai perpustakaan bersama dengan API yang berjalan melalui ecall. Ecall mentransfer kendali ke daerah kantong. Enklave mengeksekusi kodenya hingga keluar atau hingga terjadi pengecualian. ocall digunakan untuk memanggil fungsi yang ditentukan di luar enclave. Ocall dieksekusi di luar enklave dan diperlakukan sebagai panggilan tidak tepercaya olehnya. Setelah ocall dijalankan, kontrol dikembalikan ke enclave.
Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?
Di bagian Enklave, saluran aman dikonfigurasi dengan server web, enklave itu sendiri melakukan jabat tangan TLS dengan server target dan melakukan semua operasi kriptografi secara internal. Pustaka TLS (mbedTLS) dan kode HTTP yang dikurangi telah diekspor ke lingkungan SGX. Selain itu, Enclave berisi sertifikat root CA (kumpulan sertifikat) untuk memverifikasi sertifikat server jarak jauh. Request Handler menerima permintaan datagram dalam format yang disediakan oleh Ethereum, mendekripsi dan menguraikannya. Kemudian menghasilkan transaksi Ethereum yang berisi datagram yang diminta, menandatanganinya dengan skTC dan mengirimkannya ke Relay.

Bagian Relay mencakup Antarmuka Klien, TCP, Antarmuka Blockchain. Antarmuka Klien diperlukan untuk mengesahkan kode enclave dan berkomunikasi dengan klien. Klien mengirimkan permintaan pengesahan menggunakan ecall dan menerima stempel waktu yang ditandatangani oleh skTC beserta att (tanda tangan pengesahan), kemudian att diverifikasi menggunakan Intel Attestation Service (IAS), dan stempel waktu diverifikasi oleh layanan waktu tepercaya. Antarmuka Blockchain memverifikasi permintaan masuk dan menempatkan transaksi di blockchain untuk pengiriman datagram. Geth adalah klien Ethereum resmi dan memungkinkan Relay berinteraksi dengan blockchain melalui panggilan RPC.

Bekerja dengan TEE, TC memungkinkan Anda menjalankan beberapa enclave secara paralel, sehingga meningkatkan kecepatan pemrosesan informasi sebanyak 3 kali lipat. Jika dengan satu enklave yang berjalan kecepatannya adalah 15 tx/detik, maka dengan 20 enklave yang berjalan paralel, kecepatannya meningkat menjadi 65 tx/detik; sebagai perbandingan, kecepatan operasi maksimum dalam blockchain Bitcoin adalah 26 tx/detik.

DECO

DECO (Decentralized Oracles for TLS) dipresentasikan di CCS'20, bekerja dengan situs yang mendukung koneksi TLS. Menjamin kerahasiaan dan integritas data.
DECO dengan TLS menggunakan enkripsi simetris, sehingga klien dan server web memiliki kunci enkripsi, dan klien dapat memalsukan data sesi TLS jika diinginkan. Untuk mengatasi masalah ini, DECO menggunakan protokol jabat tangan tiga arah antara provener (smart contract), verifier (Oracle) dan web-server (sumber data).

Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?

Cara kerja DECO adalah verifikator menerima sepotong data D dan mengonfirmasi kepada verifikator bahwa D berasal dari server TLS S. Masalah lainnya adalah TLS tidak menandatangani data tersebut dan sulit bagi klien TLS untuk membuktikan bahwa data tersebut data diterima dari server yang tepat (kesulitan asal).

Protokol DECO menggunakan kunci enkripsi KEnc dan KMac. Klien mengirimkan permintaan Q ke server web, respons dari server R datang dalam bentuk terenkripsi, tetapi klien dan server memiliki KMac yang sama, dan klien dapat memalsukan pesan TLS. Solusi DECO adalah "menyembunyikan" KMac dari klien (prover) hingga klien merespons permintaan tersebut. Sekarang KMac terbagi antara pemver dan verifikator - KpMac dan KvMac. Server menerima KMac untuk mengenkripsi respons menggunakan operasi bagian kunci KpMac βŠ• KvMac = KMac.

Dengan pengaturan jabat tangan tiga arah, pertukaran data antara klien dan server akan dilakukan dengan jaminan keamanan.
Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?
Ketika berbicara tentang sistem oracle terdesentralisasi, kita tidak bisa tidak menyebutkan Chainlink, yang bertujuan untuk menciptakan jaringan node oracle terdesentralisasi yang kompatibel dengan Ethereum, Bitcoin, dan Hyperledger, dengan mempertimbangkan modularitas: setiap bagian dari sistem dapat diperbarui. Pada saat yang sama, untuk memastikan keamanan, Chainlink menawarkan setiap oracle yang berpartisipasi dalam tugas tersebut untuk mengeluarkan kombinasi kunci (publik dan pribadi). Kunci pribadi digunakan untuk menghasilkan tanda tangan parsial yang berisi keputusan mereka terhadap permintaan data. Untuk mendapatkan jawabannya, perlu untuk menggabungkan semua sebagian tanda tangan dari oracle jaringan.

Chainlink berencana untuk melakukan PoC DECO awal dengan fokus pada aplikasi keuangan terdesentralisasi seperti Mixicles. Pada saat penulisan, muncul berita di Forbes bahwa Chainlink mengakuisisi DECO dari Cornell University.

Serangan terhadap oracle

Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?

Dari sudut pandang keamanan informasi, serangan terhadap Town Crier berikut ini dipertimbangkan:

  1. Injeksi kode kontak pintar nakal pada node TEE.
    Inti dari serangan ini: mengirimkan kode kontrak pintar yang sengaja salah ke TEE, sehingga penyerang yang memperoleh akses ke node akan dapat mengeksekusi kontrak pintarnya sendiri (penipuan) pada data yang didekripsi. Namun, nilai yang dikembalikan akan dienkripsi dengan kunci pribadi, dan satu-satunya cara untuk mengakses data tersebut adalah dengan membocorkan ciphertext pada pengembalian/keluaran.
    Perlindungan terhadap serangan ini terdiri dari enclave yang memeriksa kebenaran kode yang terletak di alamat saat ini. Hal ini dapat dicapai dengan menggunakan skema pengalamatan di mana alamat kontrak ditentukan dengan melakukan hashing pada kode kontrak.

  2. Kebocoran perubahan ciphertext status kontrak.
    Inti dari serangan ini: Pemilik node tempat kontrak pintar dijalankan memiliki akses ke status kontrak dalam bentuk terenkripsi di luar enclave. Penyerang, setelah menguasai sebuah node, dapat membandingkan status kontak sebelum dan sesudah transaksi dan dapat menentukan argumen mana yang dimasukkan dan metode kontrak pintar mana yang digunakan, karena kode kontrak pintar itu sendiri dan spesifikasi teknisnya tersedia untuk umum.
    Perlindungan dalam memastikan keandalan node itu sendiri.

  3. Serangan saluran samping.
    Jenis serangan khusus yang menggunakan pemantauan memori enclave dan akses cache dalam berbagai skenario. Contoh serangan tersebut adalah Prime dan Probe.
    Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?
    Urutan serangan:

    • t0: Penyerang mengisi seluruh cache data dari proses korban.
    • t1: Korban mengeksekusi kode dengan akses memori yang bergantung pada data sensitif korban (kunci kriptografi). Baris cache dipilih berdasarkan nilai keybit. Pada contoh di gambar, keybit = 0 dan alamat X di cache baris 2 dibaca.Data yang disimpan di X dimuat ke dalam cache, menggantikan data yang ada sebelumnya.
    • t2: Penyerang memeriksa baris cache mana yang telah dikeluarkanβ€”baris yang digunakan oleh korban. Hal ini dilakukan dengan mengukur waktu akses. Dengan mengulangi operasi ini untuk setiap keybit, penyerang mendapatkan seluruh kunci.

Perlindungan Serangan: Intel SGX memiliki perlindungan terhadap serangan saluran samping yang mencegah pemantauan kejadian terkait cache, namun serangan Prime dan Probe akan tetap berfungsi karena penyerang memantau kejadian cache dari prosesnya dan berbagi cache dengan korban.
Town Crier vs DECO: oracle mana yang akan digunakan di blockchain?
Oleh karena itu, saat ini tidak ada perlindungan yang dapat diandalkan terhadap serangan ini.

Serangan seperti Spectre and Foreshadow (L1TF), mirip dengan Prime dan Probe, juga dikenal. Mereka memungkinkan Anda membaca data dari memori cache melalui saluran pihak ketiga. Perlindungan terhadap kerentanan Spectre-v2 disediakan, yang berfungsi melawan dua serangan ini.

Sehubungan dengan DECO, jabat tangan tiga arah memberikan jaminan keamanan:

  1. Integritas Prover: Prover yang diretas tidak dapat memalsukan informasi asal server dan tidak dapat menyebabkan server menerima permintaan yang tidak valid atau memberikan respons yang salah terhadap permintaan yang valid. Hal ini dilakukan melalui pola permintaan antara server dan proven.
  2. Integritas Verifikator: Verifikator yang diretas tidak dapat menyebabkan pembukti menerima jawaban yang salah.
  3. Privasi: Verifikator yang diretas hanya memeriksa informasi publik (permintaan, nama server).

Di DECO, hanya kerentanan injeksi lalu lintas yang mungkin terjadi. Pertama, dengan jabat tangan tiga arah, verifikator dapat menetapkan identitas server menggunakan nonce baru. Namun, setelah jabat tangan, pemverifikasi harus mengandalkan indikator lapisan jaringan (alamat IP). Dengan demikian, komunikasi antara verifikator dan server harus dilindungi dari injeksi lalu lintas. Ini dicapai dengan menggunakan Proxy.

Perbandingan ramalan

Town Crier didasarkan pada bekerja dengan enklave di bagian server, sementara DECO memungkinkan Anda memverifikasi keaslian asal data menggunakan jabat tangan tiga arah dan enkripsi data dengan kunci kriptografi. Perbandingan oracle ini dilakukan berdasarkan kriteria berikut: kinerja, keamanan, biaya dan kepraktisan.

Kota Crier
DECO

pertunjukan
Lebih cepat (0.6 detik hingga selesai)
Lebih lambat (10.50 detik untuk menyelesaikan protokol)

Keamanan
Kurang aman
Lebih aman

biaya
Lebih mahal
Lebih murah

kepraktisan
Membutuhkan perangkat keras khusus
Bekerja dengan server apa pun yang mendukung TLS

Performa: Untuk bekerja dengan DECO diperlukan jabat tangan tiga arah, bila pengaturan melalui LAN membutuhkan waktu 0.37 detik, untuk interaksi setelah sambungan terjalin, 2PC-HMAC efektif (0,13 detik per penulisan). Performa DECO bergantung pada rangkaian sandi TLS yang tersedia, ukuran data pribadi, dan kompleksitas bukti untuk aplikasi tertentu. Menggunakan aplikasi opsi biner dari IC3 sebagai contoh: menyelesaikan protokol melalui LAN membutuhkan waktu sekitar 10,50 detik. Sebagai perbandingan, Town Crier membutuhkan waktu sekitar 0,6 detik untuk menyelesaikan aplikasi serupa, yang kira-kira 20 kali lebih cepat dari DECO. Semua hal dianggap sama, TC akan lebih cepat.

keamanan: Serangan terhadap enklave Intel SGX (serangan saluran samping) berfungsi dan dapat menyebabkan kerusakan nyata pada peserta kontrak pintar. Mengenai DECO, serangan yang terkait dengan injeksi lalu lintas mungkin saja terjadi, tetapi penggunaan proxy mengurangi serangan tersebut menjadi tidak ada apa-apanya. Oleh karena itu DECO lebih aman.

Biaya: Biaya peralatan yang mendukung Intel SGX lebih tinggi dibandingkan biaya pengaturan protokol di DECO. Makanya TC lebih mahal.

Kepraktisan: Untuk bekerja dengan Town Crier, diperlukan peralatan khusus yang mendukung TEE. Misalnya, Intel SGX didukung pada keluarga prosesor Intel Core generasi ke-6 dan yang lebih baru. DECO memungkinkan Anda bekerja dengan peralatan apa pun, meskipun ada pengaturan DECO menggunakan TEE. Berdasarkan proses penyiapannya, jabat tangan tiga arah DECO mungkin memerlukan waktu, namun hal ini tidak seberapa dibandingkan dengan batasan perangkat keras TC, sehingga DECO lebih praktis.

Kesimpulan

Melihat kedua oracle secara terpisah dan membandingkannya berdasarkan empat kriteria, jelas bahwa Town Crier lebih rendah dari DECO dalam tiga dari empat poin. DECO lebih dapat diandalkan dari sudut pandang keamanan informasi, lebih murah dan praktis, meskipun menyiapkan protokol tiga pihak dapat memakan waktu dan memiliki kelemahan, misalnya, operasi tambahan dengan kunci enkripsi. TC lebih cepat dibandingkan DECO, namun kerentanan serangan saluran samping membuatnya rentan terhadap hilangnya kerahasiaan. Perlu diingat bahwa DECO diperkenalkan pada Januari 2020, dan belum cukup waktu untuk menganggapnya aman. Town Crier telah diserang selama 4 tahun dan telah melalui banyak pengujian, sehingga penggunaannya dalam banyak proyek dapat dibenarkan.

Sumber: www.habr.com

Tambah komentar