محمد حضرت پور | 2021.02.28

هزینه گس اتریوم: یک توضیح ساده

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

ایده‌ی اصلی قیمت گس این است که کاربران مجبور شوند هزینه‌های محاسباتی (مثل انرژی و CPU) را که برای تأیید، ایجاد و انجام تراکنش‌ها لازم است، بپردازند. استخراج‌گر، یک دسته از تراکنش‌ها را با افزودن آن‌ها به دفتر کل بلاک چین، تأیید می‌کند و یک پاداش در کنار کارمزد تراکنش دریافت می‌کند.

اکوسیستم اتریوم با استفاده از مکانیزم سوزاندن توکن‌های صرف‌شده برای هزینه گس، تضمین می‌کند که هر فعالیتی در شبکه در بلندمدت برای کاربران عایدی به همراه خواهد داشت. به عبارت دیگر با وجود هزینه‌های گس، استخراج‌گران همچنان انگیزه‌ی کافی را برای استخراج دارند و از طرف دیگر با سوزاندن توکن‌های صرف‌شده برای هزینه گس، تعداد توکن‌های درگردش را تعدیل و سودهای بلندمدت را برای سرمایه‌گذاران تضمین می‌کند.

در ادامه‌ی متن، با مفهوم و کاربردهای هزینه گس، نحوه‌ی تعیین آن و چگونگی تخمین هزینه گس برای تراکنش خود، آشنا خواهیم شد. شاید تاکنون برای شما اتفاق افتاده باشد که تراکنشی که ارسال کردید متوقف شده و انجام نشود. برای رفع این مشکل به بهترین روش، دو راه حل نیز ارائه می‌کنیم.

هزینه گس اتریوم چیست؟

هزینه گس، هزینه‌ای است که یک کاربر می‌پردازد تا یک تراکنش را بر بلاک چین اتریوم انجام دهد. واحد هزینه گس، «gwei» نامیده می‌شود که کسر مشخصی از ارز بومی این شبکه یعنی اتر است. هر gwei معادل با یک نانو اتر یا 0.000000001 اتر است.

زمانی‌که برای انجام تراکنش خود، هزینه‌ی سوخت (gas fee) می‌پردازید، درحقیقت توان محاسبات مورد نیاز برای آن تراکنش در شبکه‌ی اتریوم را خریداری می‌کنید. شبکه‌ی اتریوم، پیش از این دارای مکانیزم اجماع اثبات کار بوده و از این جهت این توان محاسباتی در اختیار استخراج‌گران است. استخراج‌گرانی که با سخت‌افزار مخصوص بر سر مرتب‌کردن و پردازش بلوک‌های متشکل از اطلاعات تراکنش‌ها با یکدیگر در رقابت هستند. در قبال این خدمات، آن‌ها پاداش تولید بلوک‌ها و کارمزد تراکنش‌ها را به وسیله‌ی هزینه گس، دریافت می‌کنند.

در دسامبر سال گذشته، یعنی کمتر از 3 ماه قبل، شبکه‌ی اتریوم یک گام اساسی دیگر در مسیر گذار به مکانیزم اثبات سهام در شبکه‌ی خود، برداشت. زمانی‌که این به‌روزرسانی تکمیل شود، این استیک کنندگان (و نه استخراج‌گران) هستند که با سپرده‌گذاری توکن‌های اتر، پاداش بلوک و هزینه تراکنش را دریافت می‌کنند.

فعالیت‌های مختلف در شبکه‌ی اتریوم، هزینه‌ گس متفاوتی دارند. برای مثال، انتقال مستقیم توکن اتر و یا هرکدام از توکن‌های استاندارد ERC-20 از تراکنش‌های پیچیده‌تر با استفاده از قرارداد هوشمند و یا فراتراکنش‌هایی که شامل چندین تراکنش هستند، هزینه سوخت یکسانی ندارند. از این منظر، با پیچیده‌‌شدن فعالیت‌های روی زنجیره، طبیعی است که هزینه گس افزایش یابد.

پیشنهاد مطالعه: قرارداد هوشمند چیست؟

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

چه کسی هزینه‌ گس را تعیین می‌کند؟

دو تصور اشتباه حول موضوع هزینه‌های سوخت شبکه اتریوم وجود دارد؛ یا گمان می‌کنند این هزینه توسط برنامه‌نویسان تعیین می‌شود یا اینکه استخراج‌گران (ماینرها) این قیمت را مشخص می‌کنند.

