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

Taproot מגיע לביטקוין: איך זה עובד, ההיסטוריה וההשלכות שלו

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

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

תחשוב על זה. ארבע שנים מרגע ש-SegWit עלה לאוויר ועד ש-Taproot עלה לאוויר. סבלנות איטית ושיטתית, כמו שצריך. אבל ההיסטוריה של Taproot/Schnorr הולכת אחורה הרבה יותר מזה.

ההיסטוריה של השורש

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

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

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

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

Merkelized Abstract Syntax Trees (MAST), חצי ה-Taproot של שדרוג ה-Taproot הקרוב הזה, יש היסטוריה ארוכת שנים דומה. אני לא מצליח למצוא את הציטוט, אבל אני זוכר בבירור שראיתי את הביטוי הזה שהושלך על ידי אנשים כמו פיטר טוד ב-Bitcointalk.org בסביבות 2013 או 2014.

המקורי BIP עבור MAST הוצעה על ידי ג'ונסון לאו בשנת 2016. הצעה זו ראתה פעילות מסוימת גם בסביבות 2017 כאשר מארק פרידנבך, BTCDrak וקאלה אלם פיצלו אותה לשני BIPs נפרדים (116 ו 117) והרחיב את ההצעה המקורית של לאו.

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

הקטע הקטן האחרון של שיעור ההיסטוריה הזה מתחיל עם הכרזה של פיטר וויולה טיוטת BIPs עבור שנור ו-Taproot במקביל לרשימת התפוצה ב-6 במאי 2019. עד ינואר 2020, זה הושלם באופן רשמי ל- BIPs 340, 341 ו-342. מנקודה זו ואילך, זה היה רק ​​הרבה חידוד פרטים קטנים ברמת היישום, תקופת סקירה מסוימת, ואז התקופה הארוכה. קרב על מנגנוני הפעלה. זה מוביל אותנו לעכשיו, פשוט נרתעים מהפעלה.

החשיבות של חתימות שנור

אז מה העניין הגדול עם חתימות שנור? ובכן, בתור התחלה, הם הופכים את העסקאות לקטנות יותר. חתימת ECDSA היא בדרך כלל בגודל של כ-72 בתים עבור חתימה בודדת בעסקה. חתימות שנור מגיעות ל-64 בתים לכל היותר לחתימה. זהו חיסכון של בערך 12% בגודל בהשוואה ל-ECDSA עבור כל חתימת שנור. זה גם יתרון ישיר לאדם המשתמש בשנור שישלם פחות עמלות מאשר משתמש ECDSA, אבל זה גם יתרון ישיר לאנשים שלא משתמשים בשנור, על ידי דרישה לאחסן מעט פחות נתונים בבלוקצ'יין כדי לעבד ולאמת את Schnorr של מישהו אחר. חתימות.

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

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

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

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

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

ראשית, זה לא יהיה ברור שהם משתמשים ב-multisig על ידי צפייה בבלוקצ'יין, אז זה, כמו במקרה של Lightning, יגרום להם להשתלב עם כל השאר. ניצחון מפתח הוא בכל הנוגע לכלכלה: שימוש בריבוי חתימות כרגע מחייב מתן חתימה נפרדת לכל מפתח המעורב בסופו של דבר בהוצאת UTXO. עם Schnorr/MuSig, הדברים יידחסו לחתימה אחת עבור המפתח הציבורי הבודד המשולב, כלומר הוצאת multisig UTXOs באמצעות MuSig תהפוך לזולה הרבה יותר מכיוון שהיא דוחפת פחות נתונים לבלוקצ'יין.

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

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

ההשלכות של שורש

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

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

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

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

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

יש גם המון יתרונות פרטיות שמגיעים יחד עם Taproot. אחד היתרונות הגדולים של עץ MAST הוא היכולת ליצור כל מיני מצבים מותנים שבהם ניתן לבזבז מטבעות על ידי גורמים אחרים.

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

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

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

כך למעשה יושמו Taproot/Schnorr. עסקאות עדים מופרדים משתמשות בגרסה עד אפס. כאשר Taproot/Schnorr יעלה לאוויר בקרוב, הם ישתמשו בגרסה הראשונה של העדים החדשה כדי להבחין בינם לבין עסקאות ישנות של עדים מופרדים. באותה הדרך שבה הציגה SegWit גרסאות עדים, Taproot מציגה "גרסת tapleaf" עבור ה-Tapscripts המשמשים בעצי MAST עבור UTXOs המשתמשים ב-Taproot. זה לא רק מאפשר לסקריפטים הקבורים ב-MAST לשדרג מבלי להשתמש ב-OP_CODEs חדשים בשכבת הבסיס, אלא גם מבלי לשדרג גם גרסאות עד! אז Taproot תוכנן להיות יעיל ככל האפשר לשדרוג בעתיד מבלי להגביל שדרוגים אחרים לא קשורים לפרוטוקול.

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

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

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

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

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

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

זהו פוסט אורח מאת Shinobi. הדעות המובעות הן לגמרי שלהן ואינן משקפות בהכרח את הדעות של BTC Inc או מגזין Bitcoin.

מקור: https://bitcoinmagazine.com/technical/bitcoin-taproot-explainer

בול זמן:

עוד מ מגזין Bitcoin