בלוקצ'יין, כרייה והצפנת גיבוב: איך פועלת שרשרת הכסף שמאחורי המטבע הווירטואלי?
מדברים הרבה לאחרונה על ביטקוין, ועל מטבעות וירטואליים בכלל. הדיון עוסק בעיקר בסכנות ובפוטנציאל שלו, בשימוש שעושים בו גורמים עסקיים ופליליים גם יחד, בתנודתיות הגבוהה שלו ועוד. אבל מה זה בעצם מטבע וירטואלי?
הביטקוין נוצר כאמצעי דיגיטלי להעברת תשלומים באינטרנט בין שני צדדים, בלי תלות בגורם שלישי לתיווך העברת התשלום, כמו בנק, חברת אשראי וכדומה. הוא תואר לראשונה במאמר שפרסם אלמוני תחת שם העט סאטושי נקמוטו בסוף שנת 2008.
הביטקוין הוא בעצם ספר חשבונות דיגיטלי, שמתאר כמה "מטבעות" נמצאים בכל חשבון דיגיטלי. כל מחשב שמחובר לרשת הביטקוין מכיל עותק של ספר החשבונות, כך שכל עסקה מבוצעת בפומבי. המטבעות הדיגיטליים עצמם אינם מקושרים לעצמים פיזיים והשווי שלהם נקבע על ידי אנשים שמאמינים שיש להם ערך שמצדיק להחליף תמורתם סחורה ושירותים. מכאן גם נובעת התנודתיות הגדולה בערכו של הביטקוין בשווקים.
הגנה מפני נוכלים
הקושי ביצירת מטבע דיגיטלי נובע מכך שכל קובץ דיגיטלי אפשר להעתיק בקלות ולשכפל, כך שנחוץ פתרון טכנולוגי שימנע מרמאים לשלם באותו מטבע יותר מפעם אחת – מה שנודע בשם "בעיית התשלום הכפול". מאחר שמטבע דיגיטלי הוא בעצם קובץ מידע, אפשר לשכפל אותו. כך יכול לכאורה כל אחד ליצור לעצמו עותק נוסף של הקובץ שמתאר את המטבע ולהשתמש בו שוב ושוב.
בדרך כלל כשמבצעים תשלום באינטרנט קיים גורם שלישי – למשל פייפאל – שהקונה והמוכר נותנים בו אמון, ותפקידו לוודא את העברת התשלום בין הצדדים. לדוגמה, כשאנחנו משתמשים בכרטיס אשראי העיסקה משודרת לחברת כרטיסי האשראי או לבנק, שמוודאים שהכסף אכן נמצא בחשבון ורק אז מעבירים אותו למוכר. הפעולה עשויה לארוך זמן ולעלות לנו בעמלה.
מטבע וירטואלי כמו ביטקוין עוקף את המסלול הזה. כל המשתמשים במטבע מסכימים יחד על רישום העסקאות שבוצעו במטבע, ומאגדים את כל העסקאות בספר חשבונות המכונה בלוקצ'יין (Blockchain). רישום העסקאות בבלוקצ'יין פומבי המוסכם על כולם מאפשר לדעת בוודאות שהמטבע החליף ידיים, ושהצד ששילם בעזרתו לא יוכל לעשות בו שימוש נוסף – למשל לקנות יותר מפעם אחת באותו מטבע. תיעוד העסקאות נעשה באופן מבוזר, כלומר רשת המשתמשים במטבע מאמתת את העסקאות בעצמה בפעולה בשם "כרייה". אין שום צורך לבטוח בגורם מתווך, כיוון שמשוואות מתמטיות מגינות על אבטחת העסקאות.
הכורים – המשתמשים ברשת שמאמתים את העסקאות וקובעים את סדרן הכרונולוגי – מקצים לכך משאבים רבים של חשמל ואנרגיה, עד כדי 0.13 אחוז מצריכת החשמל העולמית נכון לעכשיו. התגמול עבור השקעת המשאבים הזו לאימות כלל העסקאות לקהילת הביטקוין מגיע בדמות הנפקת מטבעות ביטקוין חדשים לכורים.
העסקאות עצמן מאוגדות יחד בקבוצות המכונות בלוקים. כל קובץ בלוק חדש מכיל כאלפיים עסקאות ומקושר אל הבלוק שקדם לו החל מעסקת הביטקוין הראשונה. כך נוצרת שרשרת כרונולוגית שמחברת בין הבלוקים ומכונה שרשרת בלוקים, או "בלוקצ'יין". הקישור הזה בין הבלוקים נועד לוודא את אמיתות הנתונים והעסקאות בספר החשבונות, באמצעות טכנולוגיה שנקראת "גיבוב".
אין צורך בגורם מתווך משום שמשוואות מתמטיות מגינות על אבטחת העסקה. מטבעות ביטקוין | איור: Shutterstock
פונקציית גיבוב
כדי למנוע מרמאים לשנות תיעוד קיים או לתעד עיסקה פיקטיבית, התיעוד שלהן נעשה באמצעות "פונקציית גיבוב חד כיוונית" – מושג מסובך שמייצג עיקרון פשוט. מדובר בקוד שמשמש מעין קופסה שחורה, שהופכת טקסט רגיל לטקסט באורך קבוע וקצר שמכונה "טקסט מגובב". כל שינוי קטן בקלט יניב פלט שונה לגמרי.
קל יותר להבין את זה באמצעות דוגמה. אתם מוזמנים לנסות זאת בעצמכם כאן.
אם נרצה לגבב את המשפט הקצר "hello world" בעזרת פונקציית גיבוב בשם SHA1, הפלט יהיה: "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed".
גם משפט הרבה יותר ארוך, למשל "This is an example for a very long sentence", יגובב לפלט באותו אורך: "87f481d970d74c1c187a7ac05f02ec15b1388317".
ואם נשנה רק את האות הראשונה במשפט מ-T גדולה ל-t קטנה, נקבל פלט שונה לחלוטין: "22fefffbfa3f7de072eda3f012dad1f303af117e".
פונקציית הגיבוב מתוכננת כך שכל טקסט שנכניס לתוכה יפיק פלט שונה, ומאוד קשה להגיע מהפלט המגובב אל התוכן המקורי.
הקישור בין הבלוקים בבלוקצ'יין נעשה כך שכל בלוק חדש מכיל בתחילתו גיבוב של תוכן הבלוק שקדם לו. כך נוצר תיעוד כרונולוגי של ספר החשבונות, שגם מקבע את ההיסטוריה של כל הבלוקים הקודמים. אם ננסה לשנות מידע באחד הבלוקים בשרשרת, גם הגיבוב שיופיע בבלוק שאחריו ישתנה, ומאחר שכל הבלוקים קשורים זה לזה כל הבלוקצ'יין ישתנה. כך המערכת מבטיחה שאפשר יהיה לעלות על כל ניסיון לזייף עסקאות בדיעבד.
בפעולת הכרייה (אישור העסקאות, כאמור), המשתמשים ברשת מאמתים את העסקאות ומאגדים אותן בבלוקים. ככלל, פלט הגיבוב צריך להכיל בתחילתו מספר חזרות מסוים של הספרה 0, למשל 30. ההסתברות שתוכן הבלוק יניב פלט מגובב עם 30 אפסים בתחילתו היא זעומה ביותר. כדי ליצור בלוק כזה, הכורים מוסיפים בסופו שורה אחת עם ערך אקראי כלשהו, שמשמשת שורת בקרה לסוף הבלוק ובודקים אם כעת התוכן של הבלוק מניב את הפלט המגובב המתאים.
כיון שאי אפשר לנבא את הפלט של פונקציית הגיבוב, התהליך הזה חוזר על עצמו שוב ושוב, כשבכל פעם הכורים מנסים ערכים שונים של שורת הבקרה – עד שכורה כלשהו מוצא את הפלט המגובב המתאים ומשדר אותו מיד אל הרשת. כאשר משודר בלוק חדש, כל הכורים ינסו להאריך אותו כדי לקבל על כך תגמול בדמות הנפקת ביטקוין לכורה שהצליח למצוא את הפלט המגובב המתאים.
שאלה של אמון
אם כן, פריצת הדרך הגדולה בטכנולוגיית הביטקוין טמונה בכך שהיא מאפשרת לוודא העברת תשלומים דיגיטלית בין צדדים, באמצעות התיעוד הפומבי של העסקאות בבלוקצ'יין והפיקוח המבוזר בין המשתמשים.
הדרך להפיכת המטבעות הווירטואליים לאמצעי תשלום יומיומי ובטוח עדיין ארוכה, וכיום רוב מערכת הבנקאות והשווקים עצמם מתייחסים אליהם בחשד. החששות מתגברים אף יותר בשל חוסר היציבות של הביטקוין – לדוגמה בשנת 2010 הסכימה פיצרייה לקבל עשרת אלפים מטבעות ביטקוין תמורת שני מגשי פיצה. שוויים העדכני של המטבעות הללו נאמד כעת (תחילת דצמבר 2017) בכ-244 מיליון שקל. רוב העסקים עדיין לא מקבלים ביטקוין כאמצעי תשלום, אם כי יש חברות שכבר מוכנות לבצע עסקאות באמצעותו, ואנשים פרטיים כבר מביעים בו אמון מספיק כדי להציע למכירה מכוניות, קרקעות ונדל"ן תמורת מטבעות ביטקוין.