תכנון ופיתוח של מערכות אקולוגיות מרובות טוקנים

כאשר נכסים נרשמים במקומות שונים, היתרות אינן תואמות והדיווח מפסיק להסתדר. אנו מתכננים ומיישמים מערכות אקולוגיות מרובות טוקנים מקצה לקצה: מרשם אחיד, כללים ברורים להנפקה ולסחר בנכסים, חשבונאות צפויה. אתם מקבלים התאמת נתונים ושליטה ללא ארגון מחדש של תהליכים קיימים.

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מערכת אקולוגית רב-טוקנית: היכן נשבר רישום הנכסים

מערכת אקולוגית רב-טוקנית נשברת לא בשלב ההשקה, אלא בסקיילינג: כל עוד הטוקן הוא אחד, הרישום נשען על חוזה אחד וטבלת יתרות אחת. ברגע שמופיעים utility-טוקן, טוקן הצבעה, תעודת סטייקינג ויחידת חישוב, נוצר ביניהם שכבת סנכרון — ודווקא בה מצטברות אי-התאמות.

הכשל הטיפוסי הראשון — חוסר סנכרון ביתרות בפעולות חוצות-טוקנים. חיוב על נכס אחד וזיכוי על אחר מתבצעים בשתי טרנזקציות, ואם השנייה לא עוברת, הראשונה כבר נרשמה בבלוק. ביטול אינו אפשרי: מצב הבלוקצ'יין אינו הפיך, ופעולה מפצה דורשת לוגיקה והרשאות נפרדות.

השני — חיובים כפולים בניסיונות חוזרים: הלקוח חוזר על הבקשה לאחר timeout, ומפתח אידמפוטנטי בצד החוזה אינו קיים, והפעולה עוברת פעמיים.

המקור השלישי — תקנים שאינם תואמים. טוקנים שהונפקו לפי מפרטים שונים מחזירים את תוצאת הפעולה בדרכים שונות: חלקם מחזירים סימן הצלחה, אחרים מסיימים את הטרנזקציה בשקט, ואחרים מחזירים ערך במקום שגיאה.

מעטפת שנכתבה עבור תקן אחד, בתקן אחר מאבדת בשקט חלק מהרישום — וזה מתברר לאחר שבועות של התאמות, כשהפער כבר התפשט לעשרות כתובות.

המחיר של כשלים כאלה — לא רק רשומות שאבדו. כל אי-התאמה ברישום הטוקנים פוגעת באמון המחזיקים, וחקר האירוע אורך ימים: יש להצליב לוגים של חוזים, אירועים ובסיס off-chain. להלן נבחן כיצד זה נסגר ברמת הארכיטקטורה, ולא באמצעות התאמות ידניות.

ארכיטקטורה של אקוסיסטם רב-טוקני: מצבים ואפקט

הפרדה בין רישום לבין לוגיקת הנפקה

כאשר טוקנים לרישום נכסים וטוקנים לזכויות נמצאים בחוזה אחד, כל שינוי בלוגיקת הצבירה מחייב הגירה של כל מצב המאזנים — וזה השבתה של השירות וסיכון לאבד את היסטוריית הפעולות.

אנו מפרידים בין מרשם הבעלות לבין כללי ההנפקה: רישום הנכסים מתבצע בשכבה נפרדת, ומצבי ההנפקה מתחברים אליו כמודולים מתחלפים. עריכת מדיניות הצבירה מפסיקה לגעת במאזנים, וחזרה למצב קודם אורכת דקות במקום בנייה מחדש של המצב.

מצבי הנפקה לפי המשימה

הנפקה קבועה מתאימה כאשר היקף ההתחייבויות נקבע מראש — חלק צפוי לכל משתתף ללא אינפלציה. הנפקה מנוהלת עם תפקידים ומגבלות נדרשת במקומות שבהם הנכסים נוצרים בהתאם לאירועים: צבירת נקודות, הנפקה כנגד בטוחה, סבבים מדורגים. שריפה והקפאה הן פעולות נפרדות, ולא תופעת לוואי של העברה.

בפועל זה מביא להפחתה של שיעור העסקאות הכושלות בסדר גודל: הכללים נבדקים לפני הכתיבה למרשם, ולא אחריה.

השוואה בין גישות לארגון טוקנים

אפשרות מתי מתאימה מגבלות
חוזה אחיד לכל הטוקנים סוג נכס אחד, לוגיקה פשוטה עריכת כללים מחייבת הגירת מאזנים
חוזים נפרדים לכל טוקן נכסים בלתי תלויים עם מדיניות שונה מספר הכתובות ועלויות התיאום גדלים
מרשם + מודולי הנפקה מתחלפים נכסים רבים, שינויים תכופים בכללים נדרשת משמעת בניהול גרסאות של המודולים
רישום חיצוני עם התאמה תקופתית עומס גבוה, צבירה באצוות השהיה בין האירוע לכתיבה לשרשרת

