פיתוח גשרים בין-שרשרתיים: ארכיטקטורה, סיכונים ויישום
אנו מפתחים גשרים בין-שרשרתיים ופתרונות בין-שרשרתיים מקצה לקצה. אנו יודעים כיצד להימנע מאסונות. לפני מספר שנים, הגשר של Binance BNB Chain איבד 570 מיליון דולר — התוקף זייף הוכחת Merkle בגשר המקורי של BSC. באותה שנה, Wormhole איבד 320 מיליון דולר: אימות חתימת השומרים נעקף באמצעות באג בתוכנת secp256k1 של Solana. גשר Ronin — 625 מיליון דולר. אלה אינן צירופי מקרים. גשרים הם התשתית המותקפת ביותר ב-Web3 מכיוון שהם מרכזים נזילות ויש להם לוגיקת אימות בין-שרשרתית מורכבת.
מדוע גשרים נשברים? שלוש מחלקות ארכיטקטוניות של פרצות
בעיות סופיות (Finality) וארגון מחדש (Reorg). ל-Ethereum יש סופיות הסתברותית לפני The Merge וסופיות כלכלית אחריו (2 תקופות, ~12 דקות). Bitcoin — ~6 בלוקים (~60 דקות). Solana — ~400 אלפיות שנייה. אם גשר מטביע אסימונים עטופים בשרשרת היעד מיד לאחר 1-2 בלוקים במקור — ארגון מחדש של 3+ בלוקים מאפשר לתוקף להשיג אסימונים ביעד בעוד עסקת המקור מתבטלת. הגנה נכונה: המתנה לאישור סופיות ספציפי לכל שרשרת. עבור Ethereum — 64+ בלוקים (2 תקופות). לא בלוק אחד.
אימות חתימות. רוב הגשרים משתמשים בוועדת multisig או בחתימת סף: N מתוך M מאמתים חייבים לחתום על האירוע משרשרת המקור. Wormhole השתמש ב-13 מתוך 19 שומרים. ההתקפה לא הייתה על המפתחות עצמם — התוקף מצא פרצה בקוד אימות החתימות ב-Solana, שבו חשבון sysvar מיושן התקבל כתקף ללא אימות. אימות חתימות על-רשת (on-chain) קשה יותר ממה שנדמה.
נעילה-והטבעה (Lock-and-Mint) לעומת שריפה-והטבעה (Burn-and-Mint). במודל הנעילה-וההטבעה, אסימונים מקוריים ננעלים בחוזה בשרשרת המקור, ואסימונים עטופים מוטבעים ביעד. חוזה המקור הוא מלכודת דבש: כל ה-TVL הנעול נמצא שם. באג אחד בלוגיקת השחרור — וכל הכספים זמינים לתוקף ללא צורך לעשות דבר בשרשרת היעד. שריפה-והטבעה מקורית (כמו Circle CCTP עבור USDC) בטוחה יותר: אין מאגר נעול.
כיצד לבחור שכבת העברת הודעות לפרויקט שלך?
LayerZero — פרוטוקול להעברת הודעות שרירותית בין שרשראות. אינו גשר בעצמו, אלא תשתית לבניית גשרים ויישומים אומני-שרשרת (omnichain).
ארכיטקטורה: חוזה Endpoint בכל שרשרת, Executor (מעביר הודעות לשרשרת היעד), DVN (רשת מאמתים מבוזרת — מאמתת את עובדת העסקה בשרשרת המקור).
Source chain: OApp.send() → Endpoint.send() → [emits packet event] Destination chain: DVN verifies packet hash → Executor calls Endpoint.deliver() → OApp.lzReceive() ב-v2, המפתח בוחר DVNs: רשמיים (LayerZero Labs, Google Cloud, Polyhedra), או מותאמים אישית. ניתן להגדיר DVN חובה + DVN אופציונלי: הודעה מתקבלת רק אם כל ה-DVNs החובה מאשרים. זה מאפשר בניית גשרים עם איזונים שונים בין אבטחה למהירות.
OApp (יישום אומני-שרשרת) — החוזה הבסיסי לאינטגרציה. יורשים מ-Source chain: OApp.send() → Endpoint.send() → [emits packet event] Destination chain: DVN verifies packet hash → Executor calls Endpoint.deliver() → OApp.lzReceive() , מממשים את OApp ו-_lzSend. עבור גשרי אסימונים — תקן _lzReceive (אסימון פונג'יבילי אומני-שרשרת) מבצע מחוץ לקופסה שריפה-במקור / הטבעה-ביעד.
Wormhole משתמש ברשת של 19 שומרים (חברות גדולות כמו Jump Crypto, Everstake וכו'), כל אחת חותמת על אירועים שנצפו. סף — 13 מתוך 19. VAA (אישור פעולה מאומת) — הודעה חתומה שמתקבלת בשרשרת היעד.
ההבדל העיקרי מ-LayerZero: ל-Wormhole יש תמיכה מקורית בשרשראות שאינן EVM: Solana, Aptos, Sui, Algorand, Near. עבור פרויקטים שצריכים גשר בין Ethereum ל-Solana — Wormhole הוא לעיתים קרובות האפשרות היחידה המוכנה לייצור.
לאחר הניצול, Wormhole הוסיפה העברות אסימונים מקוריות (NTT) — ארכיטקטורה ללא מאגר נעול, בדומה ל-CCTP. NTT + מודל Hub-and-Spoke: נזילות עודפת אינה מצטברת על שרשרת אחת.
ארכיטקטורת ממסר (Relay) ואימות לקוח קל (Light Client)
גשרים מבוססי ממסר (IBC במערכת האקולוגית של Cosmos, Telepathy של Succinct) מאמתים את מצב שרשרת המקור באמצעות לקוח קל בשרשרת היעד. עבור EVM→EVM: חוזה ב-Ethereum מאחסן ומאמת חתימות BLS של בלוקי שרשרת המקור.
גשרי ZK הם הרמה הבאה. Succinct, Polyhedra zkBridge, Electron Labs מייצרים הוכחת ZK לנכונות הקונצנזוס של שרשרת המקור. בשרשרת היעד, ההוכחה מאומתת, לא חתימות המאמתים. מסיר אמון בוועדה. אבל אימות הוכחת ZK יקר בגז — מ-200k עד 500k גז ב-Ethereum L1 בהתאם למערכת ההוכחה. גשר ZK בטוח יותר מגשר מבוסס ממסר אך דורש פי 2-3 יותר גז לאימות.
| מאפיין | LayerZero | Wormhole | IBC (Cosmos) | גשר ZK |
|---|---|---|---|---|
| תמיכת EVM | כל ה-EVM + Solana, Aptos | כל ה-EVM + Solana, Aptos, Sui | שרשראות Cosmos | בצמיחה |
| מודל אמון | DVN (בר-הגדרה) | 13/19 שומרים | לקוח קל | הוכחת ZK |
| זמן השהיה | 1-5 דקות | 1-5 דקות | ~30 שניות | 5-30 דקות |
| גז לאימות | ~100-150k | ~150-200k | ~200-300k | 200-500k |
מה כולל פיתוח גשר בין-שרשרתי?
אנו מיישמים את הפרויקט במפתח מלא ומספקים סט תוצאות מלא. הלקוחות שלנו מקבלים:
| שלב | תוצאה |
|---|---|
| ניתוח ובחירת ארכיטקטורה | מפרט טכני, נימוק לבחירת שכבת העברת ההודעות |
| עיצוב חוזים חכמים | מפרט, דיאגרמות זרימה, תיאור מודל האמון |
| פיתוח ובדיקות | קוד מקור, בדיקות יחידה/אינטגרציה, סימולציית תרחישים בין-שרשרתיים |
| ביקורת אבטחה | דוח מבקר חיצוני, פרצות שתוקנו |
| פריסה וניטור | חוזי Mainnet, לוח מחוונים להתראות, תיעוד תפעולי |
| תמיכה לאחר השקה | 3 חודשי תמיכה באחריות, סיוע תפעולי |
יישום: מה לשקול לפני שורת הקוד הראשונה
רכיבים חובה לכל גשר ייצור:
Pauser. פונקציית השבתת חירום, המופעלת על ידי multisig או אוטומטית בעת זיהוי חריגה (נפח חשוד, רצף קריאות לא טיפוסי). לרוב הגשרים שנפרצו לא היה pauser או שלא השתמשו בו בזמן.
הגבלת קצב (Rate limiting). הגבלת נפח יציאה לכל פרק זמן. אם תוקף מרוקן את הגשר — הגבלת הקצב נותנת זמן להגיב. יישום: OFT.
בדיקות סופיות. ספציפיות לכל שרשרת. לא "לחכות בלוק אחד", אלא להשתמש ב-API של סופיות או להמתין למספר האישורים הנדרש.
ניטור ממסר. שירות אוטונומי המנטר את מצב שני צידי הגשר. אם הודעה נשלחה אך לא נמסרה תוך N דקות — התראה. אם היתרה הנעולה חורגת מ-totalSupply של האסימון העטוף — התראה קריטית.
ציר זמן ועלות
גשר ERC-20 פשוט על גבי שכבת העברת הודעות קיימת (LayerZero OFT או Wormhole NTT) — 4-8 שבועות כולל בדיקות וביקורת. גשר מותאם אישית עם אימות משלו, תמיכה מרובת שרשראות, הגבלת קצב, ניטור — 12-24 שבועות. גשר ZK עם מעגלי הוכחה מותאמים אישית — מ-6 חודשים.
ביקורת גשר אורכת זמן רב יותר מביקורת פרוטוקול DeFi סטנדרטי: יש לבדוק תרחישים בין-שרשרתיים, מקרי קצה של סופיות, התקפות ארגון מחדש. מינימום 3-4 שבועות לפתרון ברמת ייצור.
העלות מחושבת באופן פרטני לאחר הערכת עומס העבודה. אנו עובדים מאז 2018 והשלמנו 15+ פרויקטים בתשתית בלוקצ'יין. צרו קשר — נבחן את הפרויקט שלכם ונציע את הארכיטקטורה האופטימלית לגשר.







