
האתגרים בסביבה מבוזרת
שלושת האתגרים המרכזיים
- אתגר ההסכמה: כיצד כל הצמתים יכולים להסכים על מצב הרשת, יתרות ועסקאות
- אתגר הבלוקים החדשים: מי מקבל את הזכות להוסיף בלוקים ואיך מוודאים את תקינותם
- אתגר התיאום: איך מתאמים את כל הפעולות ללא גורם מרכזי
מהו קונצנזוס?
קונצנזוס בבלוקצ'יין משמעותו הסכמה של לפחות 51% מהצמתים ברשת על המצב הנוכחי של המערכת.
בעזרת מנגנוני קונצנזוס, רשת מבוזרת יכולה להגיע להסכמה על:
- מצב היתרות הנוכחי
- תקינות העסקאות
- סדר הבלוקים בשרשרת
מנגנוני הקונצנזוס הנפוצים
קיימים מספר מנגנונים להשגת קונצנזוס ברשת:
- Proof of Work (PoW): משמש את ביטקוין, דורש השקעת כוח חישוב
- Proof of Stake (PoS): משמש את את'ריום, מבוסס על הפקדת מטבעות
קונצנזוס נקמוטו
מכניזם שפותח על ידי סאטושי נקמוטו, מבוסס על העיקרון של "השרשרת הארוכה ביותר":
- השרשרת עם העבודה המצטברת הגדולה ביותר נחשבת לשרשרת האמיתית
- כל הצמתים מקבלים אוטומטית את השרשרת הארוכה ביותר
- מונע מצב של "הוצאה כפולה" של מטבעות
Proof of Work
דרך להגיע להסכמה
כיצד זה עובד?
תהליך הכרייה ב-Proof of Work כולל:
- איסוף עסקאות חדשות (Transactions) לבלוק (מmempool)
- זמן יצירת הבלוק (timestamp)
- גובה הבלוק הבא (index)
- רמת הקושי הנוכחית של הרשת (difficulty)
- הוספת הפניה לבלוק הקודם (previousHash)
- חיפוש מספר (nonce) שייצור האש מתאים
- הפצת הבלוק לרשת כשנמצא פתרון
כל אלו מרכיבים את הHash והחלק היחידי שמשתנה זה הNonce,
כל שינוי בNonce משנה את הHash באופן בלתי צפוי עד שמגיעים לצירוף המתאים,
לפי דרגת הקושי של הרשת.
איך עובד תהליך הכרייה?
תהליך הכרייה מבוסס על חיפוש חוזר ונשנה אחר "פתרון" שייצור האש (hash) שעומד בדרישות הקושי של הרשת.
הכורה מנסה לייצר האש שמתחיל במספר מסוים של אפסים, כשמספר האפסים הנדרש נקבע על ידי רמת הקושי.
דרגת הקושי של הרשת נקבעת לפי מספר האפסים בתחילת האש דוגמא לפלט האש בדרכת קושי קלה(3 אפסים):
00043f43161dc56a08ffd0727df1516c987f7b187f5194c6
רמות קושי ומשמעותן
כל אפס נוסף בתחילת ההאש מקטין את הסיכוי למצוא פתרון פי 16:
- אפס אחד: סיכוי של 1/16 (צריך לנסות בממוצע 16 פעמים)
- שני אפסים: סיכוי של 1/256 (16 * 16)
- שלושה אפסים: סיכוי של 1/4,096 (16 * 16 * 16)
- 19 אפסים (כמו בביטקוין): סיכוי של 1/75,557,863,725,914,323,419,136
למה דווקא 16?
מכיוון שההאש מיוצג בפורמט הקסדצימלי (base-16), לכל תו יש 16 אפשרויות:
מספרים (0-9) ואותיות (a-f).
התאמת הקושי
הרשת מתאימה את רמת הקושי באופן אוטומטי כדי לשמור על זמן ממוצע קבוע בין בלוקים:
- בביטקוין: כל 10 דקות בממוצע
- רמת הקושי מתעדכנת כל 2,016 בלוקים (בערך שבועיים)
- אם הבלוקים נכרו מהר מדי - הקושי עולה
- אם הבלוקים נכרו לאט מדי - הקושי יורד
דוגמאות לרמות קושי שונות
// קושי נמוך (2 אפסים)
00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
// קושי בינוני (8 אפסים)
00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
// קושי גבוה (16 אפסים)
0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
ככל שרמת הקושי עולה:
- נדרש יותר כוח חישוב למצוא פתרון
- פחות כורים מסוגלים למצוא פתרון בזמן סביר
- אבטחת הרשת משתפרת כי קשה יותר לזייף בלוקים
הדמיית תהליך כריית בלוק
מחפשים האש שמתחיל ב-3 אפסים
היתרונות של המערכת
-
אבטחה חזקה
- בלתי אפשרי לזייף עבודה
- עלות תקיפה גבוהה מאוד
- הגנה מפני שינוי היסטוריה
-
ביזור אמיתי
- כל אחד יכול להשתתף
- אין צורך באמון בגורם מרכזי
- מערכת תמריצים מובנית
-
פשטות היישום
- חוקים ברורים
- קל לאמת
- עמיד לאורך זמן
חסרונות המערכת
-
צריכת אנרגיה
- דורש כמות אדירה של חשמל
- השפעה סביבתית משמעותית
- עלויות תפעול גבוהות
-
מגבלות ביצועים
- קצב עסקאות מוגבל
- זמני אישור איטיים
- תחרות על משאבי כרייה
ההשלכות הסביבתיות
צריכת האנרגיה של רשת הביטקוין שווה לצריכה השנתית של מדינות שלמות.
זו אחת הסיבות שרשתות חדשות יותר עוברות למנגנונים חסכוניים יותר באנרגיה.
סיכום
Proof of Work הוא פתרון אלגנטי לבעיית ההסכמה בסביבה מבוזרת.
המנגנון מאפשר לרשת שלמה להגיע להסכמה ללא גורם מרכזי, אך המחיר הסביבתי
מוביל לחיפוש אחר אלטרנטיבות יעילות יותר.