רבותיי, הגיע הזמן שנדבר על הסכנות הכרוכות בבלוקצ’יין. אמנם הטכנולוגיה פותרת בעיות אבטחה בצורה אלגנטית ויעילה, אך גם בה יש מגרעות, ועליהן נדבר היום.
גילוי נאות – אני עצמי מאמין גדול בטכנולוגיה הזו ומאמין שפריצות ההאקינג שאנו שומעים עליהם בזמן האחרון כמו הפריצה לקריפטופיה, קשורות בטעויות אנוש.
אך למען הסדר הטוב אדבר על מתקפת 51%, חוזים לא-כל-כך-חכמים ואיומים נפוצים.
לפני שנדבר על הסכנות, בואו קודם נבין מהו מנגנון האשינג (הצפנה) שמגן על הכתובות הפרטיות שלנו בבלוקצ’יין, ולמה כרגע הוא לא פריץ כשלעצמו.
פונקציית האש היא פונקציה שלוקחת מחרוזת תווים ומצפינה אותה בצורה אסימטרית – לא ניתן לחזור אחורה מההצפנה אלא אם יש לך את המפתח הפרטי.
אם ניתן למחשבים החזקים ביותר בעולם לנסות לנחש במשך 100 שנים את המחרוזת המוצפנת, הם עדיין יעבדו בשיא המרץ ולא יגלו אותה.
חשוב להבין, הראשון שימצא דרך לפענח את ה-sha256, שהיא הפונקציה שמצפינה ביטקוין, יפענח גם חלק גדול ממסדי הנתונים בעולם, כך שסביר להניח כי הסכנות הקיימות לאנושות גדולות יותר מפריצה לביטקוין.
עם זאת, בשנים האחרונות יש התקדמות משמעותית בפיתוח מחשבים קוונטים, שכוח העיבוד שלהם גדול בכמה חזקות ממחשבים רגילים.
ברגע שתהיה פריצת דרך בתחום, סביר להניח שמנגנוני ההצפנה יקרסו כי ניחוש המחרוזת המוצפנת ייהפך לעניין של דקות.
אם כן, ניגש לעניין.
מתקפת 51%
אולי הקונספט המוכר ביותר, והמובן פחות מבין כולם – ולכן נפתח בו. כל בלוקצ’יין בעולם (מאז הגה אותו סאטושי נקמוטו ב2008) מבוסס על עיקרון הקונצנזוס, שאומר כך: האמת היא מה שכולם מסכימים שהוא האמת.
המשמעות היא שאם כולם יסכימו שכדור הארץ הוא שטוח, כדור הארץ יהיה דה פקטו שטוח. זה חשוב מפני שכך אנחנו יודעים לסנן העברות כפולות (double-spending), בלוקים מזויפים ושאר רמאויות.
הסכנה הטמונה בגישת קונצנזוס דצנטרליסטי כזה, היא שאם למישהו יש 50% מכוח המחשוב בעולם ועוד יחידת מחשוב אחת (מעל חצי ממה שקיים בעולם), הוא יכול בעצם “להשתלט” על הקונצנזוס.
אם הוא יחליט לשנות את היסטוריית הבלוקצ’יין כך שכל הכסף נמצא אצלו, כל שאר המשתתפים ברשת “ייאלצו” להסכים איתו, כי הוא ייצר בלוקים בצורה תקינה ומהירה יותר מכולם.
אבל, וזה אבל גדול, ההיתכנות של השתלטות כזו היא נמוכה בואך אפסית. בבלוקצ’יינים מאסיביים כמו ביטקוין יש כל כך הרבה כוח מחשוב מעורב שאין דרך להשתלט על הרשת, חוץ מהשתלטות פיזית על המחשבים. וכשזה יקרה, שיהיה לכולנו בהצלחה.
באג הERC-20
כמו שהזכרתי בכתבה על האת’ריום, אחת הסיבות למשבר ה-ICO הייתה שנתגלה באג קריטי במודל החוזים החכמים, שהביא להפסדים בשווי מיליוני דולרים. ולהלן המסקנה:
החוזים נכתבו בצורה כזו שהם יצרו את עצמם ככתובת על הבלוקצ’יין, אבל לא מימשו פרוטוקול לקבל כסף.
משום כך, העברות שיועדו אליהם לא נפלו על כתובת בלתי קיימת (כמו שקורה בכל ארנק שמכבד את עצמו), אבל כשהם התקבלו לא היה ניתן לעשות כלום עם הסכום, כי הוא היה נעול בחוזה.
החוזה ישב ככתובת עצמאית על הבלוקצ’יין ולא ידע מה לעשות עם הכסף (כי הוא סתם פיסת קוד שלא צריך אוכל או מכונית חדשה).
למזלנו, מאז הספיקו לצאת מודל חדש שנקרא erc-223, שפותר את הבעיה הזו. אמנם זה כבר היה מאוחר מדי בשביל להחזיר את האמון בICO (מה גם שזו לא הייתה הבעיה היחידה), אבל לפחות הבעיה הטכנית נפתרה, מה שיכול לעודד כמה אנשים (אהמ, ויטליק בוטרין).
טרנזקציות תקועות
נתחיל בפשוט מבין השניים. טרנזקציות תקועות קורות כשאני רוצה לשלוח לחברי בוב 10 ביטקוין, אבל מתקמצן על העמלה. מכיוון שפרסמתי את הטרנזקציה לחבריי בבלוקצ’יין, כולם יודעים שכבר אין לי 10 ביטקוין.
עם זאת, הקמצנות שלי עלתה לי ביוקר, כי אף אחד לא מוכן להכניס את הטרנזקציה שלי לבלוק (לא משתלם לו לעבוד בשביל עמלה נמוכה), והיא לא מקבלת אישור.
התוצאה של זה היא שגם אני וגם בוב נתקעים בלי כסף עד שמספיק צמתים ברשת (51%) “ישכחו” מהטרנזקציה ויהיו מוכנים להודות שיש לי 10 ביטקוין שאפשר לבזבז. בתקווה שבוב לא פשט רגל עדיין, אני יכול לשלוח אותם שוב והפעם לנדב עמלה הגונה יותר.
טרנזקציות יתומות
הסעיף הזה מדבר על מקרה מיוחד, שקורה לרוב בבלוקצ’יינים קטנים יותר. לצערי (או למזלי, כי הצלחתי לפתור את זה), נתקלתי בבעיה הזו אישית והשקעתי כמה שעות טובות במחקר ופתרון.
מכיוון שהרשת קטנה יחסית, יכול להיווצר מצב שבו שני צמתים מחוברים אך ורק אחד לשני, והם על אותו בלוק (מסונכרנים ביניהם).
כשאחד מבצע טרנזקציה, היחיד ש”שומע” עליה הוא הצומת שמחובר אליו, שאז כורה בלוק כדי לאשר אותה.
כשהבלוק נכרה, היחיד ששומע עליו הוא הראשון שוב, והם מסכימים על הבלוק (קונצנזוס). כך הם ממשיכים בעליצות כמה בלוקים, עד שצומת אחר מתחבר אליהם ומכריז, “חברים, התבלבלתם!”.
לאחר שכמה צמתים מראים להם שהבלוקצ’יין שלהם שגוי, שני הצמתים המקוריים נאלצים להוריד מחדש את הבלוקצ’יין המקורי. עם זאת, הטרנזקציה עדיין שמורה בזיכרון הפנימי של כל אחד מהם. לכן, הכסף “מבוזבז” ולא ניתן להשתמש בו שוב. כאן אני אחלץ לעזרתכם, ומה שפותר את הבעיה הוא rescan reindex של הבלוקצ’יין ו”ניקוי טרנזקציות”. הצומת שלנו סורק את הבלוקצ’יין מחדש ומתעלם מהזיכרון הפנימי שלו, ואנחנו יכולים לחזור לשחק בבורסת המטבעות החביבה עלינו.
לסיכום, הביטקוין מבוסס על טכנולוגיה פורצת דרך שמביאה בשורה חדשה לעולם. אבל בחיים כמו בחיים, אין דבר מושלם וגם לה יש מגרעות שאנחנו צריכים להיות מודעים אליהן. בנימה אישית אני מאמין גדול בכך שהבלוקצ’יין הוא פוטנציאל אדיר, ולמרות המהפכה הכלכלית שהביא עלינו לטובה זאת לא הייתה המילה האחרונה בתחום.
מסכימים? טקבקו. לא מסכימים? טקבקו יותר!