הודעה לציבור בדבר קשיי משיכת ביטקוין מ-Mtgox

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

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

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

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

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

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

עדכון: מתברר ש-Mtgox אינם היחידים שנתקלו בקושי כזה והאשמה אינה רק בהם. זירות נוספות אינן מתמודדות היטב עם עניין ה – Transaction malleability והשביתו משיכות עד שישדרגו את מערכת החשבונאות שלהן. גם התוכנה הסטנדרטית לוקה בטיפול בעניין במצבים מסוימים. מסתמן שמתבצעת התקפת DDoS רחבה שנועדה ליצור בלבול ומניעת שירות.

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