פיתוח מערכת לניהול זרימת מסמכים על גבי בלוקצ'יין

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

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

שאלות נפוצות

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

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

מדוע ניהול מסמכים מבוסס בלוקצ'יין נתקע בשלב הפיילוט

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

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

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

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

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

מה נותן מרשם מבוזר במקום אחסון קבצים

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

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

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

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

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

אפשרויות מרשם: קו סגור, קונסורציום, רשת ציבורית

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

השוואה בין שלוש סכימות ניהול מרשם

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

סכימה היברידית

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

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

שלבי ההטמעה: מביקורת זרימת המסמכים ועד מסירת המערכת

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

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

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

מה נשאר בידיכם: סכימות, מדיניויות, תקנונים

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

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

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

תרגול הטמעה: בדיקת התאמת חוזים קוצרה משבועות לשעות

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

מה נמדד בנקודת ההתחלה

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

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

מה נבנה מחדש ומה התקבל

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

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

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

במה נבדל מרשם סגור מבסיס נתונים רגיל?

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

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

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

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

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

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

שאלות נפוצות על ניהול מסמכים על בלוקצ'יין

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

האם לרשומה במרשם יש תוקף משפטי?

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

מה יקרה אם צומת אחד יוצא מכלל פעולה?

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

האם המרשם יגדל ללא גבול?

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

כיצד זה מתחבר למערכות שלנו?

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

נדון במשימה: מה לשלוח להערכה ולתוכנית

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

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

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