Blockchain Oracle Problemi Nedir?

Av. Elif Hilal Umucu
Chainlink Community
9 min readJul 24, 2021

Blockchain oracle problemi, aslında Ethereum gibi ağlarda akıllı sözleşmelerin çok çeşitli pazarlarda ve kullanım durumlarında toplu olarak benimsenmesini sağlamak için aşılması gereken en önemli engellerden bir tanesidir.

Blockchain Eğitim Serimizde daha önce tartışıldığı gibi, blockchainler üzerinde çalışan akıllı sözleşmeler, birden fazla farklı tarafın ortak sözleşme anlaşmalarına ve değişim değerine katılma şeklini yeniden tanımlamak için muazzam bir potansiyel sunmaktadır. (bu yüzden de biz sözleşme niteliği taşıdığı hep tartışılır)

Akıllı sözleşme ekonomisinden ayrı olarak çalışmak, artık çevrimiçi olarak işlem yapan tüm İnternet bağlantılı cihazlardan oluşan çok daha büyük blok zinciri olmayan dijital ekonomidir bile diyebiliriz. Bu dijital altyapının bir yan ürünü, dünyanın nasıl çalıştığına dair içgörüler sağlayan sürekli genişleyen bir veri ve API deposudur; örneğin toplumdaki popüler tartışma konularını gösteren İnternet arama sonuçları veya ortak trafik kalıplarını gösteren IoT sensörleri. Bu duruma örnek olarak verilebilir. :)

Blok zinciri tabanlı akıllı sözleşmeler ve geleneksel veri ve API ekonomileri, veriye dayalı otomasyonun gelecekteki yapı taşları olma konusunda muazzam bir potansiyele sahiptir, ancak sorun şu ki, bu iki dünya nasıl birbirine bağlanır? Bu, “oracle sorununun” en önemli noktasıdır aslında ve bu makalenin de odak noktası bu olacaktır.

Bu makale, aşağıdakileri içeren beş ana bölüme ayrılacaktır:

  • Oracle problemini tanımlamak
  • Bir oracle’ın işini ana hatlarıyla belirtmek
  • Ethereum gibi blok zincirlerinin neden yerel oracle çözümleri sunmadığını tartışmak
  • Merkezi oracle’ların güvenlik risklerini belirlemek
  • Güvenli ve güvenilir merkezi olmayan oracle’lar için standart olan Chainlink’i tanıtmak

Oracle Problemi :)

Oracle problemi çok basit bir sınırlama etrafında dönüyor aslında.Blok zincirler yerleşik bir işlev olarak herhangi bir harici sistemden veri çekemez veya dışarı aktaramaz. Bu nedenle, blok zincirler, İnternet bağlantısı olmayan bir bilgisayara çok benzeyen yalıtılmış ağlardır.

Bir blok zincirinin yalıtılması, onu son derece güvenli kılan kesin özelliktir, çünkü ağın yalnızca, defterinde halihazırda depolanmış verileri kullanarak çok temel bir doğru/yanlış soru seti üzerinde fikir birliği oluşturması gerekir — örneğin, genel anahtar sahibi bunu yaptı mı? İşlemi ilgili özel anahtarla imzalayın, genel adreste işlemi karşılamak için yeterli para var mı ve işlem türü belirli akıllı sözleşmede geçerli mi? Blockchain fikir birliğinin çok dar odak noktası, akıllı sözleşmelerin neden belirleyici olarak adlandırıldığıdır. Bununla birlikte, akıllı sözleşmelerin potansiyel kullanım durumlarının %90'ından fazlasını gerçekleştirmesi için dış dünyaya bağlı olmaları gerekir.

Örneğin, finansal akıllı sözleşmeler, ödemeleri belirlemek için piyasa bilgilerine ihtiyaç duyar, akıllı sigorta sözleşmeleri, poliçe ödemeleri hakkında kararlar almak için IoT’ye ve web verilerine ihtiyaç duyar, ticaret finansmanı sözleşmeleri, ödemelerin ne zaman serbest bırakılacağını bilmek için ticaret belgelerine ve dijital imzalara ihtiyaç duyar ve birçok akıllı sözleşme, geleneksel bir ödeme ağında fiat para birimine anlaşmak ister. Bu bilgilerin hiçbiri blok zinciri içinde üretilmez ve bu geleneksel hizmetler doğal olarak erişilebilir değildir! İşte oracle şimdi devreye girer.

