مفهوم گاز ایتریم چیست؛ همه چیز درباره گاز شبکه ایتریم!

اگر معامله را در شبکه ایتریم انجام داده باشید، با مفاهیم Gas Price و Gas limit رو به رو شده‌اید. گاز اتریوم چیست و کارمزد در شبکه ایتریم چگونه محاسبه می‌شود؟

اگر تا به حال از ایتریم و قراردادهای هوشمند آن استفاده کرده باشید، احتمالا نام گاز هم به گوشتان خورده است. اکثر افراد Gas را تنها چیزی مانند کارمزد معاملات در شبکه ایتریم در نظر می‌گیرند چیزی مانند Fee معاملات در شبکه بیت کاین که بابت هر معامله، مقداری به عنوان کارمزد باید به ماینرهای شبکه پرداخت شود. اما مسئله بسیار فراتر از این است و گاز در شبکه ایتریم با کارمزد معاملاتی بیت کاین بسیار متفاوت است. پس گاز در ایتریم چیست و محاسبه کارمزد در شبکه بلاکچین ایتریم چگونه است. در این مطلب قصد داریم به شکلی ساده به توضیح گاز، Gas limit و مسائل مربوط به آن بپردازیم

گاز ایتریم چیست ؟

برای اینکه بدانیم قیمت گاز (Gas) و gas limit در شبکه ایتریم چیست با یک مثال ساده و کاربردی شروع می‌کنیم. ابتدا ایتریم و قرارداد هوشمند(Smart Contract) را برای لحظه‌ای فراموش کنید. خودروی شما یک موتور دارد که برای کار کردن به تیل نیاز دارد. برای رفتن از نقطه A به نقطه B، موتور خودروی شما مقداری بنزین می‌سوزاند و هر چه فاصله بیشتر باشد، تیل بیشتری هم مصرف می‌شود. شما از جایگاه سوخت تیل می‌خرید و برای آن پول پرداخت می‌کنید. با این حال شما چه طور می‌توانید حدس بزنید که در این سفر، چقدر هزینه سوختتان می‌شود؟ برای این کار ابتدا شما باید فاصله تقریبی را به کیلومتر تخمین بزنید، بعد آن را در میزان مصرف سوخت موتر خود ضرب کنید و در نهایت بعد از آن که تخمین زدید چه مقدار سوخت، احتمالا در این سفر مصرف خواهد شد، باید آن را در قیمت سوخت ضرب کنید.

شبکه ایتریم هم دقیقا به همین شکل کار می‌کند. برای شناخت این مفاهیم باید ابتدا بدانیم قرارداد هوشمند چیست ؟ قراردادهای هوشمند در شبکه ایتریم در واقع یکسری کد‌های کامپیوتری هستند که درصورت ارضای تمام شروط مندرج در آن یک سری عملیاتی را به صورت خودکار انجام می‌دهند. این کدها دستوراتی هستند که توسط کامپیوتر عملیاتی می‌شوند. این بدان معنی است که وقتی یک قرارداد هوشمند اجرا می‌شود، توان پردازشی مصرف می‌کند (دقیقا مثل موتو که تیل مصرف می‌کند) و یک نفر باید هزینه این توان پردازشی مصرفی را پرداخت کند. هر کد دستوری، در قراردادهای هوشمند یک هزینه ای دارد که با Gas اندازه‌گیری می‌شود. برخی از کدهای دستوری به کار رفته در قراردادهای هوشمند، گاز بیشتری مصرف می‌کنند و برخی دیگر کمتر، مانند ماشین که بسته به اینکه در سرک ولایت رانندگی می‌کنید یا در ترافیک شهر، مصرفش متفاوت است. کدهای دستوری هم مصرف توان پردازش متفاوتی دارند، بنابراین گاز مصرفی آن‌ها هم متفاوت است. در واقع گاز سوخت موتر مجازی ایتریم (EVM) است. عموما Gas در شبکه ایتریم هم ارز کارمزد معامله در این شبکه در نظر می‌گیرند، اما Gas و Gas limit با کارمزد معامله در شبکه ایتریم متفاوت است.

برای محاسبه کارمزد معامله در شبکه ایتریم، باید Gas limit را در Gas price یا قیمت گاز ضرب کرد.

Gas Limit چیست ؟

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

اولویت بررسی معاملات در شبکه ایتریم بر اساس قیمت گاز تعیین شده برای آن معامله خواهد بود.

کاربرد دیگری که Gas limit در شبکه غیرمتمرکز ایتریم دارد جلوگیری از حملات Spam است که در آن تعداد زیادی معامله با هدف مختل کردن شبکه ارسال می‌شوند. هزینه‌ای که بابت گاز برای اجرای معامله و قرارداد هوشمند در شبکه ایتریم باید پرداخت شود، از این نوع حملات در شبکه جلوگیری می‌کند.

