הקריפטוגרפיה של ביטקוין

שתף

bitcoin-cryptography.webp

תוכן עניינים

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

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

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

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

מה מוצפן ומה לא מוצפן?

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

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

מהי פונקציית גיבוב

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

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

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

פונקציית גיבוב וכריית ביטקוין

פונקציית הגיבוב SHA-256 משמשת לצורך יישום מנגנון הקונצנזוס של הוכחת עבודה (Proof of Work) שעליו מבוססת רשת הבלוקצ'יין של ביטקוין.

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

שמירה על המפתח הפרטי

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

חתימה דיגיטלית

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

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

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

שיטת ההצפנה המבוססת על מפתח פרטי, מפתח ציבורי וחתימה דיגיטלית נקראת הצפנה אסימטרית (Asymmetric Encryption).

האם ניתן לפרוץ את התשתית הקריפטוגרפית של ביטקוין?

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

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

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

שנחזור אליכם עם מידע נוסף? 

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

כתבות נוספות בתחום:

crypto-tax-assessment
משקיעי קריפטו הפועלים כחוק ומדווחים למס הכנסה מוזמנים לעיתים לדיון שומה גם לאחר מספר שנים מהגשת הדו"ח. זומנתם לדיון שומה? אלו הסיב...
העברת כסף לבורסות זרות – איך עושים את זה בקלות ובלי בירוקרטיה?
משקיעים מקומיים המבקשים לקנות קריפטו בבורסות קריפטו בחו"ל כדי לחסוך בעמלות הקניה, נתקלים בחסימה של העברת הכספים אל הבורסות ובדרישת...
fiat-vs-crypto
במובנים רבים מטבעות דיגיטליים מהווים אלטרנטיבה לכסף הרגיל (כסף פיאט) ולמרכיבים כאלה ואחרים של מערכות פיננסיות מסורתיות. כסף פיאט ה...