Blok zinciri (zincir içi) ile dış dünya (zincir dışı) arasındaki bağlantıyı kurmak, ‘oracle’ olarak bilinen ek ve ayrı bir altyapı parçasını gerektirir. Oracle, Blockchain için bir köprü görevi görmektedir.

Peki Blockchain Oracle’ları Ne Yapar? :)

Bir blockchain oracle’ı, veri sağlayıcıları, web API’leri, kurumsal arka uçlar, bulut sağlayıcıları, IoT cihazları, e-imzalar, ödeme sistemleri, diğer blok zincirleri ve daha fazlası dahil olmak üzere blok zincirleri ile herhangi bir zincir dışı sistem arasındaki iletişimi kolaylaştıran güvenli bir ara katman yazılımıdır. Oracle’lar birkaç temel işlevi kapsar:

  • Dinler — zincir dışı veriler için gelen kullanıcı veya akıllı sözleşme taleplerini kontrol etmek için blok zinciri ağını izler.
  • Ayıklar — üçüncü taraf web sunucularında barındırılan zincir dışı API’ler gibi bir veya daha fazla harici sistemden veri alır.
  • Format — API’lerden alınan verileri blok zinciri tarafından okunabilir bir biçime (giriş) biçimlendirerek ve/veya blok zinciri verilerini harici bir API (çıkış) ile uyumlu hale getirerek iki sistemin birbiriyle iletişim kurmasını sağlar.
  • Doğrulama — veri imzalama, blok zinciri işlem imzalama, TLS imzaları, Güvenilir Yürütme Ortamı (TEE) onayları, sıfır bilgi kanıtı ve daha fazlasının herhangi bir kombinasyonunu kullanarak Oracle hizmetlerinin performansını doğrulamak için bir kriptografik kanıt oluşturur.
  • Hesaplama — birden fazla oracle gönderiminden bir medyan hesaplamak veya çeşitli veri türlerinden (kişisel risk profili, piyasa oranları, sermaye maliyeti, vb.) bir sigorta teklifi oluşturmak gibi daha karmaşık görevleri yürütmek gibi veriler üzerinde bir tür hesaplama gerçekleştirir.
  • Yayın — akıllı sözleşmenin kullanımı için veri ve zincir üzerindeki ilgili kanıtını göndermek için bir araç olarak blok zincirinde bir işlemi imzalar ve yayınlar.
  • Çıktı (isteğe bağlı) — ödeme talimatlarını geleneksel bir ödeme ağına iletmek veya bir siber-fiziksel sistemi etkilemek gibi akıllı bir sözleşmenin yürütülmesi üzerine harici bir sisteme veri gönderir.

Yukarıdaki işlevleri sunmak için, Oracle sistemi aynı anda hem blok zincirinde hem de blok zinciri dışında çalışmalıdır.

Zincir üstü bileşen, bir blok zinciri bağlantısı kurmak (istekleri dinlemek için), veri yayınlamak, kanıt göndermek, blok zinciri verilerini çıkarmak ve bazen blok zincirinde hesaplama yapmak içindir.

Zincir dışı bileşen, istekleri işlemek, harici verileri almak ve biçimlendirmek, blok zinciri verilerini harici sistemlere göndermek ve daha gelişmiş oracle ağlarında potansiyel olarak hesaplama yapmak içindir.

Birden fazla kaynaktan hava durumu verilerini alan, birleştirilmiş veri noktasını blok zincirinde bir sigorta sözleşmesinin yürütülmesini tetiklemek için kullanan ve herhangi bir geleneksel ödeme yönteminde ödeme yapan, mahsul sigortası için Chainlink oracle destekli bir akıllı sözleşme.