قیمت گاز یا Gas Price چیست ؟

همانطور که توضیح داده شد، کاربری که قصد انجام معامله و اجرای یک قرارداد هوشمند را دارد، خود تعیین می‌کند که هزینه گاز مورد نیاز برای اجرای آن قرارداد هوشمند را با چه قیمتی پرداخت کند.Gas Price  یا قیمت گاز، هزینه‌ای است که یک کاربر تمایل دارد تا به ازای هر واحد گاز پرداخت کند، واحد قیمت گاز، جیوی یا Gwei است. بکسک پول‌های ایتریم معمولا به صورت خودکار یک قیمت منطقی برای Gas Price در نظر می‌گیرند که می‌تواند توسط کابر تغییر کند. در صورتی‌که Gas Price بسیار پایین تعیین شود، ممکن است معامله شما هیچگاه توسط ماینرها بررسی نشود. قیمت معقول برای Gas Price هم بر اساس عرضه و تقاضای بازار، متغییر است. در شبکه ایتریم هزینه Gas با اتر (ETH) پرداخت می‌شود.

جیوی یا Gwei چیست؟

واحد Gas Price، گیگاوی (Giga Wei) است که به اختصار Gwei یا جیوی گفته می‌شود. Wei کوچکترین واحد شمارش اتر است (مانند ساتوشی در شبکه بیت کاین). هر Wei معادل ۱۰ به توان ۱۸- اتر است (۱ETH=۱۰^۱۸ wei) . پس هر گیگا وی  هم معادل ۱۰ به توان ۹ وی (Wei) است (۱Gwei=۱۰^۹wei). بکسک پول‌های ایتریم هم غالبا از این واحد برای تعیین قیمت گاز استفاده می‌کنند. یعنی در واقع شما تعیین می‌کنید که به ازای هر واحد گاز تمایل دارید چند جیوی  پرداخت کنید. قیمت گاز در شبکه ایتریم را می‌توان به صورت لحظه‌ای از این وبسایت مشاهده کنید. طبیعتا اگر Gas Price را بالاتر از میانگین انتخاب کنید، معامله شما در شبکه ایتریم سریعتر انجام می‌شود و در صورتی که قیمت گاز را کمتر از میانگین انتخاب کنید، معامله شما یا انجام نمی‌شود و یا زمان زیادی باید منتظر بمانید.

گاز لیمیت در شبکه ایتریم

همانطور که در بالا اشاره شد در یک معامله ایتریم علاوه بر Gas Price، شما باید یک پارامتر دیگر به نام Gas Limit را هم تعیین کنید. Gas limit حداکثر تعداد گازی است که شما ملزم به پرداخت آن در یک معامله هستید. مقدار پیش فرض Gas Limit  اکثرا ۲۱,۰۰۰ گاز است. یعنی شما برای انجام این معامله ۲۱,۰۰۰ گاز پرداخت می‌کنید و قیمت هر گاز را نیز باید خوتان تعیین کنید که با توجه به میانگین قیمت گاز در حال حاضر باید انتخاب شود. اما برای اجرای برخی از قراردادهای هوشمند که دارای تعداد کدهای دستوری زیاد و سنگین هستند شاید کافی نباشد و باید  به مقدار آن اضافه شود. اگر به همان مثال خودرو بازگردیم، می‌توان گفت که Gas Limit مانند ظرفیت باک ماشین است. بعد از تعیین Gas Price و Gas Limit و انجام معامله مورد نظر، براساس تعداد و نوع کدهای دستوری موجود در قرار داد هوشمندی که فرا خوانده‌اید و یا حتی معامله عادی ایتریمی که انجام داده‌اید مقداری مشخص از گاز با قیمت مشخص شده به عنوان Gas Price، مصرف می‌شود. در صورتیکه میزان گاز مورد نیاز برای اجرای معامله بیشتر از Gas Limit تعیین شده توسط شما باشد، معامله شما انجام شده و مطابقی به بکسک پول شما بازگردانده خواهد شد. اما اگر مقدار Gas Limit را کمتر از مقدار لازم انتخاب کنید، معامله شما پردازش نخواهد شد.

در واقع میزان کارمزدی که شما برای یک معامله پرداخت می کنید، برابر است با تعداد گاز مورد نیاز برای اجرای معامله که نباید از Gas Limit کمتر باشد ضربدر Gas Price یا مقدار اتری که شما تمایل دارید برای هر واحد گاز پرداخت کنید که واحد آن Gwei است.

  • مثال: در یک معامله که قصد دارید مقداری ایتریم را از یک بکسک پول انتقال دهید، Gas limit  برابر با ۲۱,۰۰۰ واحد گاز است. فرض کنید که در حال حاضر قیمت گاز در بازار برابر با ۲۰ GWei تعیین شده باشد ؛آنگاه کارمزد پرداختی برای این معامله برابر است با:

