הגדרת FATF Travel Rule עבור VASP: Notabene וארנקים לא מאוחסנים
הערה: כאשר ה-VASP שלך מתחיל לקבל העברות משותפים אירופאים, תגלה במהירות שבלי עמידה ב-Travel Rule הם פשוט דוחים את ההעברות. אתה נאלץ ליישם בדחיפות העברת נתוני יוזם—הדרישה הטכנית המאתגרת ביותר של חבילת FATF R15-16. אין פרוטוקול יחיד, יש כמה פתרונות מתחרים, ובעיית ה-Sunrise: VASP אחד עומד בדרישות, אחר לא. לצוות שלנו יש ניסיון מוכח של למעלה מעשור בפיתוח בלוקצ'יין—מוסמך בביקורת אבטחה ועמידה ברגולציה—ועזר לעשרות בורסות לנווט בנתיב הזה. במאמר זה נפרק את כל הניואנסים הטכניים: מזיהוי VASP ועד למדיניות ארנקים לא מאוחסנים.
בעיות טכניות שנפתרות על ידי ה-Travel Rule
בעיה 1: זיהוי VASP לפי כתובת. עליך לקבוע אם כתובת היעד שייכת ל-VASP אחר (ארנק מאוחסן) או לארנק לא מאוחסן. זה נפתר באמצעות מאגרי נתונים של ספקים (Notabene, Chainalysis) וקיבוץ כתובות. בעיה 2: העברת PII בערוצים מאובטחים. דורש תשתית להחלפת נתונים אישיים עם תמיכה בהצפנה ואימות.
בעיה 3: טיפול בארנקים לא מאוחסנים. עבור העברות לארנקים אישיים, רגולטורים רבים דורשים הוכחת בעלות (לדוגמה, חתימת הודעות EIP-191). זה מוסיף שלב לזרימת המשתמש.
בעיה 4: בעיית ה-Sunrise. אם ה-VASP המקבל אינו תומך ב-Travel Rule, עליך לבחור אסטרטגיה: חסימת ההעברה (עמידה בדרישות אך חוויית משתמש ירודה) או שימוש ב-best efforts עם רישום. למעלה מ-90% מהלקוחות שלנו מאמצים best efforts כצעד זמני, המקובל על רוב הרגולטורים.
מה כלול בהגדרת ה-Travel Rule
החבילה המקיפה שלנו כוללת:
- בחירת ספק הודעות Travel Rule (ניתוח כיסוי ו-API)
- אינטגרציית SDK (Notabene, Sygna, או חלופות)
- זיהוי VASP לפי כתובת (Notabene + Chainalysis)
- פיתוח מדיניות ארנקים לא מאוחסנים (אימות בעלות)
- יישום אסטרטגיית בעיית ה-Sunrise (best efforts עם ניסיונות חוזרים)
- השקת לוח מחוונים לעמידה ברגולציה (React) עם ניטור בזמן אמת
- אחסון רשומות מוצפן (PostgreSQL עם AES-256)
- תיעוד מלא: דיאגרמות ארכיטקטורה, הפניות API, מדריך תפעול
- העברת גישה מאובטחת והדרכות לצוות שלך
- 30 ימי תמיכה לאחר ההשקה וערבות SLA
לאחר היישום תקבל עמידה בדרישות הרגולטוריות ומסלול ביקורת מוכן—תוך חיסכון של עד חודשיים במאמץ פיתוח פנימי.
אינטגרציה של Notabene עם הפלטפורמה שלך
Notabene היא המובילה בשוק עם למעלה מ-500 משתתפי VASP. היא משתמשת ב-SSI (Self-Sovereign Identity) וב-API בסגנון RESTful, מה שמפשט את האינטגרציה. זמן האינטגרציה הממוצע נמוך ב-40% מאשר עם Sygna, כפי שאושר בניסיון שלנו—בדרך כלל 3–5 שבועות מהתחלה ועד ייצור.
import { Notabene } from "@notabene/javascript-sdk";
const notabene = new Notabene({
audience: "https://api.notabene.id",
clientId: NOTABENE_CLIENT_ID,
clientSecret: NOTABENE_CLIENT_SECRET,
vaspDID: MY_VASP_DID,
});
// Создание исходящего Travel Rule transfer
async function createTravelRuleTransfer(withdrawal: Withdrawal): Promise<string> {
const transfer = await notabene.transfers.create({
transactionAsset: withdrawal.asset,
transactionAmount: withdrawal.amount.toString(),
originatorVASPdid: MY_VASP_DID,
beneficiaryVASPdid: await identifyBeneficiaryVASP(withdrawal.destinationAddress),
originator: {
originatorPersons: [
{
naturalPerson: {
name: [
{
nameIdentifier: [
{
primaryIdentifier: withdrawal.userLastName,
secondaryIdentifier: withdrawal.userFirstName,
},
],
},
],
},
geographicAddress: [
{
streetName: withdrawal.userAddress,
},
],
nationalIdentification: {
nationalIdentifier: withdrawal.userIdNumber,
},
},
],
accountNumber: [MY_VASP_ADDRESS_MAPPING[withdrawal.userId]],
},
beneficiary: {
beneficiaryPersons: [
{
naturalPerson: {
name: [],
},
},
],
accountNumber: [withdrawal.destinationAddress],
},
transactionBlockchainInfo: {
origin: withdrawal.fromAddress,
destination: withdrawal.destinationAddress,
},
});
return transfer.id;
} למה Notabene היא הבחירה האופטימלית?
Notabene נפרסת פי 3 מהר יותר מאשר Sygna בזכות SDK ותיעוד בוגרים. לסטארטאפים אנו ממליצים להתחיל עם Notabene, לבנקים גדולים—TRP (אינטגרציה עם SWIFT). צור קשר—אנו נבחר את הפתרון האופטימלי עבור תחום השיפוט שלך.
קביעת VASP לעומת ארנק לא מאוחסן
משימה מרכזית: לקבוע אם כתובת היעד שייכת ל-VASP אחר (ארנק מאוחסן) או שהיא ארנק לא מאוחסן.
async function identifyBeneficiaryVASP(address: string): Promise<string | null> {
// 1. Notabene VASP lookup (база данных VASP адресов)
const vaspLookup = await notabene.addresses.lookup({ address });
if (vaspLookup.vasp) return vaspLookup.vasp.did;
// 2. Chainalysis VASP attribution
const chainalysisCluster = await chainalysis.getCluster(address);
if (chainalysisCluster?.type === "exchange" || chainalysisCluster?.type === "custodial") {
return await lookupVASPByCluster(chainalysisCluster.name);
}
// 3. Если не определили — unhosted wallet
return null;
} מדיניות ארנקים לא מאוחסנים
FATF מאפשרת גישה מקלה להעברות לארנקים לא מאוחסנים (ארנקים אישיים של משתמשים). אך רגולטורים רבים (האיחוד האירופי, שווייץ) דורשים אמצעים נוספים:
async function handleUnhostedWalletWithdrawal(
userId: string,
destinationAddress: string,
amount: number
): Promise<void> {
const usdAmount = await convertToUSD(amount);
if (usdAmount >= UNHOSTED_WALLET_VERIFICATION_THRESHOLD) {
// Требуем proof of wallet ownership
const ownershipProof = await requestWalletOwnershipProof(userId, destinationAddress);
if (!ownershipProof.verified) {
throw new Error("Wallet ownership verification failed");
}
// Записываем в travel rule файл (без отправки — нет receiving VASP)
await db.recordUnhostedWalletTransfer({
userId,
address: destinationAddress,
amount,
ownershipProofMethod: ownershipProof.method,
verifiedAt: new Date(),
});
}
await executeWithdrawal(userId, destinationAddress, amount);
}
// Верификация владения кошельком — message подписание
async function requestWalletOwnershipProof(
userId: string,
address: string
): Promise<OwnershipProof> {
const challenge = crypto.randomBytes(32).toString("hex");
// Сохраняем challenge, ждём подписи от пользователя
await db.storeWalletChallenge(userId, address, challenge);
// Пользователь подписывает challenge своим кошельком
// Верификация происходит в другом endpoint
return { pending: true, challenge };
} השוואת ספקי הודעות Travel Rule
| ספק | יתרונות | חסרונות |
|---|---|---|
| Notabene | 500+ VASP, SSI, REST API, פריסה מהירה | תלות בשירות צד שלישי, מחיר |
| Sygna Bridge | כיסוי חזק באסיה, אינטגרציה עם OKX/Huobi | פחות משתתפים, תיעוד חלש |
| Veriscope | מבוזר, מבוסס בלוקצ'יין | מורכבות גבוהה, אימוץ נמוך |
| OpenVASP | פרוטוקול פתוח, P2P, ללא מרכז | אין תשתית מוכנה, אימוץ נמוך |
בעיית ה-Sunrise: אסטרטגיות ויישום
"בעיית ה-Sunrise"—מצב שבו ה-VASP המקבל אינו תומך ב-Travel Rule. אפשרויות:
- לא לשלוח עד אישור—עמידה קפדנית בדרישות, חוויית משתמש ירודה.
- Best efforts—שליחת נתוני Travel Rule אם אפשרי, רישום ניסיונות. זו הגישה המומלצת שלנו, המקובלת על למעלה מ-90% מהרגולטורים כצעד זמני.
- עיכוב + ניסיון חוזר—השארת העסקה בהמתנה, חזרה על הבקשה ל-VASP המקבל במרווחים (לדוגמה, כל 15 דקות עד 24 שעות).
אנו מיישמים best efforts עם רישום מלא של כל הניסיונות והתגובות. זה מאזן בין עמידה ברגולציה לחוויית משתמש. בהזמנת הגדרה זו, אתה מקבל פתרון מוכן שעומד בדרישות הרגולטוריות של האיחוד האירופי וארה"ב.
מחסנית טכנית
| רכיב | פתרון |
|---|---|
| הודעות Travel Rule | Notabene SDK |
| זיהוי VASP | Notabene + Chainalysis |
| הוכחת בעלות על ארנק | חתימת הודעות EIP-191 |
| אחסון רשומות | PostgreSQL + הצפנה (AES-256) |
| לוח מחוונים לעמידה ברגולציה | פאנל ניהול React |
לוחות זמנים ועלות
הגדרת עמידה ב-FATF Travel Rule עם אינטגרציית Notabene, מדיניות ארנקים לא מאוחסנים ולוח מחוונים לעמידה ברגולציה אורכת 3 עד 5 שבועות. עלות פרויקט טיפוסית נעה בין $10,000 ל-$25,000 בהתאם למורכבות הארכיטקטורה ולתשתית הקיימת. השאר בקשה—נבצע ביקורת חינם של מערכת העמידה הנוכחית שלך ונציע את הפתרון האופטימלי.







