Back to Blog

Yeniden Tedarik Protokolü Saldırı Olayının Derinlemesine Analizi ve Değerlendirmesi

Phalcon
July 6, 2025
9 min read

26 Haziran 2025'te Ethereum ana ağında dağıtılan Resupply stablecoin protokolü saldırıya uğradı ve yaklaşık 10 milyon dolar değerinde varlık kaybına yol açtı. İlgili sözleşmenin fiyat oracle uygulamasındaki bir sorun nedeniyle, saldırgan yeni oluşturulan düşük likiditeye sahip Piyasalar için ödünç alınan varlığın (Resupply tarafından ihraç edilen reUSD) göreli fiyatını (yani ödünç alınan varlık ile teminat varlığı arasındaki döviz kuru) bir bağış saldırısı aracılığıyla manipüle ederek sıfıra düşürebildi. Bu durum, saldırganın varlık sağlık kontrolünü atlamasına ve kâr elde etmek için büyük miktarda reUSD ödünç almasına olanak tanıdı.

BlockSec'in ağda ilk olarak kamuoyu uyarısı yayımlayıp ön analiz sunmasının (Tweet1, Tweet2) ardından Resupply da bir resmi duyuru yayımladı; ancak pek çok teknik ayrıntıya değinmedi. Bu makale daha ayrıntılı bir analiz sunacaktır. Öte yandan saldırının ardından, proje tarafı ve paydaşları arasında toplulukta yoğun tartışmalar da yaşandı. Bu makale, okuyuculara referans olması amacıyla protokolün arkasındaki karmaşık ekolojik ilişkileri de ele alıp inceleyecektir.


1. Arka Plan

1.1 Resupply Protokolü Hakkında

Resupply, Curve ekosistemine ait merkeziyetsiz bir stablecoin protokolüdür. Resupply tarafından ihraç edilen stablecoin reUSD olarak adlandırılmaktadır. Bu, harici platformlardaki borç verme piyasalarında faiz kazanan diğer stablecoin'ler — crvUSD ve frxUSD dahil — tarafından desteklenen teminatlı borç pozisyonlarına (CDP'ler) dayalı merkeziyetsiz bir stablecoin'dir. Kullanıcılar, stablecoin varlıklarının yeniden finansmanını sağlamak amacıyla reUSD ödünç almak için crvUSD ve frxUSD sağlayabilir.

Daha ayrıntılı belirtmek gerekirse, kullanıcılar zincir üzerinde dağıtılmış bir Resupply Piyasasında borç verme ile ilgili işlemler gerçekleştirebilir. Piyasaların oluşturulması ve davranışı DAO aracılığıyla yönetilmektedir. Her Piyasa, teminat varlığı (collateral) olarak bir ERC-4626 Vault belirler ve o Vault'a karşılık gelen varlığı temel (underlying) olarak kullanır. Kullanıcılar, reUSD ödünç almak için Piyasaya teminat (Vault veya Vault'un varlığı) yatırır.

