Pelajaran 1

Pengenalan tentang Orakel Ethereum (Orakel Ethereum)

Selamat datang di kursus ini. Saat Anda memulai perjalanan ini untuk menjelajahi dunia orakel Ethereum, Anda akan belajar bagaimana jaringan blockchain berkomunikasi dengan dunia luar. Para orakel seperti jembatan yang menghubungkan kepastian kontrak pintar dengan realitas dunia nyata yang selalu berubah. Tujuan dari kursus ini adalah untuk mendekripsi kompleksitas di balik orakel dan menjadikannya lebih mudah dipahami dan didekati.

Apa arti dari Oracles (Oracles)?

Jaringan terdesentralisasi Ethereum dan kontrak pintar-nya benar-benar terisolasi dari dunia nyata. Isolasi ini memastikan konsistensi, keamanan, dan integritas. Namun, ini juga menimbulkan keterbatasan: kontrak pintar ini tidak dapat mengakses atau memvalidasi data eksternal secara mandiri. Jadi, bagaimana jika pelaksanaan kontrak bergantung pada harga emas saat ini, kondisi cuaca di kota tertentu, atau hasil pemilihan?

Oracles mengisi kesenjangan ini. Sebagai utusan, mereka mengumpulkan, memvalidasi, dan menyampaikan informasi dunia nyata ke kontrak pintar, dengan demikian memperluas rentang kemungkinan untuk aplikasi terdesentralisasi.

Bayangkan situasi berikut:

Solidity//Kontrak pintar tiruan mengikuti kontrak data eksternal GoldPriceBet {Oracle OracleInstance;//Sebuah instance Oracle real-time gold instance address bettor; uint256 wagerAmount; Fungsi placeGoldPriceBet (uint PredictedPrice) hutang eksternal {bettor = msg.sender;        wagerAmount = msg.value;        Di sini, kita biasanya akan memanggil oracle untuk mengambil harga emas saat ini}}

Komentar kode:

  • Oracle OracleInstance;Ini adalah placeholder untuk kamiGoldPriceBet kontrak untuk berinteraksi dengan untuk mendapatkan harga kontrak emas (Oracle) saat ini.
  • The Fungsi placeGoldPriceBet memungkinkan pengguna untuk memasang taruhan untuk memprediksi harga emas. Idealnya, setelah memasang taruhan, oracle akan dipanggil untuk mendapatkan harga emas real-time dan menentukan hasilnya.

Ekosistem Orakel yang Beragam

Secara umum, orakel dapat dikategorikan ke dalam dua kategori utama:

Orakel terpusat

Dioperasikan oleh satu entitas atau organisasi tunggal, orakel terpusat efisien dan dapat memperoleh data dengan cepat. Namun, kelemahan utama mereka adalah kepercayaan. Pelaksanaan kontrak pintar bergantung pada integritas entitas terpusat ini. Data yang dimanipulasi atau salah dapat menyebabkan hasil yang tidak terduga.

Orakel terdesentralisasi

Untuk mengatasi kekurangan sistem terpusat, orakel terdesentralisasi muncul. Di sini, jaringan beberapa orakel menyediakan data. Kontrak pintar dapat menggunakan metode agregasi, seperti rata-rata atau median, untuk mendapatkan nilai. Dengan mendesentralisasikan sumber data, orakel-orakel ini mengurangi risiko yang terkait dengan manipulasi manusia atau titik kegagalan tunggal.

Solidity//Kontrak pintar ilustratif yang memanfaatkan kerangka kerja Oracle yang fleksibelcontract CommodityPriceFeed {Oracle Terdesentralisasi [] OracleArray;//Array fungsi oracle terdesentralisasi deriveAveragePrice () pengembalian tampilan eksternal (uint256) { uint256 cumulativeValue = 0; untuk (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice();        } mengembalikan cumulativeValue / oracleArray.length;    }}

