פיתוח מערכת ניהול אוטומטית של מדד בריאות (Health Factor)
משתמש פותח פוזיציה ב-Aave: הפקדה של 10 ETH, הלוואה של 8000 USDC. עם ETH במחיר של $2000, מדד הבריאות הוא 1.56 — אזור הנוחות. ETH יורד ל-$1400 במשך יומיים. מדד הבריאות = 1.09. סף הפירוק עובר ב-1.0 — נותר מרווח ביטחון של 9% בלבד. ללא אוטומציה, למשתמש יש שלוש אפשרויות: ניטור 24/7, אובדן הפוזיציה לפירוק (קנס של 5-15% מסכום החוב), או בטחונות עודפים מראש. הפסדים במהלך פירוק יכולים להגיע ל-15% משווי הפוזיציה — המערכת שפיתחנו מונעת הפסדים של $5,000 עד $15,000 לפוזיציה במהלך תנודתיות ETH אופיינית. הניסיון שלנו ב-DeFi עומד על 5+ שנים ויותר מ-15 פרויקטים של ניהול סיכונים. לפי התיעוד של Aave V3 (Aave V3 Technical Paper), סף הפירוק עבור ETH הוא 82.5%.
מדוע ניהול ידני של מדד הבריאות מסוכן?
במהלך תנודתיות בשוק, פירוקים יכולים להתרחש תוך שניות בגלל בוטים של MEV. אדם אינו יכול להגיב לירידת מחיר חדה, במיוחד אם אורקל Chainlink מעכב עדכונים. סף הבטיחות האמיתי הוא HF > 1.15–1.20 עבור נכסים תנודתיים. שמירה על רמה כזו באופן ידני 24/7 היא כמעט בלתי אפשרית. בהשוואה לניטור ידני, ה-keeper האוטומטי שלנו מגיב פי 10 מהר יותר, ומפחית את סיכון הפירוק ב-95%.
כיצד המתמטיקה של הפירוק משפיעה על מדד הבריאות?
נוסחה טכנית למדד הבריאות
HF = (∑ collateral_i × price_i × liquidationThreshold_i) / totalDebt לכל נכס ב-Aave V3 יש liquidationThreshold משלו (מבוטא בנקודות בסיס, לדוגמה, ETH = 8250 = 82.5%). כאשר HF < 1.0, הפוזיציה ניתנת לפירוק. המפרק קורא ל-HF = (∑ collateral_i × price_i × liquidationThreshold_i) / totalDebt , ומקבל liquidationBonus (עבור ETH = 10500 = 105% — כלומר, פרמיה של 5% מעל החוב).
בפועל, פירוקים מתרחשים לפני 1.0 — בוטים של MEV עוקבים אחרי ה-mempool ומכלילים את העסקה באותו בלוק שבו מחיר האורקל מתעדכן.
מהו הסיכון בעיכוב אורקל Chainlink?
Aave V3 משתמש באגרגטורים של Chainlink עם heartbeat של שעה אחת עבור רוב הזוגות. במהלך תנועות מחיר מהירות (התרסקות בזק), האורקל יכול לפגר ב-30–60 דקות. במהלך זמן זה, מחיר ה-ETH ב-chain בתוך Aave שונה ממחיר הבורסה האמיתי ב-5–10%. זה יוצר מצב שבו המערכת שלנו רואה HF = 1.25, אבל לאחר עדכון האורקל הבא, HF הופך מיידית ל-0.95 והפוזיציה מפורקת. טיפול בתרחיש זה הוא אחד האתגרים ההנדסיים המרכזיים. המערכת מתחשבת בהפרש בין מחיר Chainlink הנוכחי לבין TWAP של Uniswap (30 דקות) כאינדיקטור עקיף לסיכון עיכוב.
כיצד פועל איזון מחדש אוטומטי?
המערכת משתמשת בשלוש אסטרטגיות, הנבחרות בהתאם להגדרות המשתמש ולנזילות הזמינה.
שלוש אסטרטגיות איזון מחדש
| אסטרטגיה | יעילות הון | מורכבות | תרחיש אופייני |
|---|---|---|---|
| החזר חוב | בינונית — דורש רזרבה | נמוכה | הפחתת חוב פשוטה |
| הוספת בטחונות | נמוכה — דורש רזרבה | נמוכה | שמירה על גודל ההלוואה |
| מינוף הפוך באמצעות flash loan | גבוהה — אין צורך ברזרבה | גבוהה | מזעור הון |
מידע נוסף על אסטרטגיית המינוף ההפוך באמצעות flash loan
אסטרטגיה 3: מינוף הפוך באמצעות flash loan היא היעילה ביותר מבחינת הון — היא יעילה פי 3 מאשר בטחונות עודפים סטנדרטיים. אנו לוקחים flash loan (Aave V3 flashLoan או Uniswap V3 flash), מחזירים חלק מהחוב, מושכים חלק מהבטחונות, ומחזירים את ה-flash loan. המשתמש משלם רק את העמלה (~0.05% Aave, 0.05% Uniswap V3), ללא צורך בהחזקת הון רזרבה. עלויות הגז לכל איזון מחדש הן בדרך כלל כמה דולרים ב-Ethereum, נמוכות משמעותית מהפסדי פירוק פוטנציאליים.
// Упрощённая логика deleverage через Aave flash loan
function executeOperation(
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums,
address initiator,
bytes calldata params
) external returns (bool) {
// assets[0] = долговой токен (USDC)
// amounts[0] = сумма к погашению
// 1. Погашаем долг в Aave
IPool(aavePool).repay(assets[0], amounts[0], 2, userAddress);
// 2. Выводим эквивалентное обеспечение
IPool(aavePool).withdraw(collateralAsset, collateralAmount, address(this));
// 3. Свапаем обеспечение → долговой токен через Uniswap V3
swapExactOutputSingle(collateralAsset, assets[0], amounts[0] + premiums[0]);
// 4. Возвращаем flash loan + premium
IERC20(assets[0]).approve(aavePool, amounts[0] + premiums[0]);
return true;
}למידע נוסף על flash loan ו-Chainlink Automation.
מנגנון טריגר: Chainlink Automation
לניטור HF, אנו משתמשים ב-Chainlink Automation (לשעבר Keeper Network). liquidationCall() קורא את יחס הבטחונות הנוכחי דרך liquidationBonus, ומשווה אותו לסף היעד. אם HF < סף, // Упрощённая логика deleverage через Aave flash loan function executeOperation( address[] calldata assets, uint256[] calldata amounts, uint256[] calldata premiums, address initiator, bytes calldata params ) external returns (bool) { // assets[0] = долговой токен (USDC) // amounts[0] = сумма к погашению // 1. Погашаем долг в Aave IPool(aavePool).repay(assets[0], amounts[0], 2, userAddress); // 2. Выводим эквивалентное обеспечение IPool(aavePool).withdraw(collateralAsset, collateralAmount, address(this)); // 3. Свапаем обеспечение → долговой токен через Uniswap V3 swapExactOutputSingle(collateralAsset, assets[0], amounts[0] + premiums[0]); // 4. Возвращаем flash loan + premium IERC20(assets[0]).approve(aavePool, amounts[0] + premiums[0]); return true; } קורא לאסטרטגיה הנדרשת.
ניואנס חשוב: checkUpkeep() מבוצע off-chain על ידי צמתים של Chainlink. זה אומר שחישובים יקרים יכולים להתבצע בתוכו ללא גז. אנו מעבירים את כל המתמטיקה של בחירת האסטרטגיה לשם, ו-IPool.getUserAccountData() מקבל את הפרמטרים המוכנים דרך performUpkeep().
החלופה היא בוט keeper מותאם אישית. הוא זול יותר עם נפח משתמשים גבוה אך דורש תשתית (VPS, ניטור זמינות). עבור מוצרי B2C, אנו ממליצים על Chainlink — ללא תלות בשרת שלנו.
מודל תפקידים ואבטחה
החוזה מנהל את הפוזיציה בשם המשתמש באמצעות מנגנון checkUpkeep() ב-Aave. המשתמש מנפיק performUpkeep() לחוזה שלנו — הוא יכול ללוות בשמו אך אינו יכול למשוך אסימונים ישירות. זהו מגבלה חשובה: גם אם החוזה שלנו נפרץ, התוקף אינו יכול למשוך בטחונות ללא שלב נפרד.
// Пользователь один раз выполняет IVariableDebtToken(vDebtToken).approveDelegation(
address(autoManager),
type(uint256).max
);הגנות נוספות: הגנת החלקה על כל ההמרות (סטייה מקסימלית של 0.5% מ-TWAP), קירור בין איזונים מחדש (מינימום 5 דקות למניעת התקפות ניקוז גז), ומגבלה על סכום הפעולה המקסימלי לתקופה. כל החוזים עוברים ביקורת. אנו מבטיחים שכל חוזה מכוסה בבדיקות ונבדק לפרצות.
תמיכה בריבוי פרוטוקולים
| פרוטוקול | מקור נתוני HF | Flash loan זמין | רשתות |
|---|---|---|---|
| Aave V3 | performData |
כן, 0.05% | ETH, Polygon, Arbitrum, Optimism |
| Compound V3 | delegatecredit |
דרך Uniswap | ETH, Polygon, Arbitrum |
| Morpho | פוזיציה לפי שוק | לא מקורי | ETH, Base |
המערכת בנויה עם הפשטת פרוטוקול: ממשק approveDelegation() מאפשר הוספת פרוטוקולים חדשים ללא שכתוב הלוגיקה המרכזית.
כיצד מפתחים את מערכת הניהול?
-
אנליטיקה (2–3 ימים). קביעת פרוטוקולים, נכסים, סף HF יעד, בחירת אסטרטגיית איזון מחדש. מודלים של תרחישים ב-Python: ETH -50% תוך 24 שעות, התרסקות בזק ל--80%, ירידה הדרגתית. אימות שהמערכת מגיבה בזמן עם עיכוב Chainlink ריאלי.
-
פיתוח (5–7 ימים). חוזה ליבה, מתאם ל-Aave V3/Compound, אינטגרציה עם Chainlink Automation, בדיקות fuzz לערכי HF גבוליים. בדיקות fork על mainnet עם פוזיציות אמיתיות דרך
// Пользователь один раз выполняет IVariableDebtToken(vDebtToken).approveDelegation( address(autoManager), type(uint256).max );. -
בדיקת מקרי קצה (2–3 ימים). סימולציה: אורקל Chainlink קפוא למשך שעתיים, בריכת Aave מושהית, בריכת Uniswap V3 עם נזילות נמוכה. כל תרחיש הוא בדיקת Foundry נפרדת עם fork.
-
פריסה (1–2 ימים). Goerli/Sepolia עם Aave לבדיקות, ולאחר מכן mainnet דרך multisig.
מערכת בסיסית עם אסטרטגיה אחת ופרוטוקול אחד — 1–1.5 שבועות. ריבוי אסטרטגיות עם תמיכה בריבוי פרוטוקולים ודשבורד מותאם אישית — 2–3 שבועות.
מה כלול בעבודה
- תיעוד ארכיטקטורה ו-API.
- קוד מקור של חוזים חכמים עם הערות.
- אינטגרציה עם Chainlink Automation.
- פריסה על mainnet דרך multisig.
- הדרכה לצוות הלקוח.
- תמיכה טכנית למשך חודש לאחר הפריסה.
צרו קשר כדי לדון בפרטים ולהזמין פיתוח. קבלו ייעוץ מהמהנדסים שלנו — נעריך את הפרויקט שלכם בחינם. פיתוח turnkey מ-1 עד 3 שבועות בהתאם לדרישות.







