ארנק ביטקוין אינו מחזיק מטבעות אלא מפתחות קריפטוגרפיים, ואלה מה שמאפשר לחתום על העברת יחידות הרשומות בשרשרת הבלוקים. ההבדל המרכזי בין ארנק חם לארנק קר הוא מיקומו של המפתח הפרטי: על מכשיר המחובר לרשת, או על מדיה שאינה מקוונת. כל יתר ההבדלים – מהירות הגישה, מורכבות התפעול ומשטח החשיפה לתוכנה זדונית – נגזרים מהנקודה האחת הזאת.
מה ארנק ביטקוין מחזיק בפועל
המונח "ארנק" מייצר תמונה מטעה. יחידות ביטקוין אינן קבצים, ואינן יושבות בתוך אפליקציה כלשהי. הן רישום בפנקס מבוזר שכל צומת ברשת מחזיק עותק מלא שלו. מה שהארנק מנהל הוא אוסף מפתחות והיכולת לייצר באמצעותם חתימות שהרשת מזהה כתקינות. אם אפליקציית הארנק נמחקת, הרישום בשרשרת אינו זז ממקומו. אם המפתחות אובדים, הרישום נשאר במקומו בדיוק – אך איש אינו יכול עוד להזיז אותו.
מהמפתח הפרטי אל הכתובת
המפתח הפרטי הוא מספר בן 256 סיביות, הנבחר מתוך תחום המוגדר על ידי העקומה האליפטית secp256k1. מהמפתח הפרטי נגזר המפתח הציבורי בפעולת כפל נקודה על העקומה, ומהמפתח הציבורי נגזרת הכתובת באמצעות פונקציות גיבוב – SHA-256 ולאחריה RIPEMD-160 בפורמטים המוקדמים. כל שלב בשרשרת הזאת חד-סטרי: המעבר קדימה מיידי, ובאמצעים הידועים כיום אין דרך מעשית לחזור אחורה. זו הסיבה שפרסום כתובת אינו חושף דבר על המפתח שמאחוריה. הסבר מלא על ההבדל בין הפורמטים מופיע בעמוד כתובת ביטקוין, ובכלל זה מה מבדיל תחילית 1 מתחילית bc1q.
מה עושה החתימה הדיגיטלית
העברה ברשת ביטקוין היא הודעה המצביעה על פלטים קודמים שטרם נוצלו (UTXO) ומגדירה עבורם תנאי נעילה חדשים. כדי שהרשת תאשר את ההודעה, מצורפת אליה חתימה המוכיחה ידיעה של המפתח הפרטי המתאים בלי לחשוף אותו. הצמתים מאמתים את החתימה מול המפתח הציבורי, ורק אז מעבירים את העסקה הלאה. מכאן ש"יתרה" אינה מספר השמור אצל המשתמש, אלא סכום כל הפלטים שטרם נוצלו והנעולים למפתחות שבידיו. ארנק מודרני סורק את השרשרת, מאתר את הפלטים הללו ומציג את סכומם בשקלול של 100,000,000 סאטושי לכל ביטקוין שלם.
זרע BIP39 ונתיבי גזירה היררכיים
ניהול ידני של מפתחות בודדים אינו מעשי, ולכן כמעט כל ארנק כיום הוא ארנק היררכי דטרמיניסטי (HD) לפי תקן BIP32. כל המפתחות בעץ נגזרים ממקור יחיד – הזרע – והזרע עצמו מוצג למשתמש כרצף מילים לפי תקן BIP39. המשמעות היא שגיבוי אחד מכסה את כל הכתובות שהארנק ייצר בעבר ואת אלה שייצר בעתיד.
איך בנוי ביטוי הזרע
רשימת המילים של BIP39 מונה 2,048 מילים, ולכן כל מילה נושאת 11 סיביות מידע. ביטוי בן 12 מילים מקודד 132 סיביות: 128 סיביות אקראיות ועוד 4 סיביות ביקורת הנגזרות מהן. ביטוי בן 24 מילים מקודד 264 סיביות: 256 אקראיות ו-8 סיביות ביקורת. סיביות הביקורת הן שמאפשרות לארנק לפסול ביטוי שהוקלד בשגיאה, במקום לגזור ממנו בשקט עץ מפתחות זר. מהביטוי נגזר הזרע הבינארי באמצעות הפונקציה PBKDF2 עם HMAC-SHA512 ו-2,048 חזרות.
התקן מאפשר להוסיף ביטוי סיסמה (passphrase) הנכנס לחישוב כמלח נוסף. התוצאה עקרונית: אותן 24 מילים בצירוף סיסמה שונה מייצרות זרע שונה לחלוטין, ולכן עץ כתובות שונה לחלוטין. אין הודעת שגיאה על סיסמה מוטעית – פשוט נפתח ארנק ריק, שהוא ארנק תקין לכל דבר של סדרת מפתחות אחרת.
נתיב הגזירה ומפתח העל הציבורי
העץ נגזר לפי נתיב מספרי בעל מבנה קבוע: m / purpose' / coin_type' / account' / change / index. הגרש מסמן גזירה מוקשחת, שבה גזירת מפתח ילד מחייבת את המפתח הפרטי ולא רק את הציבורי. מפתח על ציבורי – xpub וגלגוליו – מאפשר לגזור את כל הכתובות של חשבון מסוים ולעקוב אחריהן ברשת בלי שום יכולת לחתום. זהו הבסיס ל"ארנק צפייה בלבד", שיושב על מכשיר מחובר בעוד המפתח הפרטי שוכן במקום אחר.
| תקן | נתיב חשבון ראשון | סוג פלט | תחילית הכתובת | מפתח על ציבורי |
|---|---|---|---|---|
| BIP44 | m/44'/0'/0' |
P2PKH | 1 |
xpub |
| BIP49 | m/49'/0'/0' |
SegWit עטוף ב-P2SH | 3 |
ypub |
| BIP84 | m/84'/0'/0' |
P2WPKH – SegWit נייטיב | bc1q |
zpub |
| BIP86 | m/86'/0'/0' |
P2TR – Taproot | bc1p |
xpub |
מהטבלה נובעת נקודה מעשית: אותו זרע בדיוק, שנטען לשתי אפליקציות המשתמשות בנתיבי גזירה שונים, יציג יתרות שונות. שני הארנקים תקינים, אך הם מסתכלים על ענפים שונים של אותו עץ. הערך coin_type השווה ל-0 מסמן את רשת ביטקוין הראשית.
ארנק חם: הסוגים ומאפייני החשיפה
ארנק חם הוא ארנק שהמפתח הפרטי שלו נמצא – ולו רק ברגע החתימה – על מכשיר המחובר לרשת. ההגדרה אינה נוגעת לגודל היתרה או לתדירות השימוש, אלא לשאלה טכנית אחת: האם התהליך שמבצע את החתימה רץ באותה סביבה שבה רצות תוכנות אחרות שהמשתמש אינו שולט בהן.
ארנק תוכנה על מחשב או על מכשיר נייד
זהו הסוג הנפוץ. האפליקציה מחזיקה את הזרע בקובץ מוצפן מקומי, ומפתח ההצפנה נגזר מסיסמת המשתמש. הצפנה מגנה על הקובץ בזמן מנוחה, אך ברגע שהמשתמש מזין את הסיסמה כדי לחתום, המפתח קיים בזיכרון המכשיר. תוכנה זדונית הפועלת באותה הרשאה יכולה, עקרונית, לקרוא את הזיכרון הזה. דפוס תקיפה מוכר נוסף אינו נוגע כלל למפתח: הוא מחליף כתובת יעד שהועתקה ללוח הגזירים בכתובת של גורם אחר, כך שהחתימה עצמה תקינה לגמרי – אך היעד אינו זה שהמשתמש התכוון אליו.
הרחבות דפדפן וממשקי אינטרנט
הרחבת דפדפן מרחיבה את משטח החשיפה בשכבה נוספת: היא רצה בתוך סביבה שמריצה קוד מאתרים חיצוניים, ומנגנון העדכון האוטומטי שלה מהווה נקודת אמון בפני עצמה. גרסה מעודכנת של הרחבה נכנסת לפעולה בלי התערבות המשתמש, ולכן שרשרת האספקה של ההרחבה היא חלק ממודל האיום שלה.
ארנק בשמירת גורם חיצוני
קטגוריה שלישית אינה ארנק במובן הטכני. בשירותי מסחר ובחלק מהאפליקציות, המפתחות מוחזקים בידי הגורם המפעיל, והמשתמש מקבל רישום חשבון פנימי מולו. העברות בין משתמשי אותו גורם אינן נרשמות בשרשרת כלל, אלא רק בפנקס הפנימי. ההבדל אינו סמנטי: מי שמחזיק את המפתח הוא מי שיכול לחתום, וכל שאר ההסדרים הם התחייבות חוזית מול הגורם המפעיל ולא שליטה קריפטוגרפית.
היתרון של הארנק החם הוא זמינות. חתימה מתבצעת בשניות, והוא הסביבה הטבעית להפעלת צומת בלייטנינג נטוורק, שם נדרשת נוכחות מקוונת רציפה כדי לחתום על מצבי ערוץ מתעדכנים.
מטריצת השוואה: ארנק מחובר מול ארנק מנותק
| קריטריון | ארנק מחובר (חם) | ארנק מנותק (קר) |
|---|---|---|
| מקום המפתח הפרטי | על מכשיר עם חיבור רשת | על התקן ייעודי או מדיה לא מקוונת |
| חשיפה לתוכנה זדונית | גבוהה יחסית | נמוכה יחסית |
| זמן גישה לביצוע העברה | מיידי | דורש חיבור פיזי ואישור ידני |
| נקודת הכשל העיקרית | פריצה למכשיר | אובדן ההתקן או גיבוי הזרע |
| מורכבות תפעול | נמוכה | בינונית עד גבוהה |
שרשרת הגזירה זהה בשני המקרים: זרע (12/24 מילים) ← מפתח פרטי ← מפתח ציבורי ← כתובת. הכיוון חד-סטרי: מהכתובת אי אפשר לחזור למפתח.
המטריצה מציגה מאפיינים טכניים בלבד, אינה מדרגת מוצרים ואינה המלצה לפעולה.
ארנק קר: התקן חומרה, מדיה מודפסת וניתוק מלא
ארנק קר מוגדר בשלילה: המפתח הפרטי אינו נחשף בשום שלב לסביבה מחוברת. הרעיון אינו למנוע העברות אלא להוציא את פעולת החתימה אל מחוץ למכשיר המחובר, כך שגם מכשיר נגוע לחלוטין אינו מסוגל לייצר חתימה תקינה.
התקן חומרה ייעודי
התקן חומרה הוא מחשב זעיר בעל ייעוד יחיד. הזרע נוצר בתוכו ואינו יוצא ממנו; לחלק מההתקנים רכיב אבטחה ייעודי (Secure Element) המיועד לעמוד גם בניסיונות חילוץ פיזיים. מנגנון קוד גישה חוסם שימוש במכשיר שנפל לידיים זרות, ובחלק מהדגמים מספר ניסיונות כושלים מוביל למחיקת הזיכרון. המסך הקטן שעל ההתקן הוא רכיב מהותי ולא נוחות: הוא מציג את כתובת היעד ואת הסכום מתוך הנתונים שההתקן עומד לחתום עליהם, ולכן הוא הערוץ היחיד שאינו עובר דרך המחשב שאולי הוחלף בו המידע.
מבנה העבודה מבוסס על תקן BIP174 – עסקה חתומה חלקית (PSBT). המחשב המחובר, המחזיק מפתח על ציבורי בלבד, בונה את מבנה העסקה. הקובץ עובר להתקן, ההתקן מציג את הפרטים ומחתים, והעסקה החתומה חוזרת למחשב לשידור. המעבר יכול להתבצע בכבל, בכרטיס זיכרון או בסדרת קודי QR – ובשני האחרונים אין בין המכשירים חיבור נתונים כלל.
גיבוי מודפס או חרוט
הגיבוי הפיזי של הזרע הוא מדיה שאינה מקוונת מעצם טבעה. נייר סובל מלחות ומאש, ולכן קיימות גם מדיות מתכת שמטרתן לעמוד בתנאים קיצוניים. תקן SLIP-39 מגדיר פיצול של הגיבוי לכמה חלקים, כך שנדרש מספר מוגדר מראש של חלקים כדי לשחזר את הזרע – מנגנון המבוסס על שיטת שיתוף הסוד של שמיר.
"ארנק נייר" במובן המקורי היה דבר אחר: מפתח פרטי בודד שהודפס יחד עם הכתובת שלו. המבנה הזה בעייתי מבחינה טכנית, משום שניצול חלקי של הסכום מייצר פלט עודף שנשלח לכתובת חדשה – ובמפתח בודד ללא עץ גזירה, הטיפול בעודף אינו מוגדר היטב וגרר בעבר אובדן יתרות.
מה ניתוק אינו פותר
ניתוק מזיז את נקודת הכשל, אינו מבטל אותה. במקום פריצה לתוכנה, הכשלים האופייניים הופכים פיזיים: אובדן ההתקן יחד עם הגיבוי, שריפה, או גיבוי שנוצר בשגיאת שעתוק ולא נבדק מעולם. קיים גם דפוס תקיפה בשרשרת האספקה, שבו התקן מגיע ליעדו כשהוא מכיל זרע שנקבע מראש בידי גורם אחר – ולכן התקנים מייצרים את הזרע רק בהפעלה הראשונה אצל המשתמש ומציגים אותו פעם אחת בלבד.
ארנקי multisig: חתימה מרובת מפתחות
ארנק multisig מגדיר תנאי נעילה הדורש M חתימות מתוך N מפתחות אפשריים. התצורה הנפוצה היא 2 מתוך 3: שלושה מפתחות נפרדים, שכל שניים מהם מספיקים לחתימה. כך אובדן מפתח יחיד אינו מוביל לאובדן גישה, וגם חשיפה של מפתח יחיד אינה מספיקה כדי להזיז את היתרה.
ברמת הפרוטוקול, התנאי נכתב בסקריפט. בפורמט המוקדם המבוסס על OP_CHECKMULTISIG בתוך P2SH, מספר המפתחות הציבוריים בסקריפט מוגבל ל-15. הפורמטים העדכניים יותר – P2WSH ולאחריו Taproot – מסירים חלק מהמגבלות ומאפשרים גם מבנים שבהם ריבוי המפתחות אינו נראה כלל על השרשרת כאשר כל הצדדים מסכימים.
המחיר הוא מורכבות. שחזור ארנק multisig אינו נשען על הזרעים בלבד: נדרש גם התיאור המלא של המבנה – סוג הסקריפט, מפתחות העל הציבוריים של כל המשתתפים ונתיבי הגזירה. תיאור זה נשמר בפורמט אחיד המכונה Output Descriptor. גיבוי של הזרעים בלי המבנה עלול להשאיר את המפתחות תקינים ואת היתרה בלתי נגישה.
אובדן גישה, שגיאות בלתי הפיכות והפרדה תפעולית
ברשת ביטקוין אין גורם מרכזי, ולכן אין מנגנון איפוס סיסמה, אין ביטול העברה שאושרה ואין ערכאה שאליה אפשר לפנות. המאפיין הזה הוא בדיוק מה שמעניק לרשת את עמידותה בפני שינוי חד-צדדי, והוא גם מה שהופך חלק מהתקלות לסופיות.
| אירוע | ניתן לשחזור | מה קובע את התוצאה |
|---|---|---|
| ההתקן אבד או נשבר, הזרע קיים | כן | הזרע גוזר מחדש את אותו עץ מפתחות בכל ארנק תואם |
| הזרע אבד, ההתקן תקין ונגיש | חלקית | אפשר עדיין לחתום, אך אין רשת ביטחון שנייה |
| הזרע וההתקן אבדו שניהם | לא | אין מנגנון איפוס ברמת הפרוטוקול |
| ביטוי הסיסמה הנוסף נשכח | לא | הזרע לבדו גוזר עץ מפתחות אחר לגמרי |
| שודרה העברה לכתובת תקינה אך שגויה | לא | עסקה שאושרה בבלוק אינה ניתנת לביטול |
| הוקלדה כתובת עם שגיאת תו | נמנע מראש | ספרת ביקורת פוסלת את הכתובת לפני השידור |
השורה האחרונה ראויה לדיוק. פורמט Base58Check כולל ארבעה בתים של ביקורת, ופורמט Bech32 כולל ספרות ביקורת המזהות שגיאות הקלדה נפוצות. שני המנגנונים פוסלים כתובת שהשתבשה, אך אף אחד מהם אינו יכול לזהות כתובת תקינה לחלוטין השייכת לגורם אחר. הביקורת בודקת מבנה, לא כוונה.
תפעול יומיומי מול אחסון ארוך טווח
ההפרדה המקובלת בעולם הטכני אינה בין ארנק "טוב" לארנק "רע", אלא בין שני תפקידים שונים. ארנק תפעולי מחזיק סכומים קטנים, נמצא על מכשיר מחובר ומאפשר תשלומים תכופים; מנקודת מבט של מודל איום, הוא נחשב סביבה שעלולה להיפרץ, והיקף החשיפה מוגבל מראש. ארנק אחסון ארוך טווח מחזיק את עיקר היתרה, חותם לעיתים רחוקות, ומפתחו אינו נוגע בסביבה מחוברת. חלוקה זו מוכרת בספרות כהפרדה בין סביבה חמה לקרה, והיא אותו עיקרון המשמש גופים מוסדיים לניהול מפתחות.
נקודה טכנית שמחברת בין השניים: מפתח על ציבורי מאפשר לארנק תפעולי לצפות ביתרת האחסון הקר ולבנות עבורו עסקאות, בלי שהמפתח הפרטי יעזוב אי פעם את ההתקן המנותק. בהיבט הפרטיות, לעומת זאת, אותו מפתח על חושף את כל היסטוריית הכתובות של החשבון בפני מי שמחזיק בו – נושא המתואר בהרחבה בעמוד האם ביטקוין אנונימי.
שאלות נפוצות
מה ההבדל בין ארנק חם לארנק קר במשפט אחד?
בארנק חם המפתח הפרטי נמצא על מכשיר המחובר לרשת ולכן החתימה מיידית, ובארנק קר המפתח שוכן על מדיה או התקן מנותקים והחתימה מחייבת פעולה פיזית. ההבדל הוא במיקום המפתח, לא בסוג היחידות או באופן רישומן בשרשרת.
אם אפליקציית הארנק נמחקת, מה קורה ליחידות?
היחידות אינן נמצאות באפליקציה אלא רשומות בשרשרת, ולכן מחיקת האפליקציה אינה משנה דבר ברישום. כל עוד ביטוי הזרע קיים ונתיב הגזירה ידוע, טעינתו לאפליקציה תואמת גוזרת מחדש את אותם מפתחות ואת אותן כתובות בדיוק. מה שאובד עם המכשיר הוא הגישה, לא הרישום.
האם ביטוי הזרע והמפתח הפרטי הם אותו דבר?
לא. ביטוי הזרע הוא ייצוג קריא של מספר אקראי שממנו נגזר הזרע הבינארי, ומהזרע נגזר עץ שלם של מפתחות פרטיים – אחד לכל כתובת. מפתח פרטי בודד פותח כתובת אחת, בעוד הזרע פותח את כל הכתובות שהארנק ייצר לאורך חייו.
האם ארנק קר מבטל את כל הסיכונים?
לא. ניתוק מצמצם מאוד את החשיפה לתוכנה זדונית, אך מעביר את נקודת הכשל למישור הפיזי: אובדן ההתקן יחד עם הגיבוי, נזק למדיה, גיבוי שנרשם בשגיאה, או ביטוי סיסמה נוסף שנשכח. בכל אחד מהמקרים האלה אין ברשת מנגנון שחזור מרכזי.
החומר בעמוד זה הסברי-טכני בלבד, נועד להבהיר מנגנונים בפרוטוקול ביטקוין ובתקני ניהול מפתחות, ואינו המלצה לפעולה מכל סוג שהוא.
להרחבה בנושאים קרובים: מדריך ביטקוין המלא · כתובת ביטקוין · האם ביטקוין אנונימי · לייטנינג נטוורק