mirror of
https://github.com/lux-apps/papers.git
synced 2026-11-03 05:07:46 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
80 lines
2.3 KiB
TeX
80 lines
2.3 KiB
TeX
\section{90\% LTV Achievement}
|
|
|
|
|
|
\subsection{Mathematical Foundation}
|
|
|
|
To safely achieve 90\% LTV with zero liquidations, Lux Credit employs a multi-layered safety model:
|
|
|
|
\textbf{Required Conditions:}
|
|
\begin{equation}
|
|
\text{Annual Yield} > \frac{\text{LTV}}{1 - \text{LTV}} \times \text{Price Volatility}
|
|
\end{equation}
|
|
|
|
For 90\% LTV with 11\% APY on LUX:
|
|
\begin{equation}
|
|
11\% > \frac{90\%}{10\%} \times \sigma_{price} \implies \sigma_{price} < 1.22\%
|
|
\end{equation}
|
|
|
|
This requires collateral volatility < 1.22\% annually, achievable through diversification and hedging.
|
|
|
|
\subsection{Risk-Adjusted LTV Table}
|
|
|
|
\begin{table}[h]
|
|
\centering
|
|
\begin{tabular}{@{}lrrr@{}}
|
|
\toprule
|
|
\textbf{Asset} & \textbf{Base LTV} & \textbf{Yield APY} & \textbf{Max LTV} \\ \midrule
|
|
LUX (staked) & 85\% & 11.0\% & 90\% \\
|
|
BTC (wrapped) & 75\% & 4.2\% & 80\% \\
|
|
ETH (staked) & 80\% & 5.5\% & 85\% \\
|
|
USDC & 90\% & 8.0\% & 95\% \\
|
|
Mixed Portfolio & 87\% & 9.3\% & 90\% \\ \bottomrule
|
|
\end{tabular}
|
|
\caption{Asset-specific LTV ratios and yields}
|
|
\end{table}
|
|
|
|
\subsection{Dynamic LTV Adjustment}
|
|
|
|
\begin{lstlisting}[language=Solidity, basicstyle=\small\ttfamily]
|
|
contract LuxCredit {
|
|
struct RiskParams {
|
|
uint256 baseLTV; // Base loan-to-value
|
|
uint256 volatilityPenalty; // Reduce LTV if volatile
|
|
uint256 yieldBonus; // Increase LTV with yield
|
|
uint256 durationFactor; // Time-weighted adjustment
|
|
}
|
|
|
|
function calculateMaxLTV(
|
|
address asset,
|
|
uint256 collateralAmount,
|
|
uint256 loanDuration
|
|
) public view returns (uint256) {
|
|
RiskParams memory params = riskParams[asset];
|
|
|
|
// Start with base LTV
|
|
uint256 ltv = params.baseLTV;
|
|
|
|
// Adjust for 30-day volatility
|
|
uint256 vol = getVolatility(asset, 30 days);
|
|
if (vol > VOLATILITY_THRESHOLD) {
|
|
ltv -= params.volatilityPenalty;
|
|
}
|
|
|
|
// Boost for high-yield assets
|
|
uint256 apy = getExpectedYield(asset);
|
|
if (apy > 10e18) { // 10% APY
|
|
ltv += params.yieldBonus;
|
|
}
|
|
|
|
// Reduce for short-term loans (riskier)
|
|
if (loanDuration < 90 days) {
|
|
ltv -= 5e18; // -5%
|
|
}
|
|
|
|
// Cap at 90% maximum
|
|
return min(ltv, 90e18);
|
|
}
|
|
}
|
|
\end{lstlisting}
|
|
|