אנו מפתחים פתרונות NFC המספקים קישור קריפטוגרפי של חפץ פיזי ל-NFT. קישור אמיתי פירושו שלא ניתן ליצור עותק של החפץ הפיזי ללא זיוף קריפטוגרפי. זה אפשרי רק אם השבב יכול לחתום על הודעות עם מפתח פרטי המוטמע פיזית ואינו ניתן לחילוץ. המומחיות שלנו בפיתוח phygital מבטיחה קישור חלק של שבב NFC ל-NFT לאימות מוצר, תוך ניצול תקנים כמו EIP-5791. הניסיון שלנו: מעל 5 שנים בפיתוח בלוקצ'יין ויותר מ-50 פרויקטים של phygital. אנו מבטיחים אבטחה קריפטוגרפית עם דוחות ביקורת עצמאיים.
כיצד פועל קישור קריפטוגרפי של שבב NFC ל-NFT
הקישור מבוסס על קריפטוגרפיה א-סימטרית. השבב מאחסן מפתח פרטי שלא ניתן לקריאה חיצונית. בעת סריקה, השבב חותם על הודעה ייחודית (למשל, כתובת ארנק ו-blockhash). חוזה חכם ב-Ethereum מאמת את החתימה ומקשר את החפץ הפיזי לטוקן. ללא השבב, לא ניתן לזייף את החתימה.
בחירת שבב: דרישות קריפטוגרפיות
לא כל שבב NFC מתאים. NTAG213/215/216 הם תגים סטנדרטיים לקריאת URL פשוטה. ללא קריפטוגרפיה, ניתנים לשכפול תוך 10 שניות עם כל אנדרואיד.
אתה צריך שבב עם זוג מפתחות א-סימטרי ויכולת חתימה:
- NTAG 424 DNA — הבחירה הנפוצה ביותר. AES-128 על השבב, אימות הודעות SUN (Secure Unique NFC). כל סריקה מייצרת הודעה ייחודית עם חתימת CMAC ומונה מתגלגל. המפתח הפרטי נכתב במהלך הייצור ואינו קריא מבחוץ.
- Kong Halo — ECC (secp256k1 — אותה עקומה כמו Ethereum), כל סריקה מייצרת חתימת ECDSA על keccak256(chipAddress || blockHash || counter). תואם ל-EIP-191 personal_sign, אימות על השרשרת באמצעות ecrecover. שבבי Kong Halo מספקים אימות מהיר פי 5 בזכות תמיכה טבעית ב-secp256k1 בהשוואה ל-NTAG 424 DNA הדורש פענוח בצד השרת.
- Arx Research HaLo — המפתח הציבורי של השבב הוא כתובת Ethereum דטרמיניסטית. בשימוש בפרויקטים של RTFKT, Adidas Physical NFT.
| מאפיין | NTAG 424 DNA | Kong Halo | HaLo |
|---|---|---|---|
| קריפטוגרפיה | AES-128 CMAC | ECDSA secp256k1 | ECDSA secp256k1 |
| תאימות Ethereum | דרך שרת | טבעית (ecrecover) | טבעית |
| הגנה מפני שכפול | גבוהה (מפתח AES על השרת) | מקסימלית (מפתח פרטי לא ידוע) | מקסימלית |
לפרויקט phygital רציני, הבחירה בין NTAG 424 DNA ל-HaLo תלויה במשימה: NTAG 424 זול יותר וסטנדרטי יותר, HaLo תואם באופן טבעי לחתימות Ethereum ואינו דורש אימות מותאם אישית.
תוכנית קישור קריפטוגרפי
תוכנית HaLo / Kong Halo
לכל שבב יש זוג מפתחות secp256k1 מובנה. המפתח הציבורי הוא chipAddress. בעת סריקה עם טלפון (דרך Web NFC API או אפליקציה מקורית), השבב חותם על אתגר:
signature = ECDSA.sign( privateKey, keccak256(abi.encodePacked(chipAddress, cmdBlock, counter)) ) המונה גדל בכל סריקה — מתקפת replay בלתי אפשרית. cmdBlock מכיל נתונים על הפקודה הספציפית.
החוזה החכם מאחסן מיפוי chipAddress => tokenId. אימות בעלות:
function verifyChipSignature(
uint256 tokenId,
bytes calldata signatureFromChip,
bytes32 blockHash,
uint256 blockNumber
) external view returns (bool) {
require(block.number - blockNumber <= MAX_BLOCK_AGE, "Stale");
address chipAddress = chipAddressOf[tokenId];
bytes32 digest = keccak256(abi.encodePacked(chipAddress, blockHash));
address recovered = ECDSA.recover(digest, signatureFromChip);
return recovered == chipAddress;
}Blockhash כלול בחתימה כדי לקשור את הסריקה לרגע מסוים בזמן — הגנה מפני חתימות שמורות ומשוחזרות.
תוכנית NTAG 424 DNA
השבב משתמש ב-AES-128 CMAC. כל סריקה מייצרת URL כמו signature = ECDSA.sign( privateKey, keccak256(abi.encodePacked(chipAddress, cmdBlock, counter)) ) . encrypted_uid הוא ה-UID המוצפן ב-AES-128 של השבב (ייחודי), cmac הוא קוד אימות הודעה, כולל מונה מתגלגל. שרת האימות מפענח את ה-UID ובודק את ה-CMAC עם מפתח סודי ידוע. המונה נבדק לעלייה מונוטונית.
חולשה בהשוואה ל-HaLo: מפתח ה-AES חייב להיות ידוע לשרת האימות. פגיעה בשרת מאפשרת שכפול חתימות. עבור HaLo, אף אחד לא יודע את המפתח הפרטי.
מהו Physical Backed Token (EIP-5791)?
EIP-5791 — התקן בדיוק לזה. מרחיב את ERC-721 עם שתי פונקציות:
function tokenIdMappedFor(address chipAddress) external view returns (uint256);
function isChipSignatureForToken(uint256 tokenId, bytes calldata payload, bytes calldata signature) external view returns (bool);יישום ייחוס: Chiru Labs PBT. אנו יורשים מ-PBT ומשנים את לוגיקת האימות עבור השבב הספציפי.
העברת טוקן דרך סריקת שבב:
function transferTokenWithChip(
bytes calldata signatureFromChip,
uint256 blockNumberUsedInSig
) external {
require(
block.number - blockNumberUsedInSig <= getMaxBlockhashValidWindow(),
"Expired"
);
bytes32 blockHash = blockhash(blockNumberUsedInSig);
require(blockHash != bytes32(0), "Block too old");
bytes32 digest = keccak256(abi.encodePacked(msg.sender, blockHash));
address chipAddress = digest.recover(signatureFromChip);
uint256 tokenId = _chipAddressToTokenId[chipAddress];
_transfer(ownerOf(tokenId), msg.sender, tokenId);
}זה אומר: כדי להעביר את ה-NFT לארנק חדש, עליך לגעת פיזית בפריט בטלפון ולחתום על העסקה בו-זמנית. ללא הפריט הפיזי, העברה בלתי אפשרית. זהו מאפיין מפתח למוצרי יוקרה ופריטי אספנות.
סקירת תהליך
- ניתוח דרישות: בחירת סוג שבב, פרמטרי קישור (מספר שבבים, רשת, תקן טוקן).
- עיצוב תוכנית קריפטוגרפית: פרוטוקול חתימה ואימות.
- פיתוח חוזה חכם: חוזה PBT עם תמיכה בסריקת שבב והעברה.
- פיתוח אפליקציה ניידת (אם נדרש): Web NFC או אפליקציה מקורית.
- שילוב ייצור: תכנות שבבים, יצירת מפתחות, מיפוי chipAddress → tokenId.
- בדיקות וביקורת: בדיקות ידניות, fuzzing (Echidna), אימות פורמלי.
- פריסה ותמיכה: פרסום חוזה, הקמת תשתית אימות, תיעוד לצוות הלקוח.
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח | 1-2 ימים | מפרט טכני |
| עיצוב | 3-5 ימים | תוכנית קריפטו, בחירת שבב |
| פיתוח חוזה | 5-10 ימים | חוזה חכם, בדיקות |
| פיתוח אפליקציה | 10-20 ימים | לקוח נייד |
| שילוב ייצור | 5-7 ימים | שבבים מתוכנתים, DB מיפוי |
| בדיקות וביקורת | 5-10 ימים | דוח ביקורת |
| פריסה | 1-2 ימים | פתרון עובד |
עלויות הפיתוח לפתרון NFC-NFT מלא נעות בדרך כלל בין $20,000 ל-$50,000, תלוי בבחירת השבב ובמורכבות האפליקציה.
מה כלול
- בחירת שבב ורכש (NTAG 424 DNA / HaLo / Kong Halo) עם אימות ספק.
- פיתוח חוזה חכם לפי EIP-5791 עם אימות חתימת שבב.
- יצירת אפליקציה ניידת ל-iOS ואנדרואיד (Web NFC או מקורי).
- שילוב קו ייצור: סקריפטים לתכנות, יצירת מפתחות, מיפוי.
- תיעוד תפעולי ותמיכה טכנית בהשקה.
דרישות טכניות לייצור
- שבבים חייבים להגיע מהמפעל עם מפתחות טעונים מראש (מפתחות מותאמים אישית מוזמנים בנפרד). - עבור HaLo, נדרש הסכם אספקה עם היצרן (Arx Research). - הטמעה מומלצת: overmolding לתוך גוף המוצר או למינציה בין שכבות חומר.צור קשר לייעוץ על הפרויקט שלך. הזמן פיתוח פתרון NFC-NFT ואנו נכין הצעה מותאמת אישית.







