26 Haziran 2025'te, Ethereum ana ağında dağıtılan Resupply stablecoin protokolü'ne bir saldırı düzenlendi ve yaklaşık 10 milyon dolarlık varlık kaybına yol açıldı. İlgili sözleşmenin fiyat oracle'ının uygulanmasındaki bir sorun nedeniyle, yeni oluşturulan düşük likiditeli Market'ler için, saldırgan bir bağış saldırısı (donation attack) yoluyla borç alınan varlığın (Resupply tarafından ihraç edilen reUSD) göreceli fiyatını (yani borç alınan varlık ile teminat varlığı arasındaki değişim oranını) manipüle ederek 0'a düşürebildi. Bu durum, saldırganın varlık sağlık kontrolünü aşarak kâr etmek amacıyla büyük miktarda reUSD borç almasına imkan sağladı.
BlockSec, ağda ilk olarak kamuya açık şekilde erken uyarı verip ön analiz sağladıktan sonra (Tweet1, Tweet2), Resupply de ardından bir resmi duyuru yayınladı, ancak birçok teknik detaya girmedi. 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 yoğun bir topluluk tartışması da yaşandı. Bu makale, protokolün ardındaki karmaşık ekosistem ilişkilerini okuyucuların referansı için derinlemesine ele alıp tartışacaktır.
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ılır. Bu, teminatlı borç pozisyonları (CDP'ler) ile desteklenen merkeziyetsiz bir stablecoin'dir ve crvUSD ile frxUSD gibi diğer stablecoin'ler tarafından desteklenmektedir; bu varlıklar harici platformlardaki borç verme piyasalarında faiz kazanmaktadır. Kullanıcılar, stablecoin varlıklarının yeniden finansmanını sağlamak amacıyla crvUSD ve frxUSD sağlayarak reUSD borç alabilirler.

Özellikle, kullanıcılar zincir üzerinde dağıtılan bir Resupply Market'inde borç verme ile ilgili işlemler gerçekleştirebilirler. Market'lerin oluşturulması ve davranışı DAO aracılığıyla yönetilir. Her Market, teminat varlığı (collateral) olarak bir ERC-4626 Vault belirtir ve bu Vault'a karşılık gelen varlığı temel varlık (underlying) olarak kullanır. Kullanıcılar, reUSD borç almak için Market'te teminat (Vault veya Vault'un varlığı) yatırırlar.
Bu saldırıda yer alan Market 0x6e90 ve Vault 0x0114 örnek alınırsa, ilgili varlıklar (token'lar) şu şekildedir:
-
Market
0x6e90- underlying: crvUSD
- collateral: cvcrvUSD (yani Vault
0x0114) - borrowed: reUSD
-
Vault
0x0114- asset: crvUSD (aslında Curve LlamaLend Controller'ında saklanır, bu da aynı zamanda bir Market'tir)
- collateral: wstUSR
- borrowed: crvUSD
- share: cvcrvUSD (Vault tarafından ihraç edilen ERC-4626 token'ı)
Başka bir deyişle, kullanıcılar reUSD borç almak için bu Market'te belirli bir miktar cvcrvUSD (veya crvUSD, ki bu pratikte Vault üzerinden cvcrvUSD'ye dönüştürülecektir) rehin edebilirler.

1.2 Sistem, bir kullanıcının bir varlığı borç alma hakkına sahip olup olmadığını nasıl belirler?
Genel borç verme protokollerine benzer şekilde, Resupply Market de bir kullanıcının pozisyonu üzerinde bir varlık sağlık kontrolü gerçekleştirir (isSolvent modifier'ı aracılığıyla).

isSolvent, sonuç olarak _isSolvent fonksiyonunu çağırır; bu fonksiyon LTV'yi (Loan-to-Value oranı) kontrol eder ve borç alınan varlık ile teminat varlığı arasındaki oranın sistem tarafından belirlenen maksimum değeri aşmaması gerektiğini şart koşar (_ltv <= maxLTV).
LTV hesaplamasının, değişim oranına (_exchangeRate) yani borç alınan varlığın teminat varlığına göre fiyatına (değişim oranına) bağlı olduğu görülebilir.
2. Saldırı Analizi
2.1 Kök Neden Analizi
Sözleşme kodu açısından, saldırının temel nedeni Resupply Market'in fiyat oracle uygulamasında bir sorun olmasıydı. Yeni oluşturulan düşük likiditeli Market'ler için, saldırgan bir bağış saldırısı yoluyla değişim oranını manipüle edebilir, böylece sağlık kontrolünü aşarak kâr etmek amacıyla büyük miktarda reUSD borç alabilirdi.
Değişim oranı nasıl hesaplanır?

Formül aşağıdaki gibidir:

Açıkça görülüyor ki, eğer getPrices 1e36'dan büyük bir fiyat döndürürse, tam sayı bölümünün alta yuvarlanması _exchangeRate = 0 sonucunu verir.
Fiyat nasıl manipüle edilir?

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


Kodda precision = 1, DEAD_SHARES = 1000 ve shares = 1e18 olarak ayarlandığından.

Son olarak, değişkenleri yerine koyduktan sonra, fiyat hesaplama formülü aşağıdaki gibidir:

Görülebileceği üzere, price değerini büyütmek için kilit nokta, total_assets ile totalSupply arasındaki farkı büyütmek, total_assets'i son derece büyük tutarken totalSupply'ı çok küçük tutmaktır. Resupply protokolünün gerçek uygulamasında, formüldeki total_assets, underlying'e (crvUSD) bağlıdır ve totalSupply, Market'teki genel likiditeye karşılık gelen share'lere (cvcrvUSD) bağlıdır. Bu, tam olarak klasik bağış saldırısı senaryosudur.
2.2 Saldırı İşlemi Analizi
Saldırı işlemine [4] göre, saldırganın aşağıdaki temel adımları gerçekleştirdiği analiz edilebilir:
-
Flash loan aracılığıyla 4.000 USDC borç alındı ve 3.999 crvUSD'ye takas edildi.
-
Controller
0x8970'e 2.000 crvUSD bağışlandı. Bağıştan önce, Controller0x89700 crvUSD tutuyordu. Bağıştan sonra, kayıtlı crvUSD tutarı2000000000000000000000(18 ondalıklı) oldu. -
Vault
0x0114'e yaklaşık 2 crvUSD yatırıldı ve 1 share (cvcrvUSD) alındı. Bu noktada, kayıtlı crvUSD tutarı2002000000000000000001(18 ondalıklı) idi. -
Market
0x6e90'a 1 birim (yani Vault0x0114'ün 1 share'i) teminat eklendi. -
Market
0x6e90'dan 10.000.000 reUSD borç alındı. Bu noktada,_exchangeRate = 0olduğundan,_ltv = 0sonucu doğdu, bu nedenle_isSolventkontrolü geçildi.

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

Değişim oranının hesaplama yöntemini hatırlarsak:

price > 1e36 olduğundan, _exchangeRate = 0.
- Borç alınan reUSD, kâr elde etmek için takas edildi.
3. Öğrenilen Dersler
Resupply'de saldırıya uğrayan Market, Curve'ün şablon sözleşmesine benzer bir fiyat oracle uygulaması kullanıyordu.

Ancak, Curve'ün resmi dokümantasyonu bu uygulamanın uygulanabilirlik kapsamını çoktan belirtmişti — ne yazık ki, Resupply, dağıtımında bu uygulanabilirlik uyarısını dikkate almamış gibi görünüyor.
4. İlişkiler ve Topluluk Tartışması
4.1 Curve Ekosisteminde Beş Büyük Projenin Karmaşık İlişki Ağı
Resupply olayının daha derin etkisini anlamak için, önce Curve ekosistemi içindeki beş temel protokol arasındaki karmaşık ilişkilere bakmamız gerekir.

Curve Finance, tüm ekosistemin çekirdeğidir ve Resupply, Prisma, Convex ve Yearn'in faaliyetlerinin temelini oluşturan likidite havuzları, crvUSD ve LlamaLend protokolünü sağlar. Convex, staking ve yönetişim aracılığıyla Curve'ün getirisini optimize eder ve Prisma ile Resupply için ek ödül mekanizmaları sağlar. Prisma, Curve'ün LP token'larına ve Convex'in getiri artırma fonksiyonlarına bağımlıdır, Resupply ise doğrudan Curve'ün LlamaLend'ine dayanarak reUSD ihraç eder ve Convex ile Yearn tarafından birlikte geliştirilmiştir. Yearn, Curve havuzlarının getirilerini optimize etmenin yanı sıra, Convex ile işbirliği yaparak Resupply'nin gelişimini de teşvik etmiştir.
Curve Finance: Temel platform olarak, Curve'ün likidite havuzları (örneğin crvUSD havuzu) ve LlamaLend protokolü doğrudan Resupply tarafından reUSD ihraç etmek için, Prisma tarafından LP token'larını stake etmek için, Yearn tarafından getiri optimizasyonu için ve Convex tarafından yönetişim oylaması için kullanılır..
Convex: Convex, Curve'ün getiri artırma protokolüdür. Kullanıcılar, daha yüksek CRV ödülleri ile Convex'in CVX token'larını kazanmak için Curve LP token'larını stake edebilirler. Convex, Curve'ün yönetişim oylama gücünün yaklaşık %50'sini kontrol eder ve Prisma ile Resupply için getiri artırma mekanizmaları sağlar.
Prisma : Prisma, Curve'ün LP token'larını stake eder ve 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 getirisini optimize ederek (Convex aracılığıyla artırılmış) kullanıcılara yüksek getiri sunan bir getiri toplayıcısıdır (yield aggregator). Yearn, Resupply'yi geliştirmek için Convex ile işbirliği yapmıştır ve getiri stratejilerinde Curve havuzlarını yoğun bir şekilde kullanmaktadır.
Resupply: Convex ve Yearn tarafından birlikte geliştirilen bu protokol, kullanıcıların crvUSD gibi stablecoin'leri rehin ederek reUSD borç almalarını sağlar ve CRV ile CVX ödülleri kazanmak için token'ları otomatik olarak Convex'te stake ederek bir getiri optimizasyon döngüsü oluşturur.
4.2 Tartışma ve Etki
Ancak, Resupply saldırıya uğradığında, bu karmaşık ilişki ağı hemen tartışmanın merkezine oturdu. Curve'ün kurucusu Michael Egorov, hızla Resupply'den kendisini ayırarak şunu vurguladı:
"There is no single person from Curve working on that project… don't generalize to Curve please."

Bu ayrışma ifadesi, DeFi ekosistemi içindeki karmaşık işbirliği ilişkilerinin kriz zamanlarında nasıl kırılgan olabileceğini yansıtmaktadır.
Bu birbirine bağlı projeler birlikte yüksek düzeyde bağlı bir ekosistem oluşturur — böyle bir sistemde, bir bağlantıdaki herhangi bir sorun zincirleme bir tepkiyi tetikleyebilir. Bu nedenle, Resupply saldırı olayının protokol karşılıklı bağımlılığı ve güvenlik hakkında yaygın topluluk tartışmalarını tetiklemesi hiç de sürpriz değildir.
5. Daha Fazla Değerlendirme
5.1 Zaman Çizelgesi
-
17 Mayıs 2025: Resupply'nin resmi adresi
0x1f84, Curve'ün OneWay Lending Factory'si aracılığıyla yeni bir LlamaLend Market dağıttı.- Market, borç verme varlığı olarak crvUSD'yi ve teminat token'ı olarak wstUSR'yi kullandı.
- ERC-4626 Vault sözleşmesi
0x0114idi ve karşılık gelen Controller0x8970idi.
-
31 Mayıs 2025: Resupply'nin yönetişim sayfasında yeni bir teklif olan wstUSR-long LlamaLend Market yayınlandı. Bu teklif, kullanıcıların LlamaLend Market aracılığıyla reUSD basmasına (mint) izin vermeyi amaçlıyordu.
-
11 Haziran 2025: Teklif zincir üzerinde yayınlandı.
-
26 Haziran 2025, 00:18:47 (UTC): Teklif kabul edildi ve Resupply'nin resmi adresi
0x0417, yeni bir ResupplyPair dağıttı (yani Resupply crvUSD/wstUSR Market'i)0x6e90, Vault0x0114ve Controller0x8970'i bağladı.- Vault 0x0114 ve Controller 0x8970 bağlandı.
- Vault'un teminatlı borç pozisyonunu (yani crvUSD'yi underlying olarak kullanan cvcrvUSD) teminat olarak kullandı.
-
26 Haziran 2025, 01:53:59 (UTC): Market
0x6e90dağı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 etti ve proje ekibiyle iletişime geçmeye çalıştı. -
26 Haziran 2025, 02:26 (UTC): Ekibe ulaşamadıktan ve daha fazla kayıp olmadığını doğruladıktan sonra, BlockSec kamuya açık bir uyarı yayınladı.
-
26 Haziran 2025, 02:53:23 (UTC): Proje ekibi protokolü durdurdu.
5.2 Phalcon Security Olsaydı, Bu Trajedi Önlenebilirdi

BlockSec Phalcon Security, DeFi güvenlik korumasında en son çığır açan ilerlemeyi temsil etmektedir. Mempool aşamasında işlemleri izleyerek, Phalcon Security bir saldırı işlemi mempool'a girdiği anda anormal kalıpları tespit edebilir.
Sistem, akıllı bir analiz motoru tarafından desteklenmekte olup, 200'den fazla tipik saldırı imzasını entegre etmektedir. Son altı ayda, %0,0001'in altında ultra düşük bir yanlış pozitif oranı korumuş ve gerçekten hassas tehdit tespiti sağlamıştır.
Sistem, savunma işleminin saldırı işleminden daha hızlı olmasını sağlamak için özel bir gas teklif stratejisinden yararlanırken, protokolün acil durdurma fonksiyonunu otomatik olarak tetikler.
Tüm yanıt süreci, EOA ve çok imzalı cüzdanlar dahil olmak üzere birden fazla yetki kontrol modunu destekler; bu da farklı protokol türleri için esnek güvenlik çözümleri sunar.
Resupply, Market'i dağıtırken Phalcon Security sistemini entegre etmiş olsaydı, saldırı tamamen önlenebilirdi
Market 0x6e90'ın dağıtılmasından sonraki 1,5 saat içinde, Phalcon Security sistemi yeni Market dağıtımını otomatik olarak tespit eder, yapılandırma parametrelerini akıllıca analiz eder ve olası bir bağış saldırısı riskini belirlerdi.
Sistem, proje ekibine hemen bir risk uyarısı gönderir ve başlangıç likidite koruması ekleme veya ilgili parametreleri ayarlama önerisinde bulunurdu.
Saldırı gerçekleştikten sonra bile, Phalcon Security'nin dağıtılması Resupply'ye ve tüm Curve ekosistemine muazzam bir değer sağlayacaktır
Şeffaf, gerçek zamanlı bir izleme sistemi, kullanıcılara ve topluluğa proje ekibinin güvenliğe olan kararlı bağlılığını gösterir ve 7/24 sürekli koruma mekanizması, benzer olayların bir daha yaşanmamasını sağlar. 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ç olarak hizmet eder. Etkilenen projeler için, üst düzey bir güvenlik çözümünü proaktif olarak benimsemek, kullanıcı fonlarının güvenliğine olan sorumluluk anlayışlarını kanıtlar ve BlockSec gibi sektör lideri bir ortakla çalışmak da projenin güvenlik alanındaki itibarı için güçlü bir referans sağlar.
Şu anda, 50 milyar dolardan fazla varlık Phalcon Security'nin korumasına güvenmeyi seçmiştir. Gerçek dünyada 20'den fazla hackleme saldırısını başarıyla durdurduk ve 20 milyon dolardan fazla varlık kaybını önledik. Son altı ayda, sistem mükemmel bir tespit doğruluğu kaydı korumuş ve milisaniye düzeyinde yanıt hızları elde etmiş olup, saldırganların her zaman bir adım önünde kalmıştır. Phalcon Security şu anda Ethereum, BSC ve Arbitrum dahil olmak üzere 20'den fazla büyük blok zinciri ağını desteklemekte olup, DeFi ekosistemi için kapsamlı, zincirler arası güvenlik koruması sağlamaktadır.
Resupply'nin 10 milyon dolarlık kaybı ve sayısız diğer saldırı olayı bize DeFi dünyasında güvenliğin bir seçenek olmadığını — hayatta kalmak için bir gereklilik olduğunu göstermektedir.
Bir sonraki saldırıyı bekleyip pişman olmayın. Protokolünüz için en güçlü güvenlik korumasını şimdi devreye alın.
BlockSec'in uzman ekibi, projeniz için kapsamlı bir güvenlik değerlendirmesi yapmaya hazır.
🔗 Phalcon Security:
https://blocksec.com/phalcon/security
🔗 Demo rezervasyonu yapın:
https://blocksec.com/book-demo



