گس واحدی برای سنجش مقدار کاری است که اجرای یک تراکنش در شبکه اتریوم نیاز دارد. وقتی کسی اتر جابهجا میکند یا با یک قرارداد هوشمند تعامل دارد، شبکه باید دستورهای آن تراکنش را پردازش کند. گس مقدار این کار را اندازه میگیرد و کارمزد، هزینهای است که فرستنده بابت گس مصرفشده میپردازد. بنابراین گس را نباید با خود اتر یا مبلغ کارمزد یکی دانست: گس واحد اندازهگیری است و کارمزد با اتر پرداخت میشود.
در این مقاله چه میخوانیم؟
این مفهوم کمک میکند هزینه کارهای متفاوت در بلاک چین قابل محاسبه باشد. یک انتقال ساده معمولاً به کار کمتری از اجرای چند دستور در یک قرارداد نیاز دارد. بااینحال، دانستن مقدار گس بهتنهایی برای محاسبه هزینه کافی نیست؛ قیمت هر واحد گس هم در مبلغ نهایی اثر دارد.

گس چگونه به کارمزد تبدیل میشود؟
در اتریوم، کارمزد یک تراکنش از ضرب مقدار گس مصرفشده در قیمت پرداختی برای هر واحد گس به دست میآید. این قیمت معمولاً با «گوی» نمایش داده میشود؛ گوی واحد کوچکی از اتر است. اگر دو تراکنش مقدار یکسانی گس مصرف کنند، ممکن است بهدلیل تفاوت قیمت گس، کارمزد یکسانی نداشته باشند. برعکس، یک کار پیچیدهتر میتواند حتی با قیمت یکسان برای هر واحد گس، هزینه بیشتری از انتقال ساده داشته باشد.
قیمت هر واحد گس در سازوکار فعلی اتریوم از کارمزد پایه و کارمزد اولویت تشکیل میشود. شبکه کارمزد پایه را تعیین میکند و مقدار آن با توجه به استفاده از فضای بلاک تغییر میکند. فرستنده میتواند کارمزد اولویت را برای تشویق اعتبارسنج به گنجاندن تراکنش اضافه کند. کارمزد پایه سوزانده میشود و بخش اولویت به اعتبارسنج میرسد. کیف پولها معمولاً پیش از تأیید تراکنش برآوردی از این هزینه را نشان میدهند؛ این برآورد میتواند با مبلغ نهایی تفاوت داشته باشد.
سقف گس چه نقشی دارد؟
هر تراکنش سقف گس دارد؛ یعنی بیشترین مقدار گسی که اجازه مصرف آن برای اجرای همان تراکنش داده میشود. این سقف با قیمت هر واحد گس فرق دارد. بالا بردن سقف، بهخودیخود به این معنا نیست که همه آن مقدار مصرف و هزینهاش دریافت میشود. اگر اجرای تراکنش به گس کمتری نیاز داشته باشد، بخش مصرفنشده خرج نمیشود.
سقف خیلی پایین میتواند مانع اجرای درست تراکنش شود. اگر اجرای یک قرارداد پس از شروع، بهدلیل تمام شدن گس متوقف شود، تغییرات آن برگردانده میشود، اما گس صرفشده برای پردازش بازنمیگردد. به همین دلیل، دیدن پیام ناموفق بودن تراکنش همیشه به معنی صفر بودن هزینه آن نیست. سقف گس باید برای کاری که تراکنش انجام میدهد کافی باشد، درحالیکه قیمت گس پرسش جداگانهای درباره هزینه هر واحد از آن کار است.
یک مثال فرضی
فرض کنید تراکنشی در اتریوم ۲۱٬۰۰۰ واحد گس مصرف کند و قیمت نهایی هر واحد گس ۱۰ گوی باشد. کارمزد آن ۲۱۰٬۰۰۰ گوی، برابر با ۰٫۰۰۰۲۱ اتر، خواهد بود. این اعداد فقط برای نشان دادن روش محاسبهاند و قیمت یا کارمزد فعلی شبکه را نشان نمیدهند. اگر همان تراکنش با همان مقدار مصرف، زمانی اجرا شود که قیمت هر واحد گس بیشتر است، کارمزد نهایی هم بیشتر میشود.
حالا فرض کنید کیف پول برای این تراکنش سقف ۳۰٬۰۰۰ واحد گس تعیین کرده باشد. اگر فقط ۲۱٬۰۰۰ واحد لازم شود، محاسبه کارمزد بر پایه مقدار مصرفشده انجام میگیرد، نه تمام ۳۰٬۰۰۰ واحد. این تفاوت توضیح میدهد چرا عدد «سقف گس» در صفحه تأیید کیف پول لزوماً همان مقدار گسی نیست که در رسید تراکنش ثبت میشود.
کاربرد گس برای کاربر و توسعهدهنده
کاربر هنگام ارسال اتر یا استفاده از یک برنامه مبتنی بر قرارداد هوشمند، با برآورد گس روبهرو میشود. این برآورد کمک میکند پیش از تأیید، هزینه احتمالی عملیات را در کنار مبلغی که قصد جابهجایی آن را دارد ببیند. برای نمونه، ممکن است ارزش یک جابهجایی کوچک با هزینه اجرای آن تناسب نداشته باشد. شناخت تفاوت میان گس مصرفی و قیمت گس، خواندن جزئیات کیف پول و رسید تراکنش را آسانتر میکند.
برای توسعهدهنده نیز گس راهی برای سنجش هزینه اجرای دستورهای یک قرارداد است. عملیاتی که محاسبه یا تغییر وضعیت بیشتری میخواهد، معمولاً گس بیشتری مصرف میکند. محدودیت گس همچنین جلوی اجرای بیپایان دستورها و مصرف نامحدود منابع شبکه را میگیرد. پرداخت هزینه برای پردازش، ارسال انبوه تراکنشهای بیارزش را هم پرهزینهتر میکند؛ هرچند بهتنهایی مانع همه رفتارهای مخرب نمیشود.
محدودیتها و نکات خواندن کارمزد
برآورد کیف پول تضمین نمیکند که تراکنش در زمان مشخصی ثبت شود. تقاضا برای فضای بلاک و کارمزد پایه میتوانند تغییر کنند و کارمزد اولویت نیز بر احتمال انتخاب تراکنش اثر میگذارد. تعیین قیمت بسیار پایین ممکن است باعث انتظار طولانی شود. از سوی دیگر، پرداخت کارمزد اولویت بیشتر هم زمان ثبت را بهطور قطعی تضمین نمیکند.
واژه گس در این تعریف به شیوه اندازهگیری کار و محاسبه کارمزد در اتریوم اشاره دارد. نباید فرمول یا واحد پرداخت آن را بدون بررسی به هر شبکه دیگری تعمیم داد. هنگام مقایسه هزینه دو عملیات نیز باید هم مقدار گس موردنیاز و هم قیمت هر واحد را دید. مبلغی که کاربر برای انتقال میفرستد، جدا از کارمزد اجرای تراکنش است؛ برای انجام هر دو، موجودی کافی لازم است.