کارمزد معامله = ۲۰ * ۲۱,۰۰۰ = ۴۲۰,۰۰۰ جیوی یا  ۰.۰۰۰۴۲ ایتریم

پاسخ به برخی سوال‌های مطرح شده در زمینه کارمزد معاملات در شبکه ایتریم

قیمت گاز در شبکه ایتریم را از کجا می‌توان مشاهده کرد و چه تفاوتی دارد؟
قیمت گاز را در این سایت مشاهده کنید. معمولا سه قیمت برای قیمت گاز نشان داده می‌شود؛ قیمت استاندارد، که میانگین قیمت گاز در شبکه است. قیمت سریع، که بالاتر از میانگین بوده و در مدت زمانی کوتاهتر معامله بررسی و تایید می‌شود و قیمت تریدر، که با انتخاب آن، در کوتاهترین زمان ممکن معامله توسط ماینرها انتخاب شده و بررسی می‌شود.
اگر gas limit را کمتر انتخاب کنیم، چه اتفاقی خواهد افتاد؟
Gas limit در شبکه ایتریم بر اساس کدهای قرارداد هوشمند تعیین می‌شود و حداکثر گاز مورد نیاز برای بررسی معامله است. مثلا برای انجام معاملاتی عادی در شبکه ایتریم، مقدار آن ۲۱,۰۰۰ گاز بوده و مقدار آن ثابت است. اگر مقداری کمتر از gas limit انتخاب کنید معامله شما fail خواهد شد و خطای Out Of Gas در معامله شما به نمایش درخواهد آمد.
 در این حالت مقدار gas limit که تعیین کرده‌اید به ماینر رسیده و با اینکه معامله شما انجام نشده، اما Gas limit از بکسک پول شما کسر خواهد شد.
اگر Gas limit را بالاتر انتخاب کنیم چه اتفاقی خواهد افتاد؟
اگر برای انجام یک معامله مقدار بالاتر از Gas limit را انتخاب کنید، مقدار اضافی به شما بازگردانده خواهد شد. مثلا برای انجام یک معامله ۲۱,۰۰۰ گاز نیاز است اما اگر شما ۴۰,۰۰۰ گاز را به عنوان gas limit تعیین کنید، ۲۱,۰۰۰ گاز مصرف شده و مابقی به بکسک پول شما بازگردانده خواهد شد.
برای انجام معامله عجله دارم، چه کاری باید انجام دهم؟
اگر به هر دلیلی علاقه دارید تا معامله شما توسط ماینرها سریعتر مورد بررسی قرار گیرد و تایید شود، تغییر در gas limit هیچ تاثیری نخواهد داشت. بلکه باید gas price را عددی بالاتر از میانگین انتخاب کنید و یا بالاترین عددی که توسط ارائه‌دهندگان قیمت گاز در شبکه ایتریم ارائه می‌شود را انتخاب کنید.
من gas price را بسیار پایین انتخاب کرده‌ام، معامله من هنوز تایید نشده، چطور می‌توانم آن را کنسل کنم؟
اگر معامله شما در حالت Pending قرار دارد، آن را نمی‌توان کنسل کرد اما می‌توان آن را با معاملهی دیگر جایگزین کرد. TXid خود را در etherscan وارد کنید و مطابق تصویر زیر، Nonce معامله خود را بیابید.
وارد بکسک پول خود شوید و معاملهی به مقدار صفر ایتریم را به آدرس خود ارسال کنید(از بکسک پول خودتان به بکسک پول خودتان، مقدار صفر ایتریم ارسال کنید)، این بار Gas را بالا انتخاب کنید، وارد قسمت تنظیمات معامله شوید و از قسمت Advanced، نانس این معامله را برابر با نانس معاملهی که Pending مانده انتخاب کنید. معامله قبلی شما کنسل خواهد شد. البته تغییر نانس در همه بکسک پول‌ها امکان‌پذیر نیست.

خلص مطالب

در این مطلب به سوال گاز ایتریم چیست ؟ پاسخ دادیم. همچنین با مفاهیمی همچون Gas limit و قیمت گاز در شبکه ایتریم آشنا شدیم. برای محاسبه کارمزد معاملات در دومین شبکه بلاکچین بازار ارزهای دیجیتل باید قیمت گاز را در gas limit معامله ضرب کنیم. بدین صورت، مقدار نهایی فی معامله محاسبه خواهد شد. همچنین در بخش انتهایی مطلب، به برخی از سوال‌هایی که کاربران در زمینه گاز در شبکه ایتریم مطرح کرده‌اند پاسخ دادیم.