התובנה הרווחת "לא בעל המפתחות, לא בעל המטבעות" לא הופיעה יש מאין. היא נגזרת מתכונותיו המבניות של הביטקוין. במאמר זה נעשה ניסיון לתאר, על קצה המזלג, את העקרונות הבסיסיים שהופכים את התובנה לנגזרת המציאות.
מבוא לקריפטוגרפיית מפתח ציבורי
רשת הביטקוין עושה שימוש נרחב בקריפטוגרפיית מפתח ציבורי לצורך מרבית פעילותה. תיאור בסיסי של התחום מובא להלן. קוראים המכירים את התאוריה הבסיסית של קריפטוגרפיית מפתח ציבורי מוזמנים לדלג אל החלק הבא במאמר.
בבסיסה של קריפטוגרפיית מפתח ציבורי נמצא המפתח הפרטי, (שהוא, למעשה, לא יותר ממספר ארוך מאוד בעל תכונות מיוחדות) אותו מחזיקים בסתר, הרחק מעיני כל. אם נבצע על המפתח הפרטי פעולות מתמטיות מסוימות, נקבל את המפתח הציבורי (שהוא, למעשה, מספר קצר יותר, אך עדיין ארוך למדי, המקושר למפתח הפרטי), ושאותו מפרסמים בפומבי כדי לקשר אותו לזהות המחזיק בו.
הפעולות המתמטיות האמורות הן חד-כיווניות ובלתי הפיכות, מה שאומר שאין זה אפשרי (או לכל הפחות אין זה מעשי) לנחש את המפתח הפרטי מתוך המפתח הציבורי. אם נבצע על המפתח הפרטי ועל מידע כלשהו פעולות מתמטיות אחרות, נקבל חתימה אלקטרונית, אותה ניתן לשלוח בצמוד למידע הנ"ל, ואשר ניתן לבצע עליה פעולות מתמטיות אחרות כדי לאמת שאכן היא נוצרה בעזרת המפתח הפרטי המקורי, כל עוד יש בידנו את המפתח הציבורי המתאים.
היות והפעולות המתמטיות המדוברות הן, כאמור, חד-כיווניות ובלתי הפיכות, אין אפשרות לאף אחד פרט למחזיק המפתח הפרטי ליצור את החתימה האלקטרונית. באותו הזמן, כל אחד יכול לאמת את החתימה, לוודא כי היא אכן נוצרה על ידי מחזיק המפתח הפרטי וכי המידע החתום לא השתנה לאחר החתימה.
קריפטוגרפיית מפתח ציבורי בביטקוין
הביטקוין הוא, למעשה, טבלת יתרות ויומן תנועות מבוזרים המשייכים מטבעות מסוימים למפתחות ציבוריים מסוימים.
על מנת למנוע זיוף, גם טבלת היתרות וגם יומן התנועות הם פומביים ונגישים לכל (אם כי זהות הבעלים ומהות התנועות ידועים אך ורק למבצעים אותן). כך, כל אחד מהמשתתפים יכול (ואכן משתמש ביכולת זו) לבחון את תקינות התנועות ולוודא כי לא נפלו בהן טעות או זיוף. לצורך הגדלת רמת האבטחה, המטבעות לא משויכים למפתחות הציבוריים עצמם, אלא לתקציר שלהם הנקרא כתובת (שגם היא, למעשה, מספר ארוך למדי, אם כי קצר הרבה יותר, וגם כאן מתבצעות פעולות מתמטיות חד-כיווניות בלתי הפיכות). ארנק הוא, למעשה, אוסף של מפתחות פרטיים וכתובות תואמות להם, וכמו כן תוכנת מחשב המנהלת אותם.
אדם המעוניין לשלוח ביטקוין למעשה מפרסם ברבים הודעה בנוסח של "אני, המחזיק במפתח הפרטי התואם לכתובת qpvj..jt מודיע בזאת כי מעתה המטבע 1b3...f42 שייך למחזיק במפתח הפרטי התואם לכתובת qqal...py", אותה הוא חותם במפתח הפרטי שאליו משויכים המטבעות אותם הוא מעביר, ואליה הוא מצרף את המפתח הציבורי המתאים כדי לאפשר את האימות. רשת הביטקוין מוודאת את תקינות ההודעה, תקינות החתימה ושהמטבעות המועברים אכן שייכים למפתח הפרטי המתאים, ופרטי ההעברה נחקקים ביומן ההעברות המבוזר (הבלוקצ'יין) כשהם הופכים בכך לבלתי ניתנים לשינוי (לפחות ללא השקעה משמעותית של כוח מחשוב וכסף תוך סיכון ההשקעות של כל המשתתפים ברשת, מה שהופך את העניין ללא כדאי בעליל). יש לציין שאת כל הפעולות הדרושות לשליחת ביטקוין (ניהול כתובות ומפתחות, בחירת מטבעות, חישוב עודף, בניית הודעת ההעברה, חתימתה והכרזתה ברשת) מבצעת באופן אוטומטי תוכנת הארנק של המשתמש, וכל זאת ברקע וללא צורך בניהול וקבלת החלטות מעבר להחלטה לבצע את ההעברה.
הצד המקבל, מצידו, אינו נדרש לבצע כל פעולה שהיא מעבר למתן הסכמה עקרונית לקבל את הביטקוין, על ידי פרסום הכתובת שאליה הוא מעוניין לקבל אותו. כמובן, שהוא רשאי לעקוב אחרי הכתובת כדי לזהות העברות נכנסות, במיוחד אם התשלום המדובר הוא חלק מהסכם כלשהו (כגון מכירת טובין או הענקת שירות), אך גם אם לא יעשה זאת, הכסף עדיין יהיה שם אם וכאשר יחליט סוף-סוף לבדוק.
באופן מסקרן, בניגוד למערכות אחרות העושות שימוש בקריפטוגרפיית מפתח ציבורי, כגון PGP (הצפנה וחתימה של דואר אלקטרוני וקבצים) או SSL (הצפנה של התקשורת עם אתרי אינטרנט), בהן אותו מפתח פרטי משמש את בעליו לאורך זמן (לעתים שנים רבות!), מרבית הארנקים משתמשים באותו מפתח פרטי ואותה כתובת פעם אחת בלבד, תוך שהם יוצרים כתובת חדשה לכל העברה, ובכך תורמים לפרטיות המשתמשים בביטקוין. כאמור, הביטקוין מהווה מעין טבלת יתרות ויומן העברות מבוזרים, פומביים ונגישים לכל. לכן, כל אחד מהמשתתפים בהעברה כלשהי (למשל, קניית קפה ומאפה) מסוגל, תאורטית, לעקוב אחרי כל ההיסטוריה הכלכלית של רעהו. שימוש בכתובת חדשה לכל העברה הופך את זהות בעליהם של המטבעות מידועה בוודאות לאפשרית לניחוש באחוז מסוים של ודאות, ההולכת ופוחתת עם כל העברה עוקבת, מה שמאפשר רמה סבירה של פרטיות, במיוחד אם נעשה שימוש בערבול מטבעות מסוג כלשהו, לדוגמה, ערבול מטבעות עיוור.
מיהו בעל המאה
ניתן לתאר מספר תסריטי החזקת המפתח הפרטי, אותם נחלק לפי כמות האנשים המחזיקים בו.
כאשר אדם אחד בלבד מחזיק במפתח הפרטי, הוא נחשב לבעליו הבלעדי של המטבעות המשויכים אליו. הוא מסוגל לשלוח את הביטקוין על פי שיקול דעתו הבלעדית ומבלי שלכל גורם אחר תהיה כל מילה בעניין. זהו התסריט הנפוץ ביותר.
במקרה שבו המפתח הפרטי ידוע בו זמנית לשני אנשים או יותר, כל אחד מהם יכול לשלוח אותו, ומי שעושה זאת ראשון - זוכה. אנו רואים שימוש בתכונה זו במבצעים דוגמת "חפש את המטמון", כאשר מפתח פרטי המכיל כמות מסוימת של ביטקוין מודפס על מודעה בצורת קוד הניתן לסריקה, ואותו יכול למשוך לארנקו מי שיאתר את המודעה ראשון.
כאשר המפתח הפרטי נמצא בידיו של צד שלישי כלשהו (למשל, בידי זירת מסחר או נאמן), הצד השלישי הוא בעליו של הביטקוין בפועל. הצד שעבורו הוא מחזיק את המפתח מחזיק בעצמו בלא יותר מהבטחה לביטקוין, התחייבות אותה הנאמן אמור, בעקרון, למלא בשלב כלשהו, אך כלל אין לכך ערבות. זירות מסחר קורסות ונסגרות, נאמנים בוגדים באמון ואסונות מתרחשים בתכיפות מעוררת דאגה; ובכל אחד ואחד מהמקרים, האפשרות היחידה לקבל בחזרה את הביטקוין שאותו חייבים לכם, היא תביעה משפטית שאורכה ותוצאותיה לעולם אינן ידועים מראש. הדוגמה הידועה ביותר היא קריסתה של בורסת הביטקוין Mt. Gox בשנת 2014, שבירורה בבית המשפט טרם הסתיים עד להיום.
כאשר אף אחד אינו מחזיק במפתח הפרטי, משמעות הדבר שהביטקוין אינו שייך לאיש ואף אחד לעולם לא יוכל להשתמש בו. מכל בחינה מעשית, הביטקוין "אבוד". תסריט זה מתרחש כאשר בעליו של הביטקוין מוחק או מאבד את הארנק המכיל את המפתח הפרטי, בשוגג או כתוצאה מאסון כלשהו. המקרה הידוע ביותר הוא סיפורו של ג'יימס האוולס אשר השליך בשוגג דיסק קשיח המכיל את המפתחות לכמה אלפי ביטקוין, וגילה את הטעות רק לאחר שהדיסק נקבר במזבלה העירונית. אפשרות נוספת היא שליחה מכוונת של הביטקוין לכתובת שעבורה ידוע בוודאות שאף אחד לא מחזיק במפתח הפרטי אליה, דבר הנעשה מפעם לפעם לצורכי פרסום או הוכחת השקעה בעת הנפקת טוקנים מסוימים.
ניתן לפצל את המפתח הפרטי למספר חלקים ולחלק אותם בין מספר אנשים, מצב הידוע כארנק מרובה חתימות. במקרה זה, יידרש מספר חתימות מוגדר מראש כדי לשלוח את הביטקוין (לדוגמה, שתי חתימות מתוך שתיים, או שתיים מתוך שלוש). הדבר מונע מכל אחד מהמשתתפים לשלוח את הביטקוין על דעת עצמו ללא הסכמתם של המשתתפים האחרים, אך במחיר של אי אפשרות לנצל את הביטקוין כלל אלא אם כן מספר מוגדר של משתתפים מסכים לכך. אם מספר מסוים מהמשתתפים יאבד את הגישה למפתח הפרטי, המצב יהיה זהה למתואר מעלה.
לבסוף, ייתכן מצב שבו המפתח הפרטי נמצא בבעלותו הבלעדית של אדם כלשהו, אך כמות הביטקוין המשויכת אליו קטנה מהעמלה שהוא יאלץ לשלם אם ירצה לשלוח אותו. זהו מצב פרדוקסלי, השווה מבחינה מעשית למצב שבו המפתח הפרטי כלל אינו נמצא בידיו של המחזיק בו. ניתן לצפות במצב באופן מובהק ברשת הביטקוין (הישנה), שם תפוקתה של הרשת מוגבלת על ידי מכסה מלאכותית, הגורמת להופעת דינמיקת מכרז עיוור שבו כל משתתף המעוניין לבצע העברה מנסה לקנות את מקומו בתור על ידי הצעת עמלה גבוהה יותר, מה שגורם לעמלות רשת בלתי צפויות המגיעות לעתים לכדי 50$ או אף יותר.
פיצולים וניצולים
פיצול בהקשר הביטקוין מתייחס למצב שבו עקב אי-הסכמה עקרונית בדבר כללי הרשת, חלק מהצמתים שלה מפסיקים לעקוב אחרי שרשרת הבלוקים העיקרית ומתחילים לבנות שרשרת בלוקים חלופית. היות והצמתים בשתי הרשתות הנפרדות היו עד לרגע מסוים צמתים של אותה הרשת, הם מחזיקים בהעתק מדויק של טבלת היתרות ויומן ההעברות עד לרגע זה, עם הבדלים מצטברים לאחריו.
במרבית המקרים, השרשרת החלופית מתבררת כאחת שאינה ברת-קיימא, והבניה עליה נפסקת. למעשה, הדבר מצופה להתרחש בזמן כל שדרוג מתוכנן של הרשת, היות ותמיד ימצאו צמתים לא מעודכנים שלא יזהו את הכללים החדשים כלגיטימיים ויסרבו להמשיך לבנות אותה. הזמן שיידרש למפעילי הצמתים כדי לעדכן אותם ולהצטרף שוב לפעילות הכלכלית ברשת העיקרית תלוי בערניותם, אך לרוב נמדד בשעות עד ימים מרגע הפיצול ועד ל"מותה" של הרשת הלא משודרגת. במקרים נדירים יותר, אי ההסכמה בין הצמתים (ומפעיליהם) מובהקת ועמוקה יותר ומבוססת על אי הסכמה אידאולוגית - במקרים כאלה, הרשת החלופית ממשיכה להתקיים וליהנות מפעילות כלכלית לאורך זמן רב, כשהיא נחשבת למטבע בפני עצמו.
בתחילה, בסמוך לרגע הפיצול, טבלאות היתרות ויומני ההעברות של שתי הרשתות זהות אחת לשנייה, אך עם הזמן והפעילות הכלכלית הייחודית לשתיהן, הן הופכות בהדרגה לשונות יותר ויותר. עם זאת, היות וטבלאות היתרות של שתי הרשתות היו זהות עד לרגע מסוים (או, ליתר דיוק, היו טבלה משותפת אחת), הרי שכל המפתחות הפרטיים המיוצגים בה תקפים בשתי הרשתות. במילים אחרות, כל מי שהיה בעליו של מטבע כלשהו ברשת המקורית, נותר בעליו של אותו המטבע בשתי הרשתות שנוצרו כתוצאה מהפיצול, ויכול להודיע על שליחתם על ידי חתימה זהה המשודרת לצמתים של שתי הרשתות. מה יעשה במטבעות, נתון הדבר לשיקול דעתו הבלעדית. אם מחזיק המפתחות הפרטיים הוא זירת מסחר או נאמן, רק הם יכולים להחליט אם לאפשר למחזיק בהתחייבות גישה למטבע ה"חדש", להמיר אותו ולזכות את חשבונו של הלקוח, לשמור אותו לעצמם, או פשוט להתעלם מכל העניין. לאורך השנים זכינו לראות את כל התסריטים המתוארים מתרחשים בפועל; לכן, כלל לא מפתיע שהתובנה כי עדיף להחזיק את המטבעות שלך בעצמך, לכל הפחות בסמוך לפיצול אפשרי, הפכה לכה נפוצה.
על פניו נדמה כי כל פיצול הוא רווח נקי למחזיקי המטבעות, אך לא כך הדבר. גודל הרשת וכוח הקניה הכולל שלה הוא משאב מוגבל, וברגע הפיצול הוא מתפצל לשניים, בהתאם לגודל הרשת וכוח הקניה של תומכי כל צד. לאחר מכן, כל צד מקבל את האפשרות להוכיח את צדקתו בתנאי שוק חופשי ותחרותי. כמובן, שבכל סכסוך יש תמיד מנצחים ומפסידים, אך האפשרות לערוך במקביל מספר ניסויים חברתיים וכלכליים, לברור ביניהם את המתאימים ביותר למציאות, ולאפשר למשתתפים בהם לבחור את הניסוי המועדף עליו, לבחון את התאמתו להעדפותיו וצרכיו האמיתיים, ובעת הצורך להמירו באחר כמעט ללא חיכוך, היא, לכל הפחות, מרעננת.
הערות סיכום
היות והמפתח הפרטי בביטקוין הוא מפתח פרטי לכל דבר, ניתן להשתמש בו כדי לחתום אלקטרונית הודעות מכל הסוגים ולא רק העברות, לדוגמה, הודעות תמיכה בנושאים כאלה או אחרים, הצבעה אלקטרונית והוכחת בעלות.
כמובן שהחזקת המפתח הפרטי בעצמך, בדומה להחזקת כסף מזומן, כרוכה באתגרים ייחודיים שלא כל אחד יכול להתמודד עמם ללא הכנה. מחד, המחזיק נדרש להסתיר את המפתח הפרטי מאחרים כדי למנוע את דליפתו וניצולו לרעה. מאידך, המחזיק נדרש לשמור על שלמות המפתח הפרטי כדי למנוע את אובדנו או השחתתו. משתמשי ביטקוין המציאו לאורך השנים דרכי ניהול רבות, החל משמירת מילות השחזור במעטפה חתומה בתוך כספת, דרך הסתרתן בתוך ניירת שאינה מושכת תשומת לב, שימוש בטלפון נייד או מחשב ישנים מנותקים מהאינטרנט, רכישת ארנק חומרה מאחד היצרנים המובילים בשוק (למרות שמסתבר שגם אלה לא חסינים לטעויות ופריצות ועלולים לחשוף את פרטי הרוכשים ובכך להעמידם בפני סכנה), או אף למידתן של מילות השחזור בעל פה. מובן שסכומים שונים דורשים רמות זהירות שונות - איש לא יאבד שינה בגלל אובדן של כמה עשרות או מאות שקלים מהארנק לשימוש יום-יומי, אך מצבורי המטבע המיועדים לחיסכון לטווך ארוך הם עניין אחר לגמרי. לכן, אין זה מפתיע שרבים יעדיפו להפקיד את ממונם בידי צד שלישי נאמן, מומחה ובעל מוניטין, אפילו אם הדבר כרוך באמון שייתכן שאפשר היה להימנע ממנו... אך כל אלה הם נושא למאמר בפני עצמו.