Skip to content
Semua panduan opsyen
Rujukan harga DeFi8 minit bacaan

Cara oracle harga DeFi mengagregat dan menerbitkan harga

Ketahui cara pemerhatian digabungkan, pencetus heartbeat dan sisihan, pemeriksaan unit dan data lapuk, serta had pemeriksaan sequencer L2.

Dalam panduan iniOracle menerbitkan rujukan, bukannya harga pasaran yang boleh dilaksanakan

Ringkasan ringkas

Oracle harga membawa rujukan luaran ke kontrak pintar. Dalam reka bentuk suapan push yang biasa, beberapa pemerhatian luar rantaian digabungkan menjadi laporan bertandatangan, diterbitkan dalam rantaian, lalu protokol membaca jawapan terkini. Sisihan dan heartbeat mempengaruhi masa penerbitan; pengguna juga perlu menyemak decimals, unit sebut harga, `updatedAt` dan status sequencer pada sesetengah L2. Kawalan ini mengurangkan risiko tertentu, tetapi tidak membuktikan harga itu benar, cukup baharu untuk semua kegunaan atau selamat bagi setiap transaksi.

Oracle menerbitkan rujukan, bukannya harga pasaran yang boleh dilaksanakan

Oracle menghubungkan maklumat di luar blockchain dengan kod yang berjalan dalam rantaian. Protokol pinjaman boleh membaca suapan untuk menilai cagaran; kontrak derivatif boleh menggunakan rujukan untuk penyelesaian atau had risiko. Kontrak membaca nilai yang diterbitkan dalam keadaan rantaian, tetapi tidak memeriksa semua buku pesanan luaran untuk menentukan harga adil sendiri.

“Harga” boleh bermaksud pasangan aset dan mata wang sebut harga, kadar penebusan yang ditetapkan protokol atau ukuran lain. Ia tidak semestinya harga yang boleh diperoleh daripada jualan posisi besar. Panduan kesan harga dan slippage swap DEX serta mark price berbanding dagangan terakhir menerangkan perbezaan lain. Panduan ini tertumpu pada suapan push EVM yang biasa, bukan peraturan sejagat DeFi.

Cara pemerhatian menjadi jawapan dalam rantaian

Dalam reka bentuk Offchain Reporting Chainlink, nod oracle bertukar pemerhatian di luar rantaian dan bersetuju dengan laporan. Kuorum menandatanganinya; penghantar menyerahkan transaksi; agregator mengesahkan tandatangan dan mendedahkan jawapan, ID pusingan serta cap masa. Dokumentasi Offchain Reporting menerangkan median pemerhatian yang diterbitkan dalam reka bentuk tersebut.

Kontrak pengguna biasanya tidak mengulangi semua pengagregatan; ia memanggil latestRoundData() pada alamat proksi suapan. Agregator di belakang proksi boleh berubah. Semak rangkaian dan suapan melalui panduan EVM dan rujukan API. Banyak nod tidak menjamin sumber bebas kerana pengendali boleh bergantung pada bursa atau penyedia yang sama.

Adegan tanpa teks menunjukkan pemerhatian pasaran melalui rangkaian nod ke suapan harga, kemudian melepasi pintu semakan ke peti cagaran.
Pemerhatian digabungkan sebelum protokol membaca suapan; kesegaran harga dan status sequencer ialah semakan berasingan.

Heartbeat dan sisihan menetapkan pencetus penerbitan

Banyak suapan push menggabungkan ambang sisihan dengan heartbeat. Pergerakan peratusan yang ditetapkan daripada jawapan terakhir boleh mencetuskan laporan baharu; heartbeat boleh meminta kemas kini selepas suatu tempoh walaupun tiada perubahan besar. Direktori Data Feeds terkini dan halaman alamat suapan menyenaraikan tetapan mengikut aset, rangkaian dan suapan.

Tetapan ini khusus kepada suapan, bukannya janji kemas kini setiap N saat. Perubahan kecil mungkin tidak melepasi sisihan; laporan yang diminta masih perlu dikumpulkan, dihantar dan dimasukkan ke dalam blok. Maka heartbeat tidak menjamin waktu ketibaan tepat atau data tidak akan lapuk. Protokol perlu menetapkan umur maksimum yang sesuai dengan pergerakan aset dan tujuan penggunaan.

Tafsir answer, decimals dan unit sebut harga

latestRoundData() memulangkan ID pusingan, answer, startedAt, updatedAt dan answeredInRound; rujukan API menandakan medan terakhir sebagai lapuk. answer ialah integer titik tetap, bukan jumlah dolar yang terus boleh dibaca. Semak decimals() dan penerangan suapan tertentu. Jika suapan BTC/USD hipotesis memulangkan 6,725,000,000,000 dengan 8 decimals, nilainya ialah $67,250 bagi setiap BTC.

Decimals suapan berbeza daripada decimals token. Amaun ERC-20 mungkin menggunakan 18 decimals sedangkan jawapan harga menggunakan 8; skala setiap nilai berdasarkan unit sendiri sebelum didarab. BTC/USD bermaksud dolar bagi setiap bitcoin; USD/BTC menggunakan unit songsang. Untuk membentuk pasangan terbitan, skalakan kedua-dua suapan dan bahagikan mengikut susunan betul; contoh denominasi harga menunjukkan BTC/EUR daripada BTC/USD dan EUR/USD.

Semakan data lapuk ialah peraturan aplikasi

updatedAt menunjukkan masa kemas kini pusingan terkini. Pengguna boleh membandingkannya dengan cap masa blok semasa dan menolak jawapan yang lebih lama daripada had umur yang ditetapkan aplikasi. Bergantung pada suapan, semak juga masa bukan sifar, jawapan positif bagi aset yang sepatutnya berharga positif dan julat munasabah. Julat terlalu ketat boleh menolak perubahan pasaran yang sah.

