שילוב Wormhole: טוקנים בין-שרשרתיים, נתונים ו-DeFi
אנו משלבים את Wormhole להעברת טוקנים ונתונים בין-שרשרתיים — מממשק גשר פשוט ועד פרוטוקולי הודעות מותאמים אישית מורכבים. הצוות שלנו ביצע למעלה מ-30 פרויקטים במפגש בין EVM ל-Solana. משימה טיפוסית: העברת USDC מ-Ethereum ל-Arbitrum ללא עמלות ועיכובים נוספים. או שליחת אות שרירותי מ-Solana ל-BNB Chain לצורך סנכרון מצב. Wormhole פותר זאת, אך דורש הבנה של רשת ה-Guardian ושל VAA.
כיצד Wormhole מבטיח אמון בין שרשראות?
Wormhole משתמש ברשת של 19 מאמתי Guardian. כל Guardian צופה באירועים בשרשרת המקור וחותם על VAA (Verified Action Approval) — הוכחה שהאירוע התרחש. כדי לקבל VAA, נדרשות 13 מתוך 19 חתימות. זהו פשרה בין אבטחה למהירות: פגיעה ב-13 צמתי Guardian מעניקה שליטה מלאה בפרוטוקול. הבנת הפשרה הזו קריטית בעת בחירת שיטת אינטגרציה.
ארכיטקטורת הפרוטוקול
Source Chain Wormhole Guardians Target Chain
│ │ │ │
publishMessage(payload)
│ │ │
→ Core Bridge Contract
│ │ │
emits LogMessagePublished
│ │ │
observe event
│ │
sign VAA
│ │
(19 guardians,
│ │ 13-of-19 threshold)
│ │ │
VAA signed
│ │ │
──────────────────────────►
│ │
receiveMessage(VAA)
│ verify Guardian sigs
│ execute payload
התחלה מהירה עם Wormhole Connect
כדי להוסיף ממשק גשר ליישום שלך, השתמש ברכיב Wormhole Connect. אין צורך לכתוב חוזים חכמים:
npm install @wormhole-foundation/wormhole-connect import WormholeConnect from '@wormhole-foundation/wormhole-connect'
export default function BridgePage() {
return (
<WormholeConnect
config={{
network: 'Mainnet',
chains: ['Ethereum', 'Solana', 'Arbitrum', 'Base', 'BNB'],
tokens: ['ETH', 'USDC', 'USDT', 'WBTC'],
rpcs: {
Ethereum: 'https://eth-mainnet.g.alchemy.com/v2/...',
Solana: 'https://api.mainnet-beta.solana.com',
},
ui: {
title: 'Bridge',
defaultInputs: {
fromChain: 'Ethereum',
toChain: 'Arbitrum',
tokenKey: 'ETH',
}
}
}}
/>
)
}Connect תומך במספר פרוטוקולי ניתוב: Token Bridge (lock-and-mint), CCTP (גשר USDC המקורי של Circle, ללא טוקנים עטופים), ופורטלי נזילות. הוא בוחר אוטומטית את המסלול האופטימלי.
אינטגרציה פרוגרמטית באמצעות Wormhole SDK
לזרימות עבודה בין-שרשרתיות מותאמות אישית, אנו משתמשים ב-TypeScript SDK (wormhole-sdk v3).
import { wormhole } from '@wormhole-foundation/sdk'
import { EvmPlatform } from '@wormhole-foundation/sdk-evm'
import { SolanaPlatform } from '@wormhole-foundation/sdk-solana'
const wh = await wormhole('Mainnet', [EvmPlatform, SolanaPlatform])
// Получаем chain contexts
const srcChain = wh.getChain('Ethereum')
const dstChain = wh.getChain('Solana')
// Token Bridge transfer
const tb = await srcChain.getTokenBridge()
const transferTxs = tb.transfer(
senderAddress,
{ chain: 'Solana', address: recipientAddress },
'native', // ETH
1_000_000_000_000_000_000n // 1 ETH в wei
)
// Отправляем транзакцию на Source chain
for await (const tx of transferTxs) {
await signer.sendTransaction(tx.transaction)
}
// Ждём VAA (обычно 15 минут для Ethereum finality)
const [txid] = await srcChain.sendWait(transferTxs, signer)
const vaa = await wh.getVaa(txid, 'TokenBridge:Transfer', 60_000)
// Redeem на Target chain
const redeemTxs = dstChain.getTokenBridge().redeem(recipientAddress, vaa)
for await (const tx of redeemTxs) {
await solanaSigner.sendTransaction(tx.transaction)
} מדוע CCTP מהיר יותר מ-Token Bridge?
CCTP (פרוטוקול העברה בין-שרשרתית של Circle) דרך Wormhole שורף USDC בשרשרת המקור ומטביע USDC מקורי בשרשרת היעד, ללא טוקנים עטופים. זמן העברה: כ-2 דקות לעומת 15–20 דקות עבור Token Bridge. שרשראות נתמכות: Ethereum, Arbitrum, Base, Optimism, Avalanche, Polygon. עבור העברות USDC, CCTP תמיד עדיף.
הודעות מותאמות אישית: יישומים בין-שרשרתיים
Wormhole הוא לא רק גשר טוקנים אלא גם הודעות לשימוש כללי. החוזה במקור מפרסם מטען שרירותי, והחוזה המקבל מאמת את ה-VAA ומבצע לוגיקה.
// Source chain: отправка сообщения
interface IWormhole {
function publishMessage(
uint32 nonce,
bytes memory payload,
uint8 consistencyLevel
) external payable returns (uint64 sequence);
}
contract CrossChainApp {
IWormhole wormhole;
function sendMessage(bytes memory payload) external payable {
uint64 sequence = wormhole.publishMessage{value: msg.value}(0, payload, 1);
emit MessageSent(sequence);
}
}
// Target chain: получение VAA
contract CrossChainReceiver {
IWormhole wormhole;
mapping(bytes32 => bool) processedVAAs;
function receiveMessage(bytes memory encodedVAA) external {
(IWormhole.VM memory vm, bool valid, string memory reason) = wormhole.parseAndVerifyVM(encodedVAA);
require(valid, reason);
require(!processedVAAs[vm.hash], "Already processed");
processedVAAs[vm.hash] = true;
_processPayload(vm.payload);
}
} Wormhole Queries: נתונים בין-שרשרתיים ללא עסקאות
Wormhole Queries — קריאה לפי דרישה של נתונים על-שרשרתיים משרשרת אחרת ללא שליחת עסקאות. צמתי Guardian מבצעים בקשת RPC ומחזירים תשובה חתומה. מקרה שימוש: בדיקת יתרת/סטייקינג של משתמש ב-Ethereum ישירות מחוזה ב-Solana. ללא אורקל, ללא עסקת גשר.
כלי פיתוח וניטור
Wormholescan (wormholescan.io) — סייר עבור VAA ועסקאות. חיוני לניפוי באגים: מצא את ה-VAA לפי txHash של שרשרת המקור, בדוק סטטוס חתימות Guardian. Testnet: Wormhole תומך ב-testnets של כל השרשראות. Ethereum Sepolia → Solana Devnet הוא מסלול בדיקה סטנדרטי.
| רכיב | כלי |
|---|---|
| SDK | @wormhole-foundation/sdk v3 |
| רכיב ממשק | @wormhole-foundation/wormhole-connect |
| סייר | wormholescan.io |
| ניטור VAA | Wormhole Guardian API |
| Relayer | Wormhole Standard Relayer / מותאם אישית |
| בדיקות | Foundry + wormhole-solidity-sdk |
מה כלול בעבודה ובתהליך
- ניתוח מסלול: קביעה אילו שרשראות וטוקנים נדרשים, בחירת Token Bridge / CCTP / הודעות מותאמות אישית. (2-3 ימים)
- עיצוב ארכיטקטורה: תכנית אינטראקציה בין חוזים, בחירת relayer.
- פיתוח חוזים חכמים: חוזי Solidity/Anchor עם עיבוד VAA והגנה מפני שחזור. (2-4 שבועות)
- אינטגרציית SDK/UI: חיבור Wormhole Connect או חזית מותאמת אישית. (3-5 ימים)
- בדיקות Testnet: בדיקת מקרי קצה (פגות VAA, reorg, double-spend).
- תיעוד: תיאור תצורה והוראות תמיכה.
- פריסה וניטור: הגדרת ניטור חתימות Guardian דרך Wormholescan.
טעויות אינטגרציה טיפוסיות
- הגדרת consistencyLevel שגויה (שימוש ב-instant במקום finalized ב-Ethereum).
- חוסר הגנה מפני שחזור (processedVAAs).
- אי התחשבות בעיכובי סופיות (15 דקות עבור Ethereum, 200 slots עבור Solana).
השוואת שיטות העברה
| פרמטר | Token Bridge | CCTP | הודעות מותאמות אישית |
|---|---|---|---|
| נכסים | כל טוקנים | USDC בלבד (מקורי) | כל נתונים |
| אבטחה | טוקנים עטופים | USDC מקורי | תלוי ביישום |
| מהירות | 15-20 דקות | כ-2 דקות | תלוי בעקביות |
| גמישות | העברה בלבד | USDC בלבד | כל מטען |
הצוות שלנו ביצע למעלה מ-30 אינטגרציות בין-שרשרתיות מוצלחות. קבל ייעוץ לפרויקט שלך: צור קשר, אנו נעריך את המורכבות ונציע ארכיטקטורה.







