נזילות מפוזרת על פני עשרות בלוקצ'יינים, וגשרים ביניהם חייבים לפתור את בעיית האמון מבלי לוותר על מהירות. 50 מיליארד דולר תקועים במאגרים מבודדים — USDC על Arbitrum ו-USDC על Optimism הם נכסים שונים. הגישה שלנו היא לבנות ארכיטקטורות שמאזנות בין אבטחה, מהירות ודצנטרליזציה. גשרים אופטימיים, גשרי ZK-light client, גשרים מבוססי כוונות (intent-based) — לכל אפשרות יש את הפשרות שלה. אנו מיישמים את זו שמתאימה למשימה שלך ובונים גשרים שמטפלים במיליוני דולרים מדי יום. הזמינו פיתוח turnkey — קבלו פתרון מוכן עם אודיט ותמיכה.
השוואת מודלים ארכיטקטוניים
| מודל | אבטחה | מהירות | דצנטרליזציה | מורכבות |
|---|---|---|---|---|
| Lock-and-mint | בינונית (תלויה בגשר) | מהירה | נמוכה | נמוכה |
| מאגר נזילות | גבוהה (נכס מקורי) | מהירה (מיידית) | בינונית | בינונית |
| מבוסס כוונות | גבוהה (solver) | מיידית | גבוהה (solvers רבים) | גבוהה |
מדוע ארכיטקטורת פרוטוקול קריטית לנזילות חוצת-שרשרת?
Lock-and-mint לעומת מאגר נזילות
Lock-and-mint (נכסים עטופים): טוקנים ננעלים בשרשרת המקור, עותקים עטופים נטבעים בשרשרת היעד. קלאסיקה: wBTC (Bitcoin → Ethereum). בעיה: הנכס העטוף הוא טוקן חדש עם סיכון צד נגדי בגשר. אם הגשר נפרץ — הטוקנים העטופים חסרי ערך. כך אבדו 320 מיליון דולר בפריצת Wormhole ו-190 מיליון דולר בפריצת Nomad.
מאגר נזילות (נכסים מקוריים): מאגר של טוקנים מקוריים מתוחזק בכל שרשרת (USDC על Arbitrum, USDC על Optimism). המשתמש מפקיד למאגר במקור ומושך נכס מקורי מהמאגר ביעד. זה המודל של Stargate (LayerZero), Across Protocol, Hop Protocol. יתרון: המשתמש מקבל USDC אמיתי, לא עטוף. חיסרון: נזילות נדרשת בכל שרשרת — בעיית התחלה קרה.
מבוסס כוונות (מודל solver): המשתמש מצהיר על כוונה ("אני רוצה 1000 USDC על Optimism מה-1001 USDC שלי על Arbitrum"), solver מנפיק מיידית מהמאזן שלו ביעד, ומאוחר יותר משחזר את המאזן באמצעות מנגנון סילוק. המודל של Across Protocol (מותאם) ו-UniswapX חוצת-שרשרת. זה נותן חוויית משתמש מיידית: המשתמש רואה את הכספים ביעד תוך שניות, הסילוק של ה-solver קורה מאוחר יותר (באמצעות bundling וגשר רשמי).
שכבת הודעות: כיצד שרשרת A לומדת על אירוע בשרשרת B?
זו הבעיה היסודית. אפשרויות:
- אימות אופטימי: ההודעה מתקבלת כתקפה, יש חלון ערעור (30 דקות – 7 ימים). אם אף אחד לא מערער, היא נחשבת סופית. מודל: Nomad, Connext Amarok. יתרון: פשוט יחסית. חיסרון: עיכוב.
- קבוצת מאמתים/אורקלים: קבוצת מאמתים עוקבת אחרי שרשרת המקור וחותמת על אישורי אירועים. M-of-N multisig פותח ביעד. מודל: Wormhole (19 שומרים), Multichain (צמתי MPC), cBridge (מאמתי SGN). סיכון: קבוצת מאמתים מרכזית — משטח התקיפה העיקרי.
- ZK Light Client: שרשרת היעד מאמתת הוכחת ZK של כותרת שרשרת המקור. ללא אמון, אבל מורכב טכנית ויקר בגז. מודלים: zkBridge (Polyhedra), Succinct Labs, Herodotus. הטכנולוגיה מבשילה במחזור הנוכחי.
- הודעות מקוריות (canonical): גשר Arbitrum, גשר Optimism — משתמשים במנגנון הרשמי L1↔L2. מאובטח מקסימלית, אבל עיכוב משיכה של 7 ימים (חלון הוכחת הונאה ל-Optimistic rollups).
LayerZero V2: Ultra Light Node (ULN). שני תפקידים בלתי תלויים: DVN (Decentralized Verifier Network) מאמת את הכותרת, Executor מעביר את ההודעה. ניתן להגדיר את קבוצת ה-DVN לפי דרישות האבטחה שלך. Stargate V2 בנוי על LayerZero V2.
השוואת גישות
ZK Light Client מאובטח פי 100 מגשרים אופטימיים — אמון במתמטיקה במקום בכלכלה. אבל משמעותית יותר יקר בגז. לעסקאות בעלות גבוהה, בחרו ZK; לשימוש המוני, בחרו מאגר נזילות עם עמלות דינמיות.
צלילה עמוקה: ארכיטקטורת Stargate / LayerZero
LayerZero הוא פרוטוקול הודעות, Stargate הוא פרוטוקול נזילות הבנוי עליו. אנו מנתחים את הארכיטקטורה שלהם כמימוש ייחוס.
LayerZero V2: זרימת הודעות
Source Chain Destination Chain
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ OApp (User Contract) │ │ OApp (User Contract) │
│ ↓ _lzSend() │ │ ↑ _lzReceive() │
│ Endpoint │ │ Endpoint │
│ ↓ emit PacketSent event │ │ ↑ lzReceive() │
│ │ │ │
│ DVN monitors event │ DVN signs │ DVN submits verification │
│ Executor monitors event ─────┼─────────────→ Executor calls lzReceive() │
└──────────────────────────────┘ └──────────────────────────────┘התובנה המרכזית של LayerZero V2: OApp (Omnichain Application) הוא החוזה שלך בכל שרשרת. Source Chain Destination Chain ┌──────────────────────────────┐ ┌──────────────────────────────┐ │ OApp (User Contract) │ │ OApp (User Contract) │ │ ↓ _lzSend() │ │ ↑ _lzReceive() │ │ Endpoint │ │ Endpoint │ │ ↓ emit PacketSent event │ │ ↑ lzReceive() │ │ │ │ │ │ DVN monitors event │ DVN signs │ DVN submits verification │ │ Executor monitors event ─────┼─────────────→ Executor calls lzReceive() │ └──────────────────────────────┘ └──────────────────────────────┘ שולח הודעה דרך ה-Endpoint. _lzSend הוא ה-callback ביעד. כל מה שביניהם הוא התפקיד של ה-DVN וה-Executor.
// OApp базовый контракт (LayerZero V2)
import { OApp, Origin, MessagingFee } from "@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol";
contract CrossChainLiquidityPool is OApp {
mapping(address => uint256) public deposits;
constructor(address _endpoint, address _owner) OApp(_endpoint, _owner) {}
// Инициирование кросс-чейн депозита
function depositAndBridge(
uint32 dstEid, // destination endpoint ID (chain)
address recipient,
uint256 amount,
bytes calldata extraOptions
) external payable {
// Принимаем токены
IERC20(depositToken).safeTransferFrom(msg.sender, address(this), amount);
// Кодируем сообщение
bytes memory message = abi.encode(recipient, amount);
// Рассчитываем fee
MessagingFee memory fee = _quote(dstEid, message, extraOptions, false);
require(msg.value >= fee.nativeFee, "Insufficient fee");
// Отправляем кросс-чейн сообщение
_lzSend(
dstEid,
message,
extraOptions,
fee,
payable(msg.sender)
);
emit DepositBridged(msg.sender, dstEid, recipient, amount);
}
// Callback на destination chain
function _lzReceive(
Origin calldata origin,
bytes32 /*guid*/,
bytes calldata payload,
address /*executor*/,
bytes calldata /*extraData*/
) internal override {
// Верифицируем source
require(peers[origin.srcEid] == origin.sender, "Unknown source");
(address recipient, uint256 amount) = abi.decode(payload, (address, uint256));
// Выплачиваем из пула на destination
require(poolBalance[depositToken] >= amount, "Insufficient pool");
poolBalance[depositToken] -= amount;
IERC20(depositToken).safeTransfer(recipient, amount);
emit BridgeReceived(origin.srcEid, recipient, amount);
}
} Stargate V2: Hydra Pool ונזילות מאוחדת
הבעיה של Stargate V1: מאגר ה-USDC על Arbitrum ומאגר ה-USDC על Optimism נפרדים. חוסר איזון: משיכות רבות מ-Arbitrum, מעט נכנסות → המאגר מתרוקן.
הפתרון של Stargate V2 — Hydra Pool: מאגר גלובלי יחיד עם מנגנוני אשראי. לכל שרשרת יש אשראי מהמאגר הגלובלי. העברות מאוזנות גלובלית, לא רק בין זוגות שרשרת.
// Упрощённая модель credit-based pool
contract StargatePool {
// Credits: сколько мы "должны" другим chain пулам
mapping(uint32 => uint256) public credits; // dstEid => credit
uint256 public localBalance;
function sendTokens(
uint32 dstEid,
address to,
uint256 amountLD // Local Decimals
) external {
// Конвертируем в Shared Decimals (унифицированная точность)
uint256 amountSD = _toSD(amountLD);
require(localBalance >= amountSD, "Insufficient balance");
localBalance -= amountSD;
// Увеличиваем credit для destination (они должны выплатить)
credits[dstEid] += amountSD;
// Отправляем сообщение через LayerZero
_sendCrossChain(dstEid, abi.encode(to, amountSD, credits[dstEid]));
}
// Receive: destination выплачивает и обновляет credits
function _receiveTokens(uint32 srcEid, address to, uint256 amountSD) internal {
// Уменьшаем долг перед source
require(credits[srcEid] >= amountSD, "Insufficient credits");
credits[srcEid] -= amountSD;
localBalance += amountSD;
// будет выплачено пользователю
IERC20(token).safeTransfer(to, _toLD(amountSD));
}
}Shared Decimals — פרט חשוב: שרשראות שונות עשויות להיות עם דיוק ERC-20 שונה. 6 עשרוניות USDC על Ethereum, 6 על Arbitrum, אבל פוטנציאלית שונה. Stargate מנרמל ל-SD (Shared Decimals = 6) לחשבונאות בין-שרשרתית.
פרטי Hydra Pool
Hydra Pool משתמש במערכת מבוססת אשראי: לכל שרשרת יש מגבלת אשראי המבוססת על נזילות כוללת. במשיכה, האשראי גדל; בהפקדה, הוא קטן. אם האשראי חורג מהמגבלה, העמלות עולות כדי לתמרץ זרימה הפוכה.כיצד LayerZero V2 מבטיח מסירת הודעות מאובטחת?
מנגנון איזון מחדש
הבעיה של כל גשר נזילות: חוסר איזון בזרימה. אם כולם מושכים משרשרת A ומפקידים לשרשרת B — המאגר על A מתרוקן, ועל B הוא עולה על גדותיו.
contract RebalancingModule {
// Пороги дисбаланса
uint256 public constant REBALANCE_THRESHOLD = 20; // 20% отклонение
uint256 public constant TARGET_UTILIZATION = 80; // целевой utilization
function checkAndRebalance(uint32 srcEid, uint32 dstEid) external {
uint256 srcUtilization = getUtilization(srcEid); // % пула использован
uint256 dstUtilization = getUtilization(dstEid);
if (srcUtilization > TARGET_UTILIZATION + REBALANCE_THRESHOLD && dstUtilization < TARGET_UTILIZATION - REBALANCE_THRESHOLD) {
uint256 rebalanceAmount = calculateRebalanceAmount(srcEid, dstEid);
_initiateRebalance(srcEid, dstEid, rebalanceAmount);
}
}
// LP получают rebalancing incentive за добавление ликвидности в дефицитные пулы
function rebalancingFeeMultiplier(uint32 chainId) public view returns (uint256) {
uint256 utilization = getUtilization(chainId);
if (utilization > 90) return 200; // 2x fee для LP на дефицитной chain
if (utilization > 75) return 150;
return 100;
}
} מנגנון עמלות לאיזון
עמלה דינמית: כשניצול המאגר גבוה (>80%), העמלה לגישור לשרשרת זו עולה. זה מתמרץ כלכלית העברות בכיוון ההפוך והוספת נזילות.
אבטחה ואודיט
הניסיון שלנו מראה שחוזי גשר הם אחת הקטגוריות המותקפות ביותר ב-DeFi. אנו מבטיחים אודיט חיצוני (שני מבקרים בלתי תלויים חובה) וכוללים ביטוח נגד התקפות נדירות.
וקטורי התקפה עיקריים
Reentrancy דרך callback חוצת-שרשרת: תוקף יכול ליזום קריאה רקורסיבית דרך שרשרת אחרת לפני שהראשונה מסתיימת.
מניפולציית אורקל/מאמתים: אם קבוצת המאמתים קטנה או מרכזית, התקפה על סף ה-M-of-N פוגעת בכל הגשר. פריצת Wormhole: ניצול באימות חתימות אפשר טבעת 120,000 wETH ללא כיסוי.
הגנות:
- שימוש בפרוטוקולי הודעות מוכחים (LayerZero V2, Wormhole, Axelar) במקום קבוצת מאמתים משלך
- הכנסת הגבלת קצב: סכום גישור מקסימלי לשעה/24 שעות
- השעיית חירום: multisig + timelock על פעולות קריטיות
- קרן ביטוח: אחוז מהעמלות הולך לקרן ביטוח
התקפת replay
אותה הודעה לא צריכה להימסר פעמיים. LayerZero מגן באמצעות nonce: לכל OApp יש nonce מסודר לכל זוג src/dst. הודעה עם nonce לא צפוי נדחית.
כיצד ליצור פרוטוקול חוצת-שרשרת: מדריך שלב-אחר-שלב
- בחרו ארכיטקטורה ופרוטוקול הודעות.
- כתבו חוזים חכמים ב-Solidity 0.8.x + Foundry.
- שלבו עם LayerZero/Axelar.
- פרסו ל-testnet ובצעו בדיקות חוצות-שרשרת.
- בצעו אודיט (אנו ממליצים על שני אודיטים).
- פרסו ל-mainnet ועקבו.
תמריצים כלכליים ל-LP
משיכת נזילות דורשת מודל כלכלי מעוצב היטב. מנגנונים עיקריים:
| מנגנון | תיאור |
|---|---|
| עמלות גשר (חלק LP) | 0.01–0.06% מהנפח, מחולק ל-LP באופן יחסי |
| תגמולי טוקן פרוטוקול | הנפקות בטוקן ממשל ל-LP |
| בונוסי איזון מחדש | עמלה גבוהה יותר לנזילות במאגרים בגירעון |
| הצבעת veToken | LP מצביעים להגברת הנפקה למאגר שלהם |
להתחלה קרה: תגמולים מוגברים ב-3–6 החודשים הראשונים מקופת הפרוטוקול.
מה כלול בפיתוח פרוטוקול
- תיעוד ארכיטקטוני
- חוזים חכמים (ליבה ועזר)
- אינטגרציה עם פרוטוקול ההודעות הנבחר
- Frontend (wagmi + viem, ארנק רב-שרשרתי)
- אודיט אבטחה (חיצוני, שני מבקרים)
- פריסה ל-testnet/mainnet
- תיעוד למפתחים
- תמיכה טכנית ל-3 חודשים לאחר ההשקה
הניסיון שלנו
יישמנו 10+ גשרים חוצי-שרשרת לפרוטוקולי DeFi. 5 שנים בשוק פיתוח הבלוקצ'יין. הנפח הכולל שגושר דרך החוזים שלנו עולה על 500 מיליון דולר. צרו קשר לייעוץ — נחשב זמנים ועלות באופן אישי.