درواقع، کاربران شبکه‌ی اتریوم، تراکنش‌ها را با قیمت گس درخواستی ارسال می‌کنند و سپس استخراج‌گران تراکنشی که می‌خواهند را برای افزودن به بلوک انتخاب می‌کنند. در این صورت، هزینه گس اتریوم یک مقدارِ پویاست که حاصل تعادل بین مبلغ پیشنهادی کاربران و مقدار مورد قبول استخراج‌گران است. استخراج‌گر می‌تواند مقدار حداقل مطلوب خود را برای قیمت سوخت تعیین ‌کند.

بنابراین، با افزایش تراکنش‌های درخواستی کاربران، به دلیل افزایش کمیابی فضای بلوک و توان محاسباتی، هزینه‌های گس، اوج می‌گیرند. در این مواقع، زمان انجام تراکنش نیز افزایش می‌یابد. تراکنش‌هایی که با یک قیمت گس درخواستی بالاتر ارسال می‌شوند، نسبت به تراکنش‌ها با قیمت گس کمتر، سریع‌تر انجام می‌شوند.

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

مطالعات انجام شده، عوامل مختلفی را برای اثرگذاری بر قیمت گس اتریوم شناسایی کرده‌اند. تعداد استخراج‌گران، تعداد کاربران، حجم تراکنش‌ها در برنامه‌های دیفای و صرافی‌های غیرمتمرکز، تعداد تراکنش‌های درحال انتظار، قیمت اتر به دلار و متوسط قیمت برق جهانی برخی از این متغیرها هستند.

گس اتریوم

حد گس اتریوم چیست؟

یک بخش کلیدی در سیستم گس اتریوم، مفهوم حد گس اتریوم است. در زمینه‌ی تراکنش‌ها، حد گس، نشان‌دهنده‌ی حداکثر مقدار هزینه سوخت است که حاضر هستید برای یک تراکنش بپردازید. این سقف قیمتی، قرار داده شده تا کاربران از پذیرفته شدن و انجام تراکنش خود اطمینان حاصل کنند.

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

 اما اگر سوخت مورد نیاز از این مقدار بیشتر شود، تمام تغییرات در قرارداد هوشمند برگشت می‌خورند. البته تراکنش همچنان معتبر خواهد بود و استخراج‌کننده می‌تواند کارمزد خود را دریافت کند. در این موارد، بلاک چین نشان می‌دهد که یک تراکنش انجام شده است، اما سوخت کافی برای آن درنظر گرفته نشده بوده؛ در نتیجه تمام عملیات‌های قرارداد برگشت خوردند. این مکانیزم برای جلوگیری از حمله‌های فرسودگی منابع (Resource-exhaustion Attacks) تعبیه شده است.

برای یک تراکنش ساده با توکن اتر، حد گس استاندارد 21000 است. حالا فرض کنید یک تراکنش معمولی، زمانی که هزینه گس معادل با 100 gwei است، ارسال می‌شود. حالا می‌توانیم هزینه تراکنش را برای این مورد محاسبه نماییم.

هزینه تراکنش = 21000 (حد گس اتریوم) × 100 (هزینه‌ی گس) × 0.000000001 (واحد gwei/eth)

هزینه تراکنش در اینجا برابر با 0.0021 اتر است. حد گس برای انتقال توکن‌های استاندارد ERC-20، در محدوده‌ی 25000 تا 500000 متغیر است.

یک عنصر مهم دیگر، این است که شبکه‌ی اتریوم چگونه یک حد گس، برای بلوک‌های خود در سراسر شبکه دارد. این حد، مقدار تراکنش‌های مشمول در یک بلوک را محدود می‌کند. تاکنون، در چندین مرتبه، استخراج‌گران برای افزایش حد اندازه‌ی بلوک رأی داده‌اند. برای مثال، در ماه ژوئن سال گذشته، استخراج‌گران رأی دادند تا این حد را از 10 میلیون به 12.5 میلیون افزایش دهند.

چگونه هزینه تراکنش اتریوم را قرار دهیم؟

زمانی که بر شبکه اتریوم تراکنش می‌کنیم، یا قیمت را با ارسال تراکنش با هزینه گس کوچک بهینه می‌کنیم، و یا زمان را با ارسال تراکنش‌ها با هزینه گس بالا، بهینه می‌کنیم.

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

پیشنهاد مطالعه: آموزش کامل کیف پول متامسک MetaMask + ویدیو

قابل توجه است که متاماسک و سایر کیف پول‌ها همیشه هزینه‌های گس و زمان تراکنش را به دقت تخمین نمی‌زنند، مخصوصا هنگامی که سطح فعالیت در کل شبکه به سرعت تغییر می‌کند. اگر هنوز دودل هستید، می‌توانید خودتان به صورت دستی با استفاده از قیمت‌های گس به‌روزشده از منابعی چون Gas Now، EthGasStation و Oracle EtherChain Gas Price ، هزینه گس را در نوار «پیشرفته» در کیف پول خود تنظیم کنید.

