Langkah awal dalam sistem oracle adalah memperoleh data yang dibutuhkan dari dunia nyata atau internet. Data ini dapat berasal dari harga bursa, indeks pasar keuangan, informasi cuaca, hasil olahraga, atau data dari perangkat IoT.
Dalam praktiknya, oracle biasanya mengumpulkan data dari berbagai sumber, bukan hanya satu. Hal ini karena satu sumber data dapat mengalami kesalahan, keterlambatan, atau bahkan manipulasi. Dengan mengumpulkan data dari banyak sumber, sistem dapat meningkatkan keandalan data dan mengurangi risiko.
Sumber data yang umum meliputi:
Pengumpulan data biasanya dilakukan oleh node oracle. Node-node ini menjalankan perangkat lunak khusus, memantau sumber data eksternal secara berkelanjutan, dan mengirimkan informasi terbaru ke jaringan oracle untuk diproses lebih lanjut.
Jika oracle hanya mengunggah data ke blockchain, sistem tetap rentan terhadap kesalahan atau manipulasi. Oleh karena itu, sebagian besar sistem oracle melakukan validasi dan agregasi sebelum data diunggah ke on-chain.
Proses ini biasanya dilakukan melalui kolaborasi multi-node. Node yang berbeda mengirimkan data yang mereka kumpulkan, lalu data tersebut diakumulasi menggunakan algoritma seperti rata-rata atau median. Dengan demikian, meskipun ada beberapa node yang mengirimkan data salah, dampaknya terhadap hasil akhir tidak signifikan.
Beberapa jaringan oracle juga menerapkan mekanisme keamanan tambahan, seperti:
Dengan mekanisme tersebut, sistem oracle dapat mencegah manipulasi data secara jahat dan meningkatkan kualitas data secara keseluruhan.
Setelah validasi dan agregasi, node oracle mengirimkan hasil akhir ke blockchain dan menuliskannya ke smart contract tertentu. Proses ini dikenal sebagai “price feed.”
Dari perspektif smart contract, data oracle tidak berasal langsung dari dunia luar, melainkan disimpan dalam kontrak data on-chain. Protokol DeFi lain hanya perlu memanggil antarmuka kontrak ini untuk membaca data terbaru.
Misalnya, saat protokol peminjaman menentukan apakah suatu akun perlu dilikuidasi, protokol dapat menjalankan logika berikut:
Dengan demikian, oracle menjadi titik masuk data utama bagi aplikasi on-chain, memungkinkan smart contract menjalankan logika otomatis berdasarkan informasi dunia nyata.
Pada aplikasi keuangan, ketepatan waktu data sangat penting. Jika pembaruan harga terlalu lambat, dapat menyebabkan keterlambatan likuidasi, meningkatkan peluang arbitrase, atau bahkan memicu risiko sistemik. Oleh karena itu, sistem oracle biasanya menerapkan mekanisme pembaruan data tertentu.
Berbagai skenario aplikasi memiliki kebutuhan frekuensi pembaruan yang berbeda. Beberapa protokol membutuhkan pembaruan harga secara real-time, sementara yang lain mengutamakan stabilitas data. Untuk menyeimbangkan efisiensi dan biaya, oracle biasanya mengadopsi beberapa strategi pembaruan.
Mekanisme yang umum meliputi:
Desain mekanisme ini harus mempertimbangkan biaya jaringan, akurasi data, dan volatilitas pasar. Jika pembaruan terlalu sering, biaya transaksi on-chain akan meningkat drastis; jika terlalu lambat, harga dapat tertinggal jauh.
Oleh karena itu, menemukan keseimbangan antara efisiensi, biaya, dan keamanan menjadi tantangan utama dalam desain sistem oracle.