Price Oracles
Jak protokół zamienia stan pozycji LP w wartości zabezpieczenia istotne dla kredytu.
Przegląd
Avana wycenia zabezpieczenie LP, rekonstruując pozycję i wyceniając aktywa w niej. Dla fungible LP protokół wyprowadza wartość z zewnętrznych cen aktywów i rekonstrukcji sald poola. Dla concentrated liquidity rozkłada pozycję według płynności, zakresu, bieżącego ticka, ekspozycji tokenowej i naliczonych opłat.
Wynik jest dyskontowany do odzyskiwalnej wartości zabezpieczenia. Moc pożyczkowa opiera się na tym, co pozycja realistycznie może wspierać przy założeniach ryzyka rynku — nie na optymistycznej wartości aktywów netto.
To rozróżnienie między wartością mark a wartością odzyskiwalną utrzymuje oracle użytecznym dla lendingu, a nie tylko analytics. LP ERC-20, LP NFT i poole multi-asset mogą dzielić jeden high-level interfejs tylko dlatego, że każda klasa przechodzi własne kontrole walidacji i odporności na manipulację, zanim wartość dotrze do spoke.
LP collateral value depends on:
- Ceny bazowych aktywów
- Rezerwy poola lub podział inventory
- Fee accrual
- Dla concentrated liquidity — bieżący tick względem zakresu pozycji
- Czy pozycja jest in-range, czy głównie jednostronna
Interfejs Oracle: IOracle
Borrow Spokes potrzebują jednej powierzchni kontraktowej, nawet gdy formaty LP mocno różnią się między DEX-ami. `IOracle` daje ten wspólny kształt i trzyma osobno wartość principalu, naliczone opłaty oraz zarezerwowane bufory — dzięki temu późniejsza logika ryzyka nie musi zgadywać, na którą część pozycji patrzy:
function getValue(uint256 tokenId, address asset)
external view returns (
uint256 fullValue,
uint256 feeValue,
uint256 reserveValue
);Interfejs ukrywa plumbing właściwy dla DEX-a przed spoke. Dzięki temu ten sam caller obsługuje LP ERC-20, LP NFT i poole multi-asset przez jeden kształt zwrotu, zostawiając miejsce na konserwatywne traktowanie właściwe dla rodziny zabezpieczenia za kulisami.
Architektura wielowarstwowa
Wycena LP to proces etapowy, a nie pojedynczy odczyt ceny spot. Ścieżka oracle przechodzi przez następujące kroki:
Wyceniaj bazowe aktywa z zewnętrznych solidnych oracle
Zaczynaj od odpornych zewnętrznych feedów dla bazowych aktywów, żeby zabezpieczenie nie dziedziczyło pełnego szumu ani manipulowalności surowego stanu spot poola.
Wyprowadzaj wartość LP konserwatywnie
Odbuduj salda fungible LP albo rozłóż pozycje concentrated liquidity z rezerw, płynności, zakresu i opłat — deterministyczną ścieżką, którą spoke może rozumować.
Haircut na impermanent loss i slippage likwidacji
Zdyskontuj zrekonstruowaną wycenę do odzyskiwalnej wartości zabezpieczenia, która zakłada stres, slippage i niedoskonałe wyjścia — a nie czyste wykupienie przy teoretycznym NAV.
Ogranicz ekspozycję według rodziny LP i głębokości poola
Stosuj kontrole według rodziny LP, klasy poola i dostępnej głębokości, żeby cieńsze lub bardziej złożone rynki nie dostawały tych samych limitów pożyczki co głębsze i prostsze.
Likwiduj na podstawie odzyskiwalnej wartości unwindu, nie optymistycznego NAV
Przy przyznawaniu mocy pożyczkowej i decyzji o likwidacji używaj wartości, którą da się rozsądnie zrealizować ścieżką unwindu — a nie najlepszej możliwej wyceny mark.
Obsługa właściwa dla DEX-a
Różne DEX-y udostępniają różne elementy stanu, a oracle używa tych wejść do rekonstrukcji pozycji i weryfikacji pricingu. Dane wyprowadzone z poola nie są przyjmowane ślepo jako bezpośredni mark zabezpieczenia.
| Typ DEX / LP | Źródło Oracle | Uwagi |
|---|---|---|
| Curve Stable/Stable ERC-20 LPs | Zewnętrzne feedy stablecoinów + kontrole stanu poola + weryfikacja TWAP | Zewnętrzne ceny zakotwiczają aktywa, a salda poola i naliczanie opłat określają zdyskontowaną wartość zabezpieczenia. |
| Uniswap V2 ERC-20 LPs | Chainlink + rekonstrukcja rezerw + weryfikacja TWAP | Standardowe tokeny LP są wyceniane ze zrekonstruowanych sald bazowych, a TWAP służy jako odporny na manipulację cross-check. |
| Uniswap V3 NFT LPs | Chainlink + dekompozycja pozycji + kontrole tick/TWAP | NFT jest rozkładane według płynności, aktywnego zakresu i bieżącej ceny, a potem dostaje haircut do odzyskiwalnej wartości likwidacji. |
| Balancer Multi-Asset LPs | Chainlink + rekonstrukcja ważonego inventory | Poole multi-token używają zewnętrznych cen i ważonego inventory poola, by oszacować konserwatywną wartość zabezpieczenia. |
| SushiSwap / Aerodrome | Chainlink + rekonstrukcja rezerw + weryfikacja TWAP | Obserwacje wyprowadzone z poola weryfikują zrekonstruowaną wartość i pomagają opierać się nadużyciom same-transaction na rynkach o niższej płynności. |
| PancakeSwap | Chainlink + weryfikacja TWAP oparta na blokach | Zewnętrzne ceny pozostają kotwicą, a obserwacje oparte na blokach walidują stan pozycji i założenia unwindu. |
Obliczanie TWAP według DEX-a
TWAP-y to wejścia weryfikacyjne. Siedzą obok zewnętrznych cen aktywów i deterministycznej rekonstrukcji pozycji, by sprawdzić, czy obserwowany stan poola jest spójny z wiarygodną ścieżką unwindu. Pomagają odrzucać podejrzane lub krótkotrwałe zniekształcenia, ale same nie zastępują szerszego modelu oracle.
Uniswap V2 & SushiSwap
On-chain cumulative price data over a 1-hour window is used to cross-check the reconstructed reserve picture and reduce sensitivity to flash swaps or other short-lived pool distortions.
Uniswap V3
Kontrole świadome pozycji uwzględniają zakres ticków, rozkład płynności i naliczone opłaty, żeby protokół mógł zweryfikować rozłożoną ekspozycję tokenową każdego LP NFT — zamiast traktować NFT jak black box.
Balancer
Ważone obserwacje tokenów są łączone z wagami poola, by zwalidować podziały inventory multi-asset, zanim oracle przypisze konserwatywną wartość zabezpieczenia.
Curve
Obserwacje stablecoinów służą głównie do wykrywania stale feedów, dryfu rezerw i krótkoterminowych anomalii, podczas gdy zewnętrzne ceny pozostają główną kotwicą.
Trader Joe & Aerodrome
Skumulowane obserwacje cen w oknie 30–60 minut pomagają walidować stan pooli o niższej płynności i opierać się manipulacji same-transaction podczas kontroli zabezpieczenia.
Bezpieczeństwo i zapobieganie manipulacji
- Progi odchylenia
Nowe pożyczki lub likwidacje mogą zostać wstrzymane, gdy dane weryfikacyjne wyprowadzone z poola oddalą się zbyt daleko od zewnętrznych cen referencyjnych poza
maxDifference. - maxPoolPriceDifference
To utrzymuje stan implied przez pool w zgodzie z cenami bazowych tokenów i ogranicza natychmiastową manipulację poola lub nadużycie oracle w tej samej transakcji.
- Capy open interest
Ekspozycja jest ograniczana według rodziny LP, głębokości poola i złożoności zabezpieczenia, żeby cieńsze rynki dostawały ciaśniejsze limity pożyczki.
- Recovery Haircuts
Oracle dyskontuje teoretyczną wartość LP o impermanent loss, slippage unwindu i założenia stresowej likwidacji, zanim przyznana zostanie jakakolwiek moc pożyczkowa.
- Oracle Sentinel
Oracle Sentinel obserwuje zdrowie feedów i wejścia weryfikacyjne oraz może uruchomić zachowanie fallback, gdy dane są stale, skompromitowane lub niespójne z kontrolami stanu pozycji.
Konfigurowalne parametry Oracle
Ustawienia oracle właściwe dla poola są konfigurowane per token przez setTokenConfig. Tabela poniżej pokazuje parametry, które definiują, jak token i powiązany pool powinny być sprawdzane:
| Parametr | Opis |
|---|---|
| Token | Adres tokena zabezpieczenia |
| AggregatorV3Interface | Feed Chainlink dla bazowego tokena |
| maxFeedAge | Maksymalny akceptowalny wiek feedu Chainlink |
| Pool | Konkretny pool DEX (Uniswap V3, Balancer, Curve itd.) |
| twapSeconds | Okno obliczania TWAP |
| Mode | Tryb operacyjny oracle (standard/fallback) |
| maxDifference | Maksymalne dozwolone odchylenie między ceną DEX a ceną weryfikacji |
W praktyce zachowanie oracle wynika z połączenia zewnętrznego pricingu aktywów, logiki rekonstrukcji LP, traktowania wartości odzyskiwalnej oraz ustawień per token skonfigurowanych przezsetTokenConfig.