Blok Zincirleri Neden Oracle Problemini Çözemiyor?

Hepimizin bildiği gibi blok zincirleri, birkaç özel tasarım ilkesi nedeniyle son derece güvenli ve güvenilirdir aslında. Yukarıda açıklandığı gibi, yalnızca kendi ortamında üretilen ve doğru veya yanlış olduğu kanıtlanan verileri kullanarak çok temel sorular üzerinde kararlar almaları gerekir.

Ek olarak, hem ağdaki tüm düğümler tarafından aynı veri parçasını yedekli olarak doğrulamak hem de bir düğümün veya küçük bir düğüm grubunun konsensüs algoritmasının (PoW, PoS, vb.) kurallarını değiştiremeyeceğini ve Sybil’in ağa saldırmasını önlemek için ademi merkeziyetçiliği kullanırlar, (örn. hash gücünün %51 kontrolünü elde edin). Bu özellikler, özellikle merkezi olmayan ve Sybil’e dayanıklı bir ağda, determinizm konusunda güçlü garantiler sağlar.

Bununla birlikte, blok zincirler, öznellik alanına girmeye başlayan veya ağdaki her düğümün erişemeyeceği harici veriler gerektiren soruları yanıtlamak için pek uygun değildir. Örneğin, ‘Bitcoin’in piyasa fiyatı nedir?’ gibi basit bir soru mesela. Veya “New York’ta hava nasıl?” Bu durumda hangi veri kaynağını kullandıklarına ve bir kaynaktan ne zaman veri talep ettiklerine bağlı olarak değişebilen çok çeşitli farklı cevaplar ortaya çıkabilmektedir. O zaman bir sorun ortaya çıkıyor, doğru cevap nedir? Hangi veri doğrudur?

Blok zincirinin temel katmanında öznelliğin tanıtılması, Pandora’nın kutusunu bir dizi güvenlik, güvenilirlik ve yönetişim endişesi etrafında açar ve bu da blok zincirinin sağlamayı amaçladığı değer önerisini — bilgi işlem işlemleri için tarafsız determinizm — riske atar.

Önemli bir endişe de, her düğümün verilere aynı erişime sahip olmadığı durumlarda verilerin yüksek kalitede nasıl sağlanacağıdır. Bitcoin fiyatı için temel bir veri talebi bile çok zordur. Çünkü yalnızca bir web sitesine veya tek bir borsaya bakmak, yüksek kaliteli hizmetleri sürdürmek için finansal teşviklere ve verileri filtrelemek ve tüm ticaret ortamlarını hesaba katan pazar kapsamı oluşturmak için onlarca yıllık deneyime sahip profesyonel bir veri toplayıcıya ücretli bir API aboneliği kadar doğru veya güvenilir olmayacaktır..

Herkes sözde anonim bir düğüm çalıştırabileceğinden, blok zinciri düğümleri tarafından gönderilen zincir dışı veriler için kalite kontrolünü yönetmek ve uygulamak son derece zordur. Hepsinin yanıt göndermek için eşit fırsatları var, ancak hepsi yüksek kaliteli bir zincir dışı API’ye abonelik satın almaya istekli olmayabilir veya kolayca uygulanabilir olmayabilir.

Bir diğer önemli konu ise ölçeklenebilirliktir. Ağa her yeni veri kaynağı eklenmesi gerektiğinde veya mevcut bir veri toplama yönteminin ayarlanması gerektiğinde, ağdaki her düğümün yazılımlarını kabul etmesi ve yükseltmesi için büyük bir sosyal yönetişim koordinasyonu gerekir. Bu yönetim yükü, sürtünmeyi artırır, blok zincirinin diğer temel özelliklerinin (PoS ve parçalama gibi) gelişimini yavaşlatır ve Oracle inovasyonunun hızını sınırlar.

Sonuç olarak, blok zincirinin temel katmanında ne kadar karmaşıklık varsa, üzerinde çalışan tüm uygulamalar için o kadar fazla saldırı yüzeyi ve risk vardır. Oracle kullanmayan veya çatışmalı veri talepleri ile ilgisi olmayan uygulamalar bile çapraz ateşe yakalanacak ve bir oracle sorunu nedeniyle tüm zincirin durması halinde potansiyel olarak kesintiye uğrayacaktır.

