Solana Flash Loan Nedir, Nasıl Çalışır?
Solana flash loan teminatsız bir borçtur ve aynı işlemde geri ödenir. Borç verenin bunu nasıl denetlediği, maliyeti ve nerede tıkandığı.

Solana flash loan, teminat ve kredi geçmişi sormadan verilen bir borçtur. Tek şartı var: para, işlem bitmeden geri dönmeli. Geri ödeme yoksa ya da başarısız olursa ağ işlemin tamamını reddeder ve borç hiç verilmemiş sayılır. Açıkta kalan bir alacak hiç oluşmadığı için borç veren protokol bunu herhangi bir cüzdana verebilir.
İlk duyuşta sistemde bir açık varmış gibi gelir. Aslında iki sıradan kuralın birleşimidir: bir işlem ya bütünüyle gerçekleşir ya hiç gerçekleşmez; bir program da içinde çalıştığı işlemin diğer komutlarını okuyabilir. Bir Solana flash loan'un yaptığı her şey, tıkandığı yerler dahil, bu iki kuraldan çıkar.
Solana flash loan tek işlemin içinde nasıl çalışır
Solana bir işlemi sıralı bir komut listesi olarak çalıştırır. Solana'nın işlemler dokümantasyonu kuralı açıkça yazar: komutlardan biri başarısız olursa işlemin tamamı başarısız olur ve bütün durum değişiklikleri geri alınır. Flash loan bu kurala göre dizilmiş bir listedir.
- Borç al. Borç verme programı kasasındaki tokenleri senin token hesabına aktarır.
- Kullan. Kendi komutların bu tokenleri harcar: bir takas, bir tasfiye, başka bir protokole yatırma.
- Geri öde. Program aynı tutarı, ücreti varsa ücretiyle birlikte geri çeker.
Üçüncü adım çalışamazsa, örneğin takas beklenenden az döndürdüyse, ilk adım da her şeyle birlikte geri alınır ve kasa başladığı yere döner. Teminatın gerekmemesinin sebebi de bu. Sıradan bir borçta alma ile ödeme arasında zaman geçer ve borçlu o arada ortadan kaybolabilir. Flash loan'da böyle bir ara yok.