Bu saldırıda yer alan 0x6e90 Piyasası ve 0x0114 Vault'u örnek alındığında, ilgili varlıklar (token'lar) aşağıdaki gibidir:

  • Piyasa 0x6e90

    • temel varlık (underlying): crvUSD
    • teminat (collateral): cvcrvUSD (yani Vault 0x0114)
    • ödünç alınan: reUSD
  • Vault 0x0114

    • varlık (asset): crvUSD (aslında Curve LlamaLend Controller'da, yani aynı zamanda bir Piyasa olan yerde saklanır)
    • teminat (collateral): wstUSR
    • ödünç alınan: crvUSD
    • pay (share): cvcrvUSD (Vault tarafından ihraç edilen ERC-4626 token'ı)

Diğer bir deyişle, kullanıcılar reUSD ödünç almak için bu Piyasaya belirli miktarda cvcrvUSD (ya da pratikte Vault aracılığıyla cvcrvUSD'ye dönüştürülecek olan crvUSD) teminat olarak yatırabilir.


1.2 Sistem bir kullanıcının varlık ödünç almaya uygun olup olmadığını nasıl belirler?

Genel borç verme protokollerine benzer şekilde, Resupply Piyasası da bir kullanıcının pozisyonu üzerinde varlık sağlık kontrolü (isSolvent değiştiricisi aracılığıyla) gerçekleştirecektir.

isSolvent, nihayetinde LTV'yi (Kredi-Değer Oranı) kontrol eden _isSolvent fonksiyonunu çağırır; ödünç alınan varlık ile teminat varlığı arasındaki oranın sistem tarafından belirlenen maksimum değeri (_ltv <= maxLTV) aşmaması gerektiğini şart koşar.

LTV hesaplamasının döviz kuruna (_exchangeRate), yani ödünç alınan varlığın teminat varlığına göre fiyatına (döviz oranına) bağlı olduğu görülmektedir.


2. Saldırı Analizi

2.1 Temel Neden Analizi

Sözleşme kodu açısından değerlendirildiğinde, saldırının temel nedeni Resupply Piyasasının fiyat oracle uygulamasında bir sorun bulunmasıydı. Yeni oluşturulan düşük likiditeye sahip Piyasalar için saldırgan, döviz kurunu bir bağış saldırısı aracılığıyla manipüle edebilir; bu sayede sağlık kontrolünü atlayarak büyük miktarda reUSD ödünç alıp kâr elde edebilirdi.

Döviz kuru nasıl hesaplanır?

Formül aşağıdaki gibidir:

Açıktır ki, getPrices 1e36'dan büyük bir fiyat döndürürse, tam sayı bölümünün aşağı yuvarlama işlemi _exchangeRate = 0 sonucunu doğuracaktır.

Fiyat nasıl manipüle edilir?

Koda göre fiyat aşağıdaki şekilde hesaplanabilir:

Kod precision = 1, DEAD_SHARES = 1000 ve shares = 1e18 olarak ayarladığından:

Son olarak, değişkenler yerine konulduktan sonra fiyat hesaplama formülü şu şekildedir:

Görüldüğü üzere price değerini büyütmek için kritik nokta, total_assets ile totalSupply arasındaki farkı açmak; total_assets'i son derece büyük, totalSupply'ı ise çok küçük tutmaktır. Resupply protokolünün gerçek uygulamasında, formüldeki total_assets temel varlığa (crvUSD) bağlıyken, totalSupply Piyasadaki genel likiditeye karşılık gelen paylara (cvcrvUSD) bağlıdır. Bu durum tam olarak klasik bağış saldırısı senaryosudur.

2.2 Saldırı İşlemi Analizi

Saldırı işlemi [4] incelendiğinde, saldırganın aşağıdaki temel adımları gerçekleştirdiği analiz edilebilir:

  1. Flash loan ile 4.000 USDC ödünç alarak 3.999 crvUSD ile takas etti.

  2. Controller 0x8970'e 2.000 crvUSD bağış yaptı. Bağış öncesinde Controller 0x8970 0 crvUSD tutuyordu. Bağış sonrasında kayıtlı crvUSD miktarı 2000000000000000000000 (18 ondalık basamak ile) oldu.

  3. Vault 0x0114'e yaklaşık 2 crvUSD yatırdı ve 1 pay (cvcrvUSD) aldı. Bu noktada kayıtlı crvUSD miktarı 2002000000000000000001 (18 ondalık basamak ile) oldu.

  4. Piyasa 0x6e90'a 1 birim (yani Vault 0x0114'ün 1 payı) teminat ekledi.

  5. Piyasa 0x6e90'dan 10.000.000 reUSD ödünç aldı. Bu noktada _exchangeRate = 0 olduğundan _ltv = 0 sonucu elde edildi ve _isSolvent kontrolü geçildi.

_exchangeRate neden sıfıra eşitti? Çünkü önceki adımlar aracılığıyla saldırgan, sözleşmeyi aşağıdaki duruma getirecek şekilde manipüle etti:

Döviz kuru hesaplama yöntemini hatırlayalım:

price > 1e36 olduğundan, _exchangeRate = 0.

  1. Ödünç alınan reUSD'yi kâr elde etmek için takas etti.

3. Çıkarılan Dersler

Resupply'daki saldırıya uğrayan Piyasa, Curve'ün şablon sözleşmesine benzer bir fiyat oracle uygulaması kullandı.

Ancak Curve resmi belgeleri bu uygulamanın geçerli olduğu kapsamı zaten belirtmişti — ne yazık ki Resupply, dağıtımında bu uygulanabilirlik uyarısını göz önünde bulundurmamış görünüyor.

4. İlişkiler ve Topluluk Tartışması

4.1 Curve Ekosistemindeki Beş Büyük Projenin Karmaşık İlişki Ağı

Resupply olayının daha derin etkisini anlamak için, öncelikle Curve ekosistemi içindeki beş temel protokol arasındaki karmaşık ilişkilere bakmamız gerekir.

Curve Finance, tüm ekosistemin çekirdeğini oluşturarak likidite havuzları, crvUSD ve LlamaLend protokolünü sağlamakta; bu unsurlar Resupply, Prisma, Convex ve Yearn'ın işleyişinin temelini oluşturmaktadır. Convex, stake etme ve yönetişim yoluyla Curve'ün getirisini optimize eder ve Prisma ile Resupply için ek ödül mekanizmaları sunar. Prisma, Curve'ün LP token'larına ve Convex'in getiri artırma işlevlerine bağımlıyken, Resupply doğrudan Curve'ün LlamaLend'i üzerine reUSD ihraç etmek üzere inşa edilmiş olup Convex ve Yearn tarafından ortaklaşa geliştirilmiştir. Yearn yalnızca Curve havuzlarının getirilerini optimize etmekle kalmaz, aynı zamanda Convex ile iş birliği yaparak Resupply'ın gelişimine de katkıda bulunur.

Curve Finance: Temel platform olarak Curve'ün likidite havuzları (crvUSD havuzu gibi) ve LlamaLend protokolü; reUSD ihraç etmek için Resupply tarafından, LP token'larını stake etmek için Prisma tarafından, getiri optimizasyonu için Yearn tarafından ve yönetişim oylaması için Convex tarafından doğrudan kullanılmaktadır.

Convex: Convex, Curve'ün getiri artırma protokolüdür. Kullanıcılar, daha yüksek CRV ödülleri ve Convex'in CVX token'larını kazanmak için Curve LP token'larını stake edebilir. Convex, Curve'ün yönetişim oy gücünün yaklaşık %50'sini kontrol etmekte ve Prisma ile Resupply için getiri artırma mekanizmaları sağlamaktadır.

Prisma: Prisma, Curve'ün LP token'larını stake eder; kullanıcılar Convex aracılığıyla artırılmış ödüller (cvxPRISMA) elde eder. Prisma, Curve'ün likiditesine ve Convex'in getiri mekanizmalarına bağımlıdır.

Yearn: Yearn, Curve'ün LP token'larının getirilerini optimize ederek (Convex aracılığıyla artırılmış şekilde) kullanıcılara yüksek getiri sunan bir getiri toplayıcısıdır. Yearn, Resupply'ı geliştirmek için Convex ile iş birliği yapmış ve getiri stratejilerinde Curve havuzlarını kapsamlı biçimde kullanmaktadır.

Resupply: Convex ve Yearn tarafından ortaklaşa geliştirilen Resupply, kullanıcıların crvUSD gibi stablecoin'leri teminat olarak yatırarak reUSD ödünç almasına olanak tanır ve CRV ile CVX ödülleri kazanmak için token'ları otomatik olarak Convex'te stake ederek bir getiri optimizasyonu döngüsü oluşturur.

4.2 Tartışma ve Etki

Ancak Resupply saldırıya uğradığında, bu karmaşık ilişkiler ağı hemen tartışmanın odak noktası hâline geldi. Curve kurucusu Michael Egorov, Resupply'dan hızla mesafesini koyarak şunları vurguladı:

"O projede çalışan Curve'den tek bir kişi bile yok… lütfen bunu Curve'e genellemeyin."

Bu ilişiği kesme açıklaması, DeFi ekosistemindeki karmaşık iş birliği ilişkilerinin kriz anlarında ne denli kırılgan olabileceğini gözler önüne serdi.

Bu birbiriyle bağlantılı projeler, yüksek derecede bağlantılı bir ekosistem oluşturmaktadır — böyle bir sistemde herhangi bir halkadaki bir sorun zincirleme reaksiyona yol açabilir. Bu nedenle Resupply saldırısı olayının protokol karşılıklı bağımlılığı ve güvenlik hakkında kapsamlı topluluk tartışmalarına yol açması şaşırtıcı değildir.


5. Daha Derin Değerlendirmeler

5.1 Zaman Çizelgesi

  • 17 Mayıs 2025: Resupply resmi adresi 0x1f84, Curve'ün OneWay Lending Factory'si aracılığıyla yeni bir LlamaLend Piyasası dağıttı.

    • Piyasa, borç verme varlığı olarak crvUSD ve teminat token'ı olarak wstUSR kullandı.
    • ERC-4626 Vault sözleşmesi 0x0114, karşılık gelen Controller ise 0x8970 idi.
  • 31 Mayıs 2025: Resupply'ın yönetişim sayfasında yeni bir öneri olan wstUSR-long LlamaLend Market yayımlandı. Bu öneri, kullanıcıların LlamaLend Piyasası aracılığıyla reUSD basmalarına olanak tanımayı amaçlıyordu.

  • 11 Haziran 2025: Öneri zincir üzerinde yayımlandı.

  • 26 Haziran 2025, 00:18:47 (UTC): Öneri geçti ve Resupply'ın resmi adresi 0x0417, Vault 0x0114 ve Controller 0x8970'i bağlayan yeni bir ResupplyPair (yani Resupply crvUSD/wstUSR Piyasası) 0x6e90dağıttı.

    • Vault 0x0114 ve Controller 0x8970 bağlandı.
    • Vault'un teminatlı borç pozisyonu (yani cvcrvUSD, temel varlık olarak crvUSD ile) teminat olarak kullanıldı.
  • 26 Haziran 2025, 01:53:59 (UTC): Piyasa 0x6e90'ın dağıtımından yaklaşık 1,5 saat sonra saldırgan istismarı başarıyla gerçekleştirdi. Aynı zamanda BlockSec saldırıyı tespit ederek proje ekibiyle iletişime geçmeye çalıştı.

  • 26 Haziran 2025, 02:26 (UTC): Ekibe ulaşamamasının ve ek kayıp olmadığını teyit etmesinin ardından BlockSec kamuoyu uyarısı yayımladı.

  • 26 Haziran 2025, 02:53:23 (UTC): Proje ekibi protokolü duraklattı.

5.2 Phalcon Olsaydı Bu Trajedi Önlenebilirdi

BlockSec Phalcon Security, DeFi güvenlik korumasında en son atılımı temsil etmektedir. İşlemleri mempool aşamasında izleyerek Phalcon, bir saldırı işlemi mempole girdiği anda anormal kalıpları tespit edebilmektedir.

Akıllı analiz motoruyla desteklenen sistem, 200'den fazla tipik saldırı imzasını bünyesinde barındırmaktadır. Son altı ayda %0,0001'den düşük bir yanlış pozitif oranını koruyarak gerçek anlamda hassas tehdit tespiti sağlamaktadır.

Sistem, savunma işleminin saldırı işleminin önüne geçmesini sağlamak için özel bir gaz teklif stratejisinden yararlanırken protokolün acil durum durdurma işlevini de otomatik olarak tetikler.

Tüm müdahale süreci, EOA ve çoklu imza cüzdanları dahil olmak üzere birden fazla izin denetim modunu destekleyerek farklı protokol türleri için esnek güvenlik çözümleri sunar.

Resupply, Piyasayı dağıtırken Phalcon sistemini entegre etmiş olsaydı saldırı tamamen önlenebilirdi

Piyasa 0x6e90'ın dağıtımının ardından geçen 1,5 saatlik süre içinde Phalcon sistemi, yeni Piyasa dağıtımını otomatik olarak tespit edecek, yapılandırma parametrelerini akıllıca analiz edecek ve bağış saldırısına ilişkin potansiyel riski belirleyecekti.

Sistem, proje ekibine derhal bir risk uyarısı göndererek başlangıç likidite koruması eklenmesini veya ilgili parametrelerin ayarlanmasını önerecekti.

Saldırı gerçekleştikten sonra bile Phalcon'un entegre edilmesi Resupply ve tüm Curve ekosistemi için büyük değer taşıyacaktı

Şeffaf ve gerçek zamanlı bir izleme sistemi, kullanıcılara ve topluluğa proje ekibinin güvenliğe olan sağlam bağlılığını gösterirken 7/24 sürekli koruma mekanizması benzer olayların bir daha yaşanmamasını güvence altına alır. Kamuya açık güvenlik izleme verileri, proje şeffaflığını artırır ve topluluk güvenini yeniden inşa etmek için kritik bir araç işlevi görür. Etkilenen projeler için en üst düzey bir güvenlik çözümünü proaktif olarak benimsemek, kullanıcı fonlarının güvenliğine karşı sorumluluk bilincini kanıtlar; BlockSec gibi sektör lideriyle ortaklık kurmak ise projenin güvenlik alanındaki itibarı için güçlü bir referans sağlar.

Şu anda 50 milyar doların üzerinde varlık, Phalcon'un korumasına güvenmeyi tercih etmiştir. 20 milyar dolardan fazla varlık kaybını önleyerek 20'den fazla gerçek dünya saldırısını başarıyla durdurduk. Son altı ayda sistem, mükemmel tespit doğruluğu kaydını korumuş ve milisaniye düzeyinde müdahale hızları sağlayarak her zaman saldırganların bir adım önünde kalmıştır. Phalcon şu anda Ethereum, BSC ve Arbitrum dahil 20'den fazla büyük blok zinciri ağını destekleyerek DeFi ekosistemi için kapsamlı, zincirler arası güvenlik koruması sunmaktadır.

Resupply'ın 10 milyon dolarlık kaybı ve sayısız diğer saldırı olayı bize şunu öğretiyor: DeFi dünyasında güvenlik bir seçenek değil, hayatta kalmanın zorunlu bir koşuludur.

Bir sonraki saldırıyı beklemenize ve pişman olmanıza gerek yok. Protokolünüz için şimdi en güçlü güvenlik korumasını devreye alın.

BlockSec'in uzman ekibi, projeniz için kapsamlı bir güvenlik değerlendirmesi yapmaya hazırdır.

🔗 Phalcon Security Uygulaması:

https://blocksec.com/phalcon/security

🔗 Demo rezervasyonu:

https://blocksec.com/book-demo