چرا کارمزد اتریوم زیاد میشود؟ گس، کارمزد پایه و راههای کم کردن هزینه
کارمزد اتریوم از ضرب مقدار گس در قیمت هر واحد گس به دست میآید. شلوغی شبکه قیمت گس را بالا میبرد، کار با قرارداد هوشمند گس بیشتری مصرف میکند و گران شدن ETH عدد تومانی را بزرگتر میکند. ببینید هر کدام چطور کار میکند و چطور کمتر بپردازید.
کارمزد اتریوم از دو عدد ساخته میشود: مقدار گسی که تراکنش شما مصرف میکند و قیمتی که برای هر واحد گس میپردازید. وقتی تقاضا برای جای بلاک زیاد است، قیمت هر واحد گس بالا میرود. وقتی تراکنش شما بهجای ارسال ساده ETH با یک قرارداد هوشمند کار دارد، مثل انتقال تتر ERC20 یا سواپ، مقدار گس بیشتری مصرف میشود. و چون کارمزد به ETH پرداخت میشود، گران شدن ETH عدد تومانی کارمزد را هم بزرگتر میکند، حتی اگر شبکه شلوغتر نشده باشد.
این مقاله فقط درباره اتریوم است. اگر میخواهید بدانید کارمزد شبکه در بیتکوین و ترون و شبکههای دیگر چطور حساب میشود، راهنمای کارمزد شبکه ارز دیجیتال را ببینید.
مقدار گس و قیمت گس دو چیز جدا هستند
خیلیها «گس» را با خود کارمزد یکی میدانند، ولی گس در اصل واحد اندازهگیری کار محاسباتی است. هر کاری که شبکه برای تراکنش شما انجام میدهد، مقداری گس مصرف میکند. کارمزد نهایی این است:
کارمزد = مقدار گس مصرفی × قیمت هر واحد گس
قیمت هر واحد گس را معمولاً به گوئی (gwei) مینویسند. هر گوئی یک میلیاردم ETH است. پس وقتی کیف پول میگوید «گس ۱۵ گوئی است»، منظورش قیمت هر واحد است، نه کل کارمزد.
این تفکیک مهم است، چون دو عدد به دلیلهای کاملاً متفاوت تغییر میکنند:
- مقدار گس به نوع کار شما بستگی دارد. ارسال ساده ETH همیشه ۲۱٬۰۰۰ واحد گس مصرف میکند. انتقال توکن و سواپ بیشتر.
- قیمت گس به وضعیت شبکه در همان لحظه بستگی دارد و از بلاکی به بلاک دیگر عوض میشود.
یعنی اگر امروز انتقال تترتان گرانتر از ارسال ETH دوستتان است، دلیلش مقدار گس است. اگر همان انتقال امروز گرانتر از دیروز است، دلیلش قیمت گس یا قیمت ETH است.
قیمت گس چطور تعیین میشود؟ کارمزد پایه و انعام
از ارتقای لندن و EIP-1559، قیمت هر واحد گس در اتریوم دو بخش دارد:
- کارمزد پایه (base fee): حداقل قیمتی که پروتکل برای هر بلاک تعیین میکند. تراکنشی که کمتر از آن بدهد وارد بلاک نمیشود. این بخش به کسی نمیرسد و سوزانده میشود.
- انعام یا کارمزد اولویت (priority fee): مبلغی که به اعتبارسنج میدهید تا تراکنش شما را انتخاب کند. هر چه رقابت بیشتر باشد، انعام لازم برای جلو افتادن هم بیشتر است.
کارمزد پایه را کسی دستی بالا و پایین نمیبرد. طبق مستندات ethereum.org، هر بلاک یک اندازه هدف دارد که نصف سقف گس بلاک است. اگر بلاک قبلی از هدف پرتر بوده، کارمزد پایه بلاک بعد بالا میرود و اگر خالیتر بوده پایین میآید. بیشترین تغییر در هر بلاک ۱۲٫۵ درصد است: بلاک کاملاً پر یعنی ۱۲٫۵ درصد افزایش و بلاک خالی یعنی ۱۲٫۵ درصد کاهش.
۱۲٫۵ درصد کم به نظر میرسد، ولی در اتریوم تقریباً هر ۱۲ ثانیه یک بلاک ساخته میشود و این افزایشها روی هم جمع میشوند. اگر شش بلاک پشت سر هم پر باشند، کارمزد پایه از ۱۰۰ گوئی به حدود ۲۰۳ گوئی میرسد (۱۰۰ × ۱٫۱۲۵ به توان ۶). یعنی در حدود یک دقیقه و ۱۲ ثانیه شلوغی مداوم، کارمزد پایه دو برابر میشود. همین سازوکار در جهت عکس هم کار میکند و وقتی هجوم تمام شود و بلاکها از هدف خالیتر شوند، کارمزد پایه در هر بلاک تا ۱۲٫۵ درصد پایین میآید.
سقف کارمزد و سقف گس: چرا بیشتر از لازم کم نمیشود
وقتی تراکنش را امضا میکنید، کیف پول دو سقف هم تعیین میکند:
- سقف کارمزد (max fee): بیشترین قیمتی که حاضرید برای هر واحد گس بدهید. اگر کارمزد پایه بهاضافه انعام کمتر از این سقف باشد، مابهالتفاوت به شما برمیگردد. مثلاً اگر سقف را ۳۰ گوئی گذاشته باشید و کارمزد پایه ۱۰ و انعام ۲ باشد، شما ۱۲ گوئی برای هر واحد میپردازید، نه ۳۰.
- سقف گس (gas limit): بیشترین مقدار گسی که تراکنش اجازه دارد مصرف کند. گس مصرفنشده برمیگردد؛ ethereum.org مثال میزند که اگر برای ارسال ساده ETH سقف ۵۰٬۰۰۰ بگذارید، ۲۱٬۰۰۰ مصرف و ۲۹٬۰۰۰ برگردانده میشود.
پس عدد بزرگی که گاهی در صفحه تأیید کیف پول بهعنوان «حداکثر» میبینید، لزوماً همان چیزی نیست که از حسابتان کم میشود. ولی عکسش خطرناک است: اگر سقف گس را از نیاز واقعی کمتر بگذارید و تراکنش وسط اجرای قرارداد گس کم بیاورد، تغییرات برگردانده میشود و گس مصرفشده از دست میرود.
یک ارسال، دو کارمزد: مثال خود ethereum.org
ethereum.org در دو صفحه مختلف برای همان ارسال ساده ETH (۲۱٬۰۰۰ گس) دو مثال آورده که فاصله شلوغی و خلوتی را خوب نشان میدهد:
حالت | کارمزد پایه + انعام | محاسبه | کارمزد |
|---|---|---|---|
۱۰ + ۲ = ۱۲ گوئی | ۲۱٬۰۰۰ × ۱۲ | ۰٫۰۰۰۲۵۲ ETH | |
۱۹۰ + ۱۰ = ۲۰۰ گوئی | ۲۱٬۰۰۰ × ۲۰۰ | ۰٫۰۰۴۲ ETH |
اینها مثالهای آموزشیاند، نه قیمت امروز. نکتهشان این است که مقدار گس ثابت مانده و فقط قیمت گس عوض شده، ولی کارمزد حدود ۱۷ برابر شده است.
چرا انتقال توکن، سواپ و مینت NFT گرانتر از ارسال ETH است؟
ارسال ETH فقط موجودی دو حساب را تغییر میدهد و به همین دلیل مقدارش ثابت و کم است. اما هر تراکنشی که با قرارداد هوشمند کار دارد باید کد آن قرارداد را هم اجرا کند و هر قدم این اجرا گس دارد.
انتقال توکن مثل تتر ERC20. تتر روی اتریوم خودش یک قرارداد هوشمند است. وقتی تتر میفرستید، در واقع تابع transfer این قرارداد را صدا میزنید تا موجودی شما کم و موجودی گیرنده زیاد شود. این موجودیها در حافظه دائمی قرارداد نوشته میشوند و هم اجرای کد و هم نوشتن در حافظه گس دارد. طبق ethereum.org تراکنشهایی که با قرارداد هوشمند کار دارند محاسبات بیشتری لازم دارند و گس بیشتری از ارسال ساده مصرف میکنند. مقدار دقیقش به قرارداد و وضعیت حسابها بستگی دارد و کیف پول پیش از ارسال برآوردش را نشان میدهد.
سواپ در صرافی غیرمتمرکز. در یک سواپ، قرارداد صرافی باید توکن شما را بگیرد، قیمت را حساب کند و توکن دیگری بفرستد؛ یعنی چند قرارداد در یک تراکنش کار میکنند. اولین بار که یک توکن را سواپ میکنید معمولاً یک تراکنش جدا هم لازم است: تأیید (approve) که به قرارداد صرافی اجازه برداشت توکن را میدهد. پس اولین سواپ ممکن است دو کارمزد داشته باشد.
مینت NFT. ساختن یک NFT جدید یعنی نوشتن یک رکورد مالکیت تازه در قرارداد. خود این کار گس دارد، ولی مشکل بزرگتر زمان عرضههای پرطرفدار است: هزاران نفر در همان چند دقیقه میخواهند وارد بلاک شوند و برای جلو افتادن انعام بالاتری میدهند.
چرا کارمزد ناگهان برای همه بالا میرود؟
ethereum.org دلیل اصلی کارمزدهای بالا را محبوبیت شبکه میداند. ظرفیت هر بلاک محدود است و وقتی تقاضا از آن بیشتر شود، دو اتفاق همزمان میافتد: بلاکها پر میشوند و کارمزد پایه بالا میرود، و کاربرانی که عجله دارند انعام بیشتری پیشنهاد میدهند.
چیزی که این تقاضا را ناگهان زیاد میکند معمولاً یکی از اینهاست: نوسان شدید بازار که همه را به جابهجایی و فروش وامیدارد، عرضه یک توکن یا NFT پرطرفدار، یا هجوم به یک برنامه دیفای. مهم این است که شلوغی را فقط کسانی که با آن برنامه کار دارند حس نمیکنند. کارمزد پایه برای همه تراکنشهای بلاک یکی است، پس کسی که فقط میخواهد تتر بفرستد هم همان قیمت بالا را میپردازد.
قیمت ETH هم عدد تومانی را تغییر میدهد
کارمزد اتریوم به ETH پرداخت میشود. برای همین حتی اگر شبکه همانقدر شلوغ باشد و تراکنش همانقدر گس مصرف کند، با گران شدن ETH کارمزد به تومان بیشتر میشود.
یک مثال با عددهای فرضی: فرض کنید کارمزد یک انتقال ۰٫۰۰۰۵ ETH باشد. اگر قیمت ETH ۲۰۰ میلیون تومان باشد، این کارمزد ۱۰۰ هزار تومان است. اگر ETH به ۳۰۰ میلیون تومان برسد، همان ۰٫۰۰۰۵ ETH میشود ۱۵۰ هزار تومان. شبکه هیچ تغییری نکرده، فقط قیمت ارزی که کارمزد با آن پرداخت میشود بالا رفته است.
وقتی میخواهید بفهمید چرا کارمزد امروز بیشتر است، اول ببینید کدام عوض شده: قیمت گس به گوئی، یا قیمت ETH به تومان.
چطور کارمزد کمتری برای اتریوم بدهیم؟
- قبل از ارسال قیمت گس را ببینید. ethereum.org برای دیدن قیمت لحظهای گس ابزارهایی مثل گسترکر Etherscan را معرفی میکند. اگر عدد بالاست و کارتان فوری نیست، صبر کنید. کارمزد پایه با خالیتر شدن بلاکها خودبهخود پایین میآید. ساعت یا روز ثابتی برای ارزان بودن کارمزد وجود ندارد که بشود رویش حساب کرد؛ عدد لحظهای را نگاه کنید.
- اگر مقصد لایه دوم را قبول میکند، از آن استفاده کنید. شبکههای لایه دوم مثل آربیتروم تراکنشها را بیرون از اتریوم اجرا میکنند و خلاصهشان را روی اتریوم ثبت میکنند. ethereum.org لایه دوم را راه اصلی کاهش کارمزد میداند و با ارتقای EIP-4844 هزینه ثبت داده این شبکهها روی اتریوم کمتر شده است. کارمزد آربیتروم بهطور کامل از اتریوم جدا نیست، چون بخشی از آن هزینه ثبت داده روی اتریوم است، ولی معمولاً پایینتر است. یادتان باشد کارمزد آربیتروم هم با ETH روی خود آربیتروم پرداخت میشود.
- برای تتر، شبکه دیگری را بررسی کنید. تتر فقط روی اتریوم نیست. اگر گیرنده شبکه دیگری را پشتیبانی میکند، شاید اصلاً لازم نباشد کارمزد اتریوم بدهید. مقایسه شبکههای انتقال تتر و فرق TRC20 و ERC20 را ببینید. شبکه را فقط وقتی عوض کنید که مقصد دقیقاً همان را قبول کند؛ وگرنه انتقال با شبکه اشتباه دردسر بزرگتری از کارمزد دارد.
- چند انتقال کوچک را یکی کنید. کارمزد به مبلغ بستگی ندارد. ده بار فرستادن مبلغ کم یعنی ده بار کارمزد.
- با سقف گس بازی نکنید. پایین آوردن سقف گس قیمت هر واحد را کم نمیکند؛ فقط احتمال شکست تراکنش را بالا میبرد و در آن صورت گس مصرفشده برنمیگردد. اگر میخواهید ارزانتر بدهید، انعام کمتر را انتخاب کنید و دیرتر تأیید بگیرید، به شرط اینکه کیف پولتان این گزینه را داشته باشد.
- اگر گیرنده هم در سواپولت است، انتقال داخلی بزنید. انتقال به مخاطبان سواپولت روی بلاکچین ثبت نمیشود و کارمزد شبکه ندارد.
در سواپولت، صفحه کارمزدها برداشت تتر را هم روی شبکه اتریوم (ERC20) و هم روی آربیتروم فهرست کرده است. سواپولت اعلام کرده کارمزد برداشت همان هزینه شبکه است و سودی رویش اضافه نمیکند، و مبلغ نهایی پیش از تأیید برداشت نمایش داده میشود. پیش از انتخاب شبکه، عدد هر دو را در همان صفحه یا فرم برداشت مقایسه کنید.
پرسشهای رایج
گوئی (gwei) چیست؟
واحد کوچک ETH است: هر گوئی یک میلیاردم ETH. قیمت هر واحد گس را معمولاً به گوئی مینویسند تا عددها قابل خواندن باشند. کارمزد کل را از ضرب گس مصرفی در همین قیمت به دست میآورید.
چرا کیف پولم برای انتقال تتر ERC20 کارمزد بیشتری از ارسال ETH نشان میدهد؟
چون انتقال تتر یعنی اجرای قرارداد هوشمند تتر و نوشتن موجودیهای جدید در آن، و این کار گس بیشتری از ارسال ساده ETH (۲۱٬۰۰۰ گس) مصرف میکند. قیمت هر واحد گس برای هر دو یکی است؛ فرق در مقدار گس است.
اگر انعام را صفر بگذارم تراکنش انجام میشود؟
از نظر فنی تراکنشی که فقط کارمزد پایه را بدهد معتبر است، ولی ethereum.org میگوید احتمال انتخابش کم است، چون انگیزهای برای اعتبارسنج ندارد. بهتر است پیشنهاد کیف پول را بپذیرید یا گزینه کندتر را انتخاب کنید.
برای انتقال تتر ERC20 از کیف پول شخصی، ETH لازم دارم؟
بله. کارمزد اتریوم به ETH پرداخت میشود، پس برای فرستادن تتر از کیف پول شخصی باید کمی ETH در همان آدرس داشته باشید؛ مگر اینکه کیف پول شما روش دیگری برای پرداخت کارمزد پشتیبانی کند. برای برداشت از سواپولت اینطور نیست و کارمزد از خود ارز برداشتی کم میشود.
آیا کارمزد اتریوم همیشه گران است؟
نه. کارمزد پایه با پر و خالی شدن بلاکها بالا و پایین میرود و وقتی شبکه آرام است، ارسال روی اتریوم هم میتواند ارزان باشد. به همین دلیل عدد دیروز یا عددی که در یک گروه دیدهاید معیار خوبی نیست؛ عدد لحظهای صفحه تأیید را ببینید.