Daniel Von Fange'ın yazdığı
Derleyen: angelilu, Foresight News
Bağımsız araştırmacı Daniel Von Fange dün X platformunda Curve'ün oracle manipülasyonu riski taşıdığını ve bu riskin bir saldırı sırasında tespit edilmesinin zor olduğunu ortaya koyan bir makale yayınladı. Oracle manipülasyonu, oracle'ın harici olaylar veya gerçek dünya hakkında hatalı verileri raporlamasına neden olabilir ve oracle'a bağlı protokolleri manipülasyon riskine sokar. Daniel Von Fange, etkilenebilecek ilgili ekiplere bilgi verildiğini söyledi.
Curve'un kurucusu Michael Egorov, topluluktaki soruna şöyle yanıt verdi: "Bu risk, havuzların eski sürümlerinde mevcut olabilir. Havuzların eski sürümleri crvusd'da kullanılmaz ve oracle kullanımı önerilmez." Daniel de sözlerini doğruladı. Von Fange'in ifşa edilmesinin riskleri gerçektir.
Ancak Curve yazarı Fiddy, bağımsız araştırmacının bu bilgiyi tartışmasız olarak kamuya açıklama şeklinden duyduğu hoşnutsuzluğu dile getirdi ve Daniel Von Fange tarafından açıklanan güvenlik açıklarının daha önce özel olarak tartışıldığını ancak saldırganın doğruluğu artırmak istediğine inandığını söyleyerek bir açıklama yayınladı. Gaz ücretlerini artırmanın maliyeti yüksektir ve dış denetim de bunu düşük etki olarak sınıflandırmıştır. Araştırmacının ortaya çıkardığı güvenlik açığı, Curve'ün last_price fiyatını kullanan eski kripto takas algoritmasıyla ilgili, ancak daha yeni kripto takas uygulaması, bu tür sorunları çözebilecek AMM durum fiyatını kullanıyor. Buna ek olarak, yAuditDAO şu anda düzeltilmekte olan bazı oracle hataları buldu.Kimse bu oracle'ları kullanmıyor ve bu stabilcoin ticaret havuzlarındaki LP'ler (likidite sağlayıcıları) etkilenmedi.
Ancak bazı ekipler, açıklanan risklere göre güvenliği artıracak şekilde protokolü ayarlamaya başladı bile. Yearn Finance geliştiricisi @storming0x ayrıca Daniel Von Fange tarafından açıklanan risklere yanıt vererek şunları söyledi: "Potansiyel saldırı yollarını azaltmak için Chainlink'in artıklık mekanizmasını kullanan bir sözleşme dışında Yearn sözleşmeleri etkilenmez. yeni sürümü yeniden dağıtın."
Daniel Von Fange'nin Eğri kehanetindeki fiyat manipülasyonu riskine ilişkin açıklamasının tam metni aşağıdadır:
Geçtiğimiz iki hafta boyunca Curve'ün fiyat kahinlerini araştırdım ve son derece sıra dışı davranışlar keşfettim.
Bu kehanetler düşündüğünüz gibi çalışmıyor; onları manipüle etmek sandığınızdan daha kolay ve normal koşullar altında ters gidebilirler.
Kısa genel bakış: Çoğu havuzda, bir saldırgan Curve'ün fiyat kehanetini tek bir blokta normal fiyatın 10 katı ile 500 katı arasında manipüle edebilir. Ve manipülasyon gizlenebilir, böylece havuza baktığınızda manipüle edildiğine dair hiçbir işaret kalmaz.
Pek çok Eğri havuzu vardır ve hiç kimse farklı havuzlardaki kod tabanlarının sayısını doğru bir şekilde sayamaz.
Yazdıklarım belirli havuzlar için geçerli olabilir veya olmayabilir. Farklı havuzların farklı güvenlik açıkları vardır. Belki bazı havuzlarda hiç delik yoktur.
Curve ekibi raporu alarak, tartışarak mükemmel bir iş çıkardı ve birkaç dakika içinde CrvUSD'nin bu sorunlardan etkilenmediğini doğruladı.
Ayrıca ana ağda Curve fiyat kahinlerini kullanan yaklaşık 100 sözleşmeyi de kontrol ettim ve uygun olan yerlerde ilgili ekiplere bilgi verdim.
Bu güvenlik açığıyla ilgili önemli bir sorun, fiyat 1:1'e yakın olmadığında veya işlem ücreti yüksek olduğunda last_price'ın yanlış hesaplanabilmesidir.
Öncelikle ücret, last_price hesaplamasına dahil edilmez; bu da, gerçek işlem veya havuz bakiyesinden farklı bir sayı kullanılmasına neden olur.
EMA fiyat oracle'ı last_price tarafından yönlendirilir. Last_price yanlış olduğunda fiyat kahini yanlış hedef fiyata doğru ilerlemeye başlayacaktır.
Normal ticarette, havuzdaki gerçek mevcut fiyattan yüzde birden fazla sapan fiyat kahinleri pozisyon fiyatları gördüm. En kötü senaryo daha kötü olabilir (grafikte normalleştirilmiş fiyatlar).
Havuza bağlı olarak bu drift hatası gerçek fiyattan daha yüksek veya daha düşük olabilir.
En büyük sorun, manipülasyon sırasında last_price hatasının, manipüle edilen gerçek fiyattan çok daha yüksek olabilmesi ve bu da havuz oracle'ının etkili bir şekilde manipüle edilme olasılığını önemli ölçüde artırmasıdır.
Küçük bir işlem bile nihai fiyat/oracle fiyatındaki sapmayı düzeltebilir ve bazı saçma durumlara yol açabilir.
Küçük bir işlem bile nihai fiyat/oracle fiyatındaki sapmayı düzeltebilir ve bazı saçma durumlara yol açabilir.
Büyük fiyat dalgalanmalarının ve last_price hesaplama hatalarının üst üste binen etkisi nedeniyle saldırganlar, arbitrajcılara karşı mücadele etmek için düzinelerce blokta yüksek fiyatları korumak için büyük maliyetler harcamadan bir sonraki bloktaki EMA fiyat kahinini manipüle edebilir.
Teorik olarak bir saldırgan, bu operasyonu gerçekleştirmek için gerekli olan ardışık iki bloğun madenciliğini kontrol edebilir. Bir saldırganın böyle bir fiyat saldırısını gerçekleştirmek için yeterli sermayeye sahip olması gerekirdi, ancak geçmişteki saldırganların çoğunun elinde on milyonlarca dolar vardı.
Bunu bir kenara bırakarak, Curve fiyat kehaneti manipülasyonuna karşı savunmaya yönelik ortak stratejiler ve bunların etkinliği hakkında konuşalım.
Curve v1 havuzunda manipülasyonu, gerçek fiyatı, fiyat kehanetini, son_fiyatı ve EMA fiyatını tespit etmeye çalışmak için kullanılabilecek dört sayı bulunur. Ne yazık ki, Price_Oracle fiyatını manipüle etmeye yönelik tek bir işlem, tek bir manipülasyondan sonra bunların hepsini aynı sayıya sıfırlayabilir.
Curve v2 havuzunun fiyat ölçeğini değiştirmek, fiyat kehanetinden daha zordur. Daha yavaş değişir ve ilerlemek için gerçek işlem ücreti maliyetleri gerekir. Eğer bu hızlı fiyat kahini yavaş fiyat ölçeğiyle eşleşiyorsa durum stabildir, değil mi?
HAYIR! Temel saldırı sorunu, gerçek fiyat, hızlı kehanet ve yavaş ölçek olmak üzere üç rakamı hizalamaktır. Gerçek fiyatın kontrolü kolaydır çünkü anında manipüle edilebilir. Sorun daha sonra diğer ikisi arasında bir kesişme noktası tasarlamaya dönüşür.
Saldırgan kısa süreliğine fiyatı şişirir, ardından bir sonraki blokta normale döner ve düşen fiyat kahini yükselen fiyat ölçeğiyle karşılaşıncaya kadar birkaç bloğun saldırmasını bekler. Bir bloğun Oracle'ın kafasını karıştırmaya yetmesi için gerçek fiyatın yalnızca yüksek tutulması gerekir ve bunu fiyat_ölçeği takip edecektir.
Birçok oracle, kullandıkları fiyatı Eğri oracle fiyatından maksimum 1:1 değerine sınırlayan bir sınır kullanır. Bu güzel ve aptalca yüksek değerleri dışlıyor. Bununla birlikte, bir varlığın sabitlemesi gerçekten kaldırılmışsa, bir saldırganın varlığı düşük bir fiyattan satın alabileceğini ve daha sonra onu yeniden sabitlenmiş gibi görünecek şekilde değiştirebileceğini unutmayın.
Protokol bazen bir minimum değer belirler ve Eğri fiyat kahininin yanıtı sabitin belirli bir yüzdesinin altına düşerse bu dikkate alınmaz. Ancak bir varlık gerçekten ayrıştırıldığında fiyatı göz ardı ederseniz, fiyat kehanetine sahip olmanın tüm amacını boşa çıkarmış olursunuz.
Bir diğer yaygın strateji ise başka bir AMM sisteminin fiyatına karıştırmaktır. Çoğu, diğer havuzların kalitesine ve kullanım özelliklerine bağlıdır. Daha az sıvıysa ve manipüle edilmesi daha kolaysa, amacı boşa çıkarıyor demektir.
Kötü + Kötü = Kötü.
Bir diğer yaygın strateji ise başka bir AMM sisteminin fiyatına karıştırmaktır. Çoğu, diğer havuzların kalitesine ve kullanım özelliklerine bağlıdır. Daha az sıvıysa ve manipüle edilmesi daha kolaysa, amacı boşa çıkarıyor demektir.
Kötü + Kötü = Kötü.
Stabilcoin/stablecoin alım satım çiftleri için yeni Eğri havuzu dahili olarak last_price'ı 1:1 değerinin 2 katı ile sınırlandırıyor. Bu, blok saldırısını önler çünkü last_price aptalca yüksek değerlere itilemez, dolayısıyla EMA'ya aşırı yük biner.
Ancak yanlış varlıkların yasal olarak ayrıştırılması yanlış olur.
Teminat varlıklarını fiyatlandırmak için Eğri havuzlarını kullanmak istiyorsanız muhtemelen bunu yapmamalısınız.
Daha yeni havuzların saldırı maliyetleri genellikle daha yüksektir. Hileli havuzun pazar üzerinde küçük bir etkisi varsa (belki de sadece gelir dağılımını korumak için) ve havuz simülasyonuna yönelik saldırılar maliyetliyse bu bir seçenek olabilir.
Son olarak yazar, ikilinin kullanılan havuzlar üzerinde gerçek saldırı simülasyonları yapmasını, fiyat kahininin davranışını varsayımlara veya teorilere dayalı olarak tahmin etmek yerine, fiilen kullanılan havuzlar üzerinde ayrıntılı simülasyon testleri yapılmasını önermektedir. Manipülasyon saldırılarını simüle ederek havuzun farklı durumlarda nasıl performans göstereceğini daha iyi anlayabilirsiniz.
Aşağıdaki grafik, son 90 gün içinde Curve oracle kullanımındaki artışın grafiğidir:
Bazı Curve havuzlarının iyi performans gösteren fiyat kahinleri var ve onların tuhaf davranmasını sağlayamıyorum ve tam olarak iyi performans gösteren bir EMA'dan beklediğim şeyleri yapıyorlar. Ama yine de kontrol etmek gerekiyor...
Tüm Yorumlar