چگونه یک تراکنش متوقف‌شده را لغو کنیم؟

در زمان تراکم بالای شبکه، توقف یک تراکنش اتریوم در استخرهای تراکنش‌های درحال انتظار پلتفرم، دور از انتظار نیست. این زمانی رخ می‌دهد که استخراج‌گران به شدت بر سر تراکنش‌های با کارمزد بالا رقابت می‌کنند و تراکنش شما قیمت گس کمتر از حدی دارد. در این صورت تراکنش شما در انتهای یک لیست بلند بالا، قفل می‌شود.

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

اما نگران نباشید! خونسرد بمانید و از مقادیر nonce نیز، عصبانی نشوید!

 لغو کردن یک تراکنش متوقف‌‌شده، بسیار آسان است. زمانی که مطابق گام‌های زیر، تراکنش را لغو کردید، می‌توانید همان تراکنش را با یک هرینه گس بالاتر، ارسال کنید تا تراکنش شما سریعا انجام شود. فرآیند لغو به این ترتیب است:

  • 1) به سایت اتر اسکن (etherscan) وارد شوید.
  • 2) در نوار جستجوی این سایت، هش تراکنش خود را وارد نمایید.
  • 3) در صفحه‌ی مربوط به تراکنش خود، بر روی «Click to see more» کلیک کنید.
  • 4) مقدار nonce نمایش داده می‌شود، آن را به خاطر بسپارید.
  • 5) در کیف پول خود یک تراکنش 0 ETH را مهیا کنید.
  • 6) به نوار Advanced بروید و در آنجا همان مقدار nonce تراکنش متوقف‌شده را وارد کنید. (توجه کنید که شاید لازم باشد قابلیت تنظیم مقدار nonce را در تنظیمات کیف پول خود، فعال کنید)
  • 7) تراکنش جدید را با یک هزینه گس بالاتر امتحان کنید.
  • 8) زمانی که این تراکنش تأیید شد، تراکنش متوقف‌شده‌ی شما، راه‌اندازی خواهد شد.

همچنین، یک برنامه غیرمتمرکز لغو تراکنش نیز در cancel-ethereum-transactions.web.app. وجود دارد. این خدمات که بسیار کاربرپسند است، به صورت خودکار مقدار nonce تراکنش درحال انتظار را در کیف پول شما می‌یابد و سپس یک تراکنش با پیکربندی مناسب برای لغو سریع آن تراکنش، ارسال می‌کند.

لغو تراکنش متوقف‌شده با MyCrypto

همان‌طور که بیان کردیم، از بین دو تراکنش که مقدار nonce مشابهی دارند، آن‌ که هزینه‌ی گس بیشتری را پرداخت می‌کند تأیید و تراکنش دیگر، لغو خواهد شد. اگر مقدار صفر اتر را با همان مقدار nonce قبلی و هزینه‌ی گس بالاتر، به آدرس خود ارسال کنید می‌توانید به هدف خود برسید. اما این کار را چگونه با استفاده از MyCrypto انجام دهیم؟

  • 1) این لینک را برای دسترسی آفلاین به MyCrypto دنبال کنید.
  • 2) در بخش from address، آدرس اتریوم خود وارد کنید و سپس بر روی گزینه‌ی تولید اطلاعات (generate information) کلیک کنید. در این قسمت، اطلاعات مربوط به nonce تراکنش‌ها قابل دسترسی است که در مراحل بعدی به آن نیاز دارید. پس آن را به خاطر بسپارید.
  • 3) در بخش دوم، همان آدرس اتریوم را در قسمت آدرس گیرنده (to address) و مقدار صفر را در قسمت ارزش مقدار ارسالی وارد نمایید.
  • 4) هزینه‌ی گس را معادل با بیشترین مقدار (که در بالای صفحه EthGasStation مشاهده میشود) قرار دهید.
  • 5) حالا باید مقدار nonce تراکنش متوقف‌شده خود را وارد کنید.
  • 6) کیف پول خود را باز کنید.
  • 7) بعد از آن، بر روی گزینه تولید تراکنش (generate transaction) کلیک کنید. اگر
    آخرین تراکنشی که در مراحل قبل امضا کردید به صورت خودکار نمایش داده نشد، این کار را به صورت دستی و با دستورهای copy/paste انجام داده و تراکنش را ارسال کنید.

چگونه در هزینه گس اتریوم صرفه‌جویی کنیم؟

