איך עובדת רשת הביטקוין (blockchain)

לקוראים חדשים מומלץ להתחיל עם פרקי המבוא של המדריך

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

שרשרת הבלוקים

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

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

הפרוטוקול

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

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

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

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

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

הכרייה

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

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

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

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

בעזרת המערכת הזאת, שמתוחזקת על ידי כרייה תחרותית, יש לנו את כל היתרונות של כסף דיגיטאלי: מהיר, זול, בינלאומי; וכל היתרונות של זהב: מתחלק, הוגן, ובעיקר בלתי ניתן לזיוף.

להמשך הסברים טכניים, מומלץ לעבור לפרק זוג מפתח/כתובת (Public-Private Key Cryptography)

למתעניינים בכרייה לשם רווח מומלץ לקרוא כאן מדריך כרייה למתחילים (אנגלית)

וכן גם לקרוא את הפרק הטכני על כרייה (Proof of Work)

Comments are closed