Borç veren, geri ödemenin geleceğini nereden bilir?
Borç komutu önce çalışır, yani geri ödeme gerçekleşmeden karar vermek zorundadır. Bunu ileriyi okuyarak yapar. Solana, çalışan işlemin bütün üst düzey komutlarını instructions sysvar denen özel bir hesapta tutar ve Solana'nın instruction introspection rehberi tam bu kullanımı anlatır: belirli bir komutun aynı işlemde durduğunu doğrulamak.
Kamino Lend program kaynak kodunu açık yayımlıyor ve denetimin neye benzediği orada görünüyor. Flash borrow komutu kendinden sonraki her komutu tarar, şu koşulları taşıyan tek bir geri ödeme bulamazsa borç vermez:
- geri ödeme aynı tutarı yazar;
- aynı hesapları aynı sırayla listeler;
- borç komutunun işlemdeki sırasını gösterir;
- arkasından ikinci bir flash borrow gelmez.
Kamino, aşağıdaki iki protokol gibi, başka bir programın içinden çağrılan borcu da reddeder. Sysvar yalnızca üst düzey komutları gösterdiği için içeride kalan bir borç aynı yolla denetlenemez. marginfi borcu biraz farklı kurar: başlangıç komutu işlemin ilerisinde bir bitiş komutu olduğunu kontrol eder, bitiş komutu da hesabın sağlık kontrolünü çalıştırır.
Ayrıntı önemlidir. Kamino'nun geri ödemesi, borç komutunun sırasını bir sayı olarak taşır. Cüzdan borcun önüne kendi koruma komutunu eklerse bu sayı yanlış komutu gösterir ve geri ödeme reddedilir. Jupiter Lend'in geri ödemesi sıra taşımaz; Flaş Hacim aracının borcu Jupiter Lend'den almasının bir nedeni bu.
Solana'da flash loan veren borç protokolleri
Üç borç verme protokolü Solana flash loan'u kendi geliştirici dokümantasyonunda anlatıyor.
| Protokol | Borç verenin ücreti |
|---|---|
| Jupiter Lend | Dokümantasyona göre yok; programda yöneticinin değiştirebildiği bir ücret ayarı duruyor |
| Kamino Lend | Rezerv başına belirlenir; bir rezerv flash loan'u tamamen kapatabilir |
| marginfi (dokümanlar artık Project 0 adıyla) | Dokümantasyona göre yok |
Flash loan ne işe yarar
Buradaki her iş birkaç komut boyunca büyük bir tutar ister, sonrasında hiçbir şey.
- Arbitraj. Tokeni ucuz olduğu yerden al, pahalı olduğu yerde sat, borcu kapat. Fark kapanmışsa satış geri ödemeyi karşılamaz ve işlem geri döner.
- Tasfiye. Ödünç tutar, sağlığı bozulmuş bir borçlunun borcunu öder; indirimle alınan teminat takasla geri çevrilir ve flash loan'u kapatır.
- Teminat değiştirme ve yeniden finansman. Mevcut borcu ödünç tokenle kapat, teminatı çek, takasla değiştir ya da başka bir protokole taşı, yeniden borçlan, flash loan'u öde.
- Kendi pozisyonunu tasfiye etmek. Borcu kendi teminatınla tasfiyeciden önce kapatırsan onun alacağı primi kendinde tutarsın. Kamino'nun repay-with-collateral akışı bunu yapar.
- Döngü. Borç al, teminat varlığına takasla, yatır, ona karşı borçlan, öde. Kamino'nun Multiply ürünü bunun üstüne kurulu.
- İşlem hacmi. Tokeni aynı havuzda al ve geri sat; cüzdandan yalnızca gidiş dönüşün maliyeti çıkar.
Son madde Flaş Hacim aracının yaptığı iştir. Jupiter Lend'den SOL ödünç alır, tokenini PumpSwap, Raydium, Orca ya da Meteora'daki tek bir havuzda alır, geri satar, borcu kapatır ve ücretini tek imzayla öder. Toplam işlem fiyatını cüzdanın açılmadan önce gösterir. İşlemi açan herkes aynı cüzdandan bir borç, bir alış ve bir satış görür. Tokeni elinde tutmak istiyorsan doğru araç Jupiter rotalı token takası.
Bir Solana flash loan'un maliyeti
Anapara maliyet değildir; aynı işlemin içinde geri döner. Ödediğin, etrafındaki her şeydir.
Borç verenin ücreti. Jupiter Lend ve marginfi flash loan'u ücretsiz olarak belgeliyor, Kamino ise ücreti rezerv başına belirliyor. Jupiter Lend'in yöneticisi ücret ayarını yine de değiştirebilir. Flaş Hacim bu yüzden her borçtan önce ayarı okur ve sıfır değilse işlemi kurmaz.
Takas ücreti ve fiyat etkisi. İçerideki her takas o havuzun ücretini öder. Sığ bir havuza karşı büyük tutar, fiyatı hem girişte hem çıkışta aleyhine oynatır; likidite havuzu derinliği nasıl okunur yazısı nedenini anlatır. Her takasa asgari çıktı koy, çünkü eksik kalan geri ödeme bütün işlemi batırır. Doğru slippage değerini seçmek yazısı bu dengeyi anlatır.
Ağ ücreti. Temel ücret imza başına 5.000 lamport. Üstüne istediğin compute unit başına fiyatlanan öncelik ücreti gelir ve flash loan, basit bir transferden çok daha fazla compute ister. Priority fee için ne kadar ödemeli yazısı bu ayarı anlatır.
Başarısız bir flash loan ucuzdur ama bedava değildir. Bloğa girip geri dönen işlem ağ ücretini yine öder; bunu hem Solana dokümantasyonu hem Jupiter'in flash loan rehberi yazar. Simülasyonda takılıp hiç gönderilmeyen işlemin maliyeti sıfırdır.