Bayangkan pasaran pinjaman hipotesis menerima empat unit cagaran dengan faktor 75%. Jawapan terakhir 200,000,000,000 dengan 8 decimals bermaksud $2,000 seunit; had pinjaman ialah 4 × $2,000 × 75% = $6,000. Jika pasaran turun kepada $1,820, penurunannya 9%. Dengan andaian sisihan 10% dan heartbeat 60 minit, laporan baharu mungkin belum diminta; pada harga lebih rendah hadnya $5,460.

Jika aplikasi menolak harga yang lebih lama daripada lima minit sedangkan pusingan berumur 20 minit, pinjaman baharu boleh disekat dan bukannya menggunakan nilai $2,000. Semakan ini tidak mengemas kini suapan; ia mengubah tindakan yang dibenarkan apabila data terlalu lama. Pinjaman, pengeluaran, pembubaran dan pembayaran balik boleh memerlukan respons berbeza kerana menghentikan semua tindakan juga berisiko. Nilai dan pencetus ini hipotesis, bukan tetapan suapan semasa atau saranan.

Semakan sequencer L2 menangani jenis gangguan lain

Pada banyak L2, pengguna menghantar transaksi melalui sequencer. Semasa gangguan atau pemulihan, transaksi mungkin tertangguh, penggunaan biasa terganggu dan pesanan tertunda boleh dilaksanakan selepas keadaan pasaran berubah. Jawapan harga L2 yang nampak terkini tidak membuktikan laluan pelaksanaan tersedia atau semua pengguna boleh bertindak serentak.

Chainlink mendokumenkan suapan status sequencer L2 yang berasingan: answer == 0 bermaksud aktif dan answer == 1 bermaksud tergendala. startedAt merekodkan perubahan status; contoh pengguna menyemak status dan menunggu tempoh ihsan yang ditetapkan aplikasi selepas pemulihan sebelum membaca harga. Semak alamat dan tingkah laku rangkaian dalam panduan L2 Sequencer Uptime Feeds. Tempoh itu tidak menjamin harga dikemas kini atau transaksi tertunda selesai.

Kawalan ini tidak menjamin hasil yang betul atau adil

Kuorum, median, sisihan, heartbeat, had umur dan status sequencer masing-masing menjawab soalan terhad. Ia tidak menjamin kecairan pasaran, identiti aset yang tepat, penyedia data bebas atau harga pelaksanaan bagi saiz tertentu. Cap masa baharu boleh datang bersama nilai salah atau dimanipulasi; nilai lama mungkin masih hampir dengan pasaran yang tenang.

Tiada pencetus menghapuskan jurang harga, kesesakan atau pepijat penskalaan, pemilihan pasangan, kesegaran dan pembubaran. Panduan pemilihan Data Feeds berkualiti menyarankan penilaian kecairan dan pergantungan serta pengendalian data lapuk, tertunda, hilang atau luar jangka. Risiko kontrak, tadbir urus, jambatan, cagaran dan pembubaran kekal. Harga oracle stablecoin juga tidak menjamin penebusan pada nilai par; baca panduan depeg.

Jejaki seluruh laluan harga sebelum bergantung padanya

Kenal pasti rantaian, proksi suapan, pasangan aset, mata wang sebut harga, decimals jawapan dan alamat kontrak. Pastikan penerangan sepadan dengan aset dan jangan salin alamat daripada rangkaian lain. Semak model sumber dan sejarah kemas kini jika kegunaan memerlukan pemantauan rapi. Chainlink menyatakan agregator mungkin berbeza antara rangkaian, jadi kod serta konfigurasi wajar disemak.

Seterusnya jejaki cara jawapan digunakan: penskalaan amaun dan unit harga, semakan updatedAt, umur maksimum serta tindak balas terhadap nilai tidak sah. Pada L2, semak suapan uptime, masa pemulihan, tempoh ihsan dan transaksi tertunda. Semak kes suapan lapuk serta gangguan/pemulihan pada logik kontrak sebenar. Untuk membezakan medan harga, lihat mark price berbanding dagangan terakhir.

Soalan lazim

Q1Adakah heartbeat memastikan harga tidak lebih lama daripada selang itu?

Tidak. Ia pencetus masa dalam reka bentuk suapan, bukannya jaminan penerbitan dan kemasukan blok pada waktu tepat atau kesamaan dengan pasaran langsung. Semak updatedAt dan tetapkan polisi kesegaran yang sesuai.

Q2Bolehkah suapan oracle median tetap salah?

Ya. Median boleh mengehadkan sebahagian outlier, tetapi tidak membetulkan masalah sumber bersama, pasaran nipis, pasangan salah atau pepijat kod pengguna.

Q3Adakah suapan uptime sequencer L2 sama seperti semakan harga lapuk?

Tidak. Suapan uptime melaporkan status sequencer dan waktu perubahan; semakan lapuk membandingkan updatedAt harga dengan masa semasa. Aplikasi mungkin memerlukan kedua-duanya dan tempoh ihsan pemulihan.

Sumber dan bacaan lanjut

Laporkan masalah

Kami akan menyediakan e-mel dengan pautan artikel ini. Mark menerima laporan hanya selepas anda menghantarnya

Semakan pantas

Sudah membaca panduan? Uji diri dengan 3 soalan

Soalan 1 / 3

Soalan 01

Suapan BTC/USD dengan 8 decimals memulangkan `6,725,000,000,000`. Berapakah harga selepas diskala?

Pilih jawapan untuk melihat penjelasan

Glosari opsyen