Bu ve daha pek çok nedenden dolayı, oracle’lar herhangi bir büyük blok zincirinin temel katmanına entegre edilmemiştir, bunun yerine ayrı ağlar olarak çalışmaktadırlar. Bu durumun avantajı aslında şudur : Blok zincirleri daha düşük bir saldırı yüzeyine sahipken ve determinizmlerini blok zinciri konsensüsüne tekil bir şekilde odaklanarak korurken, Oracle’lar tüm zinciri riske atan bağımlılıklar ve sınırlamalar yaratmadan karmaşık ve öznel bir zincir dışı dünyadan determinizm üretmek için gereken esnekliğe sahiptir.

Merkezi Oracle’lar Büyük Riskler Sunuyor

Akıllı bir sözleşmenin tüm amacı, insan yaptırımı tarafından gerçekleştirilen olasılıklı yürütmenin aksine, sözleşmenin şartlarının teknolojik olarak uygulanması yoluyla determinizm elde etmektir. Bu amaca ulaşmak için blok zinciri, sözleşmenin tüm uçtan uca yaşam döngüsü boyunca bu özellikleri korumak için oracle’a genişletilmesi gereken tek bir başarısızlık noktasına sahip olamaz, olmamalıdır. Tek bir merkezi oracle, sözleşmenin sonucunu belirleyen girdileri kontrol edebiliyorsa şayet, neden multi-milyon dolarlık bir sözleşme, tamamen merkezi olmayan bir blok zincirinde akıllı bir sözleşme olarak işlev görsün ki? Değil mi?

Merkezi bir oracle, akıllı sözleşmede merkezi bir başarısızlık noktasıdır.

İster Oracle’ı çalıştıran akıllı sözleşme uygulamasının geliştirme ekibi olsun ister üçüncü taraf bir oracle hizmetine güvensin, her iki senaryo da tek bir varlığa Oracle’ın kontrolü yoluyla sözleşmeyi etkilemek için aşırı güç verir. Merkezileştirilmiş oracle operatörü en iyi niyetle çalışabilse de, hala, tümü kullanıcıların fonlarını büyük riske sokan kesintiler, DDOS saldırıları, hack’ler ve kazara yetersizlik gibi günümüzün tüm ortak merkezi sorunlarına maruz kalırlar.

En asil merkezi varlıklar bile, sözleşmenin değeri ölçeklendiğinde baskı altına girebilir ve onları rüşvet, gözdağı ve düzenleyici baskıya açar ve sonuçta merkezi Oracle’ın işleyişine dahil olan yalnızca bir kişinin haydut olması gerekir. Bu model ölçeklenebilir değildir ve merkezi olmayan altyapının güvenli ve güvenilir otomasyonun temel itici gücü olduğu fikrine uymaz.

Her ne kadar Blok zinciri konsensüsüne ulaşmakla kıyas edildiğinde oracle sorununun çözümüne farklı yaklaşımlar getirilse de,bu eksikliklerin üstesinden gelmek için, oracle’ların bir blok zincirinin aynı güvenlik ve güvenilirlik garantilerini yaratması gerekir.

Chainlink: Güvenli ve Güvenilir Oracle’lar Standardı :)

