מה זה Hash?
מה זה Hash? Hash הוא פונקציה מתמטית הממירה קלט באורך שרירותי לפלט מוצפן באורך קבוע. לפיכך, ללא קשר לכמות הנתונים המקורית או לגודל הקובץ המעורבים, הגיבוב הייחודי שלו תמיד יהיה באותו גודל. יתרה מכך, לא ניתן להשתמש ב-hash כדי "להנדס לאחור" את הקלט מהפלט ה-hash מכיוון שפונקציות ה-hash הן "חד-כיווניות" (כמו מטחנת בשר; אי אפשר להחזיר את בשר הבקר הטחון לסטייק). ובכל זאת, אם אתה משתמש בפונקציה כזו על אותם נתונים, ה-hash שלה יהיה זהה, כך שתוכל לאמת שהנתונים זהים (כלומר, ללא שינוי) אם אתה כבר מכיר את ה-hash שלו. Hashing חיוני גם לניהול בלוקצ'יין במטבעות קריפטוגרפיים.
מה זה Hash? – Hashing חיוני גם לניהול בלוקצ'יין במטבעות קריפטוגרפיים.
מה זה Hash? – נקודות מרכזיות
איך Hashs עובדים
פונקציות גיבוב טיפוסיות לוקחות קלט באורכים משתנים כדי להחזיר פלטים באורך קבוע. פונקציית Hash קריפטוגרפית משלבת את יכולות העברת ההודעות של פונקציות Hash עם מאפייני אבטחה. פונקציות Hash הן אלגוריתמים שקובעים כיצד מידע מוצפן.
לדוגמה, Secure Hashing Algorithm 256 (SHA-256) עובר תהליך להצפנת הקלט שהוא מקבל על ידי:
באמצעות SHA-256, המילה "Hello" תפיק פלט זהה למספר תווים (64) כמו "Hello World" ו-"Hello John." עם זאת, ה-hash יהיה שונה באופן משמעותי עבור שלושתם – זכור שאותיות גדולות משנות גם את ה-hash:
הפונקציה המשמשת ליצירת ה-hash היא דטרמיניסטית, כלומר היא תפיק את אותה תוצאה בכל פעם שנעשה שימוש באותו קלט. SHA 256 יכול ליצור פלט גיבוב באלפיות שניות עם מעט מאוד כוח מחשוב, אבל הוא גם מקשה על קביעת הקלט. זה הופך את הגיבוב לאידיאלי לאבטחת מטבעות קריפטוגרפיים מכיוון שייקח אלפי שנים להפוך את ההצפנה כדי לקבוע את הקלט המקורי בטכנולוגיה מודרנית.
פונקציות Hash הן מבני נתונים נפוץ במערכות מחשוב עבור משימות כגון בדיקת שלמות ההודעות ואימות מידע. פונקציות גיבוב קריפטוגרפיות מוסיפות תכונות אבטחה, מה שמקשה על זיהוי התוכן של הודעה או מידע.
בפרט, פונקציות גיבוב קריפטוגרפיות מציגות את שלושת המאפיינים האלה:
Hashing ומטבעות קריפטו
עמוד השדרה של מטבעות קריפטוגרפיים הוא הבלוקצ'יין, שהוא ספר חשבונות מבוזר גלובלי שנוצר על ידי קישור בין בלוקים בודדים של נתוני עסקאות באמצעות hashing. הבלוקצ'יין מכיל רק עסקאות מאומתות, מה שמונע עסקאות הונאה והוצאה כפולה של המטבע. כרייה ואימות של מטבעות קריפטו כרוכים בעבודה עם חשיש זה.
פתרון hash של מטבע קריפטוגרפי מתחיל בשימוש בכותרת הבלוק מהבלוק הקודם כקלט ויצירת hash. כל כותרת בלוק מכילה מספר גרסה, חותמת זמן, ה-hash ששימש בבלוק הקודם, ה-hash של ה-Merkle root, thenonce ו-hash היעד.
המטרה היא ליצור hash השווה או קטן מגיבוב היעד של הרשת. ב-hash יש רצף של מספרים שנקרא nonce, או מספר בשימוש פעם אחת. תוכנית הכרייה מתמקדת ב-nonce, שמתחיל מאפס בניסיון הראשון. אם הניסיון נכשל, התוכנית מוסיפה 1 ל-nonce, ומייצרת שוב את ה-hash. הוא מוסיף 1 לכל ניסיון כושל עד ליצירת hash קטן או שווה ל-hash של היעד, ואז הוא מתקבל כפתרון.
פתרון ה-hash מחייב את הכורה להמשיך ולנסות לייצר את הערך הנכון, מה שדורש כמות משמעותית של ניסוי וטעייה. הכורה שפותר את ה-hash מקבל את הפרס, והבלוק מתווסף לבלוקצ'יין.
זה מאוד לא סביר שכורה יצליח להמציא את ה-nonce הנכון בניסיון הראשון, כלומר, הכורה עשוי לבדוק מספר רב של אפשרויות nonce לפני שהוא יעשה את זה נכון. ככל שהקושי גדול יותר – מדד למידת הקושי ליצור hash העונה על הדרישה של הגיבוב היעד – כך סביר שייקח זמן רב יותר ליצור פתרון.
מהי פונקציית Hash?
פונקציות Hash הן אלגוריתמים שהופכים או "מפים" קבוצה נתונה של נתונים למחרוזת סיביות בגודל קבוע, המכונה גם "hash".
למה משמשים Hash ב- Blockchains?
Hash משמשים במספר חלקים של מערכת בלוקצ'יין. כל כותרת בלוק מכילה את ה-hash של הבלוק הקודם, מה שמבטיח ששום דבר לא התעסק עם הוספת בלוקים חדשים. בלוקצ'יין של מטבעות קריפטו משתמשים ב-hash כדי לאבטח מידע ולהפוך את ספר החשבונות לבלתי ניתן לשינוי.
סיכום ומסקנות
בבלוקצ'יין של מטבעות קריפטוגרפיים, hash הוא מספר הקסדצימלי דטרמיניסטי. המשמעות היא שלא משנה כמה תווים יש לקלט, ה-hash תמיד יהיה אותו מספר תווים. לדוגמה, הגיבובים של ביטקוין הם תמיד בני 64 ספרות.
Hash משמשים לאבטחת מידע – במקרה של מטבע קריפטוגרפי, הם משמשים כדי להבטיח שהנתונים הכלולים בבלוקים ב-blockchain לא ישתנו. המידע המוצפן על ידי פונקציית הגיבוב מאומת על ידי משתתפי הרשת כאשר הם מנסים ליצור hash פחות מיעד הרשת. ברגע שמגיעים ל-hash היעד, הרשת סוגרת את החסימה – הסכמה מושגת לאחר סגירת החסימה מכיוון שהרשת ממשיכה לאמת עסקאות ולחסום מידע לאחר פתרון ה-hash.