בעת פיתוח מערכת אימות אישורים לפרוטוקול DeFi, נתקלנו בצורך לאמת את סטטוס ה-KYC של המשתמשים מבלי לחשוף את הנתונים האישיים שלהם. אימות בלוקצ'יין סטנדרטי חושף את כל תכונות האישור, מה שפוגע בפרטיות. הפתרון הוא אישורים ניתנים לאימות באמצעות ZK-proof (Groth16 או PLONK), המאפשרים להוכיח רק את העובדה הנדרשת. תשתית זו מתוקננת על ידי W3C (תקן W3C לאישורים ניתנים לאימות) ונתמכת על ידי ארנקים (MetaMask, WalletConnect) ופרוטוקולים. אנו מיישמים את המחזור המלא: הנפקה, אחסון, אימות וביטול של אישורים דיגיטליים המבוססים על תקני W3C Verifiable Credentials. המערכת יכולה להשתלב עם ספקי KYC קיימים (Persona, Jumio) ולרוץ על Ethereum, Polygon או Arbitrum. חיסכון בגז עם ZK-proof על L2 מגיע עד 70% — עם 1000 אימותים ביום, זה חוסך מעל $500 בחודש.
ארכיטקטורת אימות על הבלוקצ'יין
המערכת בנויה משלושה רכיבים מרכזיים:
- מנפיק (Issuer) — ארגון מהימן (ספק KYC, מוסד חינוכי, DAO) שמנפיק אישורים חתומים באמצעות DID משלו.
- מחזיק (Holder) — משתמש המאחסן אישורים (לדוגמה, בארנק או דרך Polygon ID).
- מאמת (Verifier) — פרוטוקול או dApp שבודק אישורים לפני מתן גישה.
המאמת יוצר אתגר ייחודי (nonce); המחזיק כולל אותו במצג הניתן לאימות (Verifiable Presentation) וחותם עליו. זה מונע התקפות replay: המצג תקף רק עבור אותה בקשה ספציפית.
// Пользователь создаёт presentation
const presentation = {
"@context": ["https://www.w3.org/2018/credentials/v1"],
"type": ["VerifiablePresentation"],
"verifiableCredential": [kycCredential],
"proof": {
"type": "Ed25519Signature2020",
"challenge": nonce,
"domain": "app.example.com",
"created": new Date().toISOString(),
"verificationMethod": `did:ethr:${userAddress}#controller`,
"proofPurpose": "authentication",
"jws": await signPresentation(nonce)
}
}; הכרחיות של אימות ZK
אימות סטנדרטי חושף את כל האישור: הפרוטוקול רואה את המנפיק, תאריך ההנפקה וכל התכונות. ZK-proof (Groth16 או PLONK) משנה זאת: המשתמש מוכיח עובדה ("יש לי אישור KYC תקף") מבלי לחשוף את תוכנו. גישה זו נדרשת עבור:
- הלוואות DeFi — לוודא שלווה עבר KYC מבלי לחשוף את זהותו.
- ממשל DAO — להעניק זכויות הצבעה רק למחזיקי SBT של תורמים, מבלי להראות מי מחזיק בהם.
- DEX תואם רגולציה — לאפשר מסחר רק לכתובות מאומתות מתחומי שיפוט מורשים.
ZK-proof מאיץ את האימות פי 3–5 בהשוואה לאימות מלא (בשימוש במסגרות מבוססות Plookup) ומספק את הסודיות הנדרשת על ידי GDPR.
כיצד ZK-proof מגן על פרטיות?
ZK-proof מאפשר למאמת להשתכנע באמיתות הצהרה מבלי לראות את הנתונים המקוריים. לדוגמה, משתמש מוכיח שהוא מעל גיל 18 מבלי להציג את הדרכון שלו. זה מושג באמצעות מעגלים הכתובים ב-circom ו-snarkjs. רישום on-chain מאחסן רק hash או תמונת מצב; האישורים המלאים נשארים אצל המשתמש.
מהו רישום On-chain?
רישום on-chain הוא חוזה חכם המאחסן הפניות לאישורים עדכניים או טביעות אצבע שלהם. כאשר אישור מבוטל, המנפיק מעדכן את הרישום, והמאמת בודק את הסטטוס. גישה זו מבטיחה שקיפות ובלתי-ניתנות לשינוי, אך דורשת ניהול גז. אנו מייעלים את צריכת הגז על ידי אחסון רק נתונים הנחוצים לאימות.
הגישה שלנו: מה כלול בפיתוח
אנו מתכננים את המערכת turnkey מהיסוד או משתלבים עם ארכיטקטורה קיימת. הפיתוח שלנו כולל:
- בחירת התקן (W3C VC + DID או Polygon ID עבור ZK).
- פריסת חוזה חכם של רישום On-chain על Ethereum/Polygon/Arbitrum (לבחירתך).
- שילוב מנפיקים מהימנים (Persona, Jumio, Onfido, או משלך).
- פיתוח SDK למאמת (ethers.js, viem) לשימוש בפרוטוקול.
- יישום מעגלי ZK (circom + snarkjs) וחוזה חכם למאמת (במידת הצורך).
- ביצוע ביקורת אבטחה (Slither, Mythril, Echidna fuzzing).
- מסירת תיעוד, בדיקות והוראות פריסה.
השוואת שיטות אימות
| שיטה | פרטיות | עלות גז (L2) | זמן אימות | תמיכה בתקן |
|---|---|---|---|---|
| אימות VC סטנדרטי | נמוכה (חושף את כל הנתונים) | ~50,000 גז | <1 שנייה | W3C VC + DID |
| ZK-proof (Groth16) | גבוהה (רק עובדה) | ~300,000 גז | 2–3 שניות | Polygon ID, circom |
| ZK-proof (PLONK) | גבוהה (רק עובדה) | ~200,000 גז | 1–2 שניות | PLONK, Halo2 |
| התחייבות On-chain + אימות off-chain | בינונית (hash) | ~30,000 גז | <1 שנייה | מותאם אישית |
שלבי פיתוח
| שלב | משך | תוצאה |
|---|---|---|
| אנליטיקה | 1–2 שבועות | מפרט טכני, בחירת מחסנית טכנולוגית |
| עיצוב | 1–2 שבועות | ארכיטקטורת חוזה חכם ומעגל ZK |
| יישום | 4–8 שבועות | חוזים, מעגלים, SDK, בדיקות |
| ביקורת | 1–2 שבועות | דוח אבטחה |
| פריסה | שבוע אחד | פריסה ברשת, אינטגרציה |
| תמיכה | 3 חודשים | תיעוד, הדרכה, שיפורים |
תהליך
- אנליטיקה — הבהרת סוגי אישורים, מספר מנפיקים, דרישות פרטיות.
- עיצוב — בחירת מחסנית (Foundry/Hardhat, circom/snarkjs), ארכיטקטורת חוזה חכם.
- יישום — כתיבת חוזים, מעגלי ZK, SDK, בדיקות (יחידה + אינטגרציה).
- ביקורת — ביקורת אבטחה פנימית וחיצונית.
- פריסה — פריסה ברשת הנבחרת, אינטגרציה עם הפרוטוקול שלך.
- תמיכה — תיעוד, הדרכת צוות, תמיכת אחריות ל-3 חודשים.
דוגמת תצורת circom עבור KYC
pragma circom 2.0.0;
include "../../node_modules/circomlib/circuits/comparators.circom";
template KYCCredential(ageThreshold) {
signal input age;
signal input country;
signal input isKYC;
signal output valid;
component ageCheck = GreaterThan(32);
ageCheck.in[0] <== age;
ageCheck.in[1] <== ageThreshold;
valid <== ageCheck.out * isKYC;
} ציר זמן ומה תקבל
פיתוח מערכת אימות אישורים מלאה אורך 8–16 שבועות בהתאם למורכבות. העלות מחושבת באופן אישי לאחר ביקורת דרישות. כדי להעריך את הפרויקט שלך, פנה אלינו לייעוץ.
שים לב מה תקבל:
- חוזים חכמים ניתנים לפריסה (Registry + Verifier) עם קוד פתוח.
- SDK למאמת (TypeScript) לאינטגרציה בפרוטוקול שלך.
- מעגלי ZK (במידת הצורך) עם קוד מבוקר.
- תיעוד ארכיטקטורה, פריסה ותפעול.
- 3 חודשי תמיכה ושיפורים לפי המפרט שלך.
הניסיון של הצוות שלנו: 5+ שנים בפיתוח בלוקצ'יין, 10+ פרויקטים ב-DeFi, NFT וזהות. אנו מבטיחים פונקציונליות ומעבר ביקורות אבטחה. הזמן פיתוח וקבל תשתית אימות אמינה.







