מזלג ביטקוין

מה זה “מזלג” בביטקוין (Bitcoin fork) ולמה מדברים על זה כל כך הרבה בזמן האחרון?

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

שרשרת הבלוקים בתור מערכת של קונסנזוס

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

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

מתרחש דיון סוער לגבי עניין טכני משמעותי מאוד במערכת הביטקוין מזה כמה שנים – על דרך ההתמודדות של ביטקוין עם גדילה ועומס. רק לאחרונה הנושא עלה לתודעה רחבה יותר בעקבות כך שמתחילים להרגיש את ההשפעות של חוסר מעש בעניין – פעולות ביטקוין מתעכבות ומתייקרות. על הדיון המורכב ניתן לקרוא בסיכום כאן ולא אאריך עליו כאן. ההתפתחות החדשה היא שמספר מפתחים, ביניהם Mike Hearn וגם Gavin Andresen, כתבו גרסה של תוכנת הביטקוין – הנקראת Bitcoin XT – שנוקטת עמדה מעשית בנושא, ומאפשרת הגדלת נפח מבוקרת של בלוקים. זאת לא הפעם הראשונה שכותבים גרסה חדשה של תוכנת הביטקוין, אך זאת פעם ראשונה שהיא עלולה לגרום למזלג בכוונה.

איך מפצלים את שרשרת הבלוקים?

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

מה קורה כששרשרת הבלוקים מתפצלת?

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

זה נשמע מבלבל אבל השיטה הזאת מאפשרת מקסימום חופש לפרט עם מינימום נזק. בעיני רבים ביטקין נחשב עדיין בשלב צעיר מידי בניסוי בכדי להתפצל ולהתקיים בתור שני מטבעות נפרדים ושתי כלכלות נפרדות. לכן התוכנה החדשה דורשת רוב גדול (לפחות, בקרב הכורים) בשביל להחל את החוק החדש. הרעיון הוא שאם היה רק רוב של 50%, הרשת תתפצל לחצי ולא יהיה צד “חזק” וסביר שיהיה פאניקה. תאורטית גם היו יכולים לקבוע שמספיק הסכמה של 20% מהרשת ויתפצלו בתור מיעוט קטן – אבל גם אז ספק שהפיצול ישרוד.

איך זה אפשרי בכלל שאפשר לעשות דבר כזה?

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

Leave a Reply

Your email address will not be published.


8 + = 12

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>