מהו "גז" באיתריום ואיך העמלה מחושבת?

אמלק;

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

GAS הוא שם של יחידה מיוחדת באיתריום. הגז מודד כמה "עבודה" פעולה או סט של פעולות מצריכות.

לדוגמא, איתריום משתמשים בפונקציה הקריפטוגרפית Keccak256  כפונקצית גיבוב.

ל- Keccak256 ידרשו בדיוק 30 גז כשהגיבוב יחושב ובנוסף 6 גז לכל 256 ביט נוספים שיעברו עירבול.

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


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

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

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

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

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


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

למרות שגז היא היחיד שבעזרתה דברים נמדדים אין טוקן שנקרא "גז" שמאפשר החזקה של 500 גז.

הגז היא יחידה פנימית של רשת האיתריום (EVM) ומאפשר לה לחשב "כמה עבודה צריכה להתבצע?".

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


בהתחלה זה עלול להראות מוזר. למה לפעולות ברשת פשוט אין חישוב שמבוצע ישירות באמצעות אית'ר?

התשובה היא, מכיוון שלאית'ר כמו לביטקוין יש מחיר שוק מאוד תנודתי!

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

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


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

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

זה השילוב של מחיר הגז ויחידות הגז שיוצרים את עלות העמלה: מחיר הגז * כמות יחידות הגז.


למרות שזה עלול לבלבל, זה חשוב להבין את ההבדלה הזו מכיוון שהיא יוצרת בלבול רב בקרב מתחילים:

יש הבדל לבין טרנזקציה שנגמר לה הגז (out of gas) לבין לטרנזקציה אין מספיק עמלה(not hight enough fee). 

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

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

הכורה (miner) יפסיק לעבד את הטרנזקציה, יחזיר שינויים שבוצעו לאחור ויוסיף את זה לרשת האיתריום בתור "טרנזקציה שנכשלה" (failed transactions), ויקח את העמלות עבור עבודה זו.

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


ניתן לחשוב על מחיר הגז (gas price) בתור תשלום שעתי לכורה וצריכת הגז (gas cost) בתור דו"ח שעות של עובד.

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

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

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


ישנם דברים רבים נוספים שניתן להסביר בנושא הגז, אך זה הבסיס!

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

כאשר הכסף נגמר, הכורים מפסיקים לעבוד עליה.

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

ללא הטכניקה הקריטית הזו, הרעיון של בלוקצ'יין רב-שימושי (general-purpose blockchain) היה הופך לכמעט ובלתי אפשרי.

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

Related Post