İmzalamadan önce simüle et. Başarısız olacak bir flash loan simülasyonda hata verir ve o noktaya kadar sana hiçbir şeye mal olmamıştır.
Sınırlar: işlem boyutu, compute ve kasadaki likidite
Flash loan tek bir işlemden büyük olamaz. Bu borçların kullandığı v0 işlemler en fazla 1.232 bayt taşır ve en fazla 1.400.000 compute unit harcayabilir. Borç, geri ödeme, takaslar ve hepsinin hesapları bu alana sığmak zorunda; geliştiricilerin address lookup table kullanmasının sebebi bu.
İki işleme de yayılamaz. Sysvar yalnızca o an çalışan işlemi gösterir. İkinci bir işlemdeki geri ödeme, ikisi aynı Jito bundle'da gitse bile borç komutuna görünmez. Jito bundle'ın gerçekte neyi garanti ettiği ayrı bir konu.
Bir de borç verenin o an elinde olan var. Borç kasadaki tokenlerden çıkar, bazı protokoller borç başına ayrıca tavan koyar ve borç verme durdurulabilir. En yüksek tutar sabit bir sayı değil, o anki bir okumadır. Kamino ve marginfi işlem başına tek flash loan'a izin verir.
Riskler: cüzdan uyarıları ve oracle saldırıları
Cüzdanında bir uyarı görmeyi bekle. Phantom bir işlemi temiz simüle edemediğinde uyarır ve sebepler arasında boyut sınırına yaklaşan işlemleri ve başarısız olan işlemleri sayar. Flash loan büyük bir işlemdir, aynı anda bir borç protokolünü ve bir DEX'i çağırır. Fiyat fazla oynadığında simülasyonu başarısız olur; bu, cüzdanın sana borcun geri ödenmeyeceğini söylemesidir.
Her flash loan herkese açıktır. İşlemi bir explorer'da herkes açabilir, Wallet Scope toplu cüzdan analizi de arkasındaki cüzdanların alım satımlarını ve PnL'ini gösterir.
Karanlık tarafın hikâyesi borç veren protokollere değil, başka protokollere ait. Flash loan saldırısı fiyatı tek işlemin içinde büker: ödünç tutar sığ bir havuzu iter, o havuzu fiyat kaynağı olarak okuyan bir protokol de bozulmuş rakamla işlem yapar. Kamino dokümantasyonu savunma olarak zamana yayılmış fiyatları ve fiyat bantlarını anlatır. Kendi takaslarına koyduğun asgari çıktı da büyük takas etrafındaki sandviç saldırılarını sınırlar.
Flash loan, teminatlı borç ve marjin karşılaştırması
| Flash loan | Teminatlı borç | Marjin | |
|---|---|---|---|
| Teminat | Yok | Borçtan daha değerli | Yatırdığın tutar ve pozisyonun kendisi |
| Süre | Tek işlem | Ödeyene kadar | Hesap sağlıklı kaldıkça |
| Ödenmezse | İşlem geri döner | Teminat tasfiye edilir | Pozisyon tasfiye edilir |
| Ne ödersin | Varsa borç veren ücreti, takas ve ağ ücreti | Açık kaldıkça faiz | Faiz ve işlem ücretleri |
Teminatlı borç da marjin de zaman içinde risk taşır, çünkü açık kaldıkları sürece fiyatlar oynar. Bir Solana flash loan'da böyle bir süre yok. Kaybedebileceğin, geri dönen işlemin ücreti ve geri ödeme geçsin diye kendi bakiyenle kapattığın işlem zararıdır.
Bu yazı flash loan'un nasıl çalıştığını anlatır; finansal, yatırım, hukuki ya da vergi tavsiyesi değildir. Borcun içindeki işlemler zarar edebilir, borç verenler koşullarını değiştirebilir ya da borç vermeyi durdurabilir.
Sık sorulan sorular
Solana flash loan ücretsiz mi?
Borcun kendisi ücretsiz olabilir: Jupiter Lend ve marginfi ücretsiz flash loan belgeliyor, Kamino ise ücreti rezerv başına belirliyor. Takas ücretleri, ağ ücreti ve kullandığın aracın ücreti yine senden çıkar.
Teminat ya da kredi geçmişi gerekir mi?
Hayır. Geri ödemenin aynı işlemde durması ve başarılı olması yeterli. Cüzdanında yine de ağ ücreti ve takasların bıraktığı olası açık için SOL bulunmalı.
Borç geri ödenemezse ne olur?
İşlemin tamamı reddedilir ve borç dahil içindeki her değişiklik geri alınır. Bloğa girmiş işlem ağ ücretini öder; simülasyonda kalıp hiç gönderilmeyen işlem hiçbir şey ödemez.
Flash loan iki işleme ya da bir Jito bundle'a yayılabilir mi?
Hayır. Borç veren geri ödemeyi instructions sysvar üzerinden bulur ve sysvar yalnızca çalışan işlemi listeler. Başka bir işlemdeki geri ödeme, aynı bundle'da olsa bile sayılmaz.
Flash loan'lar neden saldırı raporlarında geçer?
Çünkü herkese tek bir işlem boyunca büyük bir tutar kullandırırlar. Saldırılar, ödünç tutarın oynatabileceği sığ bir havuzun anlık fiyatına güvenen protokolleri vurdu. Zamana yayılmış fiyatlar bunu çok zorlaştırır.


