Flash loan na Solanie: czym jest i jak działa
Flash loan na Solanie to pożyczka bez zabezpieczenia spłacana w tej samej transakcji. Zobacz, jak sprawdza ją pożyczkodawca, ile kosztuje i gdzie zawodzi.

Flash loan na Solanie (pożyczka błyskawiczna) daje ci tokeny bez zabezpieczenia i bez sprawdzania zdolności kredytowej, pod jednym warunkiem: pieniądze muszą wrócić, zanim skończy się transakcja. Jeśli spłaty brakuje albo się nie powiedzie, sieć odrzuca całą transakcję i pożyczki po prostu nigdy nie było. Nic nie zostaje do oddania, dlatego protokół pożyczkowy może ją dać dowolnemu portfelowi.
Brzmi jak luka w systemie. W rzeczywistości to dwie zwykłe reguły, które działają razem: transakcja wykonuje się w całości albo wcale, a program może odczytać pozostałe instrukcje transakcji, w której działa. Wszystko, co robi flash loan na Solanie, łącznie z tym, jak może zawieść, wynika z tych dwóch faktów.
Jak flash loan na Solanie działa w jednej transakcji
Solana wykonuje transakcję jako listę instrukcji, po kolei. Dokumentacja Solany o transakcjach mówi to wprost: jeśli którakolwiek instrukcja zawiedzie, cała transakcja kończy się błędem, a każda zmiana stanu zostaje cofnięta. Flash loan to lista zbudowana wokół tej reguły.
- Pożyczka. Program pożyczkowy przenosi tokeny ze swojego skarbca na twoje konto tokena.
- Użycie. Twoje własne instrukcje je wydają: swap, likwidacja, depozyt gdzie indziej.
- Spłata. Program pożyczkowy zabiera tę samą kwotę z powrotem, plus opłatę, jeśli ją pobiera.
Jeśli krok trzeci nie może się wykonać, na przykład dlatego, że swap zwrócił mniej, niż zakładano, krok pierwszy zostaje cofnięty razem z resztą, a skarbiec kończy tam, gdzie zaczął. Z tego samego powodu zabezpieczenie jest zbędne. Zwykła pożyczka go wymaga, bo między pożyczeniem a spłatą mija czas. Tutaj nie mija wcale.
Skąd pożyczkodawca wie, że spłata nadejdzie
Pożyczka wykonuje się pierwsza, więc musi podjąć decyzję, zanim spłata nastąpi. Dlatego czyta naprzód. Solana udostępnia każdą instrukcję najwyższego poziomu bieżącej transakcji przez specjalne konto, sysvar instrukcji, a przewodnik Solany po introspekcji instrukcji wymienia dokładnie takie zastosowanie: sprawdzenie, czy konkretna instrukcja znajduje się w tej samej transakcji.
Kamino Lend publikuje kod źródłowy swojego programu i widać w nim to sprawdzenie. Jego instrukcja flash borrow sprawdza każdą instrukcję, która następuje po niej, i odmawia pożyczki, jeśli nie znajdzie dokładnie jednej pasującej spłaty:
- spłata podaje tę samą kwotę;
- wymienia te same konta, w tej samej kolejności;
- wskazuje z powrotem na pozycję pożyczki;
- po niej nie następuje druga instrukcja flash borrow.
Podobnie jak dwaj pozostali pożyczkodawcy opisani niżej, Kamino odrzuca pożyczkę wywołaną z wnętrza innego programu, bo sysvar zawiera tylko instrukcje najwyższego poziomu. marginfi ujmuje pożyczkę inaczej: instrukcja otwierająca sprawdza, czy dalej w transakcji jest instrukcja zamykająca, a ta zamykająca sprawdza kondycję konta.
Szczegóły mają znaczenie. Spłata w Kamino zapisuje pozycję pożyczki jako liczbę. Jeśli portfel wstawi przed pożyczką własną instrukcję ochronną, spłata wskaże złą instrukcję i zostanie odrzucona. Spłata w Jupiter Lend nie zawiera żadnej pozycji i to jeden z powodów, dla których narzędzie Flash Volume pożycza właśnie tam.
Którzy pożyczkodawcy na Solanie oferują flash loany
Trzy protokoły pożyczkowe opisują flash loany na Solanie we własnej dokumentacji dla deweloperów.
| Pożyczkodawca | Opłata pożyczkodawcy |
|---|---|
| Jupiter Lend | Brak według dokumentacji, choć administrator ma ustawienie opłaty |
| Kamino Lend | Ustalana dla każdej rezerwy; rezerwa może wyłączyć flash loany |
| marginfi (dokumentacja jest teraz pod Project 0) | Brak według dokumentacji |
Do czego ludzie używają flash loanów
Każde z tych zadań potrzebuje dużej kwoty na kilka instrukcji, a potem nic.
- Arbitraż. Kup tam, gdzie token jest tani, sprzedaj tam, gdzie jest drogi, spłać. Jeśli różnica zdążyła zniknąć, sprzedaż nie pokryje spłaty i transakcja zostanie cofnięta.
- Likwidacje. Pożyczka spłaca dług pożyczkobiorcy w złej kondycji; zabezpieczenie otrzymane z dyskontem, wymienione z powrotem, spłaca pożyczkę.
- Zamiana zabezpieczenia i refinansowanie. Spłać kredyt pożyczonymi tokenami, wypłać zabezpieczenie, wymień je albo przenieś do innego pożyczkodawcy, pożycz ponownie, spłać.
- Samolikwidacja. Spłacając dług własnym zabezpieczeniem, oszczędzasz premię, którą zabrałby likwidator. Robi to ścieżka spłaty zabezpieczeniem w Kamino.
- Zapętlanie (looping). Pożycz, wymień na aktywo zabezpieczenia, zdeponuj, pożycz pod nie, spłać. Na tym działa Multiply w Kamino.
- Wolumen handlu. Kup token i odsprzedaj go w tej samej puli; portfel płaci tylko za zakup i odsprzedaż.
Ten ostatni przypadek to dokładnie to, co robi narzędzie Flash Volume do wolumenu: pożycza SOL z Jupiter Lend, kupuje twój token w jednej puli na PumpSwap, Raydium, Orca albo Meteora, odsprzedaje go, spłaca pożyczkę i pobiera swoją opłatę, wszystko pod jednym podpisem, a pełny koszt transakcji widzisz, zanim otworzy się twój portfel. Każdy, kto przeczyta tę transakcję, zobaczy pożyczkę, zakup i sprzedaż z jednego portfela. Jeśli chcesz zatrzymać tokeny, użyj zamiast tego narzędzia Swap z routingiem Jupiter.
Ile kosztuje flash loan na Solanie
Sama pożyczona kwota nie jest kosztem, bo wraca w tej samej transakcji. Płacisz za wszystko, co dzieje się wokół niej.
Opłata pożyczkodawcy. Jupiter Lend i marginfi opisują flash loany bez opłat, a Kamino ustala opłatę dla każdej rezerwy. Administrator Jupiter Lend wciąż może zmienić ustawienie opłaty, dlatego Flash Volume odczytuje je przed każdą pożyczką i odmawia zbudowania transakcji, jeśli nie wynosi zero.
Opłaty za swap i wpływ na cenę. Każdy swap w pożyczce płaci opłatę swojej puli, a duża kwota w płytkiej puli przesuwa cenę przeciwko tobie dwa razy, co pokazuje tekst o tym, jak działa głębokość puli płynności. Ustaw minimalną ilość wyjściową przy każdym swapie, bo spłata, której zabraknie, pociąga na dno całą resztę. Kompromis opisujemy w poradniku jak wybrać wartość slippage.
Opłaty sieciowe. Opłata bazowa to 5000 lamportów za podpis, do tego opłata priorytetowa liczona od każdej zamówionej jednostki obliczeniowej, a flash loan zamawia ich dużo więcej niż zwykły przelew. Jak ją dobrać, wyjaśnia tekst ile zapłacić opłaty priorytetowej.
Nieudana pożyczka jest tania, ale nie darmowa: transakcja, która trafiła do bloku i została cofnięta, i tak płaci opłatę sieciową, co potwierdzają zarówno dokumentacja Solany, jak i poradnik Jupiter o flash loanach. Transakcja, która nie przeszła symulacji i nigdy nie została wysłana, nie kosztuje nic.
Zanim podpiszesz, uruchom symulację. Flash loan, który by się nie powiódł, pokaże się jako nieudana symulacja, a na tym etapie nie kosztuje cię jeszcze nic.
Limity: rozmiar transakcji, moc obliczeniowa i zasoby pożyczkodawcy
Flash loan nie może przerosnąć jednej transakcji. Transakcje v0, z których korzystają takie pożyczki, mieszczą najwyżej 1232 bajty i 1 400 000 jednostek obliczeniowych. Pożyczka, spłata, swapy i ich konta muszą się w tym zmieścić, dlatego twórcy opierają się na tablicach wyszukiwania adresów (address lookup tables).
Nie może też obejmować dwóch transakcji. Sysvar wymienia tylko bieżącą transakcję, więc spłata w drugiej transakcji jest dla pożyczki niewidoczna, nawet w obrębie jednego pakietu Jito. To, co gwarantuje pakiet Jito, to osobna kwestia.
Do tego dochodzi to, czym dysponuje pożyczkodawca. Pożyczka czerpie z jego skarbca, niektórzy pożyczkodawcy dodają limit na jedną pożyczkę, a udzielanie pożyczek można wstrzymać. Maksymalna wielkość to więc bieżący odczyt, a nie stała. Kamino i marginfi pozwalają też tylko na jeden flash loan w transakcji.
Ryzyka: ostrzeżenia portfela i ataki na wyrocznie
Licz się z ostrzeżeniem w portfelu. Phantom ostrzega, gdy nie może czysto zasymulować transakcji, i jako przyczyny podaje między innymi rozmiar bliski limitu oraz transakcje, które kończą się błędem. Flash loan jest duży i wywołuje jednocześnie pożyczkodawcę i giełdę DEX. Gdy cena przesunęła się za daleko, jego symulacja się nie udaje: tak portfel daje ci znać, że pożyczka nie zostałaby spłacona.
Każdy flash loan jest też publiczny. Każdy może otworzyć transakcję w eksploratorze, a zbiorcza analiza portfeli w Wallet Scope pokazuje transakcje i PnL portfeli, które za nią stoją.
Ciemniejsza historia należy do innych protokołów. Atak z użyciem flash loana zniekształca cenę w obrębie jednej transakcji: pożyczona kwota przesuwa cenę w płytkiej puli, a protokół, który traktuje tę pulę jako źródło ceny, działa na zniekształconej liczbie. Dokumentacja Kamino jako obronę opisuje ceny ważone czasem i pasma cenowe. Twoje własne minimalne ilości wyjściowe ograniczają też ataki kanapkowe wokół dużego swapu.
Flash loan, zwykła pożyczka i margin
| Flash loan | Pożyczka z zabezpieczeniem | Margin | |
|---|---|---|---|
| Zabezpieczenie | Brak | Warte więcej niż pożyczka | Twój depozyt plus pozycja |
| Czas trwania | Jedna transakcja | Do spłaty | Dopóki konto jest w dobrej kondycji |
| Brak spłaty | Transakcja zostaje cofnięta | Zabezpieczenie zostaje zlikwidowane | Pozycja zostaje zlikwidowana |
| Płacisz | Opłatę pożyczkodawcy, jeśli jest, oraz opłaty za swap i opłaty sieciowe | Odsetki, dopóki pożyczka jest otwarta | Odsetki plus opłaty handlowe |
Pożyczka z zabezpieczeniem i margin niosą ryzyko rozłożone w czasie, bo ceny się zmieniają, dopóki pozycja jest otwarta. Flash loan na Solanie nie ma żadnego „dopóki”. Możesz stracić opłatę za cofniętą transakcję oraz każdą stratę z handlu, którą pokrywa twoje własne saldo.
Ten artykuł wyjaśnia, jak działają flash loany, i nie jest poradą finansową, inwestycyjną, prawną ani podatkową. Transakcje w ramach pożyczki mogą przynieść stratę, a pożyczkodawcy mogą zmienić warunki albo wstrzymać udzielanie pożyczek.
Najczęściej zadawane pytania
Czy flash loan na Solanie jest darmowy?
Sama pożyczka może być darmowa: Jupiter Lend i marginfi opisują flash loany bez opłat, a Kamino ustala opłatę dla każdej rezerwy. Nadal płacisz jednak opłaty za swap, opłatę sieciową i ewentualną opłatę narzędzia, z którego korzystasz.
Czy potrzebuję zabezpieczenia albo sprawdzenia zdolności kredytowej?
Nie. Spłata musi tylko znaleźć się w tej samej transakcji i się powieść. Twój portfel nadal potrzebuje SOL na opłatę sieciową oraz na pokrycie ewentualnego niedoboru, który zostawią transakcje handlowe.
Co się dzieje, jeśli pożyczki nie da się spłacić?
Cała transakcja zostaje odrzucona, a każda zmiana w jej obrębie cofnięta, łącznie z samą pożyczką. Transakcja, która trafiła do bloku, i tak płaci opłatę sieciową. Taka, która nie przeszła symulacji i nigdy nie została wysłana, nie płaci nic.
Czy flash loan może objąć dwie transakcje albo pakiet Jito?
Nie. Pożyczkodawca szuka spłaty przez sysvar instrukcji, który wymienia tylko bieżącą transakcję. Spłata gdziekolwiek indziej się nie liczy, nawet w tym samym pakiecie.
Dlaczego flash loany pojawiają się w raportach o exploitach?
Pozwalają każdemu dysponować dużą kwotą przez jedną transakcję. Exploity uderzały w protokoły, które ufały cenie spot z płytkiej puli, a tę cenę pożyczona kwota mogła przesunąć. Ceny uśredniane w czasie bardzo to utrudniają.