אנו מתכננים על תקני טוקנים מוכחים ועובדים עם ספריות ניתנות לביקורת — OpenZeppelin מכסה את המכניקות הבסיסיות של בעלות ותפקידים, ומותיר לנו רק את לוגיקת האקוסיסטם.

כיצד אנו מתכננים ומיישמים אקוסיסטם: שלבי העבודה

תכנון אקוסיסטם מרובה-טוקנים מתחיל לא בקוד, אלא במלאי של מה שכבר עובד: אילו טוקנים מסתובבים, היכן חופפים זכויות התפקידים, אילו שירותים חיצוניים קשורים לחוזים הנוכחיים. בשלב זה אנו מקבעים אינווריאנטים — מה שאסור לשבור בשום תרחיש הגירה — ורק לאחר מכן עוברים לארכיטקטורה. סדר זה מסיר את הסיכון העיקרי: שכתוב של קו מתאר עובד למען טוקן חדש שניתן היה לחבר ללא עצירת המערכת.

  1. ביקורת דרישות וגבולות המערכת. מפרקים את הלוגיקה העסקית לפי תפקידים ותרחישים, מצליבים אותה עם החוזים הנוכחיים והאינטגרציות החיצוניות. בפלט — מפת טוקנים, מטריצת הרשאות ורשימה של מה שאנו עושים בו שימוש חוזר ומה שאנו כותבים מחדש.
  2. תכנון האקוסיסטם. מגדירים את מודל הטוקנים (ניתנים להחלפה, ייחודיים, היברידיים), כללי הנפקה ושריפה, סכמת תפקידים ומכניקת ההעברות בין טוקנים. בנפרד מעבדים כיצד החוזים יתעדכנו ללא אובדן מצב.
  3. אב-טיפוס של צמתים קריטיים. מרכיבים קו מתאר מינימלי ברשת בדיקה: הנפקה, העברה, הקפאה, חלוקת הרשאות. זה זול יותר מאשר לתפוס שגיאה במודל התפקידים לאחר ההשקה ברשת הראשית.
  4. פיתוח ובדיקות פנימיות. כותבים חוזים במודולים, מכסים בבדיקות תרחישי קצה — הנפקה חוזרת, העברה לעצמי, שלילת הרשאות ממשתתף פעיל. כל מודול עובר סקירה לפני הרכבה למערכת אחת.
  5. ביקורת חיצונית והרצות עומס. בדיקה בלתי תלויה של הקוד והלוגיקה של ההרשאות, בתוספת הרצת תרחישי הגירה על העתק של מצב אמיתי. מוצאים לא רק פרצות אלא גם צווארי בקבוק בעלות הפעולות.
  6. פריסה והגירה. מעבירים את המערכת בשלבים: תחילה טוקנים חדשים, לאחר מכן העברת מחזיקים קיימים, ולאחר מכן ניתוק קו המתאר הישן. נסיגה אפשרית בכל שלב.
  7. מסירת תיעוד וליווי. מוסרים סכמות חוזים, תיאור תפקידים, הוראות עדכון וניתוח אירועים. צוות הלקוח יכול לנהל את המערכת באופן עצמאי — ללא תלות בנו.

כל שלב מסתיים בארטיפקט שניתן לבדוק: מפת טוקנים, מפרט תפקידים, דוח ביקורת, תוכנית הגירה. תארו את המשימה — נחזור עם הערכת לוחות זמנים ותוכנית עבודה לקו המתאר שלכם.

במה נבדל מרשם מאוחד מקבוצה של טוקנים נפרדים?

מרשם מאוחד הוא חוזה אחד שבתוכו חי מודל הנהול: יתרות, זכויות, כללי הנפקה והעברות מתוארים במבנה נתונים משותף. טוקנים נפרדים הם קבוצה של חוזים עצמאיים, כל אחד עם הלוגיקה שלו ומאגר המצב שלו.

ההבדל מתגלה לא ברגע ההשקה אלא לאורך הדרך: במרשם מאוחד הנהול מתבצע בנקודה אחת, ולכן התאמה בין נכסים אינה דורשת קריאות חיצוניות, והעברות בתוך המערכת מתבצעות באופן אטומי — או ששתי הפעולות נרשמות, או שאף אחת מהן.

הגמישות של המערכת בשני המודלים בנויה באופן שונה. מרשם מאוחד מנצח כאשר הנכסים קשורים זה לזה: יתרה משותפת, מגבלות משותפות, החלפה של אחד באחר, כללים אחידים להשהיה ולתפקידים. שינוי הלוגיקה נעשה פעם אחת וחל על כל הנכסים בבת אחת.