توکن‌ گس (GasToken) یک نوآوری است که به کاربر اجازه می‌دهد وقتی که قیمت‌های گس پایین است، آن را توکن‌سازی کند. این توکن‌ها می‌توانند زمانی که هزینه گس بالاست، به عنوان روشی برای یارانه‌ هزینه‌های تراکنش اتریوم، خرج شوند.

تاکنون، دو پروژه‌ی مربوط به توکن گس با استاندارد  ERC-2، توجه‌ها را به خود جلب کرده‌اند. توکن GST و توکن CHI از صرافی غیرمتمرکز 1inch از پرکاربرد‌ترین توکن‌های گس هستند.

توکن‌های GST با قراردادهایی پا به این عرصه گذاشتند که برای توکن‌سازی سوخت شبکه اتریوم مورد استفاده قرار می‌گیرند. این سیستم برمبنای پویایی‌های استرداد ذخیره‌سازی ساخته شده‌ که اجازه می‌دهد توکن‌های گس را با ذخیره‌سازی داده‌های خود در قرارداد GasToken برای خود تولید کنید. زمانی که هزینه‌ گس افزایش یافت، می‌توانید با بازگرداندن توکن گس به قرارداد مربوط به آن، این داده‌ها را بازیابی کنید. با این کار هزینه گس خود را استرداد می‌کنید.

همچنین، توکن‌های CHI که برای اولین بار در رقابت Hack Money در ماه می 2020، از آن‌ها رونمایی شد، یکی دیگر از نوآوری‌های مشهور در این زمینه است. این توکن‌ها که درواقع برای مدیریت و صرفه‌جویی در هزینه‌ی سوخت ساخته شدند، تنها در پلتفرم‌های غیرمتمرکز 1inch و Curve قابل استفاده هستند. این درحالی است که توکن‌های GST در سرتاسر شبکه‌ی اتریوم، مورد استفاده قرار می‌گیرند. توکن‌های GST در سایت اتر اسکن می‌توانند تولید شوند و توکن‌های CHI، هم در اتر اسکن و هم در پلتفرم 1inch قابل تولید هستند.

بررسی هزینه‌ گس در سال 2021

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

درواقع اینطور نیست. داده‌های تعداد کاربران و تعداد تراکنش‌ها در بازار دیفای و صرافی‌های غیرمتمرکز نشان می‌دهد که از ابتدای سال 2021، هر دوی این معیار‌ها کاهش یافته‌اند. زمانی که به تغییرات قیمت اتر و تعداد کاربران و یا تعداد تراکنش‌ها می‌نگریم، اغلب یک رابطه‌ی منفی مشاهده می‌کنیم. وقتی قیمت اتر به شکل قابل توجهی افزایش می‌یابد، از تعداد کاربران و تعداد تراکنش‌ها کاسته می‌شود.

قیمت اتریوم از اول ژانویه تا زمان این نوشتار، از 728 دلار به 1650 دلار رسیده است. پس احتمالا بخشی از کاربران به دلیل هزینه‌ی زیاد گس ناشی از قیمت بالای اتر، از تراکنش در بازار دیفای و صرافی‌های غیرمتمرکز کنار کشیده‌اند. اما چگونه حجم تراکنش‌ها در بازار غیرمتمرکز اتریوم افزایش یافته است؟

با اینکه حجم تراکنش‌های روزانه، یک کاهش را نشان می‌دهد اما معیار حجم متوسط هر تراکنش افزایش یافته است که نشان می‌دهد قیمت‌های بالای سوخت، سرمایه‌گذاران خرد را کنار زده اما وال‌ها را نتوانسته از فعالیت در بازار دیفای و صرافی‌های غیرمتمرکز منع کند.

حالا که ما نمی‌توانیم تغییرات قیمت گس را که ناشی از تغییرات قیمت اتر و یا تراکم شبکه هستند، پیش‌بینی کنیم به عنوان راه کمکی می‌توانیم از ابزار زیر برای آسان‌تر شدن زندگی «اتریومی» خود بهره ببریم:

  • 1) اتراسکن (etherscan): با استفاده از ابزار ethereum gas tracker در این وب‌سایت، می‌توانید همواره از قیمت گس جاری مطلع باشید.
  • 2) قیمت‌های گس را دنبال کنید و هزینه تراکنش خود را با استفاده از ماشین حساب EthGasStation محاسبه کنید.
  • 3) می‌توانید یک ردیاب قیمت گس خودکار را در این جا تنظیم کنید که وقتی قیمت گس از حدی پایین‌تر باشد به شما از طریق ایمیل اطلاع دهد.

جمع‌بندی

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

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

منبع ۱، ۲، ۳