Komentar kode:

  • DecentralizedOracle [] OracleArray; ini adalah larik yang menyimpan beberapa contoh orakel terdesentralisasi.
  • The mendapatkanHargaRataRataFungsi menghitung harga rata-rata yang diperoleh dari semua orakel di OracleArray. Ia melalui setiap orakel, mendapatkan harga, dan kemudian membaginya dengan jumlah orakel untuk mendapatkan rata-rata.

Aplikasi oracle dunia nyata

Aplikasi potensial dari orakel sangat luas dan beragam:

  • Derivatif keuangan: Instrumen keuangan seperti opsi memerlukan akses ke harga aset dunia nyata untuk melaksanakan kontrak.
  • Asuransi pintar: Bayangkan kontrak asuransi perjalanan pintar yang secara otomatis memberikan kompensasi kepada pengguna ketika penerbangan mengalami keterlambatan. Data ini berasal dari trailer penerbangan.
  • Verifikasi rantai pasokan: Dengan memasukkan data eksternal ke dalam blockchain, memungkinkan untuk melacak produk secara real-time dari proses manufaktur hingga pengiriman ke pelanggan.
  • Permainan terdesentralisasi: Permainan online berbasis blockchain dapat menggunakan orakel untuk memengaruhi hasil permainan berdasarkan kejadian dunia nyata, seperti hasil pertandingan olahraga.
    Baca lebih lanjut tentang orakel: Apa itu Oracle dalam Blockchain?

Derivatif keuangan dan platform perdagangan

Platform keuangan memerlukan informasi real-time mengenai harga aset, tingkat bunga, atau indikator ekonomi lainnya. Platform derivatif terdesentralisasi menggunakan orakel untuk memastikan bahwa kontrak-kontrak, seperti futures dan opsi, diselesaikan berdasarkan data pasar yang akurat dan tidak dapat dimanipulasi.

//Sebuah contoh kontrak pintar untuk pilihan yang nyaman kontrak DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Nilai contoh function exerciseOption () eksternal { uint256 currentPrice = priceOracle.fetchCurrentPrice ();        if (currentPrice strikePrice>) {            // Logika untuk menjalankan opsi        }    }}

Komentar kode:

  • The DecentralizedOptionkontrak berinteraksi dengan para oracle untuk mendapatkan harga saat ini.
  • Ketika seorang pengguna melaksanakan opsi, kontrak memeriksa harga saat ini terhadap harga pelaksanaan yang telah ditentukan sebelumnya untuk menentukan hasilnya.

Asuransi pintar

Oracles telah mempromosikan pengembangan platform asuransi terdesentralisasi, menyediakan data seperti pola cuaca yang dibutuhkan untuk asuransi pertanian, kondisi penerbangan yang dibutuhkan untuk asuransi perjalanan, atau aktivitas seismik yang dibutuhkan untuk asuransi gempa bumi.

