מערכת הוכחת עבודה
מערכת הוכחת עבודה (באנגלית: Proof-of-work system) היא שיטה שבאמצעותה ניתן למנוע התקפת מניעת שירות (התקפת DOS) ושימושים לא תקינים אחרים בשירותים כגון גניבת מטבעות קריפטוגרפיים.
הרעיון הומצא על ידי סינתיה דוורק ומוני נאור, כפי שהוצג במאמר במגזין בשנת 1993.[1] המונח "הוכחת עבודה" נטבע ופורמל לראשונה ב-1999 על ידי מרקוס ג'ייקובסון וארי ג'ולס.[2]
דוגמה מוקדמת לשימוש במערכת הוכחה של עבודה שנועדה להעניק ערך למטבע הוא מטבע הקונכייה שמקורו באיי שלמה.
תכונת מפתח של שיטות אלה הוא האסימטריה שלהם: העבודה חייבת להיות דיי קשה (אבל אפשרית) בצד של המבקש אבל קלה לבדיקה בצד של ספק השירות.
רקע
מערכת פופולרית מסוימת, שממומשת בHashcash (מערכת למניעת דואר זבל), משתמשת בפונקציות גיבוב הופכי חלקיות כדי להוכיח שנעשתה עבודה, ורק אז ניתן לשלוח הודעת דואר אלקטרוני. למשל, הדוגמה הבאה מייצגת כ 252 חישובי גיבוב (האש) שנועדו כדי לשלוח מייל ל: [email protected]
ב - 19 בינואר 2038:
זה מאומת על ידי חישוב יחיד, באמצעות הבדיקה שגיבוב באמצעות SHA-1 של החותמת (משמיטים את הכותרת X-Hashcash:
כולל הנקודתיים, וכל כמות של רווחים עד לספרה '1') מתחיל עם 52 אפסים בבסיס בינארי, או 13 אפסים בבסיס הקסדצימאלי:[1]
0000000000000756af69e2ffbdb930261873cd71
כדי להגיע למספר האפסים הגדול הזה, התוכנה מנסה כל פעם רצף אותיות שונה שמתווסף לאי מייל (אחרי שלושת הנקודתיים), עד שתוצאת הגיבוב תיתן את מספר האפסים המבוקש (שמופיעים בראשית תוצאת הגיבוב). לכן, תוקף אפשרי יצטרך להשקיע הרבה זמן ומשאבים חומריים וכספיים כדי לשלוח כמות גדולה של דואר זבל, ושיטה זו אמורה למנוע זאת ממנו.
מערכת הוכחת עבודה בביטקוין
בשנת 2009, מערכת הביטקוין עלתה לאוויר. ביטקוין הוא מטבע קריפטוגרפי שמבוסס על מערכת הוכחת עבודה. מבוצע גיבוב על כותרת של בלוק חדש שכורה רוצה להוסיף לבלוקצ'יין, וקושי הכוחת העבודה (הכרייה) נקבע במספר האפסים שתוצאת הגיבוב צריכה להתחיל איתם.
התקפת הוצאה כפולה נפתרת על ידי שימוש בשרשת בלוקים מבוזרת המכונה "בלוקצ'יין" שבה נמצא התיעוד של העברות הכספים. המטבע "נכרה" על ידי שימוש בפונקציית ה-hashcash באמצעות כורים פרטיים, והבלוקים שנוצרים ושמתעדים את העברות המטבעות מכתובת לכתובת מאושרים על ידי צמתים מבוזרים.
הקושי (מספר האפסים שמופיע בתחילת תוצאת הגיבוב) משתנה בהתאמה לכוח הכרייה (יכולת העיבוד של הכורים) כך שבממוצע יווצר בלוק חדש כל 10 דקות.
ככל שגדל מספר הבלוקים המשורשרים בבלוקצ'יין, כך מערכת הוכחת העבודה מתחזקת, כי כדי לשנות בלוק שנמצא למשל במקום העשירי מסוף שרשרת הבלוקים העכשווית, נצטרך לשנות ולחשב מחדש את גיבוב כל הבלוקים שמתחתיו, כלומר התשיעי מהסוף עד האחרון, כדי שגיבובם יתחיל במספר האפסים הנדרש. (גיבובם משתנה כי כל בלוק מכיל את גיבוב ראש הבלוק שקדם לו, ולכן אם השתנה הבלוק הקודם נצטרך לשנות גם את הבלוק שאחריו כדי שהוא יכיל את ראש הבלוק החדש של קודמו וכדי שגיבוב הבלוק יתן את מספר האפסים הרצוי, וכך הלאה).
הערות שוליים
- ^ דוורק סינתיה; נאור מוני, pricing via processing or combatting junk mail advances in cryptology, Lecture Notes in Computer Science No. 740, Springer: 139–147
- ^ ג'ייקבסון מרקוס; ג'ולס ארי, Proofs of Work and Bread Pudding Protocols, Communications and Multimedia Security, Kluwer Academic Publishers