מערכת הוכחת עבודה

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

מערכת הוכחת עבודהאנגלית: Proof-of-work system) היא שיטה שבאמצעותה ניתן למנוע התקפת מניעת שירות (התקפת DOS) ושימושים לא תקינים אחרים בשירותים כגון גניבת מטבעות קריפטוגרפיים.

הרעיון הומצא על ידי סינתיה דוורק ומוני נאור, כפי שהוצג במאמר במגזין בשנת 1993.[1] המונח "הוכחת עבודה" נטבע ופורמל לראשונה ב-1999 על ידי מרקוס ג'ייקובסון וארי ג'ולס.[2]

דוגמה מוקדמת לשימוש במערכת הוכחה של עבודה שנועדה להעניק ערך למטבע הוא מטבע הקונכייה שמקורו באיי שלמה.

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

רקע[עריכת קוד מקור | עריכה]

מערכת פופולרית מסוימת, שממומשת בHashcash (מערכת למניעת דואר זבל), משתמשת בפונקציות גיבוב הופכי חלקיות כדי להוכיח שנעשתה עבודה, ורק אז ניתן לשלוח הודעת דואר אלקטרוני. למשל, הדוגמה הבאה מייצגת כ 252 חישובי גיבוב (האש) שנועדו כדי לשלוח מייל ל: calvin@comics.net ב - 19 בינואר 2038:

X-Hashcash: 1:52:380119:calvin@comics.net:::9B760005E92F0DAE

זה מאומת על ידי חישוב יחיד, באמצעות הבדיקה שגיבוב באמצעות SHA-1 של החותמת (משמיטים את הכותרת X-Hashcash: כולל הנקודתיים, וכל כמות של רווחים עד לספרה '1') מתחיל עם 52 אפסים בבסיס בינארי, או 13 אפסים בבסיס הקסדצימאלי:[1]

0000000000000756af69e2ffbdb930261873cd71

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

מערכת הוכחת עבודה בביטקוין[עריכת קוד מקור | עריכה]

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

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

הקושי (מספר האפסים שמופיע בתחילת תוצאת הגיבוב) משתנה בהתאמה לכוח הכרייה (יכולת העיבוד של הכורים) כך שבממוצע יווצר בלוק חדש כל 10 דקות.

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

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ דוורק סינתיה; נאור מוני, pricing via processing or combatting junk mail advances in cryptology, Lecture Notes in Computer Science No. 740, Springer: 139–147
  2. ^ ג'ייקבסון מרקוס; ג'ולס ארי, Proofs of Work and Bread Pudding Protocols, Communications and Multimedia Security, Kluwer Academic Publishers