מתקדם שיעור 1 4 דקות קריאה

מרחב החיפוש: מהו טווח מפתחות

לחפש ב-2^256 זה בלתי אפשרי; לחפש ב-2^70 זה פרויקט. ההבדל בין השניים הוא הנושא של מודול שלם זה.

לחפש מפתח ב-2^256 ולחפש מפתח ב-2^70 אינם אותו בעיה בסקאלות שונות. אלו בעיות שונות. הראשונה בלתי אפשרית מבחינה פיזיקלית, כפי שנמדד במסלול הביניים. השנייה היא פרויקט: יקר, ממושך, עם חומרה קיימת ואנשים שכבר ביצעו אותו. כל מה שבמודול הזה נמצא בהבדל הזה.

טווח חיפוש הוא בדיוק מה שהשם אומר: התחלה וסוף. לומר שמפתח נמצא בטווח של שבעים ביטים פירושו שהוא גדול או שווה ל-2^69 וקטן מ-2^70 — כלומר, שיש 2^69 מועמדים, ואף אחד מחוץ לטווח הזה. הטווח לא מחליש את המתמטיקה. הוא מצמצם את השדה שבו מחפשים.

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

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

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

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

במצב השני, רק הכתובת ידועה. כתובת היא ה-hash של המפתח הציבורי, ו-hash לא ניתן להפוך — שיעור 1 של מודול 4 התעקש על כך. בלי המפתח הציבורי אין עקומה לתקוף, אין קיצור דרך של שורש ריבועי, ונשארת הדרך הארוכה: לבחור מספר אקראי, לגזור את המפתח הציבורי, לחשב את ה-hash, להשוות לכתובת, לחזור על הפעולה. אלו 2^69 סיבובים מלאים, ולא 2^35.

מי שיש לו את התמונה מחפש בדרך אחת. מי שיש לו רק את החותם, בדרך אחרת.

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

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

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

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

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