גלה כיצד EIP-1559 הרב-ממדי מייעל את יעילות הגז של Ethereum על ידי הפרדת עלויות משאבים, שיפור המדרגיות ושיפור ניצול הרשת.
EIP-1559 הרב-ממדי הופיע כנושא מחקר לאחר שהוצג על ידי Vitalik Buterin בפוסט של EthResearch בינואר 2022. למרות שהוא לא זכה לתשומת לב רבה כמו נושאי מחקר אחרים כמו אוסף, MEV או פתרונות זמינות נתונים, זהו אזור מחקר פעיל.
מאמרי מחקר שפורסמו לאחרונה על ידי גיירמו אנגריס ותיאו דיאמנדיס חוקרים את היסודות התיאורטיים ואת החוסן של שווקי עמלות רב-ממדיים ומציעים כיצד הם צריכים להיבנות.
למעשה, שווקי עמלות רב-ממדיים כבר בשימוש היום. עם אימוץ ה-EIP-4844 במרץ 2024, Ethereum הציגה גז בלאב, ויצרה שוק עמלות נפרד לעסקאות בלובל. זה סימן מעבר ממודל גז חד ממדי לשוק עמלות דו מימדי.
עם זאת, עדיין יש צורך להגדיל את מספר ממדי המשאבים כדי לייעל את השימוש במשאבי העסקאות. הרחבת שווקי העמלות הרב-ממדיים היא פתרון מדרגיות לשיפור היכולת של Ethereum לנהל משאבים מגוונים בצורה יעילה יותר.
מאמר זה בוחן את החשיבות והמכניקה של שווקי עמלות גז רב-ממדיים, ומסביר כיצד הם משפרים את המדרגיות והקצאת המשאבים של Ethereum.
בואו נתעמק תחילה מהו בדיוק תמחור גז רב מימדי.
תמחור גז רב ממדי הוא פתרון בקנה מידה L1, כמו הגדלת מגבלת הגז שיושמה לאחרונה ב-Ethereum. למרות שזה לא מגדיל באופן ישיר את קיבולת העסקאות הכוללת של Ethereum, הוא ממקסם את ניצול המשאבים במגבלות הקיימות. זה מאפשר ליישומים מבוזרים יותר (DApps) ולמשתמשים לבצע עסקאות בשכבת הבסיס של Ethereum ללא עומס מיותר.
Ethereum מאגדת כיום את כל עלויות המשאבים, כגון חישוב, אחסון ורוחב פס, ליחידת גז אחת. תמחור גז רב-ממדי מפריד במקום זאת את המשאבים הללו, מייעל את הקצאתם תוך שמירה על האבטחה והביזור של Ethereum.
כדי להבין מדוע זה מועיל, הבה נבחן אנלוגיה של העולם האמיתי.
דמיינו לעצמכם מועדון כושר עם מתקנים שונים, כמו הליכונים לאירוב, מתלי סקוואט לאימון משקולות ומשקולות לשימוש כללי. לחברים יש העדפות שונות: חלקם משתמשים אך ורק בהליכונים, אחרים מתמקדים במתלי סקוואט, וכמה מחליפים בין שניהם.
במערכת שבה חדר הכושר גובה דמי כניסה קבועים המבוססים על סך החברים, נוצרות חוסר יעילות. בימים שבהם ההליכונים צפופים מדי, אך מתלים סקוואט אינם בשימוש, התשלום הקבוע מזנק עבור כולם, ומאלץ את מאמני המשקולות לשלם על העומס שהם לא גרמו. באופן דומה, כאשר מתלים סקוואט מבוקשים מאוד, אך ההליכונים ריקים, משתמשי אירובי נושאים בעלויות מיותרות. התמחור החד-ממדי הזה קושר את היכולת של חדר הכושר למשאב הצפוף ביותר שלו, ויוצר תת ניצול של מתקנים אחרים. זה יכול להיחשב כמודל תמחור חד-ממדי.
כעת, דמיינו את חדר הכושר מציג מודל תמחור רב מימדי. במקום תשלום קבוע, הוא גובה בנפרד עבור הליכונים ומתלים סקוואט. משתמשי אירובי ומאמני משקולות אינם מושפעים עוד מהשימוש אחד של השני, וחדר הכושר יכול לייעל את הקיבולת שלו על ידי ניהול משאבים אלו באופן עצמאי. עם ניצול מאוזן יותר, חדר הכושר יכול להכיל יותר משתמשים מבלי להגדיל את העומס הכללי.
גישה זו מדגימה את המהות של תמחור רב מימדי: חלוקת משאבים לשווקים נפרדים כדי לשפר את ההוגנות והיעילות. עם זאת, פירוט רב מדי, כגון תמחור נפרד לכל ציוד, עלול להכניס מורכבות מיותרת ולהקשות על השימוש במערכת. זו הסיבה שבפועל, במועדוני כושר יש לרוב מחיר דמי כניסה קבוע ומתעקשים על מודל תמחור חד מימדי.
באותו אופן שבו עמלות נפרדות עבור הליכונים ומתלים סקוואט יכולים להפחית את העומס, Ethereum יכולה להשתמש בשווקים נפרדים למשאבים, כגון חישוב ושימוש בנתונים.
לפני EIP-4844, Ethereum השתמשה במודל תמחור גז חד-ממדי, שבו כל משאבי העסקאות, כולל חישוב, אחסון ורוחב פס, קובצו למדד אחד: גז. מודל זה מוביל מטבעו לחוסר יעילות, בדומה לאנלוגיה של מועדון הכושר:
דוגמה מרכזית לחוסר יעילות זו היא האופן שבו אוסף נתוני עסקאות מאוחסנים בעבר. לפני EIP-4844, רול-אפים פרסמו את נתוני העסקאות שלהם בשדה נתוני השיחות של Ethereum ושילמו עמלות גז על סמך תמחור נתוני שיחות. עם זאת, עם האימוץ של EIP-4844 במרץ 2024, רולאפים משתמשים כעת ביחידה נפרדת הנקראת blob gas, המאפשרת להם לאחסן נתונים במבנים ייעודיים הנקראים blobs.
למרות שה-EIP-4844 הציג ממד גז שני (בלוב גז) עבור נתוני רול-אפ, הוא נותר מוגבל בהיקפו: גז בלובל חל רק על עסקאות בלובל. רכיבי עסקה אחרים - כולל ביצוע EVM, נתוני שיחות ואחסון, עדיין מתומחרים תחת מודל גז יחיד.
עסקאות Ethereum עדיין צורכות משאבים עצמאיים מרובים, ובכל זאת כולן מתומחרות בגז, מה שמוביל לתרחישים לא יעילים במקרה הגרוע ביותר.
לדוגמה, נניח שעסקה בודדת צורכת את כל מגבלת הגז (כרגע 36 מיליון) בביצוע EVM. גם אם צמתי Ethereum יכלו להתמודד בבטחה עם גדלי נתונים גדולים יותר, העסקה לא יכולה להפיץ נתונים נוספים מכיוון שמתייחסים לגז כאל אילוץ בודד ולא כמגבלות עצמאיות מרובות.
בעיה זו הופכת ברורה עוד יותר כאשר מסתכלים על התפלגות גודל הבלוק של Ethereum. מיולי 2024 עד דצמבר 2024, גודל הבלוק הממוצע היה ~73KB, כאשר רוב הבלוקים מתחת ל-100 KB. עם זאת, בבלוק #21419230 , גודל הבלוק המרבי הגיע ל-1.48MB, גדול פי 20 מהממוצע.
תמחור גז רב ממדי מטפל בבעיה זו על ידי טיפול בכל משאב באופן עצמאי: חישוב, אחסון ורוחב פס מקבלים תמחור ומגבלות נפרדים. הפרדה זו מונעת צווארי בקבוק שבהם משאב אחד שולט בעלויות הגז ומייעל את הקיבולת מבלי להגדיל את סיכוני האבטחה.
מאמרים של ויטאליק בוטרין מציעים מספר סוגי משאבים מרכזיים להפרדה. הבה נחקור את משאבי המועמדים הללו ומדוע הפרדתם יכולה לשפר את יכולת ההרחבה של Ethereum.
בעת תכנון שוק עמלות רב ממדי, עצמאות משאבים היא אחד הגורמים הקריטיים ביותר. אם שני משאבים תלויים מאוד זה בזה ממוקמים בשווקי עמלות נפרדים, זה יכול להוביל לחוסר יעילות, תמחור שגוי ומורכבות מיותרת. לדוגמה, אם חישוב (מחזורי מעבד) ושימוש בזיכרון (RAM) מתומחרים בנפרד, אך האחד תלוי בשני, המשתמשים עשויים לשחק את המערכת על ידי העברת עלויות בינם לבין עצמם, מה שיוביל לתמחור לא אופטימלי.
לפיכך, לפני סיווג משאבי Ethereum לשוקי גז נפרדים, עלינו לזהות תחילה אילו משאבים עצמאיים מספיק כדי לתמחר בנפרד מבלי לעוות את כלכלת הרשת.
בבסיסו, צומת Ethereum הוא מחשב המנהל משאבים מרובים במקביל. משאבי החומרה המסורתיים מסווגים לרכיבים נפרדים שניתן לבצע אופטימיזציה באופן עצמאי:
עקרון המפתח כאן הוא הקבילות: אם מערכת יכולה לעבד משאבים אלה באופן עצמאי, יש משמעות להפרדה ביניהם לצורך תמחור. ליישם זאת על Ethereum, עלינו לשאוף לסווג משאבי Ethereum באופן שיאפשר לצמתי Ethereum לפעול בצורה יעילה ככל האפשר ללא תלות מיותרת.
בניגוד למחשבים, פעולות Ethereum אינן מתאימות בצורה מסודרת לקטגוריה אחת. פעולות רבות צורכות מספר משאבים בו זמנית, מה שמקשה על הפרדה מושלמת ביניהם. לְדוּגמָה,
תלות הדדית זו הופכת את הפרדת כל משאב לשוק התמחור שלו לבלתי מעשית. במקום זאת, עלינו להתמקד בצווארי הבקבוק המשמעותיים ביותר המשפיעים ישירות על המדרגיות של Ethereum.
בעוד שפעולות Ethereum כרוכות במשאבים מרובים, המועמדים לתמחור רב מימדי הנדונים כעת הם:
חישוב (EVM Execution) - פעולות פשוטות כמו ADD ו-MULTIPLY הן משימות CPU טהורות.
Storage I/O (SSTORE/SLOAD) – קריאה וכתיבה מתמשכת המשפיעים על התנפחות המצב של Ethereum.
נתוני שיחות עסקאות - משתמש בעיקר ברוחב פס אך גם תורם לאחסון.
נתוני עד - משפיע על רוחב פס ו-I/O אחסון, במיוחד עבור לקוחות חסרי מדינה.
על ידי התאמת קטגוריות אלו לאופן שבו מערכות מחשב מנהלות משאבים, נוכל להפוך את מבנה העמלות של Ethereum לאינטואיטיבי ויעיל יותר.
בעוד שבתיאוריה נוכל לחלק את משאבי Ethereum לקטגוריות פרטניות עוד יותר, פעולה זו תגביר את המורכבות ללא הטבות פרופורציונליות. במקום זאת, עלינו להתמקד בצווארי הבקבוק העיקריים המגבילים את הביצועים של Ethereum כיום.
לדוגמה, גודל נתוני שיחות עסקאות קובע ישירות את גודל הבלוק המקסימלי, מה שהופך אותו לצוואר בקבוק מכריע עבור שכבת הקונצנזוס של Ethereum. בנוסף, יש לשלוט בצמיחת האחסון כדי למנוע צמתים מלאים להתייקר מדי להפעלה, תוך שמירה על ביזור.
לפיכך, במקום להציג יותר מדי מימדים, התמקדות בכמה משאבי מפתח השולטים ביעילות של Ethereum היא מעשית.
עם זיהוי המשאבים העיקריים הללו, אנו יכולים לחקור שתי דרכים שונות למימוש תמחור רב-ממדי: שווקי עמלות נפרדים או יחידת גז בודדת שונה.
גישה אחת ליישום תמחור גז רב מימדי היא יצירת שווקי עמלות עצמאיים עבור כל משאב, תוך הבטחת הקצאה יעילה יותר. שיטה זו כבר הוטמעה חלקית באמצעות EIP-4844, שהציג גז בלאב כיחידה נפרדת לאחסון נתונים.
ניתן להרחיב את התפיסה הזו למשאבים אחרים, כמו גידול מדינה או גודל עדים, מה שמאפשר ל-Ethereum לנהל את המגבלות של כל משאב בנפרד במקום לאגד את כל העלויות תחת מדד גז אחד.
כדי למסד גישה זו, הבה נגדיר את bi כעמלת הבסיס עבור משאב i, gi כצריכה של משאב i בעסקה, ו-ki כגבול עבור משאב i בתוך בלוק בודד.
דמי העסקה הכוללים יחושבו כ-ibi*gi, ובלוק חייב לעמוד באילוץ all txbi ki, עבור all i עבור כל המשאבים i. בדומה לדגם ה-EIP-1559 הנוכחי, bi מותאם באופן דינמי על סמך שימוש קודם בבלוק. Ethereum יכול לאמץ מודלים של תמחור אקספוננציאליים (כפי שהם משמשים עבור גז בלאב) או מנגנון אחר לעדכון עמלות כדי לווסת את צריכת המשאבים.
מודל שוק העמלות הנפרד מציע יתרונות מרכזיים. הוא מספק שליטה מדויקת על כל משאב על ידי מתן מכסה עצמאית, המסייע להימנע מהערכות לא יעילות במקרה הגרוע תחת מודל הגז הנוכחי. זה גם מונע עומס מיותר, ומבטיח שביקוש גבוה למשאב אחד לא יגדיל באופן לא פרופורציונלי את העמלות עבור פעולות לא קשורות. בנוסף, גישה זו מייעלת את השימוש ברשת על ידי הפעלת מגבלות ישירות על גורמים כמו הפצת נתונים, כגון הגבלת 1MB או צמיחה במדינה, במקום להסתמך על התאמות עקיפות של מחירי גז כדי לווסת את צריכת המשאבים.
בעוד שווקי עמלות נפרדים מציעים הקצאת משאבים משופרת, חלוקת המשאבים באופן פרטני מדי מציגה מורכבות משמעותית. יצירת שווקים עצמאיים עבור כל סוג של משאב תדרוש שינויים גדולים בפרוטוקול, העלולים לערער את היציבות של שכבת הבסיס של Ethereum. DApps וארנקים יתמודדו גם עם אתגרים נוספים, מכיוון שהם יצטרכו לעקוב אחר שווקי עמלות מרובים ולחזות תנודות בעמלות הבסיס עבור כל משאב, מה שיקשה על הכללת עסקאות חסכונית ובזמן.
בעיה נוספת מתעוררת כאשר משאב אחד חווה עליית מחירים בלתי צפויה. גם אם ארנק מייעל את העמלות עבור כל המשאבים האחרים, זינוק פתאומי בשוק עמלות אחד בלבד עלול למנוע לעסקה להיכלל בחסימה, להוביל לאי ודאות וחוסר יעילות עבור המשתמשים.
המאמתים מתמודדים עם אתגרים דומים, שכן המטרה שלהם היא למקסם רווחים תוך הישארות במגבלות של כל מגבלת משאבים. ככל שמספר שווקי המשאבים העצמאיים גדל, מצב זה הופך לבעיית אופטימיזציה מורכבת, הדומה לבעיית תרמיל רב-ממדית שבה בחירת העסקאות הרווחיות ביותר הופכת לקשה יותר ויותר.
יש הטוענים שייתכן שהמורכבות הזו לא מהווה בעיה מרכזית מכיוון שרווחי ערך מיצוי (MEV) תורמים באופן משמעותי לרווחי המאמת, מה שהופך את עמלות העדיפות לפחות קריטיות בקבלת ההחלטות שלהם. עם זאת, ההיתכנות הכוללת של יישום שווקי עמלות נפרדים לחלוטין עבור כל משאב נותרה שאלת מחקר פתוחה, הדורשת חקירה נוספת של הפשרות בין יעילות, שימושיות ויציבות הרשת.
חלופה פשוטה יותר להפרדה מלאה בין שווקי העמלות היא לשמור על גז כיחידה העיקרית תוך התאמת אופן חישוב העמלות. במקום להכניס יחידות חדשות לכל משאב, דמי העסקה הכוללים נקבעים לפי המשאב שצורך הכי הרבה גז.
הבה נגדיר את עלות הגז עבור משאב i כ-ci ואת כמות המשאב המשמשת כ-gi. לאחר מכן, דמי העסקה נקבעים על ידי:
(c1*g1, c2*g2, c3*g3,...)
במקום לסכם את השימוש בגז על פני משאבים, עסקה מחויבת רק על סמך המשאב היקר ביותר שהיא צורכת.
לדוגמה, שקול עסקה שצורכת 50,000 גז לביצוע EVM ו-200,000 גז לנתוני שיחות. לפי מודל זה, עמלת העסקה היא 200,000 גז שכן נתוני שיחות הם המשאב הדומיננטי, ולמעשה מתעלמים מעלות הביצוע.
אמנם שיטה זו מפשטת את התמחור, אך היא מציגה בעיות פוטנציאליות:
למרות חששות אלה, היתרון העיקרי של גישה זו הוא הפשטות שלה. על ידי שמירה על גז כיחידת התמחור האוניברסלית, Ethereum נמנע מהמורכבות של ניהול יחידות משאבים מרובות תוך הבחנה בין סוגים שונים של שימוש במשאבים.
EIP-7623 , שייושם בשדרוג Pectra , עוקב אחר גישה דומה אך מעט שונה. הוא מציג מנגנון תמחור כפול עבור עסקאות עתירות נתוני שיחות, המבטיח שעסקאות עם שימוש בנתוני שיחות גבוהים באופן לא פרופורציונלי משלמות עמלות גבוהות יותר. אמנם אינו מודל תמחור גז רב-ממדי מלא, אך הוא מייצג צעד לקראת בידול משאבים טוב יותר מבלי לשנות את מבנה הגז של Ethereum.
EIP-7623 מציג עמלות גבוהות יותר עבור עסקאות זמינות נתונים (DA), במיוחד כאשר השימוש בנתוני שיחות עולה באופן משמעותי על השימוש בגז לביצוע. מנגנון זה מבטיח שעסקאות הצורכות נתוני שיחות מוגזמות משלמות עמלות גבוהות יותר, מה שמונע מאחסון נתונים מיותר מבלי לדרוש יחידות תמחור חדשות.
גרסה פשוטה של חישוב הגז של EIP-7623 היא כדלקמן:
total_gas_used max(4tokens_in_calldata + evm_gas_used, 10*tokens_in_calldata)
מה שמפשט עוד יותר ל:
total_gas_used 4tokens_in_calldata + max(evm_gas_used, 6*tokens_in_calldata)
נוסחה זו קובעת את השימוש הכולל בגז על ידי לקיחת המקסימום בין גז ביצוע לגז נתוני שיחות. אם עסקה משתמשת בעיקר בנתוני שיחות, היא תחויב בעמלות גבוהות יותר עבור נתוני שיחות במקום להיות מסובסדת על ידי עלויות ביצוע נמוכות יותר. זה מונע מאחסון נתונים מוגזם תוך הבטחה שעסקאות כבדות חישוב לא ייענשו בצורה לא הוגנת.
EIP-7623 הוא גרסה פשוטה של תמחור גז רב ממדי מכיוון שהוא מציג הבחנה מרומזת בין גז ביצוע לגז נתוני שיחות, ומעודד הקצאה מאוזנת יותר של משאבי רשת.
למרות שתמחור גז רב ממדי נתפס לעתים קרובות כשיפור כלכלי או UI/UX, זהו שיפור מדרגיות בסיסי המאפשר הקצאת משאבים אופטימלית. עם זאת, יישומו עומד בפני אתגרים משמעותיים, בעיקר בשל השינויים המהותיים בשכבת הפרוטוקול הנדרשים והקושי בהפרדה מלאה בין סוגי המשאבים. כתוצאה מכך, לא סביר שתמחור גז בממדים גבוהים יותר יאומץ בקרוב.
למרות האתגרים הללו, תמחור גז רב ממדי מציע יתרונות משמעותיים, לרבות ניצול משופר של משאבים, אבטחת רשת משופרת ותפעול צמתים בר קיימא. מתן אפשרות שימוש יעיל יותר בקיבולת החישוב והאחסון של Ethereum מהווה נתיב בר-קיימא עבור Ethereum להרחבה תוך שמירה על ביזור ואבטחה.
גרסה של מאמר זה פורסמה במקור