שרשרת בלוקים

//שרשרת בלוקים

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

אישור ראשוני

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

יצירת בלוק

עסקאות המחכות לאשור עוברות תהליך של תמצות ובנייה מחדש (SHA 256), תהליך זה מתרחש בכל צומת (Node) ברשת באופן אוטומטי, העסקאות עוברות בנייה מחדש שוב ושוב עד שלבסוף נוצר פלט אחד ויחיד מאשכול של עסקאות, מספר אחד ארוך שמייצג ומגלם בתוכו את כל המידע ממנו הוא נבנה (העסקאות הממתינות לאישור אשר נכללו בבניית הבלוק). התמצות, משמע הבלוק נעשה בכדי שתהליך העיבוד יהיה יעיל, אחיד[2] ובסדר כרונולוגי. לא ניתן לקרא את המידע המרכיב את הבלוק ללא תהליך פיענוח.

בניית בלוק עסקאות ברשת ביטקוין

עיבוד הבלוק

כאשר מסתיים תהליך יצירת הבלוק בצמתים (Nodes), הכורה שיצר אותו מודיע על כך לרשת כולה (הבלוק משודר מצמת לצמת) ומיד נכנס לפעולה פרוטוקול נוסף הנקרא הוכחת עבודה Proof-of-work שתפקידו הוא שילוב אותו הבלוק עם הפרוטוקול הנ"ל בעצמו בכדי שיהיה ניתן לזהות ולהוכיח מי עיבד את הבלוק. כלומר, מי פצח ראשון את הבלוק (הפך את המידע המתומצת לקריא) שכן כל הכורים עובדים על כל בלוק במקביל במעין תחרות (תמיד בלוק אחד יהיה בתהליך עיבוד מלא) הכורה שמפענח ראשון את תכולת הבלוק (ע"י פתירת חידה חישובית) מקבל בתמורה מטבעות החדשים ואת העמלות שצורפו להעברות(במידה וצורפו ע"י המשתמשים, אין כיום חובה לכך), זה התמריץ לבצע את העיבודים המצריכים חומרה מיוחדת ועבודה מאומצת לאורך זמן. קושי האתגר, קושי החידה לפיענוח תכולת הבלוק משתנה בהתאם לכוח החישוב ברשת אבל תמיד יתרחש בכל X דקות קבוע בממוצע[3], זמן אותו החליטו יוצרי המטבע. לאחר פיענוח הבלוק נשלחת הודעה לכל הרשת והתהליך כולו מתחיל מההתחלה כאשר הבלוק האחרון שפוצח ישמש כאסמכתא מקשרת לבלוק הבא כאשר הוא בעצמו מקושר לבלוק בקודם.

שרשרת בלוקים

הבלוק הנוכחי מקושר לבלוק שנעשה לפניו בעזרת 'טביעת אצבע' (תמצות / Hash) ומיקומו בשרשרת הבלוקים יהיה קבוע ולא ניתן לשינוי, בבלוק הבא תהיה הפניה לקודם וכך הלאה, משמע שכל הבלוקים מאז ההעברה הראשונה שנעשתה ברשת המטבע מקושרים ולכן הכינוי – שרשרת בלוקים(Block Chain).

שרשרת בלוקים ביטקוין

הערות

[1] רכיבים/פרוטוקולים הפועלים ברקע והם שקופים למשתמש "הרגיל" (בשונה מאלו העוסקים בכרייה).

[2] האחידות באה לידי ביטוי ביכולת לשנות את קושי החידה בהתאם לכוח החישוב הזמין ברשת כולה בכדי לשמור על ממוצע זמן פיצוח קבוע.

[3] הזמן הממוצע לפיצוח בלוק שונה ממטבע למטבע וברוב המוחלט של המקרים זמן זה לא ישתנה במהלך חיי המטבע לאחר שהוא נקבע(ההגדרה היא בקוד עצמו), הזמן נקבע מראש ע"י מפתחי המטבע ומרגע שהמערכת מתחילה לעבוד הגדרה זו (ממוצע) נכפת באופן אוטומטי ע"י רכיב שהוא כמובן חלק בלתי נפרד מפרוטוקול המטבע.

[4] דוגמה לדרך העבודה של תמצות-מידע ותוצאה לאחר השימוש בפונקציה  SHA 256  התוצאה אינה ניתנת לחיזוי וכל שינוי במקור יגרום לפלט שונה לגמרי:

 מידע לאחר SHA-256 Hash מידע גולמי
eaa9de9053657c3f033660cabc7caedd7964b803aec3f83feb98f86e78f02a1a digitalmoney.co.il
8d6207f56a8c700c001187f4c1eee6620a36e01f6fcfd950c4699dbcfd9bc24e Digitalmoney.co.il
9aabed5ea9c9d2bc5c735246e84fef91bbe71555a5d46eb3aad8f4477f12ba97 digitalmoneY.co.il
2017-12-16T19:08:23+00:00

Leave A Comment

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.