Riise of the oracle

gambar

Nubuat Blockchain mengatasi masalah pengiriman data eksternal ke blockchain - tetapi kita masih perlu tahu yang mana dari mereka yang dapat kita percayai.

Dalam artikel kami tentang peluncuran direktori Waves Oracles , kami membahas pentingnya nubuat untuk blockchain. Aplikasi terdesentralisasi tidak dapat mengakses data di luar blockchain. Masalah ini diatasi dengan menggunakan oracle.

Masalah yang dipertaruhkan cukup mudah. Jika eksekusi dApp memerlukan data luar, itu harus disimpan di blockchain. Untuk mencapai itu, program kecil yang disebut oracle dibuat, yang mengakses data yang relevan dari dunia luar dan merekamnya ke blockchain.

Berdasarkan jenis sumber data luar, semua ramalan dapat dibagi menjadi tiga kategori: ramalan perangkat lunak, ramalan perangkat keras dan ramalan manusia.

Peramal peranti lunak mendapatkan data dari internet, seperti suhu, harga barang dan jasa atau keterlambatan penerbangan dan kereta api. Informasi berasal dari sumber online, seperti API. Sebuah oracle mengekstrak data yang relevan dan merekamnya ke blockchain. Anda dapat mempelajari cara membuat oracle perangkat lunak sederhana di sini .

Nubuat perangkat keras melacak objek dunia nyata menggunakan perangkat dan sensor. Misalnya, kamera video dikalibrasi untuk melacak jalur kendaraan yang memasuki area tertentu. Seorang oracle mencatat fakta memasuki area ke blockchain. Berdasarkan data oracle itu, skrip dApp dapat, misalnya, mengeluarkan tiket dan mengurangi token dari akun pemilik kendaraan.

Oracle manusia beroperasi dengan data yang dimasukkan oleh manusia dan dianggap paling canggih karena mereka menawarkan pandangan independen tentang hasil suatu peristiwa.
Baru-baru ini, kami memperkenalkan alat yang memungkinkan penulisan data ke blockchain di bawah spesifikasi yang ditetapkan.

Alat ini sangat mudah. Anda mendaftarkan kartu oracle dengan mengisi spesifikasi dan kemudian dapat mencatat transaksi data ke blockchain di bawah spesifikasi itu. Baca lebih lanjut tentang alat ini di dokumentasi kami.

gambar

Alat dan antarmuka terstandarisasi semacam ini membuat hidup lebih mudah bagi pengembang dan pengguna layanan berbasis blockchain. Alat ini sangat berguna untuk ramalan manusia di berbagai bidang seperti rekaman sertifikat atau hak penulis untuk beberapa objek.

Namun, data yang diberikan oleh oracle harus dapat dipercaya. Menggunakan hanya satu oracle dapat menyebabkan masalah. Sangat penting untuk mengetahui apakah Anda dapat mempercayai sumbernya dan apakah datanya mutakhir. Jika tidak, ada risiko bahwa oracle dapat menipu pengguna dengan sengaja memberikan informasi palsu untuk mendapatkan keuntungan.

Mari kita perhatikan contoh ramalan yang memberikan informasi hasil pertandingan olahraga ke pasar prediksi yang terdesentralisasi.

Acara yang dimaksud adalah pertarungan UFC 242 antara Khabib Nurmagomedov dan Dustin Poirier. Menurut pembuat taruhan, Nurmagomedov adalah favorit dengan peluang 1,24, sesuai dengan probabilitas 76% untuk menang. Poirier diberi peluang 4,26 (22%). Peluang hasil imbang adalah 51,0 (2%).

gambar

Sebuah skrip menerima taruhan pada ketiga hasil sampai ia menerima informasi tentang hasil aktual dari oracle. Informasi itu adalah satu-satunya pemicu untuk mendistribusikan kemenangan.

