(מאמר זה מכיל חלק מהחומר שפורסם במקור ב-2019 ב- בלוג IOV Labs RSK)
אבטחת הביטקוין מסתמכת על התמריצים הכלכליים של הכורים להאריך את "השרשרת הכבדה ביותר", שהיא השרשרת עם הקושי המצטבר ביותר (בדרך כלל הארוך ביותר). נכון לעכשיו, תמריצים אלה ניתנים על ידי תגמול החסימה, המורכב מסבסוד החסימה ודמי העסקאות. אבל הסובסידיה (כרגע 6.25 BTC) גבוהה משמעותית מדמי העסקה הממוצעים לבלוק (כיום 0.25 BTC). הסבסוד של ביטקוין פוחת כל 4 שנים, וללא ייסוף מחירי BTC ביחס הפוך, התמריץ העיקרי לכרייה יעבור מסבסוד בלוק לעמלות עסקאות חסימה. כדי לשמור על תקציב האבטחה הנוכחי, עלות העסקה תצטרך לעלות פי 25. מוקדם מדי לדעת אם זה אי פעם יהפוך לבעיה עבור ביטקוין. ייתכן שביטקוין צריך להסתגל לעידן חדש של סבסוד נמוך. בשנת 2014, הראיתי כיצד ביטקוין יכול להפוך ללא יציב כאשר הצגתי את (התיאורטי בעיקר) התקפה קדמית. קרלסטן וחב'. (2016) מְנוּתָח בעיה זו לעומק אבל הם לא הצליחו למצוא פתרון משביע רצון. זו לא רק בעיה של ביטקוין אלא בעיה שכל מטבע קריפטוגרפי שהנפקת הכסף שלו פוחתת עם הזמן יצטרך להתמודד.
אבל אנחנו לא צריכים לדאוג לגבי ביטקוין לעת עתה. ייתכן שקהילת הביטקוין תצטרך לפתור את הבעיה הזו בעוד 10 או 20 שנה, או אולי לעולם לא. מדי פעם הבעיה היא נבדק מחדש, עם ניתוחים שניהם הדגשה ו מזעור הבעיה. אבל כאשר אנו מנתחים רשתות צד של ביטקוין, כגון RSK, הבעיה היא די אמיתית.
בשנת 2019 הזכיר מנכ"ל בלוקסטרים אדם באק הַחלָקָה כאשר דנים בתקציב האבטחה לטווח ארוך של ביטקוין: "רעיונות אחרים לתקופת הסובסידיות הנמוכות לטווח ארוך כוללים ממוצע עמלות על פני מרווחי חסימה כדי להחליק את ההכנסות מעמלות."
https://twitter.com/adam3us/status/1097031151921713152
RSK מיישמת בדיוק את הרעיון הזה, החלקת הכנסות מעמלות, מאז 2016. אבל לפני שנסביר כיצד RSK מטפלת בעסקאות עם עמלות גבוהות, נציג ביתר פירוט את שלוש התקפות היפוך החסימות הגדולות שיכולות להיגרם על ידי עמלות עסקה: צליפות עמלות , עסקאות לווייתנים ואטומיזציה של כרייה.
אם סובסידית הבלוק נמוכה ועמלות העסקאות בבלוק האחרון שנכרה גבוהות בהרבה מהעמלות שניתן לגבות מעסקאות בממפול, כורים רציונליים לטווח קצר מקבלים תמריץ לחטוף עסקאות מהגוש האחרון שנכרה ולכרות מתחרה לחסום, במקום להאריך אותו. זוהי סטייה מהקונצנזוס של Nakamoto, והיא נקראת צליפה בתשלום. בהגדרה, חריגה כזו היא התקפה על הפרוטוקול, והכורה נחשב כצד זדוני. כדי לפדות את עמלות העסקה שנחטפו, הכורה הזדוני צריך גם לכרות בלוק אישור אחד נוסף מהר יותר מהשרשרת הכנה, כדי ששאר הכורים יעברו לרשת שלו. לכן צליפה בתשלום לא תמיד משתלמת, שכן הכורה הזדוני מסתכן בבזבוז ההאשרט שלו אם המזלג האנוכי שלו לא יעבור את השרשרת הכנה. צליפות עמלות לא תכופות אולי לא מהוות בעיה, אבל אם הכורים ישנו את קוד הקונצנזוס שלהם כדי להרוויח מהזדמנויות צליפות פוטנציאליות על פני כל המזלגות הקיימים, אז הרשת עלולה להיחשף להתקפות מסוכנות יותר.
ברגע שצמתי הכורים מבצעים צליפה אוטומטית בתשלום, תוקף יכול לנצל את המצב הזה כדי לבצע התקפת הוצאה כפולה. כורה זדוני עלול להוציא מטבעות בשרשרת הכנה ולקבל נכס חיצוני נוסף בתמורה, ובהמשך לחלק את השרשרת הכנה בלוק לפני הראשון. במזלג הזדוני, התוקף מוציא כפול את המטבעות אך גם מציג תכונה ייחודית (כלומר UTXO ייחודי) שאסור להתקיים במזלג הישר. מיד לאחר מכן משדר התוקף את א עסקת "לווייתן". שעושה שימוש בתכונה זו (כלומר צורכת את ה-UTXO הזה) ומציעה עמלת עסקה גבוהה בצורה יוצאת דופן כפיתיון (או שוחד) לכורים המפעילים את קוד צליפות העמלות. בעוד שהמונח "עסקת לוויתן" עשוי להיות מובן כעסקה המעבירה ערך גבוה, כאן אנו משתמשים בהגדרה במאמר הנזכר, כעסקה המשלמת עמלות גבוהות, ללא קשר לסכום הערך המועבר. בביטקוין, עסקת הלוויתן וחסימות המזלג הזדוניות יצטרכו להישלח ישירות לצמתי הכורים, מכיוון שהמזלגות הלא-טובים ביותר אינם מועברים על ידי הצמתים המלאים ברשת עמית לעמית. עם זאת, בפלטפורמות רבות של חוזים חכמים, ההתקפה היא הרבה יותר קלה מכיוון שהם אכן משדרים מזלגות שאינם הטובים ביותר. גם בפלטפורמות של חוזים חכמים, יצירת עסקת לוויתן היא פשוטה יותר: התוקף יכול לעשות שימוש חוזר ב-nonce שכבר נעשה בו שימוש בשרשרת הכנה ולכן מונע את הכללת עסקת הלוויתן בשרשרת הכנה. לחילופין, עסקת הלוויתן יכולה לבצע חוזה שבודק אם ה-hash של הבלוק הקודם תואם ל-hash בלוק שקיים רק במזלג האנוכי (כלומר באמצעות BLOCKHASH opcode) ומשלם שוחד רק על המזלג האנוכי.
ברגע שכורים מזהים עסקה של לוויתן, הם עשויים לשקול להאריך את המזלג הזדוני, גם אם נשארים מאחור, אם השוחד גבוה מספיק, מהמרים שהוא יעבור את השרשרת הכנה הארוכה יותר. ללא חוזים חכמים, אסטרטגיית ההתקפה הטובה ביותר היא לשדר במקביל סדרה של עסקאות לווייתנים המשחדות את הכורים הבאים כדי שימשיכו להרחיב את המזלג הזדוני. בביטקוין ניתן לשרשר עסקאות CHECKLOCKLOCKVERIFY or בדיקת רצף ודא. בפלטפורמות חוזים חכמים ניתן לעשות זאת על ידי שימוש חוזר ב-nonces או על ידי שיחות חוזה. גם אם אינו אוטומטי, התוקף יכול להמשיך לייצר עסקאות לווייתן על המזלג הזדוני, עד שהוא יעקוף את השרשרת הכנה.
במתקפת עסקת הלוויתן, שקלנו שכורים צריכים לעבור באופן דינמי לאסטרטגיית כרייה מורכבת כדי לקבל שוחד על סמך הסתברויות לזכייה במזלג. אנו יכולים לשקול באופן מציאותי יותר שהכורים מנהלים אסטרטגיה פשוטה יותר שאינה מחשיבה שוחד עתידי, אלא רק צליפות עמלות אנוכיות. אם זו האסטרטגיה שאומצה על ידי רוב הכורים, אז מתקפה חדשה אפשרית. מתקפת ה-Miner Atomization היא התקפת מניעת שירות ברחבי הרשת, המנסה לפתות את כל הכורים לעבוד על מזלגות אנוכיים בו-זמנית, ולכן מפחיתה את הקצב וההתכנסות של השרשרת הכנה. התקיפה מתחילה בשידור עסקה עם עמלות גבוהות מאוד, בדומה למתקפת ה- fee snipping או מתקפת עסקת הלוויתן. עסקה זו לא נועדה לסייע בהוצאה כפולה, אלא היא פיתיון שמטרתו לחלק את רשת הכרייה. נציג את ההתקפה עם דוגמה. נניח שעסקה T בבלוק בגובה N משלמת 100 מטבעות בעמלות, אבל התגמול הממוצע בלוק הוא רק 10 מטבעות. אנו מניחים שכל הצמתים של הכורים מתוכנתים לפעול לפי האסטרטגיה הרציונלית הזו:
- אם T נכלל באחד מקובצי ה-K האחרונים של השרשרת הכנה, תפסו את העסקה T ונסו לכרות בלוק מתחרה בגובה N, ולאחר מכן המשיכו לכרות בלוקים ילדים של המזלג האנוכי הזה עד שהוא יעבור את השרשרת הכנה.
- אם השרשרת הכנה עולה על המזלג האנוכי ביותר מ-K בלוקים, תוותר.
העסקה הזדונית בתשלום גבוה מפרסת את הכרייה לטובת מאגר הכרייה הגדול יותר, שיש לו את הסיכויים הגבוהים ביותר לכרות את העסקה T בתוספת מספיק חסימות אישור אנוכיות נוספות כדי שהכורים הנותרים יוותרו. באופן מוזר, ככל שרשת הכרייה מבוזרת יותר, כך ההפרעה הנגרמת על ידי עסקה T גרועה יותר. לדוגמה, עבור בלוקצ'יין עם מרווח חסימה ממוצע של 10 דקות, אם היו 100 כורים שלכל אחד מהם 1% מסך ההאשרט, הרשת תסבול מהאטה פי 100 למשך מספר בלוקים עד שהיא תתכנס לבסוף. הרשת לא תהיה שמישה למשך יומיים!
RSK הוא א שרשרת צד טהורה של ביטקוין, ולכן היא נאלצה להתמודד עם האתגר של אבטחת הבלוקצ'יין עם תקציב אבטחה שמורכב רק מעמלות עסקה מאז הקמתו. לכן RSK היה צריך להיות מוכן לעמלות גבוהות או נמוכות באופן חריג. RSK היה ה-sidechain הראשון המוכן לייצור, והוא משתמש במיזוג-כרייה לצורך קונצנזוס. כיום יותר מ-40% מכורי הביטקוין מיזוג-מכרה RSK.
כורי RSK מצפים לפיצוי כלכלי עבור הפעלת צמתים מלאים של RSK. רוב הבלוקצ'יין מנפיקים מטבעות חדשים עבור הפיצוי הזה. כמה ספרי חשבונות מבוזרים אחרים, כגון Ripple, אינם מנפיקים מטבעות כדי לשלם ליצרני בלוקים, אבל ליצרני בלוקים ניתן לסבסד חיצונית. ל-Ripple Labs, שכרה מראש XRP, יש כל כך הרבה מהם שהם יכולים לספק פיצוי ב-XRP לצדדים שלישיים שיהפכו ליצרני בלוק. RSK, לעומת זאת, עומדת בפני התנאים הקשים ביותר: אין לה הנפקת מטבעות (כמו ביטקוין) ואין לה פרימין למטבעות (כמו XRP). RSK מייצגת דוגמה מוצלחת ל-sidechain של ביטקוין, הצצה לעתיד הקונצנזוס בבלוקצ'יין דפלציוני, וכיצד בלוקצ'יין ללא סובסידיה יכול להיות בר קיימא. עם זאת, אין סבסוד פירושו ש-sidechain חייב להיות מתוכנן בקפידה נגד ההתקפות המוצגות כאן. RSK מיישמת מספר מאפיינים ייחודיים כדי להיות בטוחים יותר מפני ארגון מחדש של בלוקצ'יין המבוסס על עסקאות עמלות גבוהות:
- החלקת תגמול חסימה (נקראת גם החלקת עמלות).
- חסום שיתוף תגמולים
- כריית מיזוג מודעת למזלג
בסעיפים הבאים, אנו מציגים בקצרה כל טכניקה.
החלקת עמלות היא כלל קונצנזוס המחלק את עמלות העסקה בין הכורים בצורה שוויונית יותר. זה משלם לכל כורה פונקציה של תגמול החסימה שעבר. הפונקציה יכולה להיות ליניארית או לא ליניארית, בהתבסס על מספר קטן של תגמולי בלוק קודמים, או מבוססת על מצב שתלוי בכל הבלוקים הקודמים. העיצוב הפשוט ביותר הוא להשתמש בסוג כלשהו של מסנן Low-pass על העמלות המצטברות. RSK משתמש בפונקציית החלקה פשוטה מאוד, an IIR עם α = 0.1. אם כורה RSK פותר בלוק בגובה N, הכורה יפוצה ב-10% מדמי העסקה של בלוק N וב-10% מכל עמלות הכורה שלא שולמו שנצברו בעבר. במילים אחרות, קיים חשבון כורים "משותף", שבו בכל חסימה הכורה הזוכה מכניס את עמלות העסקה ומוציא 10% לעצמו.
החלקת תגמול מגדילה את התמריץ להרחיב את הבלוקצ'יין לעומת התמריץ לכרות מחדש בלוק עבר כדי לתפוס את העמלות המשולמות שלו, מכיוון שהכורה יכול לתפוס רק 10% מדמי העסקאות של הלוויתן. נביא את הדוגמה הקודמת. אנו מניחים שפרס הבלוק הממוצע הוא 10 מטבעות ובלוק מכיל שוחד של 100 מטבעות בגובה N. ב-RSK, הבלוק בגובה N ישלם פרס של 19 מטבעות, בעוד שהגוש הבא ישלם 18.1 מטבעות. הכורה האנוכי צריך כעת פי 10 יותר כוח גיבוב מכל כורה אחר כדי שהמתקפה תהיה רווחית.
כעת אנו מציגים אמצעי הגנה משלימים אחרים.
RSK מיישמת פרוטוקול קונצנזוס לחלוקת תגמולים בשם DECOR. DECOR מפצל את תגמולי הבלוקים באופן שווה בין קוביות אחים, כל עוד כותרות הבלוקים הללו מוזכרות על ידי השרשרת הכנה. DECOR מפחיתה את התמריץ להתקפת אטומיזציה מכיוון שהזוכה בעסקת העמלה הגבוהה חייב לחלוק את התגמול עם עוד 10 כורים שייצרו בלוקים אחים. הסיבה לכך היא שבלוק בלוקצ'יין יכול לכלול עד 10 הפניות של אחים בלוק, ופרוטוקול DECOR חולק את תגמול החסימה בין כולם. כדי להימנע משיתוף, הכורה יצטרך לכרות עוד 10 בלוקים אנוכיים, למנוע הפניות לדוד, ולהפחית במידה ניכרת את סיכוייו להצליח. בהתחשב בחלוקת תגמולים יחד עם החלקת עמלות, כדי שניסיון לשבש את רשת RSK יצליח, השוחד חייב להיות גבוה לפחות פי 110 מתגמול החסימה הממוצע.
כרייה ממוזגת מיודעת למזלג הוא גרסה של כרייה ממוזגת המאפשרת למשתמשים לפקח על רשת ה-Mainchain (למשל ביטקוין) לאיתור מזלגות זדוניים ברשת ה-sidechain (למשל RSK). כדי להרוויח ממתקפת עסקת לוויתן, התוקף חייב למצוא קורבן להוצאה כפולה. הקורבן הזה יהיה כנראה בורסת קריפטו מקוונת. בורסות קריפטו ממתינות לכמה מאות אישורי חסימה לפני קבלת הפקדה, וזה מספיק זמן עבור מערכת ארמדילו RSK כדי לזהות את המזלג הזדוני מראש ולהתריע על הבורסה. במקרה של צליפה בתשלום והתקפות אטומיזציה של כורים, המזלגים הזדוניים קצרים, ולכן ארמדילו יכול לשמש רק ככלי לאבחון המצב וזיהוי הבריכות החורגות מהפרוטוקול הישר, אך אינו יכול למנוע את התקיפה.
אמצעי הגנה משלים נוסף, ש-RSK אינה מיישמת כיום, הוא הגבלת מחיר הגז לעסקה למכפיל של מחיר הגז המינימלי (כלומר פריסה של פי 10). הצעתי מדד דומה לביטקוין ב 2013. RSK יכולה ליישם זאת בקלות, שכן כל בלוק מפרסם את מחיר הגז המינימלי לעסקה המקובל. עם זאת, קביעת מחיר גז מקסימלי אינה פותרת לחלוטין את הבעיה אם הרשת נמצאת במצב שבו בלוקים אינם צורכים את כל מגבלת הגז הזמינה בבלוק. עמלת העסקה הגבוהה ב-T יכולה להיות תוצאה של צריכת כמות גבוהה יותר של גז במקום מחיר גז גבוה יותר (העמלה המשולמת היא תוצר של שני סכומים אלו).
החלקת תגמול אינה הפתרון האולטימטיבי, כפי שתוקפים יכולים להשתמש בפלטפורמת חוזה חכם כדי שוחד הכורים לעשות כמעט כל דבר. הצגתי את "הבחירה הנצחית למתקפת הצד האפל" התיאורטית (או ECDSA :) ) ב 2014, כדרך להראות כיצד ניתן לשחד כורים כדי לסטות מהתנהגות כנה. מקורי אל. (2018) הציג מגוון רחב של התקפות שוחד תיאורטיות. עם זאת, רמת ההבנה וההכנה הנדרשת לקבלת שוחד מבוסס חוזים חכמים היא ניכרת. זה הופך את התקפות שוחד מבוססות חוזים חכמים לקשים הרבה יותר לביצוע. כורה חייב להיות מודע לחוזה השוחד ולהבין כיצד לקיים איתו אינטראקציה. עם זאת, מתקפה מסוג זה היא בלתי נמנעת: אם הפלטפורמה יכולה לבצע תשלום לכורה הבלוק הנוכחי, אז היא יכולה גם לבצע חוזה חכם שמשלם לאותו כורה. הסיבה לכך היא ששפת התכנות שמתארת את קונצנזוס הפרוטוקול וזו המשמשת חוזים חכמים הן "שלמות של טורינג". זו בעיה תיאורטית מעניינת.
אפשר לחשוב על טריקים חכמים כדי להקשות על תשלומי השוחד, כמו אילוץ כתובות הכורים להיות מיוחדות (כלומר שימוש חד פעמי בלבד), כך שחוזה שוחד לא יכול להשתלם לכורה. עם זאת, פלטפורמת חוזה חכם של Turing אינה יכולה למנוע תשלום מגורם שמוכן לשלם לצד אחר שמוכן לקבל תשלום. אנחנו תמיד בונים חוזה שוחד מוצלח שמתחמק מהגנות. לדוגמה, הכורה הזדוני יכול ליצור הוכחת ידע אפס המוכיחה שליטה בכתובת כורה ספציפית לחוזה, מבלי לחשוף את המפתח הפרטי. הכורה ישלח הוכחה זו לחוזה השוחד, יחד עם כתובת חלופית לקבלת השוחד.
לא די להגביל את יכולות שפת החוזים החכמים של הבלוקצ'יין שאת הכורים שלו יש לשחד, שכן כל פלטפורמה אחרת של חוזים חכמים שלמים של טיורינג יכולה לשמש לתשלום שוחד לכורים. הפלטפורמה צריכה להפעיל רק ממסר כותרת בלוק (כלומר btcrelay). לדוגמה, RSK ו-Ethereum יכולים לשמש לתשלום שוחד לכורי ביטקוין. עם זאת, תיאום מתקפה על בלוקצ'יין מגושר קשה יותר.
הגנה פוטנציאלית אחת מפני התקפות שוחד היא שימוש בגרסה של פרוטוקול הקונצנזוס של PoS הדורש שרוב יצרני הבלוקים יחתמו על בלוקים, וגם דורש מהם להפקיד פיקדון (הימור) של מטבעות לתקופה של חודשים. הנתח של כורים שסותרים (מייצרים שני בלוקים סותרים או הרחבות של מזלגות סותרים) יוחרם על ידי מזלג קשה שהושק בקהילה. אמנם הגנה זו אינה מבטלת את הפגיעות, אך היא עלולה להגדיל את עלות ההתקפה, מכיוון שהשוחד חייב להיות גבוה מההימור שאבד. נכון לעכשיו, לא ניתן לאפשר הימור כורים בביטקוין. בעוד RSK יכול לאמץ קונצנזוס PoS, אין הצעה לעבור ל-PoS או לערבב PoW עם PoS ב-RSK.
הצגנו כמה התקפות ידועות לקונצנזוס של Nakamoto על בסיס עסקאות זדוניות ששולמות עמלות גבוהות באופן חריג. חלק מהתקפות מאפשרות הוצאה כפולה ואחרות גורמות לחוסר יציבות ברשת. התקפות אלו רלוונטיות במיוחד עבור כל ה-sidechains של ביטקוין כולל RSK. RSK מיישמת החלקת תגמול לחסימה, שיתוף תגמול חסום וכרייה ממוזגת עם מזלג כאמצעי הרתעה. בעוד החלקת תגמול פועלת עבור עמלות מפורשות, לא ניתן להימנע מהמקרה הכללי של שוחד המשולם באמצעות חוזים חכמים. הגנה מפני התקפות אלה דורשת ניטור רשת פעיל. לבסוף, יש צורך במחקר נוסף על פתרונות אפשריים להתקפות אלה.
- 100
- 2016
- 2019
- חֶשְׁבּוֹן
- פעיל
- אדם בחזרה
- נוסף
- יתרון
- תעשיות
- מאמר
- נכס
- אוטומטי
- הטוב ביותר
- התערבות
- אל
- ביטקוין
- blockchain
- BTC
- מחיר btc
- מזומנים
- לגרום
- גרם
- מנכ"ל
- לאתגר
- סיכויים
- שינוי
- בדיקות
- ילד
- קוד
- מטבע
- מטבעות
- קהילה
- פיצוי
- קונסנסוס
- לצרוך
- להמשיך
- חוזה
- חוזים
- יוצרים
- קריפטו
- חילופי
- חילופי קריפטו
- מטבע מבוזר
- נוֹכְחִי
- מבוזר
- גופי בטחון
- מניעת שירות
- עיצוב
- פרט
- לשבש
- התפוררות
- - מפוצלות
- מוקדם
- כַּלְכָּלִי
- ethereum
- חליפין
- בורסות
- סיומות
- פָּנִים
- פנים
- מאפיין
- תכונות
- אגרות
- בסופו של דבר
- ראשון
- לעקוב
- מזלג
- מלא
- פונקציה
- עתיד
- גז
- ge
- כללי
- GM
- GP
- לתפוס
- GV
- קשה מזלג
- שירים
- has has
- השחרטה
- כאן
- גָבוֹהַ
- איך
- איך
- HTTPS
- רעיון
- לזהות
- כולל
- להגדיל
- IP
- IT
- מפתח
- ידע
- מעבדות
- שפה
- רמה
- ארוך
- גדול
- הרוב
- למדוד
- בינוני
- ממפול
- כורים
- כרייה
- כסף
- ניטור
- חודשים
- רשת
- צמתים
- המיוחדות שלנו
- באינטרנט
- אחר
- מאמר
- תשלום
- תשלום
- תשלומים
- עניין על עניין
- פלטפורמה
- פלטפורמות
- בריכה
- ברכות
- PoS
- פו
- כּוֹחַ
- להציג
- מניעה
- מחיר
- פְּרָטִי
- מפתח פרטי
- מיוצר
- מפיק
- המוצר
- להרוויח
- תכנות
- הוכחה
- הצעה
- .
- מָגֵן
- מחקר
- REST
- הכנסה
- תגמולים
- אדוה
- מעבדות אדוות
- הפעלה
- ריצה
- אבטחה
- סדרה
- הצבה
- שיתוף
- שיתופים
- משמרת
- קצר
- שרשרת צד
- פָּשׁוּט
- קטן
- חכם
- חוזה חכם
- חוזים חכמים
- So
- פתרונות
- לפתור
- לבלות
- התפשטות
- יתד
- סטקינג
- מדינה
- אִסטרָטֶגִיָה
- סובסידיה
- הצלחה
- מוצלח
- בר קיימא
- מתג
- צד שלישי
- זמן
- עסקה
- עסקות
- טיורינג
- משתמשים
- ערך
- פגיעות
- לחכות
- ויקיפדיה
- מילים
- תיק עבודות
- עובד
- Xrp
- שנים
- אפס