קבוצה של טוקנים נפרדים מנצחת במקום שבו הנכסים חיים באופן עצמאי ומונפקים על ידי צוותים שונים: כל חוזה מתעדכן ועובר בדיקה בנפרד, וכשל של אחד אינו פוגע באחרים.

מחיר הגמישות הוא בקישוריות ובסיכונים. למרשם מאוחד יש נקודת כשל אחת: שגיאה במודל הנהול המשותף פוגעת בכל הנכסים, ועדכון דורש הגירת מצב זהירה. בקבוצת חוזים גדלה המורכבות של האינטגרציות: כדי להציג למשתמש יתרה מסכמת, יש לפנות לכל חוזה בנפרד, ופעולות בין-נכסיות דורשות אמון ביניהן. ככל שיש יותר טוקנים, כך יקר יותר התחזוקה וגדל הסיכוי לאי-התאמה בנתונים.

בפועל הבחירה היא לעתים רחוקות בינארית. לעתים קרובות את הליבה — זכויות, מגבלות, כללים משותפים — מוציאים למרשם מאוחד, ואת המכניקות הייחודיות לנכס מסוים משאירים בחוזים עצמאיים המקושרים לליבה. תוכנית כזו שומרת על מודל נהול אחיד ואינה הופכת את המערכת למונוליט שמפחיד לשנות.

ההחלטה מתקבלת לפי שאלה אחת: עד כמה הפעולות בין הנכסים צריכות להיות אטומיות ועד כמה הן צריכות להתפתח באופן עצמאי.

מקרה בוחן: כיצד סילקנו את חוסר הסנכרון בחשבונאות באקוסיסטם של הלקוח

הלקוח הגיע עם אקוסיסטם רב-טוקני, שבו טוקן נאמנות, טוקן סליקה וטוקן גישה לשירות התקיימו בשלושה מעגלי חשבונאות בלתי תלויים. ההתאמה ביניהם הופעלה ידנית פעם ביום, ועד הבוקר הצטברו בין 400 ל-700 אי-התאמות: חלק מהפעולות הוכפלו, חלק נתקעו בסטטוס ביניים.

בירור של פעולה אחת כזו ארך אצל המפעיל עד 40 דקות, ותקריות של חיוב כפול ערערו את אמון המשתמשים בתוכנית.

מה היה לפני השינויים

  • התאמה — ידנית, פעם ביום, בכוחם של שני מפעילים.
  • אי-התאמות בסוף היום: 400-700 רשומות, חלקן עברו לסטטוסים "תלויים".
  • בירור של פעולה אחת: עד 40 דקות, ללא ערובה שהסיבה נמצאה.
  • ביטול של פעולה שגויה: ידני, עם סיכון לפגוע בטרנזקציות שכנות.

מה שינינו

ריכזנו את שלושת הטוקנים למרשם פעולות אחיד עם יומן אירועים משותף ומפתחות אידמפוטנטיים: עיבוד חוזר של אותה פעולה כבר לא יוצר כפילות, אלא רק מחזיר את הסטטוס הנוכחי שלה.

כל שינוי יתרה הפך לאירוע נפרד ובלתי ניתן לשינוי עם הפניה לפעולה המקורית — אי-ההתאמה נראית כעת ברמת האירוע, ולא ברמת היתרה הסופית.

את ההתאמה העברנו למצב רציף: במקום ריצה לילית פועלת בדיקת אינוריאנטים בזרימה, שתופסת אי-התאמה ברגע היווצרותה, ולא כעבור יממה. לביטול הוספנו פעולות מפצות — חיוב שגוי אינו נמחק, אלא מכובה ברשומה נגדית, ולכן ההיסטוריה נשארת מלאה וניתנת לבדיקה.

מה נהיה לאחר מכן

מדד לפני אחרי
אי-התאמות בסוף היום 400-700 בודדות, מטופלות באותו יום
זמן בירור פעולה עד 40 דק' 2-3 דק' לפי יומן האירועים
ביטול פעולה שגויה ידני ברשומה מפצה, ללא עריכת ההיסטוריה
עבודה ידנית של מפעילים 2 משמרות בקרת חריגים

בנפרד סגרנו את שאלת האמון בנתונים: יומן האירועים בלתי ניתן לשינוי, וכל פעולה ניתנת למעקב מהחיוב ועד החיוב השלילי. הגישה נשענת על פרקטיקות חשבונאות מוכחות במרשמים מבוזרים — Hyperledger ופלטפורמות תעשייתיות דומות מספקות לכך פרימיטיבים מוכנים, שאותם התאמנו למעגלים של הלקוח.

