Oracle blockchain
Disebut juga: oracle · oracle harga · price oracle
Definisi
Oracle blockchain adalah layanan yang membawa data dari luar blockchain, seperti harga aset, ke dalam smart contract agar kontrak bisa mengambil keputusan berdasarkan data tersebut.
Cara kerja Oracle blockchain
Smart contract tidak bisa membuka situs web atau membaca harga di exchange. Protokol lending perlu tahu harga ETH untuk menghitung jaminan, perp DEX perlu harga indeks, dan produk asuransi perlu data peristiwa nyata. Oracle mengumpulkan data dari banyak sumber, menggabungkannya, lalu menuliskannya ke blockchain.
Chainlink adalah jaringan oracle yang paling banyak dipakai. Ada juga Pyth, yang populer di Solana dan banyak perp DEX, serta oracle bawaan beberapa protokol yang membaca harga dari pool DEX dengan rata-rata waktu (TWAP).
Kualitas oracle sangat menentukan keamanan protokol. Jika oracle hanya membaca satu pool kecil, penyerang bisa memanipulasi harga sementara, misalnya dengan flash loan, lalu meminjam berlebihan atau memicu likuidasi palsu. Oracle yang baik memakai banyak sumber, banyak node, dan batas pembaruan yang jelas. Harga oracle juga bisa sedikit tertinggal dari harga pasar saat pergerakan sangat cepat.
Contoh
Misalnya oracle mengambil harga ETH dari 7 sumber: 2.995, 2.998, 3.000, 3.001, 3.002, 3.004, dan 3.350 USD. Angka terakhir berasal dari pool kecil yang sedang dimanipulasi. Oracle memakai median, yaitu nilai tengah 3.001 USD, sehingga harga palsu 3.350 USD tidak berpengaruh. Protokol lending lalu memakai 3.001 USD untuk menghitung nilai jaminan 10 ETH Anda menjadi 30.010 USD.
Kesalahan umum
- Mengira harga likuidasi di protokol DeFi selalu sama persis dengan harga di exchange yang Anda pantau.
- Memakai protokol yang bergantung pada oracle satu sumber atau satu pool tipis.
- Mengabaikan risiko oracle saat menilai keamanan protokol, padahal banyak eksploitasi berawal dari sana.
Belajar dan praktik
Pertanyaan umum
Mengapa smart contract membutuhkan oracle?
Karena blockchain tidak bisa mengakses data dari luar jaringannya sendiri. Oracle menjadi jembatan yang menyediakan data seperti harga secara terverifikasi.
Apa itu manipulasi oracle?
Serangan di mana harga yang dibaca oracle dibuat menyimpang sementara, sehingga protokol mengambil keputusan berdasarkan harga yang salah, misalnya memberi pinjaman berlebihan.