Kita tahu bahwa Nurmagomedov memenangkan pertarungan. Tapi mari kita asumsikan pemilik oracle yang tidak jujur ​​merencanakan penipuan dan menempatkan taruhan besar pada hasil yang paling menguntungkan, hasil imbang. Setelah sejumlah besar taruhan telah diakumulasikan, pemilik oracle yang tidak jujur ​​memulai pencatatan informasi palsu tentang pengundian ke blockchain. Skrip pertukaran desentralisasi tidak dapat memeriksa keakuratan data dan hanya dapat menerimanya. Selanjutnya, skrip mendistribusikan kemenangan antara petaruh sesuai dengan data hasil yang telah diterima.

Penipuan semacam ini berpotensi sangat menguntungkan bagi pencipta oracle yang tidak jujur. Jika keuntungan yang diantisipasi lebih tinggi dari prediksi pendapatan oracle yang jujur ​​dan risiko konsekuensi hukum yang rendah, kemungkinan penipuan secara substansial dapat meningkat.

Salah satu cara untuk mengatasi ini adalah dengan meminta data dari beberapa nubuat dan menetapkan konsensus dari hasil yang diterima.

Mungkin ada beberapa jenis konsensus:

  • Semua nubuat memberikan informasi yang sama.
  • Mayoritas nubuat memberikan informasi yang sama (2 dari 3, 3 dari 4, dll.).
  • Median data orakel dihitung (hasil maksimum dan minimum dapat dibuang sebelum menghitung median).
  • Semua nubuat memberikan informasi yang sama dalam penyimpangan yang disepakati sebelumnya. Misalnya, nilai tukar dari sumber yang berbeda bisa berbeda 0,00001, dan mendapatkan data yang persis sama tidak mungkin.
  • Hanya hasil unik yang dipilih.

Mari kita terapkan ini pada contoh kita. Jika tipe konsensus '3 dari 4' digunakan, informasi hasil palsu tentang Nurmagomedov vs. Pertarungan Poirier dari satu oracle tidak akan berdampak pada eksekusi skrip. Itu akan dieksekusi berdasarkan informasi tentang kemenangan Nurmagomedov, dengan kemenangan didistribusikan berdasarkan data itu.
Namun, jika orang yang tidak jujur ​​memiliki 3 dari 4 nubuat, masih mungkin untuk mencurangi data hasil.

Untuk menjaga integritas nubuat, berbagai konsep untuk peringkat oracle atau denda untuk memberikan informasi palsu, serta insentif untuk memberikan informasi yang akurat, dapat diperkenalkan. Tapi tak satu pun dari mereka akan dilindungi dari kecurangan peringkat atau mayoritas yang tidak jujur.

Jadi, apakah kita benar-benar membutuhkan konsep yang lebih rumit, atau akan lebih baik hanya dengan memiliki alat konsensus yang memungkinkan kita mengambil lima nubuat yang memasok data yang relevan - seolah-olah dari rak supermarket - menetapkan jenis konsensus dan mendapatkan hasilnya?

Misalnya, aplikasi desentralisasi membutuhkan data suhu Celcius. Kami akan menemukan empat nubuat yang memasok data dalam direktori orakel, menetapkan tipe konsensus sebagai "median" dan membuat permintaan.

Oracle memberikan nilai 18, 17, 19 dan 21 derajat. Ada perbedaan yang jelas dalam data, dan perbedaan tiga derajat dapat berdampak pada eksekusi skrip. Layanan ini memproses data yang diterima dan muncul dengan median 18,75 derajat, yang dikirim ke skrip dApp.

gambar

Dalam kasus apa pun, keputusan apakah akan mempercayai data dari satu orakel atau membangun konsensus dari beberapa orakel tergantung pada pengguna.

Secara keseluruhan, data oracle adalah bidang baru. Ini saat ini berada pada tahap di mana pengguna dapat memiliki dampak pada arah pengembangannya. Karena itu kami ingin mendengar dari Anda. Beri tahu kami jika Anda pikir alat konsensus yang dijelaskan di atas diperlukan dan bagikan ide-ide Anda tentang arah di mana bidang oracle berevolusi.

Berikan tanggapan Anda dalam komentar dan di grup Telegram resmi kami.

Source: https://habr.com/ru/post/id471962/


All Articles