Secara desain, blockchain merupakan sistem yang sangat tertutup. Node memvalidasi transaksi dan data dalam blok melalui mekanisme konsensus. Setiap informasi yang ditulis ke blockchain harus diverifikasi secara independen oleh node jaringan. Struktur ini menjamin keamanan dan konsistensi sistem, tetapi juga berarti blockchain tidak dapat secara proaktif mengakses jaringan eksternal.
Dari sisi teknis, smart contract berjalan dalam lingkungan mesin virtual dan hanya dapat membaca data on-chain yang sudah ada, seperti saldo akun, catatan transaksi, atau status kontrak lain. Data apa pun dari internet atau dunia nyata, jika tidak ditulis ke blockchain, tidak dapat diakses langsung oleh smart contract.
Desain ini merupakan pilihan keamanan. Jika blockchain mengizinkan smart contract mengakses sumber data eksternal secara bebas, node tidak dapat memverifikasi keaslian data tersebut dan mekanisme konsensus sistem akan kehilangan fungsinya. Karena itu, blockchain membatasi dirinya pada lingkungan data yang dapat diverifikasi, meski tertutup.
Dengan kata lain, blockchain dapat menjamin keandalan data on-chain, tetapi tidak dapat memastikan data dunia nyata otomatis masuk ke rantai. Inilah dilema data pertama yang dihadapi blockchain pada lapisan aplikasi.
Saat pengembang mulai membangun aplikasi on-chain, masalah dari struktur tertutup ini mulai terlihat. Banyak aplikasi keuangan membutuhkan data real-time sebagai pemicu, seperti harga aset, suku bunga, atau indeks pasar. Namun, smart contract tidak dapat memanggil server eksternal untuk mendapatkan informasi melalui API seperti aplikasi tradisional.
Keterbatasan ini menimbulkan beberapa tantangan utama:
Protokol perdagangan terdesentralisasi atau platform peminjaman membutuhkan harga real-time untuk menentukan kondisi likuidasi, namun blockchain tidak menyimpan harga pasar eksternal.
Protokol asuransi mungkin perlu menentukan apakah penerbangan tertunda atau apakah cuaca memenuhi kriteria tertentu—informasi ini ada pada sistem data dunia nyata.
Beberapa produk keuangan perlu dieksekusi berdasarkan waktu tertentu atau kondisi pasar, namun node blockchain tidak secara proaktif memantau perubahan dunia nyata.
Karena itu, tanpa mekanisme yang dapat membawa data eksternal ke dalam rantai secara aman, banyak aplikasi Web3 tidak dapat beroperasi dengan normal. Skenario inovatif seperti DeFi, prediction market, dan asuransi on-chain sulit direalisasikan.
Oracle diciptakan untuk menyelesaikan masalah ini sebagai infrastruktur inti. Tugas utama oracle adalah membawa data off-chain ke dalam rantai dan menyediakan data tersebut ke smart contract dengan cara yang dapat diverifikasi dan digunakan oleh blockchain.
Sistem oracle biasanya menjalankan beberapa fungsi utama:
Dalam ekosistem Web3, oracle telah menjadi infrastruktur yang sangat penting. Contohnya, protokol peminjaman bergantung pada price oracle untuk memicu likuidasi; protokol derivatif membutuhkan harga real-time untuk menghitung hasil; sistem stablecoin memerlukan oracle untuk memantau nilai aset jaminan.
Oracle membuka jendela data bagi blockchain. Oracle memungkinkan lingkungan on-chain yang tertutup berinteraksi dengan dunia nyata, mengubah blockchain dari sekadar sistem pencatatan transaksi menjadi platform yang mampu menjalankan aktivitas ekonomi yang kompleks.