Bitcoin Core 24.0 יצא לאור: הנה מה חדש ב-PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.

Bitcoin Core 24.0 פורסם: הנה מה חדש

גרסה חדשה של תוכנת הביטקוין המקורית שהושקה על ידי סטושי Nakamoto בשנת 2009 שוחרר.

Bitcoin Core 24.0 עובד על ידי 112 מפתחים במשך כשבעה חודשים כדי להביא שיפורים מוחשיים לארנק של Bitcoin Core, תקשורת עמית לעמית (P2P), ממשק משתמש גרפי (GUI) ועוד הרבה יותר.

מאמר זה בוחן כמה מהשינויים העיקריים.

עדכוני ארנק

תמיכה ראשונית ב-Miniscript

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

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

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

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

עסקאות ללא שינוי

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

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

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

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

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

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

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

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

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

עדכונים להחלפה בתשלום

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

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

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

Bitcoin Core 24.0 מציג שני עדכונים לפונקציונליות RBF.

ראשית, כעת הוא מאפשר למשתמשים להגדיר את הצמתים שלהם כך שיעבירו עסקאות הניתנות להחלפה לְלֹא אכיפת דגל RBF. זה יכול להיעשות באמצעות החדש mempoolfullrbf אוֹפְּצִיָה. זה יוגדר ל כבוי כברירת מחדל, אבל מי שמעוניין להפעיל אותו יכול להפעיל אותו.

שנית, RBF מוגדר כעת כסטנדרט בארנק של Bitcoin Core. עסקאות מצטרפות כעת ל-RBF כברירת מחדל וה- -walletrbf ברירת המחדל של אפשרות ההפעלה היא true. משתמשים יכולים לבטל את ההצטרפות ל-RBF על ידי התאמה של עסקה נתונה בתהליך הבנייה שלה או הגדרת -walletrbf אפשרות ההפעלה ל-false.

העברת ארנק מתאר

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

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

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

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

שינויים ב-GUI

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

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

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

Bitcoin Core 24.0 משנה זאת. העדכון החדש מאחד את דף הגדרות ה-GUI עם ה bitcoin.conf קוֹבֶץ. כעת, כאשר משתמש פותח את הגדרות הלקוח ב-GUI, ההגדרות המוצגות נשלפות מקובץ התצורה. באופן דומה, שינויים בתצורה שנעשו ב-GUI באים לידי ביטוי כעת bitcoin.conf. (ראוי לציין שהקשר שם הוא עקיף, מכיוון ששינויים ב-GUI מוגדרים למעשה ל הגדרות.jסון, קובץ שיש לו עדיפות על bitcoin.conf.)

שינויים בתקשורת P2P

הגיון חדש להורדת כותרות

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

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

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

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

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

תודה לארון ואן וירדום על המשוב.

לפרטים נוספים ושינויים נוספים, עיין ב-Bitcoin Core 24.0 מכתבי שחרור. כדי להוריד את Bitcoin Core 24.0, נווט כאן. פרטים על Bitcoin Core 24.0 מוסברים גם באודיו בפודקאסט Bitcoin, Explained פרק 65.

בול זמן:

עוד מ מגזין Bitcoin