Ethereum Akıllı Sözleşmelerini Kullanarak Kendi Oracle'ınızı Nasıl Oluşturabilirsiniz? PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Ethereum Akıllı Sözleşmelerini Kullanarak Kendi Oracle'ınızı Nasıl Oluşturursunuz?

Okuma zamanı: 5 dakika

Ethereum, dapp oluşturma, blok zincirinde kripto varlık ticareti vb. niteliklerini miras alan ilk blok zinciridir.

Akıllı sözleşmeler yazmak ve bunları faaliyetlerin gerçekleştirilmesinde ademi merkeziyetçiliği aşılamak için Ethereum sanal makinesinde uygulamak için kendi programlama diline sahiptir. 

Akıllı sözleşmeler, önceden tanımlanmış kod satırlarını yürütür ve amaçlanan görevi yerine getirir. Peki ya gerçek zamanlı olayların sonuçlarına dayalı olarak akıllı sözleşmeleri işlemek istiyorsak?

Bunu başarmak için, akıllı sözleşmelerin gerçek dünyadan girdi alabileceği blok zinciri kahinleri kavramını anlamamız gerekiyor. 

Kriptoda bir oracle nedir ve Ethereum Smart sözleşmesinde bir oracle nasıl oluşturulur? Bunu aşağıdaki bölümde ayrıntılı olarak tartışacağız. 

Blogun Temel Konuları

  • Kripto kahin nedir ve kahinler nasıl çalışır?
  • Farklı kehanet türleri
  • Oracle'dan Ethereum akıllı sözleşmelerine veri akışı
  • Ethereum oracle'ları nasıl kodlanır
  • Kripto oracle ile ilgili sorunlar

Oracle Nedir ve Neden Gereklidir?

Kehanet blok zincirini harici sistemlere bağlayan bir köprü görevi gören varlıklardır. Başka bir deyişle, Oracle, girdiye dayalı bir eylem gerçekleştirmek için zincir dışı olay verilerini akıllı sözleşmeye sağlar.

Örneğin, bahis etkinliklerinde, kullanıcıların maçı kazanacağını düşündükleri oyunculara bahis yapmalarına izin verilir. Gerçek zamanlı olaylara dayalı olarak, kazanana bahis yapan kullanıcılara ödüller dağıtılır. 

Blockchain oracle'ları, kazananla ilgili verileri akıllı sözleşmelere eklemeye yardımcı olur. Oracle'daki veri akışı çift yönlüdür ve hava durumu raporlarından borsa durumuna ve akıllı sözleşmelere kadar herhangi bir gerçek zamanlı veriyi çevirmek için kullanılabilir. 

Ethereum blok zincirindeki her düğüm, tek tip olması gereken işlemler hakkında bilgiye sahiptir. Bu nedenle, API'lerden veri alınması tutarsızlıklara neden olabilir. Buna karşılık, Oracle, tüm düğümlerde değişmez bir şekilde aynı görünen verileri blok zincirine yükler.

Blockchain Oracle'ları
Blockchain Oracle'ları

Oracle'dan Verilere Nasıl Erişilir?

Akıllı sözleşmeler, Oracle düğümünden bilgi almak için istek ve yanıt döngüsünü kullanır. Bir HTTP GET ile uygulanan oracle, akıllı sözleşmeden gelen talebi alır ve geri arama işlevi, istenen verileri oracle'dan alabilir. 

Bu şekilde, veriler Oracle'dan akıllı sözleşme ile toplanır. Her oracle belirli bilgileri sağlayacak şekilde yapılandırılmıştır ve aradığınız verileri elde etmek için üçüncü taraf hizmetleri arayabilirsiniz. 

İşte oracle hizmetlerinden bazıları

  • Zincir bağlantı
  • kanıtlanabilir
  • Paralink vb.

Oracles Sınıflandırması

