هرکسی که تراکنشی در شبکه اتریوم انجام داده باشد، با اصطلاحاتی مانند Gas Price ،Gas limit، Base Fee، Priority Fee و Gwei مواجه شده است. اگر ندانیم گس اتریوم چیست و کارمزد تراکنشها در شبکه اتریوم چگونه محاسبه میشود، ممکن است به اشتباه هزینههای گزافی پرداخت کنیم و حتی در پایان تراکنشمان هم انجام نشود.
در این مقاله میخواهیم فاکتورهای موثر در محاسبه کارمزد تراکنشها روی بلاکچین اتریوم را قبل از هاردفورک لندن و بعد از آن معرفی کنیم. از اینکه صرافی سیمیا را برای افزایش اطلاعات و آگاهی خود انتخاب کردهاید، قدردان شما هستیم.
فهرست محتوا
گس اتریوم چیست؟
گس هزینهای است که برای پردازش تراکنشها روی بلاکچین اتریوم پرداخت میشود. این هزینه برای اجرای قرارداد هوشمند مورد استفاده قرار میگیرد. قراردادهای هوشمند همان کدهای کامپیوتری هستند که درصورت برآوردهشدن تمام شروط مندرج در آن، سلسله عملیاتی را به صورت خودکار توسط کامپیوتر انجام میدهند.
هر کد دستوری در قراردادهای هوشمند به توان پردازشی و در نتیجه هزینهای نیاز دارد که با Gas اندازهگیری میشود. به طور خلاصه میتوان گفت گس، سوخت ماشین مجازی اتریوم (EVM) است.
Gas مبلغی است که اتریوم از کاربرانش دریافت میکند تا اجازه تعامل با شبکه را صادر کند. زمانی که شما گس را برای ارسال یک تراکنش میپردازید، در واقع دارید هزینه انرژی مورد نیاز برای انجام محاسبات را پرداخت میکنید.
گس در قالب رمزارز بومی اتریوم، یعنی اتر (ETH) پرداخت میشود. تا پیش از پیادهسازی ارتقای لندن (London Upgrade)، هزینه گس از ضرب Gas Limit در Gas Price یا قیمت گس به دست میآمد؛
اما پس از این آپدیت و با اعمال EIP-1559 تغییراتی در سیستم کارمزد اتریوم به وجود آمد و فاکتورهای دیگری به این شبکه اضافه شدند. در ادامه تمام این موارد را بررسی میکنیم.
Gas Limit چیست؟
هر کد دستوری در اتریوم Gas limit ثابت و از پیش تعیین شدهای دارد. این فاکتور حداکثر میزان گس را نشان میدهد که کاربران برای انجام کارهای مختلف باید بپردازند. انواع مختلف تراکنشها روی بلاکچین اتریوم هزینههای گس لیمیت متفاوتی دارند؛ مثل ارسال اتر که گس لیمیت آن برابر است با ۲۱ هزار واحد. در واقع گس لیمیت بر اساس نوع قرارداد هوشمند و حجم کدهای مندرج در آن تعیین میشود.
Gas limit در شبکه اتریوم باعث جلوگیری از حملات Spam میشود. در این حملات تعداد زیادی تراکنش با هدف مختل کردن شبکه ارسال میشوند. هزینهای که باید در قالب گس برای اجرای تراکنش و قرارداد هوشمند در شبکه اتریوم پرداخت شود، به امنیت شبکه کمک و از این نوع حملات جلوگیری میکند.
توجه به این نکته مهم است که اگر گس لیمیت را کمتر از میزان مورد نیاز تعیین کنید، تراکنشتان برگشت میخورد اما هزینهای به شما عودت داده نمیشود.
دلیل این امر آن است که ماینر کار خود را انجام داده است و پاداشش را خواهد گرفت. در سمت دیگر اگر گس لیمیت را بیشتر از میزان معینشده بپردازید، مبلغ مازاد پس از اجرای تراکنش به شما برگشت داده میشود.
قیمت گس یا Gas Price چیست؟
Gas Price یا قیمت گس، هزینهای است که یک کاربر تمایل دارد به ازای هر واحد گس پرداخت کند. واحد قیمت گس، جیوی یا Gwei است. کیف پولهای اتریوم معمولا به صورت خودکار یک قیمت منطقی و پیشفرض برای Gas Price در نظر میگیرند که کاربر خودش میتواند آن را تغییر دهد.
در صورتی که Gas Price بسیار پایین تعیین شود، ممکن است تراکنش شما هیچگاه توسط ماینرها بررسی نشود. قیمت معقول برای Gas Price هم بر اساس عرضه و تقاضای بازار، متغیر است. پس تا اینجا متوجه شدیم که گس پرایس یا قیمت گس با توجه به ازدحام شبکه تعیین میشود و قابل تغییر است؛ اما گس لیمیت مقداری ثابت است که با توجه به کاربرد از قبل مشخص شده است.
جیوی یا Gwei چیست؟
واحد Gas Price، گیگاوی (Giga Wei) است که به اختصار Gwei یا جیوی گفته میشود. Wei کوچکترین واحد شمارش اتر است (مانند ساتوشی در شبکه بیت کوین). هر Wei معادل ۱۰ به توان ۱۸- اتر است (۱ETH=۱۰^۱۸ wei) و هر گیگاوی هم معادل ۱۰ به توان ۹ وی (۱Gwei=۱۰^۹wei) و ۱۰ به توان ۹- اتر است.
Gwei | Wei | Ether |
۱ | ۱۰۹ | ۱۰-۹ |
کیف پولهای اتریوم هم غالبا از این واحد برای تعیین قیمت گس استفاده میکنند. این کاربر است که تعیین میکند به ازای هر واحد گس میخواهد چند جیوی پرداخت کند. اگر Gas Price را بالاتر از میانگین انتخاب کنید، تراکنش شما در شبکه اتریوم سریعتر انجام میشود و در صورتی که قیمت گس را کمتر از میانگین انتخاب کنید،
تراکنش شما یا انجام نمیشود و یا زمان زیادی باید منتظر بمانید. با مراجعه به وبسایت Eth Gas Station میتوانید سرعت انجام تراکنشها را با توجه به قیمت گس مشاهده کنید.
فاکتورهای موثر در گس اتریوم پس از هاردفورک لندن
پس از پیادهسازی EIP-1559 فیلدهای دیگری به تراکنشها اضافه شد. تراکنشهایی که شامل این فیلدهای جدید هستند با نام تراکنشهای نوع دوم (Type 2) شناخته میشوند. تراکنشهایی که با مکانیزم قبلی انجام میشوند، تحت عنوان legacy transactions شناخته میشوند و از آنها با نام تراکنشهای نوع صفر (Type 0) نیز یاد میشود.
این نکته را هم به یاد داشته باشید که EIP-1559 تغییری در Gas Limit ایجاد نکرده است و به عنوان مثال گس لیمیت ارسال اتر همچنان برابر است با ۲۱ هزار واحد گس. همچنین باید به خاطر سپرد که EIP-1559 عملا کاهش هزینههای گس را در پی ندارد؛
بلکه تخمین آن را آسانتر میکند و موجب تجربه کاربری بهتر میشود. با این توضیحات بهتر است به فیلدهایی بپردازیم که در محاسبه تراکنشهای نوع دو به آنها نیاز داریم.
Base Fee یا کارمزد پایه
این فاکتور به کمترین میزان گس اشاره دارد که برای انجام یک تراکنش روی بلاکچین اتریوم به آن نیاز است. میزان گس مورد نیاز برای این فاکتور به نسبت تقاضا مشخص میشود و مهم نیست چه نوع تراکنشی در حال انجام است.
از آنجا که Base Fee به تقاضا مرتبط است، به صورت پویا و اتوماتیک و با توجه به تعداد کاربران شبکه در زمانهای مختلف تنظیم میشود. Base Fee در شبکه اتریوم سوزانده میشود؛ پس اعتبارسنجها سهمی از آن ندارند.
Base Fee با توجه به محتوای آخرین بلوک تاییدشده توسط شبکه محاسبه میشود. با توجه به اینکه بلاک آخر چقدر پر بوده، کارمزد پایه نیز کم و زیاد میشود. نکات زیر به درک بهتر کارمزد پایه کمک میکند:
- اگر بلاک دقیقا به اندازه ۵۰ درصد پر باشد، Base Fee نسبت به بلاک قبلی تغییری نمیکند.
- اگر آخرین بلاک کاملا پر شده باشد (۱۰۰ درصد)، کارمزد پایه به اندازه ۱۲.۵ درصد در بلاک بعدی افزایش پیدا میکند.
- اگر بلاک آخر بیش از ۵۰ و کمتر از ۱۰۰ درصد پر شده باشد، Base Fee نیز به نسبت این میزان و کمتر از ۱۲.۵ درصد افزایش پیدا میکند.
- اگر بلاک آخر صفر درصد پر باشد (یا به عبارتی خالی باشد)، کارمزد پایه به میزان ۱۲.۵ درصد کم میشود.
- اگر آخرین بلاک بیش از صفر و کمتر از ۵۰ درصد پر شده باشد، کارمزد پایه نیز به همان نسبت و به میزان کمتر از ۱۲.۵ درصد کم میشود.
Tip یا Priority Fee
گفتیم که کارمزد پایه سوزانده میشود و ولیدیتور سهمی از آن نمیبرد. پس بلاکچین اتریوم باید مشوقی برای مشارکتکنندگان این شبکه ایجاد کند. این مشوق با نام Priority Fee شناخته میشود و مبلغی اضافی و اختیاری است که موجب سریعتر انجام شدن تراکنشتان میشود. این هزینه به ولیدیتورها انگیزه میدهد تا تراکنش شما را زودتر از سایر تراکنشها پردازش کنند. در مکانیزم گواه اثبات کار، Fee به ماینر میرسید و حالا پس از مرج اتریوم، اعتبارسنجها یا همان ولیدیتورها این مبلغ را دریافت میکنند.
Max Fee
این پارامتر حداکثر مبلغی است که یک کاربر برای انجام تراکنش خود در شبکه اتریوم میپردازد. اگر کاربر میخواهد تراکنشش با احتمال بالاتری انجام شود، باید Max Fee را بیشتر از مجموع Base Fee و Tip تعیین کند. این مسئله به ویژه در زمان ازدحام شبکه بسیار کمککننده خواهد بود.
Max Fee = Base Fee + Priority Fee
مابهالتفاوت Max Fee و (Base Fee + Tip) پس از انجام تراکنش، به ارسالکننده تراکنش برمیگردد. پس کاربر مطمئن است که مبلغی که در شبکه استفاده نمیشوند، به او برگشت داده خواهد شد. در بخش بعدی در مورد این فاکتور بیشتر توضیح میدهیم تا ابهامات احتمالی رفع شود.
مروری بر ساختار Gas Fee قبل و بعد از آپگرید لندن
درست است که آپگرید لندن اتفاق افتاده است، اما برخی کیف پولها همچنان از مکانیزم قبلی گس فی پشتیبانی میکنند. در این حالت، کاربران Gas Price مورد نظر خود را تعیین و ولیدیتورها تراکنشهایی با قیمت گس بالاتر را انتخاب میکنند. چرا که هر چه Gas Price بالاتر باشد، سود بیشتری نصیبشان میشود. این مسئله باعث میشود کاربرانی که مبالغ پایینتری را برای قیمت گس پرداخت میکنند، زمان زیادی منتظر بمانند که این اتفاق ناخوشایندی است.
اما در صورت انجام تراکنشها تحت EIP-1559 شرایط متفاوت خواهد بود. Base Fee حداقل مبلغی است که برای اجرای یک تراکنش باید پرداخت شود. هر چه ازدحام شبکه بیشتر باشد، این مبلغ هم بیشتر میشود و با کاهش ازدحام شاهد کاهش کارمزد پایه خواهیم بود.
اگر کاربران تمایل دارند تراکنششان زودتر انجام شود، باید فاکتور Miner Tip را نیز تعیین کنند. Tip به ولیدیتورها تعلق دارد و به صورت مستقیم در اختیار آنها قرار میگیرد. این کار مکانیزمی تشویقی برای اولویت دادن به تراکنشها ایجاد میکند.
اما میرسیم به Max Fee. گفتیم که کارمزد پایه با توجه به ازدحام شبکه تعیین میشود. حالا فرض کنید تراکنشی دارید که در حالت Pending مانده و هنوز انجام نشده است. در همین موقع است که شبکه به ناگاه دچار ازدحام میشود و این مسئله باعث افزایش Base Fee خواهد شد. در این صورت تکلیف تراکنش شما چیست؟ اینجاست که تعیین فاکتور Max Fee میتواند انجام تراکنشتان را تضمین کند.
اگر این فاکتور را با توجه به فرمول زیر محاسبه کنید، این تضمین وجود دارد که حتی اگر شش بلاک به صورت متوالی کاملا پر شوند (با ظرفیت ۱۰۰ درصد)، تراکنشتان همچنان شانس این را دارد که در یکی از بلوکها جای بگیرد.
Max Fee = (2 * Base Fee) + Max Priority Fee
به جدول زیر نگاه کنید:
با در نظر گرفتن ۲ جیوی برای Tip و مطابق فرمول بالا، MaX Fee برابر خواهد بود با ۲۰۲ واحد. حالا اگر در بلاک فعلی تراکنشتان انجام نشود، Base Fee در بلاک بعدی به اندازه ۱۲.۵ درصد بیشتر میشود. اما جای نگرانی نیست؛ تراکنشتان همچنان برای قرار گرفتن در بلوک واجد شرایط است. در هر کدام از بلاکها که تراکنشتان انجام شود، باقیمانده Max Fee که مصرف نشده است، به شما عودت داده خواهد شد. با این مثال مشخص است که تعیین Max Fee به ویژه در مواقعی که ازدحام شبکه بالا میرود، میتواند شانس انجام تراکنشتان را بسیار بالاتر ببرد.
مثالی از هزینه گس در شبکه اتریوم
فرض کنید شخص الف میخواهد یک اتر به شخص ب ارسال کند. گفتیم که گس لیمیت برای ارسال اتر ۲۱ هزار جیوی است. Base Fee را در این مثال ۱۵۰ جیوی در نظر میگیریم. شخص الف میخواهد تراکنشش زودتر انجام شود و به همین خاطر در فیلد Tip عدد ۲۰ را مشخص میکند؛ این همان هزینهای است که به ولیدیتور خواهد رسید. هزینه کلی ارسال اتر از کیف پول شخص الف به شخص ب مطابق فرمول اینگونه خواهد بود:
هزینه گس= گس لیمیت * (کارمزد پایه + کارمزد اولویت) = ۲۱۰۰۰ * (۱۵۰+۲۰) = ۳۵۷۰۰۰۰ جیوی یا ۰.۰۰۳۵۷ اتر. این به آن معناست که باید ۱.۰۰۳۵۷ اتر توسط شخص الف پرداخت شود. از این میزان، Base Fee سوزانده میشود و Tip به اعتبارسنج میرسد.
کنسل کردن تراکنش
در صورتی که Gas Price را بسیار پایین انتخاب کرده باشید، ممکن است تراکنش مدت زیادی در حالت Pending بماند و تایید نشود. امکان کنسل کردن تراکنش به طور کلی وجود ندارد، اما میتوانید از طریق تغییر نانس (Nonce)، این تراکنش را با تراکنشی دیگر جایگزین کنید. برای انجام این کار آی دی تراکنش (TXid) خود را در Etherscan وارد کنید و مطابق تصویر زیر، نانس تراکنش را به دست بیاورید. نانس در این مثال برابر است با ۱۵.
حالا وارد کیف پولتان شوید و یک تراکنش جدید ثبت کنید. در این تراکنش مقدار صفر اتر به آدرس کیف پول خود ارسال کنید؛ یعنی از ولت خودتان صفر اتر به آدرس کیف پول خودتان ارسال کنید. نکته اینجاست که این بار Gas Price را بالاتر انتخاب کنید تا احتمال اجرای تراکنش بالاتر برود. سپس وارد تنظیمات کیف پول خود شوید و نانس تراکنش جدید را با نانس تراکنش Pending جایگزین کنید که در این مثال برابر است با ۱۵. به این ترتیب تراکنش قبلی شما کنسل خواهد شد. البته امکان تغییر نانس در همه کیف پولها امکانپذیر نیست.
پرسش و پاسخ (FAQ)
- Gasچیست؟هزینهای است که برای انجام تراکنشها روی شبکه اتریوم باید آن را بپردازید.
- قیمت گس در شبکه اتریوم را از کجا میتوان مشاهده کرد؟
قیمت گس را میتوان از طریق سایت Blocknative تخمین زد که نشان میدهد با پرداخت مبالغ مختلف، میزان موفقیت در اجرای تراکنش چقدر است. - اگر Gas Limit را کمتر انتخاب کنیم چه اتفاقی خواهد افتاد؟اگر Gas Limit را کمتر از مقدار پیشفرض انتخاب کنید، تراکنش شما انجام نمیشود و خطای Out Of Gas به نمایش در خواهد آمد. در این حالت مقدار Gas Limit که تعیین کردهاید به ماینر رسیده و با اینکه تراکنش شما انجام نشده، این مبلغ از کیف پول شما کسر خواهد شد.
- اگر Gas limit را بالاتر انتخاب کنیم چه اتفاقی خواهد افتاد؟اگر برای انجام یک تراکنش مقدار بالاتر از Gas limit را انتخاب کنید، مقدار اضافی به شما بازگردانده خواهد شد.
- اگر کاربر بخواهد تراکنشش زودتر انجام شود، چه باید بکند؟
با اضافه کردن مبلغ مازاد تحت عنوان Tip، شانس سریعتر انجام شدن تراکنش بالا میرود.
جمعبندی
برای انجام تراکنشها روی شبکه اتریوم لازم است بدانیم که مفهوم گس چیست؛ چرا که در غیر این صورت ممکن است تراکنش به مدت طولانی در حالت Pending باقی بماند و انجام نشود. Gas در اتریوم هزینهای است که برای انجام تراکنشها میپردازید؛ این هزینه صرف منابعی میشود که برای انجام محاسبات به آن نیاز دارید. در این مقاله به توضیح مفصل این هزینه پرداختیم و کارمزد شبکه اتریوم را پس از هاردفورک لندن بررسی کردیم.