מודול 3 מתוך 8

היסטוריה טכנית של ביטקוין

3.0 הקדמה

תקציר המסמך הלבן של ביטקוין

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

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

בשנות ה-70, קבוצה של אנשים בחנה כיצד ממשלת ארה"ב בפרט ניסתה להגביל גישה לקריפטוגרפיה, והחלה לפעול כדי להבטיח שטכנולוגיה זו תהיה זמינה לכל אדם כדי להגן על פרטיותו ברשת. חלק מהחלוצים המוקדמים הללו התמקדו גם ביתרונות האפשריים של מערכת 'כסף טוב' דיגיטלית שניתן להשתמש בה לאחסון והעברת ערך באינטרנט המתהווה. פרידריך האייק – תורם מרכזי לאסכולת הכלכלה האוסטרית – דמיין כיצד תיראה מטבע אידיאלי המבוסס על תחרות חופשית בשוק עוד לפני עידן האינטרנט, אך החליט שזה אינו אפשרי מבחינה טכנית ופוליטית. בנוסף לפרטיות דיגיטלית, קבוצה זו, שהתפתחה לימים ל-Cypherpunks, ניסתה להגשים את חזון האייק לכסף דיגיטלי, אך ניסיונות אלו נכשלו עד שסאטושי פרסם את רעיונותיו ברשימת התפוצה.

  • פרוטוקול TCP/IP (1976)
  • פרוטוקולים למערכות מפתח ציבורי - ראלף מרקל (1980)
  • Digicash - דיוויד צ'אום (1989)
  • החתמת זמן דיגיטלית (שנות ה-90)
  • Hashcash - אדם בק (1997)
  • BitTorrent - בראם כהן (2001)
  • Reusable POW - האל פיני (2004)
  • Bitcoin Whitepaper - סאטושי נקמוטו (2008)

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

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

3.1 הפיתוח של TCP/IP

רובנו מכירים את פרוטוקולי TCP/IP שבשימוש כיום כבסיס לאינטרנט. המקורות שלהם מתחילים בסוף שנות ה-70, כאשר מדענים חיפשו עיצובים חלופיים ל-Arpanet – רשת מוקדמת אף יותר שפותחה על ידי משרד ההגנה האמריקאי כדי לאפשר שיתוף משאבים בין מחשבים מרוחקים. TCP/IP הפך לסטנדרט הפרוטוקול של Arpanet בשנת 1983, מה שהוביל לכך שהוא הפך למודל הרשתות הדומיננטי עד סוף שנות ה-90 ולבסיס לאינטרנט שעליו פועל Bitcoin כיום.

מודל OSI TCP/IP
יישום יישום
ייצוג יישום
סשן יישום
תעבורה תעבורה
רשת רשת
קישור נתונים קישור נתונים
פיזי פיזי

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

בקשה לשינוי

כל פיתוח מוצע לפרוטוקולים קיימים או רעיונות לפרוטוקולים חדשים ניתן להציע במודל TCP/IP דרך בקשה לשינוי תהליך. אלו עוברים תהליך אישור, המנוהל על ידי כוח המשימה להנדסת אינטרנט (IETF), והופכים לקוד פתוח לאחר אישורם כדי לאפשר לכל אחד ליישם ולאמץ אותם. כמה דוגמאות בולטות:

  • 1969 RFC 1 תיעד כיצד חבילות יישלחו ב-Arpanet
  • 1981 RFC791 הגדיר את פרוטוקול האינטרנט V4 – שעדיין נמצא בשימוש נרחב כיום
  • 1982 RFC 821 פרוטוקול העברת דואר פשוט
  • 1987 מערכת שמות דומיין – כיצד שמות דומיין מתורגמים לכתובות IP
  • 1999 RDC 2616 פרוטוקול העברת היפרטקסט – חיוני לגלישה באינטרנט

הBitcoin Improvement Proposal (BIP) פועל בגישה דומה ל-RFC, אך מתמקד אך ורק בשיפורים ל-Bitcoin עצמו ולא בפיתוח פרוטוקולים חדשים או חלופיים. גם Bitcoin שואב השראה מהמודל השכבתי הזה, ותראו פרוטוקולים נוספים המתוארים כשכבה שנייה או שלישית.

באותה דרך ששכבות הבסיס של מודל TCP/IP השתנו מעט יחסית בעשורים האחרונים, כאשר החדשנות מתרחשת בשכבות העליונות, גם שכבת הבסיס של Bitcoin צפויה להשתנות באיטיות רבה בשלב זה, כאשר פתרונות קנה מידה כמו Lightning ו-Liquid מתבצעים מעליה.