אם יש לכם מספר טוקנים והחשבונאות ביניהם כבר אינה מתואמת — תארו את המשימה, ונחזור עם הערכה ותוכנית לאיחוד המעגלים.

תאימות, מיגרציה וחזרה לאחור: מה יש לדון לפני ההתחלה

בעת השקת אקוסיסטם מרובה-טוקנים, הסיכון העיקרי אינו הפיתוח עצמו, אלא החיבור למה שכבר עובד: אינטגרציות בורסאיות, ארנקים קסטודיאלים, מערכות חשבונאות פנימיות. אם תאימות ומיגרציה אינן מתוכננות מראש, העברת נזילות ויתרות בין המעגל הישן לחדש הופכת להעברה ידנית עם סיכון לאי-התאמה ביתרות.

לכן לפני ההתחלה מגדירים אילו נכסים ובאיזה היקף עוברים, מי מחזיק במפתחות, ואיך נראית חזרה לאחור אם המיגרציה לא תתקדם כמתוכנן.

מה אם הטוקנים הישנים כבר נמצאים במחזור בידי מחזיקים? המיגרציה נבנית באמצעות תמונת מצב (snapshot) של היתרות בבלוק קבוע וחוזה-מחליף עם חלון פדיון: המחזיק מחליט בעצמו מתי להמיר את הנכס הישן בחדש, והנפקת הטוקן החדש נפתחת בדיוק כנגד תמונת המצב — ללא כפל חשבונאי.

מה אם יידרש חזרה לאחור לאחר העברה חלקית? מכינים מראש תוכנית החזרה: החוזה הישן אינו מוקפא עד לאישור שהמעגל החדש עבר בדיקה, ומצב שני המרשמים נבדק בהשוואה לפי סכומי ביקורת. כיצד מופרדות ההרשאות?

תפקידי המנפיק, המנטר והמפעיל של המשיכות מופרדים, פעולות קריטיות עוברות לסף ריבוי-חתימות, ואינן נשארות בידי מפתח אחד.

האם ניתן לבצע מיגרציה ללא עצירת מסחר ומשיכות?

כן, אם המחליף ותמונת המצב מתוכננים כך שהנכס הישן והחדש פועלים במקביל לזמן מה. עצירת משיכות נדרשת רק ברגע קיבוע תמונת המצב — לרוב זה חלון של מספר דקות, ולא השבתה של שעות.

הלקוח מקבל לידיו:

  • תרשים פריסת החוזים עם כתובות וקשרים בין הטוקנים;
  • מפרט תפקידים ומטריצת הרשאות לכל פעולה;
  • קונפיגורציות סביבות — בדיקה ועבודה — עם פרמטרי רשת;
  • נוהל מיגרציה עם נקודות תמונת מצב וסדר ההמרה;
  • תוכנית חזרה לאחור עם תנאי הפעלה ואחראי להחלטה;
  • תיעוד החוזים ויומן ביקורת שינויים.

תארו את המשימה שלכם — נחזור עם הערכה ותוכנית שבה תאימות, מיגרציה וחזרה לאחור מפורקות לשלבים.

לוחות זמנים להטמעת מערכת אקולוגית רב-טוקנית לפי שלבים

לוחות הזמנים אינם תלויים בנפח הקוד, אלא במספר המעגלים: כמה טוקנים, באילו רשתות, האם נדרשים גשרים ביניהם, ובכמה עומק המערכת האקולוגית משולבת במערכות החשבונאיות של הלקוח. להלן מרווחים משוערים לפרויקט טיפוסי: טוקן בסיסי אחד, שניים-שלושה נגזרים, נזילות ותפקידי גישה. סטייה לכל כיוון מחייבת ביקורת חוזים ודרישות רגולטור.

הפער בפיתוח מוסבר בפשטות: כל סוג טוקן נוסף מוסיף ענף לוגיקה שיש לכסות בבדיקות, וגשר בין רשתות הוא מחלקת כשל נפרדת. אם המערכת האקולוגית צריכה לעבוד עם יתרות והרשאות קיימות, מתווסף ללוחות הזמנים שלב של התאמת נתונים.

OpenZeppelin — על התבניות המאומתות שלו נבנים החוזים, ולכן הביקורת אורכת פחות זמן: סיכונים טיפוסיים כבר סגורים ברמת הספרייה.

במקביל לפיתוח מתנהלת הכנת התשתית — צמתים, ניטור טרנזקציות, גיבוי מפתחות. הדבר אינו מאריך את לוח הזמנים אם מתחילים בשלב התכנון, ומוסיף שניים-שלושה שבועות אם נזכרים בו לפני ההשקה.