Oracle'lar, verilerin alınmasına, doğrulanmasına ve aktarılmasına bağlı olarak çeşitli türlere ayrılır. 

Girdi oracles: Verilerin gerçek zamanlı olaylardan zincir dışına alındığı en yaygın olarak tanınan tür. Örn. Hisse senetlerindeki fiyat beslemeleri, finansal piyasa koşullarına dayalı akıllı sözleşmeler üzerinde eylemi tetiklemek için zincir dışı kaynaklardan elde edilir.

Çıkış kehanetleri: Akıllı sözleşmelerin, eylemi gerçekleştirmesi için kehaneti kışkırttığı girdi kehanetlerinin tersi ayeti. Örn. Verileri depolamak veya ödeme yapmak için banka ağlarını başlatmak için depolama sağlayıcısına sinyaller gönderin.

Zincirler arası kahinler: Çapraz zincir oracle'ları, farklı blok zincirlerinde hem veri okumayı hem de yazmayı kolaylaştırır. Aynı zamanda, bir blok zincirindeki olayları tetiklemeyi ve onları başka bir blok zincirinde işlemeyi mümkün kılar. 

Hesaplama özellikli oracle'lar: Hesaplama özellikli oracle'lar, hizmet sağlamak için zincir dışı hesaplamayı kullanır. Özellikle on-chain, teknik veya finansal kısıtlamalar nedeniyle güvenilir olmadığında, bu tür kehanet kullanılır.

Oracles'tan Veri Alma

Adım 1: Akıllı sözleşme, kahine bir sorgu gönderir.

Adım 2: Sorgu, veri kaynağından veri arayan veri taşıyıcısına yönlendirilir.

Adım 3: Veri kaynaktan türetilir ve oracle'a beslenir.

Adım 4: Oracle, istendiği gibi akıllı sözleşmeye yanıtı gönderir. 

Ethereum Akıllı Sözleşmesinde Oracle Oluşturma – Kod Yapısı

Provable adlı bir oracle hizmetini kullanarak Bitcoin'in USD cinsinden mevcut fiyatını belirlemede Oracle'ın nasıl çalıştığını bulacağız. 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

Oracle Sorunları

Oracle sorunları, temel olarak, üçüncü taraflardan gelen verilerin güvenliği ve gerçekliği göz önüne alındığında, güvenilir olmayan akıllı sözleşmeler ile güvenilir üçüncü taraf oracle'lar arasındaki çatışmadır.

Akıllı sözleşmeler, uygulamalarına ilişkin kararlar almak için kahinlere güvenir ve onlara işlevleri üzerinde muazzam bir güç verir. Nitekim akıllı sözleşmelerin merkezi olmayan doğası sorgulanıyor. 

Bununla birlikte, ChainLink ve Oraclize gibi Oracle hizmetleri, özgün ve kimliği doğrulanmış yöntemlere dayalı veriler türeten merkezi olmayan çözümler olarak çalışır. Böylece elde edilen veriler merkezi olmayan yollarla elde edilir.  

Sonuç

Blok zincirinin gerçek dünya ile bağlantısı, merkezi olmayan dünyaya doğru bir sıçrama için kabul edilebilir derecede önemlidir. Oracles, gerçek zamanlı verilerle güvenilir bir akıllı sözleşme arayüzü için çözüm sunuyor. 

Bununla birlikte, sürdürülebilirliği sağlamak için, zincir dışı elde edilen verilerin güvenliğini ve doğruluğunu aşılamak için Oracle servisleri tarafından ilerlemeler yapılmaktadır. 

Daha alakalı kalmak istiyorum Web3 güvenliği?

Takip Edin QuillDenetimleri Web3 hakkında birçok güncel yazı için.

23 Görünümler

Sonrası Ethereum Akıllı Sözleşmelerini Kullanarak Kendi Oracle'ınızı Nasıl Oluşturursunuz? İlk çıktı blog.quillhash.

Zaman Damgası:

Den fazla tüyo