דוגמה טובה לאופן שבו פרוטוקולי שכבת בסיס הופכים לקשים לשינוי עם הזמן היא IPv6. הציפייה למחסור בכתובות ב-IPv4 יצרה דרישה לפרוטוקול חדש. טיוטת התקן הראשונה נוצרה ב-1998, אך לא אושרה כתקן אינטרנט עד 2017. למרות שפתרה בעיות רבות ב-IPv4 והיא הרבה יותר עמידה לעתיד, האימוץ שלה בתעשייה עדיין איטי מאוד. בתקופה זו הוגדרו פרוטוקולים חדשים רבים בשכבות העליונות כדי לאפשר מולטימדיה, דואר אלקטרוני וכו'.

אבני הבניין שבהן משתמש Bitcoin

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

שכבה TCP/IP מקורי
יישום משתמש במערכת שמות דומיין (DNS) לזיהוי צמתים שכנים. פורט 8333 מסמן את פרוטוקול Bitcoin.
תעבורה UDP לתקשורת FIBRE בין כורים עבור השהיה נמוכה. TCP לתקשורת P2P בין צמתים.
תעבורה ניתוב TOR: מאפשר אנונימיות ופרטיות. פרוטוקול שידור: מנתב תעבורה ברחבי הרשת.
קישור פועל על כל מדיה (למשל, Ethernet, Wi-Fi וכו')
פיזי העברה פיזית באמצעות אלחוטי, Ethernet או ממשקי חומרה אחרים.
Bitcoin הוא פרוטוקול נייטרלי להעברת ערך כמו ש-HTTPS הוא פרוטוקול להעברת מידע
  • HTTPS: אתרים מאובטחים
  • SMTP: שליחת אימיילים
  • FTP: העברת קבצים
  • DNS: ניהול שמות דומיין
  • BTC: אחסון והעברת ערך

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

3.2 קריפטוגרפיה עם מפתח ציבורי ופרוטוקולים

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

הבעיה הראשונה שיש לפתור היא – כיצד לשלוח סוד משותף דרך ערוץ לא מאובטח.

בפעם הראשונה נבחנו הדברים על ידי ויטפילד דיפי ומרטין הלמן.

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

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

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

שימושים:

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

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

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

פרוטוקולים למערכות קריפטוגרפיה עם מפתח ציבורי

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

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

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

גיבוב הוא חלק בלתי נפרד מפרוטוקול הביטקוין. SHA-256, שבו משתמש ביטקוין, פותח על ידי ה-NSA והוא דוגמה לאלגוריתם גיבוב קריפטוגרפי.

  • כל בלוק בשרשרת מגובב כך שלא ניתן לשנות את הנתונים – מה שמבטיח את שלמות ספר החשבונות המבוזר
  • הגיבוב שנוצר צריך לעמוד בקריטריונים של 'הוכחת עבודה' כדי להיחשב כבלוק תקף
  • עצים של מרקל – באמצעות הסתעפות וגיבוב של גיבובים, עצי גיבוב מאפשרים אימות של מערכי נתונים גדולים עם אחסון מינימלי
  • חתימות ומפתחות מבוססי גיבוב יכולים לשמש לארנקים, כתובות ואישור עסקאות

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

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

קריפטוגרפיה של עקומות אליפטיות

אחת החדשנויות המאוחרות יותר הגיעה בצורת קריפטוגרפיה של עקומות אליפטיות.

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

המשוואה של עקומה אליפטית נראית בערך כך:

Elliptic curve

יש לה כמה תכונות שימושיות:

  • סימטריה אופקית. כל נקודה על העקומה יכולה להשתקף על ציר ה-x ולהישאר על אותה עקומה.
  • כל קו שאינו אנכי יחתוך את העקומה לכל היותר בשלוש נקודות.
  • גדלי מפתחות קומפקטיים הם חיוניים לאחסון יעיל ולהעברת מפתחות ציבוריים בבלוקצ'יין.

ניתן להשתמש בתכונות אלו ליצירת זוגות מפתחות בדומה לאלגוריתם דיפי-הלמן. ביטקוין משתמש ב-ECDSA, שזה קיצור של Elliptic Curve Digital Signature Algorithm. זהו תהליך שמשתמש בעקומה אליפטית ובשדה סופי כדי "לחתום" על נתונים כך שצדדים שלישיים יוכלו לאמת את אמיתות החתימה, בעוד שהחותם שומר לעצמו את היכולת הבלעדית ליצור את החתימה. בביטקוין, הנתון שנחתם הוא העסקה שמעבירה בעלות.

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

3.3 דיגי-קאש

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

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

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

ממשלות טובות ב'כריתת ראש' של רשתות מבוקרות מרכזית כמו נאפסטר, אבל רשתות P2P טהורות כמו Gnutella ו-TOR מצליחות להחזיק מעמד.Satoshi Nakamoto

מערכות מבוזרות ללא רשות מרכזית – עמית לעמית (peer-to-peer) – מספקות מספר יתרונות:

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

כעשור לאחר מכן הוא ייסד את החברה שלו, Digicash, כדי ליצור את 'ecash' – מערכת המזומן הדיגיטלי הראשונה בעולם. שמות מפורסמים רבים הצטרפו ל-Digicash לתקופה מסוימת, והחברה זכתה להצלחה מסוימת אך בסופו של דבר נכשלה והכריזה על פשיטת רגל.

התפתחויות נוספות בכסף דיגיטלי

בהודעה בפורום מיולי 2010, כתב Satoshi Nakamoto: “Bitcoin היא יישום של ההצעה b-money של Wei Dai בקבוצת Cypherpunks ב-1998 ושל ההצעה Bit Gold של Nick Szabo.”

למרות שאף אחת משתי ההצעות הללו לא עברה את שלב ההצעה, כמה מהרעיונות שנמצאים בהן השפיעו בבירור על פיתוח Bitcoin:

  • שימוש ב'הוכחת עבודה' (Proof of work) כדי להקנות ערך כספי לעבודה חישובית
  • הרעיון שעלות החישוב משתנה עם הזמן וחייבים להתחשב בכך

אבל קודם נבחן את Hashcash.

3.4 האשקאש

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

הוא התעניין מאוד בכסף דיגיטלי, והציע כמה רעיונות כיצד הקבוצה תוכל אולי לעבוד בצורה קרובה יותר על DigiCash עם Chaum, אך הדברים לא התקדמו. לאחר מכן הוא הפנה את תשומת ליבו לבעיה חדשה שצצה – דואר זבל (ספאם). הוא ושאר חברי Cypherpunks רצו למצוא פתרון לבעיה של ספאם, שבה קל מאוד לשולחי דואר זבל ליצור ולשלוח אלפי הודעות שמעמיסות על הרשתות. הפתרון החדשני שלו התבסס על hashing – היכולת בקריפטוגרפיה להפוך כל פיסת מידע למחרוזת ייחודית ואקראית באורך מסוים, כדי ליצור מעין 'בול דיגיטלי' שהיה צריך להוסיף להודעת הדואר האלקטרוני כדי שתיחשב תקפה ותועבר ברשת. עלות זניחה עבור דואר אמיתי, אך יקרה מדי עבור שולחי דואר זבל.

החידוש המרכזי ש-Hashcash יצר היה קישור משאבים מהעולם האמיתי – כוח חישוב – לרשת דיגיטלית. בעוד שמשאבים דיגיטליים עד לאותה נקודה יכלו להיות משוכפלים ללא הגבלה, מספר ה-'hashcash' שנוצר היה מוגבל לפי כמות האנרגיה שאנשים היו מוכנים להשקיע בו.

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

BitGold

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

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

  • מי ינהל את המרשם של בעלות על hash וכיצד ניתן לסמוך עליו?
  • העלות של hashing בדרך כלל תרד עם הזמן, אתגר שגם HashCash התמודד איתו.

מכיוון שה-hashים המקושרים היו מתוייגים בזמן, הוא הציע סוג של מעקב היסטורי אחרי קושי ה-hashing באותה תקופה; hash מוקדם יותר היה דורש יותר משאבי עיבוד מאשר hash מאוחר יותר, כיוון שהעלויות ירדו. למרבה הצער, משמעות הדבר הייתה שה-hashים לא יהיו 'ברי החלפה' (fungible), כלומר שווי ערך – תכונה מרכזית של כסף דיגיטלי. כדי לעזור לפתור זאת, ניק הציע סוג של 'בנקאות חופשית' מעל BitGold, שתוכל לאגד קבוצות שונות של hashים שיקבלו את אותו ערך.

B-Money

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

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

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

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

לגבי מדיניות מוניטרית, הוא הציע להצמיד את כוח הקנייה של B-Money לאינדקס מחירים לצרכן חיצוני כלשהו. הוא רצה שאותה כמות של B-Money תוכל לקנות חלק שווה מהאינדקס לאורך זמן, כדי לספק יציבות מחירים מסוימת. כך, כל אחד יוכל ליצור יחידות מטבע חדשות על ידי יצירת hash תקף, אך קושי יצירת ה-hash עשוי להשתנות עם הזמן בהתאם לעלות המעבד ולאינדקס המחירים, כך שכל יחידה תהיה 'בלתי ניתנת לשינוי'.

3.5 ביטורנט

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

בשנת 2001, בראם כהן פרסם עיצוב לפרוטוקול בשם BitTorrent, שנועד להפעיל מערכת שיתוף קבצים עמית-לעמית (peer-to-peer). הוא התחיל לעבוד בחברה בשם MojoNation, שהוקמה כדי לאפשר לאנשים לפרק קבצים סודיים לחלקים מוצפנים שמופצים במחשבים שמריצים את התוכנה. עותק של הקובץ היה מורד בו-זמנית ממספר מחשבים. למרות שבסופו של דבר הפרויקט נכשל, הוא הכניס את כהן לעולם שיתוף הקבצים, שם החליט שהוא יכול ליצור פרוטוקול טוב יותר, שכלל:

  • Swarm: קהילה של מחשבים שמורידים או מעלים תוכן
  • Tracker: כלי ייעודי שמתפקד בדומה למנוע חיפוש, אך עוקב אחרי הקבצים שנמצאים בתוך ה-Swarm. זה מאפשר למשתמשים לראות ולגשת בקלות לכל קובץ שהם צריכים
  • BitTorrent client: מותקן על מחשב כדי לגשת ל-Tracker. שים לב שה-Swarm הוא המקום היחיד שבו הקבצים נשמרים בפועל
  • מנגנון תמריצים שבו משתמשים שמשתפים קבצים ברשת מקבלים מהירויות הורדה גבוהות יותר

דמיון לביטקוין:

  • שני הפרוטוקולים פועלים על בסיס עמית-לעמית (peer-to-peer)
  • עיצוב מבוזר
  • קבצי BitTorrent ופנקס החשבונות של ביטקוין מופצים ברחבי הרשת
  • מקור קוד פתוח (BitTorrent הפך בסופו של דבר לתוכנה בקוד סגור)

3.6 הוכחת עבודה חוזרת

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

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

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

הפתרון עדיין התמודד עם חלק מהבעיות של ההצעות האחרות:

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

תכונות אלו הגבילו את האטרקטיביות ולכן את האימוץ של הפרויקט, ולמרות מאמציו הרבים, הפרויקט הסתיים כניסיון כושל נוסף ליצירת כסף אלקטרוני.

3.7 ביטקוין

לאחר שנים רבות וניסיונות כושלים, רוב חברי הקבוצה של הסייפרפאנקס החלו לאבד עניין ברעיון של מטבע דיגיטלי ללא הרשאה, כאשר אדם בק קיבל דוא"ל עם קישור לטיוטת מסמך שנקרא 'כסף אלקטרוני ללא צד שלישי' מאדם אנונימי שהציג את עצמו בשם Satoshi Nakamoto.

לסיכום עד כה, יש לנו לפחות את הרעיונות הבאים:

  • חתימות קריפטוגרפיות שיכולות לספק רמה של פרטיות ואנונימיות
  • הרעיון של מטבע ללא גיבוי (B-Money)
  • הצעות (אך ללא אמצעים) להגבלת הנפקת מטבע חדש
  • מטבעות דיגיטליים שהבעלות עליהם נקבעת לפי מפתחות ציבוריים (B-Money) וניתן להעבירם על ידי חתימה והקצאה מחדש לפי כתובת הנמען (RPOW ו-Hashcash)
  • כל הצמתים שומרים עותק של פנקס מבוזר לחלוטין (B-Money) (נדחה אז כבלתי מעשי)
  • פרוטוקול תיוג זמן – שימוש בהאשינג של עץ מרקל כדי לספק כרונולוגיה מתמטית מוכחת של אירועים שקשה לזייף אם כל המשתמשים שומרים את אותם רשומות
  • הוכחת עבודה כדי לקשור מאמץ מהעולם האמיתי למערכת (אך תוך שימוש בהאש עצמו כמטבע)
  • רשתות מבוזרות לחלוטין שבהן כל המשתתפים שווים ויכולים להצטרף ולעזוב את הרשת (BitTorrent)
  • הרעיון של קישור האשים חדשים להאשים קודמים (Bit Gold ותיוג זמן)

מה שהיה חסר באותה תקופה כלל:

  • פתרון ישים לבעיית 'הגנרלים הביזנטיים'
  • שיטה להגביל את כמות הכסף במחזור למרות שיפורים מתמשכים בחומרה
  • מנגנון תמריצים לאנשים להשתתף (בעיה של ביצה ותרנגולת)

ההבדל המרכזי הנוסף בין הניסיונות האחרונים לבין ביטקוין היה ש-Satoshi עבד על הקוד במשך זמן מה ברוח המקורית של 'Cypherpunks write code' לפני שהכריז עליו ברשימות התפוצה, בניגוד ל-Bit Gold ו-B-Money שהיו יותר רעיוניים.

מה הייתה החדשנות שהבדילה את ביטקוין מניסיונות קודמים לכסף אלקטרוני?

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

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

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


סיכום

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

הטבע של ביטקוין הוא שכאשר גרסה 0.1 שוחררה, העיצוב המרכזי נחקק באבן לכל אורך חייו
Satoshi Nakamoto

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

הערות
  1. להסבר על בעיית הגנרלים הביזנטיים – ראו https://en.wikipedia.org/wiki/Byzantine_fault

↑ חזרה לתוכן העניינים