Chainlink, oracle katmanına bir açıklık ve yenilik getirme maksadıyla herhangi bir kullanım durumuna özelleştirilmiş şekilde çalışabilen bir oracle standardı geliştirdi. Ayrıca Chainlink tarafından geliştirilen bu oracle çözümü çok farklı durum ve kombinasyonlarda kullanılabilecek olup, kullanıldığı duruma garantiler sağlayan merkeziyetsiz bir oracle ağıdır.

  • Açık kaynak — açık kaynak teknolojisi olmak, daha geniş blok zinciri topluluğunun, Chainlink’in kaynak kodunun ve işlevlerinin güvenliğini ve güvenilirliğini bağımsız olarak doğrulamasını ve ayrıca iyileştirilmesine katkıda bulunmasını sağlayacaktır.
  • Harici Bağdaştırıcılar — düğümlerin API anahtarlarını güvenli bir şekilde saklamasına ve hesap oturumlarını yönetmesine olanak tanır, akıllı sözleşmelerin parola/kimlik bilgileri korumalı olanlar da dahil olmak üzere herhangi bir harici sistemden ve API’den veri almasına olanak tanır.
  • Ademi merkeziyetçilik — düğüm ve veri kaynağı düzeyinde ademi merkeziyetçiliğin kullanılması, hiçbir düğümün veya veri kaynağının tek bir arıza noktası olmamasını sağlayarak kullanıcılara verilerin zamanında teslim edileceğine ve manipülasyona karşı dirençli kalacağına dair güçlü garantiler sağlar.
  • Veri İmzalama — düğümlerin akıllı sözleşmelere sağladıkları verileri kriptografik olarak imzalamalarına sahip olmak, kullanıcıların hangi düğümlerin veri gönderdiğini belirlemelerine ve performans kalitelerini belirlemek için geçmiş geçmişlerine bakmalarına olanak tanır.
  • Hizmet Anlaşmaları — talep eden akıllı sözleşme ile oracle sağlayıcısı arasında, oracle hizmetinin şartlarını ve performans için cezaları/ödülleri özetleyen bağlayıcı zincir üstü anlaşmaların kullanılması, kullanıcılara zincir dışı veri taleplerinde uygulanabilir garantiler sağlar.
  • İtibar Sistemleri — imzalanmış zincir üstü verileri itibar sistemlerine beslemek, kullanıcıların hangi düğümlerin iyi olduğu ve hangi düğümlerin başarılı işler, hizmet verilen müşteriler, ortalama yanıt süresi vb. gibi çeşitli metriklere dayalı olmadığı konusunda bilinçli kararlar vermelerini sağlar.
  • Sertifika Hizmetleri — Düğümlerin herhangi bir sayıda sertifika alarak kullanıcılara güvenliklerini ve güvenilirliklerini artırmalarını sağlamak, KYC (Know Your Customer- Müşterini Tanı), düğümün coğrafi konumu, altyapılarının güvenlik incelemeleri ve daha fazlası gibi belirli anahtar garantiler sağlayabilir- buna ek olarak daha gelişmiş şifreleme (sıfır bilgi kanıtı gibi) ve donanım (güvenilir yürütme ortamları gibi) için esneklik sağlayabilir, oracle’ların verilerin kaynağını akıllı bir sözleşmeyle kanıtlamasını sağlayabilir(örneğin belirli bir sunucudan gelen belirli veriler), verileri saklama gibi ek işlevleri gerçekleştirmesini de sağlar. Oracle’ın kendisinden gizli, zincir dışı hesaplama yapması ve daha fazlası da mümkündür.

Bunlar, son derece güvenli ve güvenilir bir Oracle mekanizması sağlamak için kullanıcılara bir dizi garanti sağlayan ve Chainlink tarafından sunulan birçok özellikten yalnızca birkaçıdır. :) Gelecekteki Eğitim makalelerinde, Chainlink Ağı hakkında daha eksiksiz bir anlayış elde etmek için her birinin daha derinlerine ayrıntılı olarak değineceğiz.

Bu temel özellikleri Chainlink üzerinde inşa ederek, herhangi bir blok zincirindeki akıllı sözleşmeler, artık temel determinizm değerinden ödün vermeden zincir dışı verilere erişebilir ve veriye dayalı otomasyonun geleceğini inşa etmek için sağlam bir temel sağlar.

Blockchain ekosisteminde düzenlediğimiz etkinliklerden haberdar olmak için Meetup sayfamıza kaydolabilir, Telegram grubuna girebilir, Twitter’dan takip edebilirsiniz!!

Nasıl ulaşacağınızı biliyorsunuz! Görüşmek üzere ❀

Website | Medium | Twitter | Telegram |

--

--