
DeFi'de oracle nedir? Fiyatları ve kredileri belirler.
DeFi'de bir oracle, dış verileri getirip doğrulayan ve yayınlayan ara katmandır; en yaygın olarak piyasa fiyatlarını on-chain olarak yayınlar, böylece akıllı sözleşmeler yalnızca blockchain durumundan hesaplayamadıkları mantığı yürütmek için bu verileri kullanabilir. Borç verme ve perpetual sözleşmelerde, o oracle fiyatı bir UI referansı değil, borçlanma gücünü ve tasfiye tetikleyicilerini belirleyen yürütülebilir bir girdi olarak işlev görür.
Anahtar Çıkarımlar
- Bir DeFi oracledış verileri getirip doğrulayan ve yayınlayan ara katmandır; en yaygın olarak token fiyatlarını on-chain olarak yayınlar, böylece akıllı sözleşmelerfinansal mantığı yürütebilir.
- Fiyat akışları baskındır çünkü protokoller teminatı değerlemek için dış bir referansa ihtiyaç duyar, teminatbelirlemek, borçlanma gücünü ayarlamak ve tetikleyici oluşturmak için.tasfiyelerotomatik olarak.
- Tek kaynaklı oracle tasarımları, bir kötü fiyat verisinin birçok sözleşmenin 'doğru' bir şekilde kayıplara yol açacak şekilde yürütülmesine neden olabileceği yapısal bir tek hata noktası yaratır.
- Protokoller, toplu kaynaklar ve TWAP-tarzı düzeltmeler ile oracle manipülasyon riskini azaltır, böylece bir bloktaki bozulmaların istismar edilmesi daha zor hale gelir.
Oracle fiyatlarının kredi ve sürekli sözleşmeler için yürütülebilir girdiler haline nasıl geldiği
Pratikte, bir oracle akışı, kuralların uygulandığı anda okunacak değer olarak kodlanmış sözleşmelerin 'resmi' fiyatı haline gelir. Bir kredi piyasası, en son zincir içi oracle güncellemesini alır, teminatı bir dolar değerine dönüştürür ve ardından sağlık faktörlerini, borç limitlerini ve tasfiye eşiklerinibu tek sayı ile karşılaştırır.Perpsve marjinal sistemler finansman, PnL ve tasfiyeler için aynı şeyi yapar.
Bu yüzden fiyatın nereden geldiği, nasıl filtrelendiği veya toplandığı ve ne sıklıkla güncellendiği gibi detaylar önemlidir: oracle bir referans alıntısı değildir, tasfiye motorunun gerçekten yürüttüğü girdidir.
Tüccarların önemsemesi gereken neden mekanik. Bir fiyat zincir üzerinde olduğunda, yürütülebilir hale gelir. Borç verme protokolleri bu sayıyı teminatı değerlemek, borç limitlerini belirlemek ve bir pozisyonun yetersiz teminatlı olup olmadığını karar vermek için kullanır. Perps ve sentetik sistemler bunu pozisyonları kapatmak için kullanır.
Oracle yanlış veya eski bir değer yazdırırsa, akıllı sözleşme yine de belirleyici bir şekilde yürütülür, bu da tasfiye motorunun “gerçek” piyasa orada işlem yapmamış olsa bile devreye girebileceği anlamına gelir.
Bu aynı zamanda “bir oracle bir fiyat widget'ıdır” ile “bir oracle risk yönetimidir” arasındaki farkın ekranda nasıl göründüğünü gösterir. Bir kullanıcı arayüzü gecikebilir, bir grafik yanlış olabilir ve hiçbir şeyin olması gerekmez. Bir oracle güncellemesi farklıdır çünkü bu, sözleşme matematiğine girdi sağlar.
Bir kötü yazdırma, beslemeyi referans alan her hesapta borçlanma gücünü atomik olarak değiştirebilir ve tasfiyeler sadece sözleşmenin kurallarını takip etmesidir.
Fiyatlar, DeFi'nin çoğunlukla teminatlı finans olması nedeniyle baskın oracle kullanım durumudur. Dış bir referans fiyat olmadan, bir protokol bir depozitonun kaç dolar değerinde olduğunu, bunun karşılığında ne kadar borç alınabileceğini veya bir kredinin tasfiye edilip edilmeyeceğini hesaplayamaz.
DeFi neden oraklara ihtiyaç duyar
Akıllı sözleşmeler güvenli bir şekilde “internet kontrolü” yapamaz çünkü blok zincirleri kapalı, belirleyici sistemlerdir. Bir sözleşme yalnızca zincir üzerindeki durumu okuyabilir. Bir borsa API uç noktası, bir web sitesini tarayamaz veya geleneksel bir piyasa veri terminalini sorgulayamaz ve yine de her doğrulayıcının aynı sonucu bağımsız olarak doğrulamasını sağlayamaz.
Bu kısıtlama oracle sorununu yaratır: DeFi, dış referans verileri gerektiren finansal eylemleri otomatikleştirmek ister, ancak temel zincir bu verileri yerel olarak içe aktaramaz. Oraklar, dışarıdaki bilgileri alıp zincirin doğrulayabileceği ve tüketebileceği bir biçimde sunarak bu boşluğu kapatmak için vardır.
DeFi'nin neden oracle'lara ihtiyacı olduğu soyut bir soru değil, merkeziyetsizlik ile ilgilidir. Bir borç verme piyasasının teminat değerini ve tasfiye eşiklerini güvenli bir şekilde belirleyip belirleyemeyeceği ile ilgilidir. Eğer bir protokol güvenilir bir fiyatı gözlemleyemiyorsa, borç verme gücünü güvenli bir şekilde belirleyemez.
Eğer manipüle edilebilir bir proxy kullanıyorsa, örneğin ince likiditeye sahip bir spot piyasa, yalnızca bir işlem için “doğru” olan bir fiyata dayanarak marj çağrılarını uygulamak zorunda kalabilir.
Bağımlılık grafiği önemlidir. Bir oracle'ı okuyan herhangi bir sözleşme, o oracle'ın kaynaklar, güncelleme sıklığı ve hata yönetimi ile ilgili varsayımlarını devralır. Birden fazla protokol aynı oracle beslemesini paylaştığında, oracle ortak bir altyapı parçası haline gelir. Bu, beslemenin sağlam olduğu durumlarda bir güç, kırılgan olduğu durumlarda ise sistemik bir risk olabilir.
Oracle'ların çalışma şekli: zincir dışı verilerden zincir içi yürütmeye
Tipik bir oracle boru hattı dört adımdan oluşur: kaynak seçimi, veri alma, toplama veya doğrulama ve zincir içi yayınlama. Kaynaklar borsa fiyatları veya diğer dış API'ler olabilir. Oracle operatörleri bu değerleri alır, filtrelemek veya birleştirmek için kurallar uygular ve ardından bir sonucu zincir içi bir işlemle yayınlar.
Akıllı sözleşmeler bu zincir içi değeri okur ve teminat oranlarını güncellemek veya tasfiyeleri tetiklemek gibi eylemleri gerçekleştirir.
Güncelleme tasarımı, riskin zamanlamaya dönüştüğü yerdir. Chainlink, itme tabanlı güncellemeler ile çekme tabanlı güncellemeler arasında net bir ayrım çizer. İtme tabanlı beslemeler, bir takvimde veya bir eşik karşılandığında zincir içi olarak yayın yapar, böylece zincir her zaman güncel bir değere sahip olur.
Çekme tabanlı tasarımlar verileri zincir dışı olarak güncel tutar ve yalnızca bir kullanıcı veya protokol ihtiyaç duyduğunda zincir içine getirir, bu da yayınlama için kimin ne zaman ödeme yapacağını değiştirir.
Hiçbir model varsayılan olarak “güvenli” değildir. İtme tabanlı güncellemeler bayatlığı azaltabilir ancak saldırganların inceleyebileceği öngörülebilir bir sıklık yaratabilir. Çekme tabanlı güncellemeler zincir içi maliyeti azaltabilir ve kullanıcıların ne zaman yayın yapacaklarını seçmelerine izin verebilir, ancak aynı zamanda sessiz bir dönemin ardından ilk zincir içi güncellemenin kritik bir baskı haline geldiği anlar yaratabilir.
Chainlink oracle'larının nasıl çalıştığı kullanıcılar için önemlidir: itme ve çekme seçeneği maliyet, tazelik ve saldırı penceresinin boyutunu değiştirir. Oracle sadece bilgi iletmekle kalmaz. Protokolün tasfiye motorunun yeni bir girdi alacağı zamanı belirler.
Oracle güven modelleri ve konsensüs: merkezi vs merkeziyetsiz
İlk güven kararı, protokolün tek bir yayıncıya mı yoksa birden fazla yayıncıya mı güvendiğidir. Merkezi bir oracle basittir: bir varlık değeri yayınlar. Hata durumu da basittir. Eğer o yayıncı yanlışsa, tehlikeye düşmüşse veya çevrimdışıysa, her bağımlı sözleşme bu sorunu miras alır.
Merkeziyetsiz oracle ağları, birden fazla bağımsız operatör ve birden fazla kaynak kullanarak o tek hata noktasını ortadan kaldırmayı hedefler ve ardından bunları tek bir zincir üzerindeki yanıta toplar. Yüksek seviyede, merkeziyetsiz oracle'lar konsensüse nasıl ulaşır şöyle görünür: birkaç düğüm aynı veriyi gözlemler, gözlemlerini gönderir ve bir toplama mekanizması, sözleşmelerin okuduğu nihai bir değer üretir.
Merkeziyetsizlik, herhangi bir tek operatöre olan bağımlılığı azaltır, ancak doğruluğu veya tazeliği garanti etmez. Sistem hala hangi kaynakların sayılacağı, aykırı değerlerin nasıl ele alınacağı ve güncellemelerin ne zaman yayınlanacağı hakkında kurallara ihtiyaç duyar.
Bir akış merkeziyetsiz olabilir ve yine de ince piyasalara, yavaş bir ritme veya bozulmuş bir girdinin baskın olmasına izin veren toplama kurallarına dayanıyorsa kırılgan olabilir.
Bu aynı zamanda fiyat oracle'ı ile veri oracle'ı arasındaki farkın önemli olduğu yerdir. Bir fiyat oracle'ı, teminat değerlemesi ve tasfiye tetikleyicileri gibi finansal mantığa doğrudan giden piyasa fiyatlarını sağlar. Bir veri oracle'ı daha geniştir ve fiyatların ötesinde birçok türde dış bilgi iletebilir. Fiyat akışları, kaldıraçlı pozisyonlar için tasfiye yolunun doğrudan üzerinde yer alır, bu nedenle en fazla düşmanca dikkati çekerler.
Oracle saldırıları ve savunmaları: manipülasyon, flash kredi ve TWAP
Bir oracle saldırısı, bir saldırganın bir akıllı sözleşmenin yanlış dış verileri, en sık yanlış bir fiyatı tüketmesine neden olduğu bir istismar türüdür ve sözleşmenin o kötü girdiye karşı işlem yapmasından kar elde eder. Sözleşme "kafası karışmış" değildir. Verilen değerle kodlandığı şeyi tam olarak yapmaktadır.
Oracle hack'leri olarak adlandırılan çoğu çirkin olay, fiyat manipülasyonu sorunlarıdır. Saldırgan, oracle'ın güvendiği belirli bir piyasayı hedef alır, fiyatı kısa bir süreliğine yükseltir ve ardından o geçici fiyatı aşırı borç almak, teminatı boşaltmak veya tasfiyeleri zorlamak için kullanır. Flash krediler, bir saldırganın tek bir işlem içinde büyük boyutlar dağıtmasına izin verdiği için hızlandırıcıdır.
Halborn, 2023 yılına kadar en önemli 100 DeFi hack'inin analizine dayanarak, fiyat manipülasyonu saldırılarının %62.1'inin flash krediler içerdiğini rapor etmektedir. Halborn ayrıca hatalı oracle'ların fiyat manipülasyonu saldırılarının başlıca nedeni olduğunu ve 2023'teki fiyat manipülasyonu saldırılarındaki kayıpların %49'undan fazlasını oluşturduğunu belirtmektedir.
Protokoller, oracle manipülasyonunu nasıl önler sorusu, tek blok bozulmalarını kârsız hale getirmeye dayanır. İki yaygın savunma sürekli olarak ortaya çıkar. İlki, tek bir mekan veya havuzun baskıyı belirleyememesi için birden fazla kaynak ve operatör arasında toplama yapılmasıdır. İkincisi, bir saldırganın bir ticaret veya bir blok için değil, zaman içinde bozulmuş bir fiyatı sürdürmesini zorunlu kılan TWAP tarzı yumuşatma yöntemidir.
Tek kaynaklı tasarımlar sadece "daha az merkeziyetsiz" değildir. Bunlar yapısal bir tek hata noktasıdır. Bir kötü baskı, aynı numarayı okuyan birçok sözleşmeye yayılabilir ve bu kaskad, geçerli bir yürütme olarak kabul edilir: borç limitleri güncellenir, marj çağrıları tetiklenir, tasfiyeler başlar ve kötü borç, protokol tasarımına bağlı olarak sosyalize edilebilir.
DeFi oracle'ları hakkında yaygın yanlış anlamalar
"Bir oracle sadece bir fiyat beslemesi" ifadesi işi kaçırıyor. Oracle, dış verileri zincir üzerinde alıp doğrulayan ve yayınlayan ara yazılımdır. Fiyatlar, teminat değerlemesi ve tasfiye mantığına doğrudan bağlandığı için baskın kullanım senaryosudur, ancak kavram bir ticker'dan daha geniştir.
"Akıllı sözleşme denetlendiyse, güvendeyim" ifadesi kod doğruluğunu girdi doğruluğu ile karıştırıyor. Denetlenen kod, oracle girişi yanlış veya eskiyse pozisyonları yine de tasfiye edebilir. İçeriği kötü olan, dışarıda da kötü olur burada bir slogan değil, tasfiye yoludur.
"Merkeziyetsiz oracle başarısız olamaz" ifadesi merkeziyetsizliği bir garanti olarak ele alıyor. Toplama, tek bir operatöre veya kaynağa olan bağımlılığı azaltır, ancak temel kaynaklar ince, ilişkili veya manipüle edilebilir olduğunda veya güncelleme sıklığı eski veriler yaratıyorsa, besleme yine de yanlış olabilir.
"Oracle saldırıları egzotik" ifadesi yanlıştır. Birçok saldırı, doğrudan fiyat manipülasyonu olup, flashloan'lar sermaye gereksinimini geçici hale getirir. Halborn'un 2023 verileri, fiyat manipülasyonu saldırılarının %62.1'inin flashloan içerdiğini gösteriyor ve bu, saldırganların tek işlem bozulmaları etrafında plan yaptığını hatırlatıyor.
"Spot DEX fiyatı adil fiyatla eşittir" ifadesi uzun kuyruklu varlıklar için pahalıdır. İnce likidite, tek bir işlemin spot fiyatı yeterince değiştirebileceği anlamına gelir. Eğer bir oracle, bu spot fiyatı doğrudan toplama veya TWAP tarzı düzeltme olmadan okursa, protokol bir ticaret bozulmasını piyasa olarak ele alabilir.
Alıntı
Oracle'a arka planda bir detay olarak yaklaşan insanların, bir pozisyonun "birdenbire" tasfiye edilmesiyle şaşırdığını izledim. Sözleşme uyanıp şiddet seçmedi. Bir numara okudu ve yürüttü. Eğer o numara ince bir spot piyasadan veya tek kaynaklı bir beslemeden geldiyse, tasfiye tetikleyicisi her zaman kırılgan bir girdi üzerinde duruyordu.
Temiz bir duruş, oracle'ı bir broker'ın marj sistemi gibi ele almak, bir grafik gibi değil. Bir kredi piyasasına veya perps mekanına dokunmadan önce, fiyatın nereden geldiği, nasıl güncellendiği ve bir veya iki blok için yanlışsa ne olacağına dair üç cevap istiyorum. Halborn'un fiyat manipülasyonu saldırılarının %62.1'inin flashloan içerdiği istatistiği, "bir blok garipliği"nin varsayımsal olmadığını hatırlatıyor. Bu, saldırı modelidir.
Kaynaklar
Sıkça Sorulan Sorular
DeFi neden oracle'lara ihtiyaç duyar?
Akıllı sözleşmeler yalnızca zincir üzerindeki durumu okuyabilir ve güvenli bir şekilde zincir dışı API'leri veya web fiyat beslemelerini arayamaz. Oracle'lar, protokollerin teminat değerlerini, borçlanma gücünü ve tasfiye eşiklerini hesaplayabilmesi için zincir üzerinde dış referans verileri yayınlar.
Chainlink oracle'ları nasıl çalışır?
Chainlink, akıllı sözleşmeler için dış verileri zincir üzerine getirmek amacıyla merkeziyetsiz bir oracle ağı kullanır. Zamanlamaya göre veya eşikler karşılandığında yayınlanan itme tabanlı güncellemeleri, zincir dışı tutulan ve gerektiğinde zincir üzerine getirilen çekme tabanlı güncellemelerden ayırır.
DeFi'de bir oracle saldırısı nedir?
Bir oracle saldırısı, bir saldırganın bir akıllı sözleşmenin yanlış dış verileri, en sık yanlış bir fiyatı tüketmesine neden olduğu ve bu girdiye karşı sözleşmenin yürütülmesinden kâr elde ettiği durumdur. Birçok vaka, geçici olarak çarpıtılmış bir piyasa baskısının protokol tarafından gerçek olarak kabul edildiği fiyat manipülasyonlarıdır.
Protokoller oracle manipülasyonunu nasıl önler?
Protokoller genellikle tek bir mekan yerine merkeziyetsiz veya toplu kaynaklar kullanarak ve TWAP tarzı düzeltmeler uygulayarak manipülasyon riskini azaltır. Bu seçimler, bir blok veya bir işlem çarpıtmalarının istismar edilmesini zorlaştırır, bunlar arasında flashloan kaynaklı hareketler de bulunmaktadır.
Fiyat oracle'ı ile veri oracle'ı arasındaki fark nedir?
Bir fiyat oracle'ı, teminat değerleme, ticaret ve tasfiyeler gibi finansal mantığa doğrudan beslenen piyasa fiyatlarını sağlar. Bir veri oracle'ı daha geniştir ve akıllı sözleşmenin ihtiyaçlarına bağlı olarak fiyatların ötesinde birçok türde dış veriyi iletebilir.