Decentralization
Decentralization - מי באמת יכול לבדוק ולהשתתף?
רשת יכולה לפעול בלי חברה אחת שמנהלת אותה - ועדיין להיות תלויה במספר קטן של גופים.
לכן כשאומרים Decentralization - ביזור, לא מספיק לשאול:
"האם יש שרת מרכזי?"
צריך לשאול כמה שאלות שונות:
מי יכול לבדוק את הרשת? מי יכול ליצור בלוקים? מי שולט בציוד ובתשתית? ומי בוחר אילו כללים המחשב שלו מריץ?
ככל שיותר מהתפקידים האלה יכולים להתבצע על ידי משתתפים עצמאיים, בלי לבקש רשות מגורם מרכזי, הביזור חזק יותר.
מי יכול לבדוק שהכללים נשמרים?
אם רק כמה חברות גדולות מסוגלות להפעיל Node, רוב המשתמשים צריכים לסמוך עליהן שיגידו מה קרה ברשת.
אבל אם אנשים רבים יכולים להפעיל Node בעצמם, כל אחד מהם יכול לבדוק:
האם הבלוקים תקינים? האם העסקאות עומדות בכללים? האם מישהו מנסה להשתמש בכסף שכבר הוצא?
Bitcoin ו-Kaspa מאפשרות להפעיל Node על חומרה ברמה של מחשב ביתי מודרני, בלי צורך בציוד כרייה.
ב-Kaspa זה חשוב במיוחד משום שהרשת מייצרת הרבה יותר אירועי בלוק בזמן קצר.
אחת המטרות החשובות בתכנון שלה היא:
לאפשר קצב גבוה - ועדיין להשאיר אימות עצמאי מעשי על חומרה נגישה.
אימות עצמאי, כרייה, תקשורת ובחירת תוכנה הם ממדים שונים. התרשים אינו נותן ציון לביזור. מי יכול ליצור את הבלוקים?
Bitcoin ו-Kaspa משתמשות ב-Proof of Work.
אין רשימה סגורה של כורים שמותר להם להשתתף.
לא צריך אישור מחברה.
ולא צריך להחזיק כמות מסוימת של המטבע כדי לקבל זכות להשתתף ביצירת בלוקים.
מי שיש לו ציוד כרייה מתאים יכול לנסות למצוא בלוקים.
לכן יצירת הבלוקים היא Permissionless - פתוחה להשתתפות ללא אישור מראש.
כוח הכרייה יכול להתחלק - או להתרכז
גם ברשת שפתוחה לכולם, כדאי להסתכל איך כוח הכרייה מחולק בפועל.
למשל:
הרבה כורים יכולים להצטרף לאותה Mining Pool.
מספר קטן של חברות יכול לייצר חלק גדול מציוד ה-ASIC.
גישה לחשמל זול או למתקני כרייה גדולים יכולה לתת יתרון למפעילים מסוימים.
לכן כדאי להפריד בין שתי שאלות:
האם כל אחד רשאי להשתתף?
ו-
איך כוח הכרייה באמת מחולק היום?
שתיהן חשובות להבנת ביזור.
Mining Pool גדולה אינה בהכרח כורה אחד גדול
נניח ש-Mining Pool מסוימת מייצגת חלק גדול מכוח הכרייה.
זה לא בהכרח אומר שחברה אחת מחזיקה בכל מכונות הכרייה האלה.
יכול להיות שהרבה כורים עצמאיים מפנים אליה את החומרה שלהם.
אבל מפעיל ה-Pool עדיין יכול לתאם חלק מהעבודה, להכין את תבניות הבלוקים ולנהל את שיטת התשלום.
לכן כשבודקים את הביזור של כרייה, כדאי לשאול גם:
מי מחזיק בציוד?
וגם:
מי מתאם את העבודה?
קוד פתוח יכול להפוך Pool לשקופה יותר
כאשר הקוד של Mining Pool פתוח, כורים ומפתחים יכולים לראות איך התשתית עובדת, לבדוק את הקוד ולהבין טוב יותר איך מחושבים Shares ותגמולים.
הקוד הפתוח גם מאפשר לאחרים ללמוד ממנו, לשנות אותו ולבנות תשתית חלופית.
דוגמה מתוך NachoNation היא KatPool - Mining Pool של Kaspa שהקוד שלה מפורסם לציבור, כולל רכיבים הקשורים ל-Stratum, בדיקת Shares, חשבונאות ותשלומים.
זו דוגמה לאופן שבו תשתית קהילתית פתוחה יכולה לתמוך בשקיפות ובאפשרות לבנות חלופות.
קצב הבלוקים של Kaspa יכול לעזור גם לכורה Solo קטן
כורה קטן לא חייב להשתמש ב-Pool.
הוא יכול לכרות Solo.
כפי שראינו בעמוד הכרייה, כשיש הרבה יותר אירועי מציאת בלוק לאורך הזמן, אותו חלק יחסי מכוח הכרייה מקבל הזדמנויות תכופות יותר למצוא בלוק.
זה יכול להפוך את זמן ההמתנה בין הצלחות של כורה Solo לפחות קיצוני.
הדבר לא מבטיח רווחיות ולא מבטל את היתרונות של Mining Pools.
אבל הוא יכול להפחית חלק מהסיבה שבגללה כורה קטן מרגיש שהוא חייב להצטרף ל-Pool רק כדי לקבל תוצאות בתדירות סבירה.
כך קצב בלוקים גבוה יכול לתמוך גם באפשרות של כרייה עצמאית מעשית יותר.
ביזור הוא גם ביזור של התקשורת והתשתית
מספר ה-Nodes לבדו לא מספר את כל הסיפור.
נניח שיש 1,000 Nodes, אבל כולם מופעלים על ידי אותו גוף או באותו מרכז נתונים.
זה שונה מ-1,000 אנשים עצמאיים שמפעילים Nodes במקומות שונים ובתשתיות שונות.
לכן גם פיזור של:
בעלי החומרה,
חיבורי אינטרנט,
ספקי אירוח,
ומיקומים גיאוגרפיים
יכול להיות חשוב.
ככל שיש יותר דרכים עצמאיות להשתתף ולהתחבר לרשת, יש פחות תלות בנקודת שליטה אחת.
מי קובע אם כללי הרשת משתנים?
הקוד של Bitcoin ושל Kaspa פתוח.
כל אחד יכול לקרוא אותו, להציע שינוי או ליצור גרסה אחרת.
אבל כתיבת קוד חדש לא משנה אוטומטית את הרשת.
בסופו של דבר, מפעילי ה-Nodes והכורים בוחרים איזו תוכנה להריץ.
אם מוצע שינוי בכללי הקונצנזוס, הוא הופך לחלק מהרשת רק כאשר משתתפים מאמצים תוכנה שמיישמת אותו.
כלומר:
מפתחים יכולים להציע.
המשתתפים ברשת מחליטים בפועל איזה קוד הם מריצים.
אין כפתור מרכזי שמאפשר לצוות פיתוח אחד לשנות מרחוק את הכללים אצל כולם.
קוד פתוח מאפשר לאחרים לבדוק את השינויים, לדון בהם, לשנות אותם או לבנות חלופות.
גם הדרך שבה המשתמש מתחבר לרשת חשובה
אפשר שרשת הבסיס תהיה מבוזרת מאוד - אבל משתמש מסוים עדיין ייגש אליה רק דרך שירות מרכזי אחד.
למשל:
ארנק שמסתמך על שרת אחד,
אתר שמספק את כל המידע,
Explorer אחד,
או API של חברה מסוימת.
במצב כזה הרשת עצמה יכולה להמשיך לפעול בצורה מבוזרת, אבל המשתמש עדיין תלוי בשירות הזה כדי לראות אותה או להשתמש בה.
לכן כדאי להפריד בין:
ביזור של הפרוטוקול
לבין:
ביזור של השירותים שבנויים מעליו.
ההבחנה הזאת נעשית חשובה במיוחד כשמגיעים לטוקנים, אינדקסרים ושכבות נוספות שנבנות מעל רשת הבסיס.
אז איך Kaspa תומכת בביזור רחב?
Kaspa מנסה לשלב שני דברים שבדרך כלל מושכים לכיוונים מנוגדים:
לעבד פעילות מהר
ו-
לאפשר למשתתפים עצמאיים להמשיך לבדוק ולהשתתף ברשת.
כמה בחירות בתכנון שלה תומכות בזה:
Proof of Work - כרייה פתוחה להשתתפות בלי רשימת Validators שקיבלו אישור מראש.
Nodes שניתן להפעיל על חומרה נגישה - כדי שאימות עצמאי לא יהיה שמור רק למרכזי נתונים גדולים.
Pruning - כדי ש-Node רגיל לא יצטרך לשמור לנצח כל פרט מכל ההיסטוריה.
BlockDAG ו-GHOSTDAG - כדי להתמודד עם בלוקים שנוצרים במקביל בלי לדרוש שכל העולם יספיק לשמוע על בלוק אחד לפני שמתקדמים לבא.
קצב בלוקים גבוה - שיכול להפוך את זמן ההמתנה בין הצלחות Solo לפחות קיצוני עבור כורים קטנים.
קוד פתוח - שמאפשר לבדוק את התוכנה, להציע שינויים ולבנות חלופות.
ביזור הוא נושא רחב, ואפשר להעמיק בכל אחד מהחלקים האלה בנפרד: Nodes, כרייה, Pools, תוכנה, חומרה ותשתית.
היתרון הוא שלא חייבים להסתפק במשפט "הרשת מבוזרת".
אפשר לפתוח את החלקים, להבין מי עושה מה, ולראות איך הביזור עובד בפועל.
מה חשוב לקחת מהעמוד הזה?
ביזור לא אומר רק:
"אין חברה שמנהלת את הרשת."
הוא שואל:
מי יכול לבדוק?
מי יכול לכרות?
כמה קל להשתתף באופן עצמאי?
איך התשתית וכוח הכרייה מחולקים?
ומי בוחר את התוכנה והכללים שהוא מריץ?
Kaspa נבנתה עם כמה בחירות שמכוונות לשלב קצב גבוה עם אימות והשתתפות עצמאיים.
ככל שמעמיקים, אפשר להבין ולבחון כל אחד מהממדים האלה בצורה מדויקת יותר.