kontrak Soliditycontract FlightDelayInsurance { Oracle FlightStatusOracle; fungsi claimInsurance (string flightNumber) eksternal { string status = flightstatusOracle.getFlightStatus (flightNumber);        jika (strcmp (status, " Delayed") == 0) {            // Logika untuk mengganti biaya asuransi yang diasuransikan        }    }}

Komentar kode:

  • Asuransi Keterlambatan Penerbangankontrak menggunakan orakel untuk mendapatkan status penerbangan.
  • Bergantung pada status penerbangan, akan memberikan ganti rugi kepada yang diasuransikan jika penerbangan mengalami keterlambatan.

Verifikasi rantai pasokan

Untuk solusi rantai pasok terdesentralisasi, orakel dapat menyediakan data yang dapat diverifikasi di setiap tahap, mulai dari pengadaan bahan baku hingga pengiriman produk, untuk memastikan keaslian produk dan pengadaan yang etis.

kontrak ketangguhan supplyChainTracker { Oracle LocationOracle; alamat ProductOwner; fungsi verifyProductLocation (alamat ProductID) eksternal tampilan mengembalikan (string memory) {        kembali locationOracle.fetchProductLocation(productID);    }}

Komentar kode:

  • Kontrak ini menggunakan orakel untuk mendapatkan lokasi produk pada setiap tahap rantai pasokan.
  • Ini dapat digunakan untuk melacak produk dan memverifikasi asal dan rutenya.

Permainan terdesentralisasi

Permainan yang mengintegrasikan acara dunia nyata, seperti hasil acara olahraga atau pergerakan pasar saham, dapat dibangun secara terdesentralisasi dengan menggunakan orakel untuk mendapatkan data yang diperlukan.

Kontrak SolidityContract SportsBet { Oracle SportsResultOracle; Fungsi placeBet (string teamName) eksternal berbayar {        // Logika untuk memasang taruhan    } fungsi resolveBet () eksternal {        string winningTeam = sportsResultOracle.getMatchResult();        // Logika untuk memberikan hadiah kepada pemenang berdasarkan hasil pertandingan    }}

Komentar kode:

  • SportsBetmemungkinkan pengguna untuk memasang taruhan pada hasil acara olahraga.
  • Kemudian berinteraksi dengan para orakel untuk mendapatkan hasil pertandingan dan menyelesaikan taruhan sesuai dengan itu.
    Sekarang kita telah melakukan eksplorasi awal tentang dunia orakel Ethereum. Pada kursus-kursus berikutnya, kita akan mempelajari secara mendalam tentang cara mengintegrasikan orakel dengan kontrak pintar. Jika kontennya membuat Anda merasa sangat excited, pertahankan semangat belajar Anda. Karena dunia data terdesentralisasi sedang memanggil kita!
Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.
Katalog
Pelajaran 1

Pengenalan tentang Orakel Ethereum (Orakel Ethereum)

Selamat datang di kursus ini. Saat Anda memulai perjalanan ini untuk menjelajahi dunia orakel Ethereum, Anda akan belajar bagaimana jaringan blockchain berkomunikasi dengan dunia luar. Para orakel seperti jembatan yang menghubungkan kepastian kontrak pintar dengan realitas dunia nyata yang selalu berubah. Tujuan dari kursus ini adalah untuk mendekripsi kompleksitas di balik orakel dan menjadikannya lebih mudah dipahami dan didekati.

Apa arti dari Oracles (Oracles)?

Jaringan terdesentralisasi Ethereum dan kontrak pintar-nya benar-benar terisolasi dari dunia nyata. Isolasi ini memastikan konsistensi, keamanan, dan integritas. Namun, ini juga menimbulkan keterbatasan: kontrak pintar ini tidak dapat mengakses atau memvalidasi data eksternal secara mandiri. Jadi, bagaimana jika pelaksanaan kontrak bergantung pada harga emas saat ini, kondisi cuaca di kota tertentu, atau hasil pemilihan?

Oracles mengisi kesenjangan ini. Sebagai utusan, mereka mengumpulkan, memvalidasi, dan menyampaikan informasi dunia nyata ke kontrak pintar, dengan demikian memperluas rentang kemungkinan untuk aplikasi terdesentralisasi.

Bayangkan situasi berikut:

Solidity//Kontrak pintar tiruan mengikuti kontrak data eksternal GoldPriceBet {Oracle OracleInstance;//Sebuah instance Oracle real-time gold instance address bettor; uint256 wagerAmount; Fungsi placeGoldPriceBet (uint PredictedPrice) hutang eksternal {bettor = msg.sender;        wagerAmount = msg.value;        Di sini, kita biasanya akan memanggil oracle untuk mengambil harga emas saat ini}}

Komentar kode:

  • Oracle OracleInstance;Ini adalah placeholder untuk kamiGoldPriceBet kontrak untuk berinteraksi dengan untuk mendapatkan harga kontrak emas (Oracle) saat ini.
  • The Fungsi placeGoldPriceBet memungkinkan pengguna untuk memasang taruhan untuk memprediksi harga emas. Idealnya, setelah memasang taruhan, oracle akan dipanggil untuk mendapatkan harga emas real-time dan menentukan hasilnya.

Ekosistem Orakel yang Beragam

Secara umum, orakel dapat dikategorikan ke dalam dua kategori utama:

Orakel terpusat

Dioperasikan oleh satu entitas atau organisasi tunggal, orakel terpusat efisien dan dapat memperoleh data dengan cepat. Namun, kelemahan utama mereka adalah kepercayaan. Pelaksanaan kontrak pintar bergantung pada integritas entitas terpusat ini. Data yang dimanipulasi atau salah dapat menyebabkan hasil yang tidak terduga.

Orakel terdesentralisasi

Untuk mengatasi kekurangan sistem terpusat, orakel terdesentralisasi muncul. Di sini, jaringan beberapa orakel menyediakan data. Kontrak pintar dapat menggunakan metode agregasi, seperti rata-rata atau median, untuk mendapatkan nilai. Dengan mendesentralisasikan sumber data, orakel-orakel ini mengurangi risiko yang terkait dengan manipulasi manusia atau titik kegagalan tunggal.

Solidity//Kontrak pintar ilustratif yang memanfaatkan kerangka kerja Oracle yang fleksibelcontract CommodityPriceFeed {Oracle Terdesentralisasi [] OracleArray;//Array fungsi oracle terdesentralisasi deriveAveragePrice () pengembalian tampilan eksternal (uint256) { uint256 cumulativeValue = 0; untuk (uint i = 0; i < oracleArray.length; i++) { cumulativeValue += oracleArray[i].fetchPrice();        } mengembalikan cumulativeValue / oracleArray.length;    }}

Komentar kode:

  • DecentralizedOracle [] OracleArray; ini adalah larik yang menyimpan beberapa contoh orakel terdesentralisasi.
  • The mendapatkanHargaRataRataFungsi menghitung harga rata-rata yang diperoleh dari semua orakel di OracleArray. Ia melalui setiap orakel, mendapatkan harga, dan kemudian membaginya dengan jumlah orakel untuk mendapatkan rata-rata.

Aplikasi oracle dunia nyata

Aplikasi potensial dari orakel sangat luas dan beragam:

  • Derivatif keuangan: Instrumen keuangan seperti opsi memerlukan akses ke harga aset dunia nyata untuk melaksanakan kontrak.
  • Asuransi pintar: Bayangkan kontrak asuransi perjalanan pintar yang secara otomatis memberikan kompensasi kepada pengguna ketika penerbangan mengalami keterlambatan. Data ini berasal dari trailer penerbangan.
  • Verifikasi rantai pasokan: Dengan memasukkan data eksternal ke dalam blockchain, memungkinkan untuk melacak produk secara real-time dari proses manufaktur hingga pengiriman ke pelanggan.
  • Permainan terdesentralisasi: Permainan online berbasis blockchain dapat menggunakan orakel untuk memengaruhi hasil permainan berdasarkan kejadian dunia nyata, seperti hasil pertandingan olahraga.
    Baca lebih lanjut tentang orakel: Apa itu Oracle dalam Blockchain?

Derivatif keuangan dan platform perdagangan

Platform keuangan memerlukan informasi real-time mengenai harga aset, tingkat bunga, atau indikator ekonomi lainnya. Platform derivatif terdesentralisasi menggunakan orakel untuk memastikan bahwa kontrak-kontrak, seperti futures dan opsi, diselesaikan berdasarkan data pasar yang akurat dan tidak dapat dimanipulasi.

//Sebuah contoh kontrak pintar untuk pilihan yang nyaman kontrak DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Nilai contoh function exerciseOption () eksternal { uint256 currentPrice = priceOracle.fetchCurrentPrice ();        if (currentPrice strikePrice>) {            // Logika untuk menjalankan opsi        }    }}

Komentar kode:

  • The DecentralizedOptionkontrak berinteraksi dengan para oracle untuk mendapatkan harga saat ini.
  • Ketika seorang pengguna melaksanakan opsi, kontrak memeriksa harga saat ini terhadap harga pelaksanaan yang telah ditentukan sebelumnya untuk menentukan hasilnya.

Asuransi pintar

Oracles telah mempromosikan pengembangan platform asuransi terdesentralisasi, menyediakan data seperti pola cuaca yang dibutuhkan untuk asuransi pertanian, kondisi penerbangan yang dibutuhkan untuk asuransi perjalanan, atau aktivitas seismik yang dibutuhkan untuk asuransi gempa bumi.

kontrak Soliditycontract FlightDelayInsurance { Oracle FlightStatusOracle; fungsi claimInsurance (string flightNumber) eksternal { string status = flightstatusOracle.getFlightStatus (flightNumber);        jika (strcmp (status, " Delayed") == 0) {            // Logika untuk mengganti biaya asuransi yang diasuransikan        }    }}

Komentar kode:

  • Asuransi Keterlambatan Penerbangankontrak menggunakan orakel untuk mendapatkan status penerbangan.
  • Bergantung pada status penerbangan, akan memberikan ganti rugi kepada yang diasuransikan jika penerbangan mengalami keterlambatan.

Verifikasi rantai pasokan

Untuk solusi rantai pasok terdesentralisasi, orakel dapat menyediakan data yang dapat diverifikasi di setiap tahap, mulai dari pengadaan bahan baku hingga pengiriman produk, untuk memastikan keaslian produk dan pengadaan yang etis.

kontrak ketangguhan supplyChainTracker { Oracle LocationOracle; alamat ProductOwner; fungsi verifyProductLocation (alamat ProductID) eksternal tampilan mengembalikan (string memory) {        kembali locationOracle.fetchProductLocation(productID);    }}

Komentar kode:

  • Kontrak ini menggunakan orakel untuk mendapatkan lokasi produk pada setiap tahap rantai pasokan.
  • Ini dapat digunakan untuk melacak produk dan memverifikasi asal dan rutenya.

Permainan terdesentralisasi

Permainan yang mengintegrasikan acara dunia nyata, seperti hasil acara olahraga atau pergerakan pasar saham, dapat dibangun secara terdesentralisasi dengan menggunakan orakel untuk mendapatkan data yang diperlukan.

Kontrak SolidityContract SportsBet { Oracle SportsResultOracle; Fungsi placeBet (string teamName) eksternal berbayar {        // Logika untuk memasang taruhan    } fungsi resolveBet () eksternal {        string winningTeam = sportsResultOracle.getMatchResult();        // Logika untuk memberikan hadiah kepada pemenang berdasarkan hasil pertandingan    }}

Komentar kode:

  • SportsBetmemungkinkan pengguna untuk memasang taruhan pada hasil acara olahraga.
  • Kemudian berinteraksi dengan para orakel untuk mendapatkan hasil pertandingan dan menyelesaikan taruhan sesuai dengan itu.
    Sekarang kita telah melakukan eksplorasi awal tentang dunia orakel Ethereum. Pada kursus-kursus berikutnya, kita akan mempelajari secara mendalam tentang cara mengintegrasikan orakel dengan kontrak pintar. Jika kontennya membuat Anda merasa sangat excited, pertahankan semangat belajar Anda. Karena dunia data terdesentralisasi sedang memanggil kita!
Pernyataan Formal
* Investasi Kripto melibatkan risiko besar. Lanjutkan dengan hati-hati. Kursus ini tidak dimaksudkan sebagai nasihat investasi.
* Kursus ini dibuat oleh penulis yang telah bergabung dengan Gate Learn. Setiap opini yang dibagikan oleh penulis tidak mewakili Gate Learn.