اگر در شبکه اتریوم تراکنشی مانند انتقال اتر (ETH) یا توکنهای ERC-20، خرید NFT و مینت آثار هنری انجام دادهاید با گس فی (Gas Fee) آشنا هستید. اما احتمالا بالا بودن گس بهخصوص هنگام ازدحام شبکه مهمترین دغدغه شما بوده است. خوشبختانه توسعهدهندگان اتریوم از همان ابتدا برای حل این چالش تلاش کردهاند و حالا بعد از بهروز رسانیهای متعدد، کارمزد پایه (Base Fee) و کارمزد اولویت (Priority Fee) به پایینترین سطح در طول این سالها رسیدهاند. اگر علاقهمند هستید که در مورد روند اصلاح مدل هزینه تراکنشها در اتریوم و مدل پیشنهادی گس چند بعدی ویتالیک بوترین برای بهحداقل رساندن کارمزد تراکنشها در شبکه اتریوم بیشتر بدانید، با میهن بلاکچین همراه باشید.
گس اتریوم چیست؟
پیدایش گس اتریوم (Ethereum Gas) برمیگردد به وایتپیپری که ویتالیک بوترین در سال ۲۰۱۴ نوشت. ویتالیک از گس به عنوان یک مکانیsم محافظتی در برابر حملات رو به جلو (Front Running) و حملات انکار سرویس (DoS) یاد میکند. در این فعالیتهای خرابکارانه که سیلی از ترافیک تراکنشها به سمت شبکه مقصد ارسال میشود، گس به عنوان یک مدل هزینه تراکنش مرتبط با محاسبات (Computation) و مصرف داده (Data) عمل میکند تا از این حملات جلوگیری شود.
گس هزینهای است که بابت پردازش تراکنشها روی بلاکچین اتریوم از کاربر گرفته میشود. در واقع قراردادهای هوشمند اتریوم برای اجرای کدها به قدرت پردازش نیاز دارند که هزینه آن توسط کاربر تامین میشود. واحد گس، گیگا وی (Giga Wie) است که به آن جیوی (gwei) هم گفته میشود. Wei کوچکترین واحد شمارش اتر (ETH) و معادل ۱۰ به توان ۱۸- اتر ( ۰.۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۱) و جیوی برابر ۱۰ به توان ۹- اتر است.
در کیف پولهای مختلف، قیمت گس (Gas Price) معمولا به صورت خودکار و پیشفرض تعیین میشود؛ اما کاربر میتواند با توجه به ازدحام شبکه، گس پرایس را تغییر دهد تا تراکنش او زودتر انجام شود. برای محاسبه کارمزد یک تراکنش، ابتدا مشخص میشود که برای انجام این تراکنش (شامل محاسبات و داده) چند واحد گس یا توان پردازشی باید مصرف شود. سپس این مقدار با کارمزد اولویت جمع و در قیمت گس ضرب میشود:
- گس لیمیت (Gas Limit): یک مقدار ثابت و از پیشتعیینشده برای هر کد دستوری در اتریوم
- گس پرایس (Gas Price): هزینهای که کاربر به ازای هر واحد گس با توجه به ازدحام شبکه تعیین میکند.
- کارمزد پایه (Base Fee): نسبت به تقاضا و آخرین بلاک تایید شده، توسط خود شبکه محاسبه میشود.
- کارمزد اولویت (Priority Fee): یک مبلغ اختیاری که برای تشویق ولیدیتور برای اولویت دادن به تراکنش توسط کاربر تعیین میشود.
هزینه گس= گس لیمیت * (کارمزد پایه + کارمزد اولویت)
همانطور که یک ماشین بدون بنزین کار نمیکند، انجام تراکنش در اتریوم هم بدون گس امکانپذیر نیست. به همین دلیل از گس به عنوان «سوخت ماشین مجازی اتریوم» یاد میکنند. البته تشبیه گس به سوخت اتریوم، دو نکته منفی دارد؛ در وهله اول ممکن است کاربر با شنیدن مکانیسم سوزاندن گس، درک نادرستی از نحوه عملکرد شبکه اتریوم پیدا کند. مورد دوم این است که اتریوم تنها قبل از ارتقای مرج (Merge) انرژی بسیار بالایی مصرف میکرد؛ اما بعد از مهاجرت به اثبات سهام، مصرف انرژی بهمقدار قابلتوجهی کاهشیافته و با محیط زیست سازگار است.
نگاه سادهانگارانه به «گس» باعث نادیدهگرفتن ویژگیهای مهم آن میشود. به یاد داشته باشیم که طی روند تکامل اتریوم با بهروزرسانیهای مختلف، بازار گس یکی از مهمترین مباحث بوده است. این بازار گس است که تعیین میکند قیمت تراکنشها در هر زمان خاص، چطور توسط شبکه تعیین شوند. بهعلاوه، گس نقش مهمی در محافظت از شبکه در برابر حملات انکار سرویس و فرار رو به جلو دارد. به این معنا که گس مانع انجام محاسبات غیرضروری یا حملات عمدی برای اشغال منابع شبکه میشود.
همچنین، گس بهنوعی بر اساس تقاضای شبکه تعیین میشود. اگر تعداد کاربران و تراکنشها افزایش پیدا کند، تقاضا برای گس و در نتیجه قیمت آن هم بیشتر میشود. بنابراین، مشارکتکنندگان در اجماع و ولیدیتورها پاداش بیشتری میگیرند. نکته آخر این است که گس باعث تعادل در استفاده از شبکه میشود. در حقیقت با بالا رفتن ازدحام شبکه، هزینه گس هم افزایش پیدا میکند؛ اما در این میان کاربرانی هستند که نمیتوانند هزینه بالایی بپردازند. به این ترتیب، استفاده از شبکه کاهش مییابد تا تعادل برقرار شود.
عوامل موثر بر قیمت گس اتریوم
عوامل مختلفی مانند اندازه بلاک، تعداد تراکنشها و نوع دستورات مورد نیاز برای اجرای تراکنشها روی نوسان قیمت گس اثر میگذارند:
- اندازه بلاک: هر بلاک فقط مقدار مشخصی از محاسبات و داده را در خود جای میدهد و محدودیت بلاک نشان میدهد که در هر واحد زمانی چه میزان داده میتواند به شبکه اضافه شود.
- زمان تولید بلاک: در بلاکچین اتریوم در زمان نگارش این متن، بلاکها هر ۱۲ ثانیه به شبکه اضافه میشوند. این یعنی هر بلاک باید در این مدت پر شود و تراکنشهای موجود در آن تایید شوند.
- فضای بلاک: فضای بلاک هم با دستورات خاص مربوط به تراکنشهای کاربر پر میشود. این دستورات که به آپکد (OPCODES) معروف هستند شامل فراخوانی داده از حافظه، بهروز رسانی حافظه یا سایر عملیات میشوند. بر حسب اینکه این دستورت چطور کنار هم چیده میشوند، مقدار گس تعیین میشود. به عبارت دیگر، هر دستور خاص مقدار مشخصی از گس مصرف میکند و کل هزینه گس یک تراکنش بر اساس مجموع هزینههای دستورات مختلف محاسبه میشود.
با این اوصاف بهینهسازی هزینه گس به خودی خود به یک هنر تبدیل شده است. توسعهدهندگان باید تراکنشها و قراردادهای هوشمند خود را به گونهای طراحی کنند که کمترین مقدار ممکن گس را مصرف کنند.
تاریخچه گس و مدل هزینه تراکنشها در اتریوم
شبکه اتریوم در طول این سالها، تغییرات بزرگ و مهمی را بهویژه در خصوص بازار گس و هزینه تراکنشها اعمال کرده است که جزییات این تغییرات به شرح زیر است:
- تغییر هزینه آپکدها و اندازه بلاک: برخی تغییرات مانند تنظیم هزینه دستورات مختلف یا تغییر اندازه بلاکها، مجاز است.
- بازار گس پویا (Gas-Market Dynamic): مدل اولیهای که برای گس اتریوم طراحی شده بود بر اساس تقاضای بازار و شبیه به یک «غرب وحشی» بود. در این مدل، قیمتگذاری بهصورت غیرسیستماتیک انجام میشد و تنها بر اساس عرضه و تقاضای جمعی کاربران و ماینرها تثبیت میشد. اما اتریوم بازار گس را به مدل پویا یا پیشبینیپذیر ارتقا داد.
- ارتقای لندن و فرمول ریاضی جدید: پس از ارتقای لندن (London” upgrade) در تابستان ۲۰۲۱، شبکه اتریوم بهصورت سیستماتیک در هر بلاک، گس پرایس را بر مبنای تقاضا و از طریق یک فرمول ریاضی محاسبه میکند.
این تغییرات، بازار گس اتریوم را از یک مدل غیرسیستماتیک و پرنوسان به یک مدل پیشبینیپذیر و ریاضیاتی تبدیل کرد. در مدل جدید، کارمزد پایه به طور خودکار با توجه به تقاضای شبکه تنظیم میشود که به کاهش نوسانات شدید قیمت گس و بهبود تجربه کاربری کمک میکند.
ارتقای لندن که در سال ۲۰۲۱ انجام شد، نتیجه بسیار موفقی داشت. پیادهسازی مکانیسم قیمتگذاری گس با عنوان EIP-1559 در این ارتقا موجب شد تا بلاکها بهصورت منظم تولید شوند و کاربران از پیشبینیپذیری قیمتهای گس رضایت داشته باشند. با این حال، توسعهدهندگان اتریوم به صورت توقفناپذیر به راه خود ادامه دادند و آپگرید لندن زمینه را برای ارتقای دنکن (Dencun upgrade) آماده کرد.
مهمترین تغییری که در بهروزرسانی دنکن اعمال شد، معرفی یک مدل هزینه تراکنش جدید بر اساس پروپزال EIP-4844 برای تراکنشهای بلاب (Blob) بود. بلابها شکلی از حافظه هستند که فضای زیاد و هزینه اندکی دارند. در حقیقت بلابها دسترسی به دادههای اتریوم را بدون تاثیر بر زیرساخت آن بهبود میدهند و باعث کاهش کارمزد تراکنشها در راهکارهای لایه ۲ میشوند. بعد از این ارتقا، دو نوع کارمزد در شبکه اتریوم ایجاد شد. کارمزد اصلی همانی است که از ابتدا وجود داشته و بر حسب پروپزال EIP-1559 محاسبه میشود و دیگری کارمزدی که بر اساس ذخیرهسازی داده روی لایه اجماع یا همان بلابها محاسبه میشود.
تاثیر ارتقا دنکن، بلافاصله روی شبکه احساس شد، ابتدا هزینه تراکنشها در لایه ۲ها به شدت کاهش یافت و سپس گس پرایس در میننت اتریوم کاهش پیدا کرد. بهطور مثال، بررسی قیمت گس در ماه گذشته نشان میدهد در اکثر روزها حتی در روزهای کاری هفته که شبکه ازدحام بیشتری داشته، کارمزد پایه تک رقمی بوده است.
بهروز رسانیهای اتریوم در اکثر موارد با تغییرات بزرگی همراه بودهاند. یک نکته مهم این است که تمام ارتقاها از جمله تغییر مدل هزینه تراکنش بدون ایجاد وقفه در تولید بلاکها انجام شدهاند. حالا باید منتظر باشیم و ببینیم ویتالیک بوترین و تیم توسعهدهنده چه ابتکارات دیگری را برای مدل هزینه تراکنشهای اتریوم در سر میپرورانند.
آینده گس اتریوم
همانطور که میدانید مینت هنرهای دیجیتال یا ساخت NFTها روی اتریوم به هزینه گس بالایی نیاز دارد. بهویژه زمانیکه یک پروژه بر سر زبانها میافتد و همه به سمت آن هجوم میآورند. در این شرایط پویایی قیمتگذاری فوران پیدا میکند و باعث افزایش کارمزد پایه میشود. به طور مثال، در سپتامبر ۲۰۲۱ با ترند شدن یک پروژه NFT به نام لوت (Loot) شاهد این اتفاق بودیم. حالا مسئله این است که در چنین شرایطی چطور میتوان پویایی بازار گس را کنترل کرد؟
یکی از راهکارها این است که به جای قیمتگذاری ثابت از مکانیسم قیمتگذاری تقسیمپذیر (Fractionate) یا روش چند متغیره استفاده کنیم. یعنی بر اساس نوع تراکنش یا پروژه، قیمتهای متفاوتی تعیین شود تا پروژههایی که تقاضای بالاتری دارند، کارمزد بالاتری بپردازند. یک مرکز خرید را تصور کنید که همه فروشگاهها به یک اندازه جذاب نیستند و از برخی مغازهها به دلیل محبوبیت بیشتر، استقبال بیشتری میشود. مکانیسم قیمتگذاری گس اتریوم هم میتواند در یک بازه زمانی خاص بر اساس محبوبیت قرارداد باشد. در این صورت کسی که بخواهد وارد فروشگاه اپل یا قرارداد NFT لوپ شود، باید هزینه بیشتری پرداخت کند.
اما این روش کارآیی ندارد؛ زیرا این سازندگان بلاک هستند که انتخاب میکنند چه تراکنشهایی را در بلاک قرار دهند. بنابراین با افزایش قیمت برای برخی قراردادها، سازندگان بلاکها قراردادهایی را که جذابیت کمتری دارند، نادیده میگیرند. در نهایت یک پویایی ناپایدار ایجاد میشود و همه تراکنشها قربانی قراردادی میشوند که قیمتگذاری بالاتری دارد.
یک راهکار دیگر این است که به جای قیمتگذاری بر مبنای کاربرد محلی مثل قراردادها، قیمتگذاری بر اساس منابع شبکه انجام شود. در این حالت زمانی که منبع شبکه محدود شود، بهطور یکنواخت روی همه اثر میگذارد. در واقع، این همان راهکاری است که اتریوم در ارتقای دنکن پیادهسازی کرد. بعد از ارتقا دنکن یک نوع دسترسی به داده به عنوان یک بازار جداگانه وجود دارد که از محاسبات و ذخیرهسازی دادههای اصلی در شبکه مستقل است. بهعبارت دیگر، هزینه تراکنشها بهصورت دوبعدی محاسبه میشود.
اما قیمت گذاری چندبعدی هم چالشهایی دارد که ویتالیک بوترین در پستی به آنها اشاره کرده است. او اینطور استدلال میکند که هزینه گس تراکنشها بهصورت یک محاسبه ترکیبی از منابع محاسباتی (Compute) و داده (Data) انجام میشود. به همین دلیل اگر مقدار کافی از داده و مقدار کافی از محاسبات وجود داشته باشد، هزینه تراکنش از حد مجاز فراتر میرود. حتی اگر هر یک از محاسبات و دادهها بهصورت جداگانه در آستانه مشخص خود باشند، بازهم این اتفاق میافتد. همین مسئله باعث میشود که برخی از بلاکهای تراکنش نامعتبر شوند.
بوترین در تصویر زیر نشان داه است که چطور ترکیب محاسبات و دادهها به صورت یکجا باعث میشود که تراکنشها هزینه بیشتری داشته باشند و در نتیجه برخی بلوکها نامعتبر شوند.
با این حال قیمت گذاری بر اساس جداسازی ابعاد استفاده از گس مزایایی هم دارد. اولین مورد این است که هزینه تراکنش با منبع شبکه موردنظر کاربر متناسب میشود. مزیت دیگری که ویتالیک بوترین به آن اشاره میکند، رشد وضعیت شبکه اتریوم است. همانطور که بازار بلاب برای بلابها تنظیم شده است و از گس برای محاسبات و داده استفاده میشود، قیمتگذاری انباشت وضعیت مانند اضافهشدن یک قرارداد جدید هم میتواند با روش ایدهآل خاص خودش انجام شود. به عبارت دیگر هر نوع استفاده از منابع شبکه باید سیستم قیمتگذاری خاص خودش را داشته باشد. ویتالیک بوترین در مورد قیمتگذاری گس بر اساس استفاده چندبعدی اینطور میگوید:
قیمتگذاری چندبعدی گس به ما اجازه میدهد که پاسخ دو سوال مهم را بیابیم:
استفاده متوسط ایدهآل برای هر منبع چقدر است؟
حداکثر استفاده ایمن در هر بلاک برای هر منبع چقدر است؟
در سیستم فعلی، قیمتهای گس بر اساس حداکثر استفاده در هر بلاک تعیین میشود و سپس استفاده متوسط از این حداکثر تبعیت میکند. اما با سیستم گس چندبعدی، ما میتوانیم پارامترهای مختلف را تنظیم کنیم و هر کدام را به صورت جداگانه بر اساس آنچه که برای شبکه ایمن است، تعیین کنیم.
او در این پست با ارائه یک تصویر در مورد نحوه عملکرد قیمتگذاری چندبعدی گس، توضیحات کاملتری را ارائه میدهد. همانطور که در تصویر بالا میبینید، نمودار از دو خط افقی (محاسبات) و عمودی (داده) تشکیل شده است. خط آبی نشاندهنده حداکثر میزان دادهای است که شبکه میتواند در یک بلاک قرار دهد. خط بنفش هم حداکثر محاسباتی است که در بلاک جای میگیرد. این مرزها نشان میدهند که میتوانیم با بررسی حداکثر منابع موردنیاز به حفظ مجموع منابع در این محدوده کمک کنیم. رویکردهایی شبیه به این، یک راهکار خلاقانه برای اجرای گس چندبعدی در طرحهایی مانند EIP-1559 هستند.
ویتالیک این رویکرد را با یک پروپوزال جدید به نام EIP-7623 مقایسه میکند. این پروپوزال پیشنهاد میکند که هزینه داده تراکنش میتواند بر اساس تقسیم نیازهای محاسباتی و دادهای تراکنش تعیین شود. به عبارت دیگر، به جای اینکه همه منابع در یک محاسبه ترکیبی در نظر گرفته شوند، هر منبع بهطور جداگانه بررسی و قیمتگذاری میشود.
اما برویم سراغ اینکه استفاده از این رویکرد چه مزیتی برای کاربران، توسعهدهندگان و هولدرهای توکنها دارد؟ ویتالیک بوترین معتقد اگرچه این تغییرات از لحاظ فنی منجر به پیچیدگیهای بیشتری میشوند، اما منجر به بهبود مقیاسپذیری و ارتقای عملکرد شبکه میشود که به نفع کاربر و توسعهدهنده است. حالا سوال این است که آیا باید این پیچیدگیها را قبول کنیم؟ اگر قرار به پذیرفتن آنها باشد، کدام پیشنهاد بهترین گزینه برای بهبود اقتصادی و فنی شبکه است؟
در روش گس چندبعدی، افزایش مقیاسپذیری از طریق افزایش توان عملیاتی هر منبع جداشده به دست میآید. در واقع با جدا کردن منابع محدود شده قبلی، میتوان منابع شبکه را متناسب با نیازهای پروتکل و کاربران آزاد کرد. اگرچه چنین روشهایی با چالشهای متعددی همراه هستند و توسعهدهندگان برنامهها و کیف پولها را ملزم به تطابق با شرایط جدید میکنند، اما بهطورکلی منجر به بهبود کلی شبکه و افزایش مقیاسپذیری میشوند.
ایدههایی که در مورد گس چندبعدی مطرح میشوند با مفاهیم اصلی اتریوم مانند مدل هزینه تراکنش سروکار دارند و دقیقا باید همان پروسه طراحی یک پروتکل ارز دیجیتال را طی کنند؛ یعنی توسعهدهنده باید به این فکر کند که ویژگیها و ابعاد اصلی چیست؟ چه محدویتهایی باید اعمال شوند؟ هزینههای محاسباتی، متمرکزسازی، بارگذاری داده و سایر موارد چقدر است؟
اگرچه پاسخ به این سوالات و خلق مدلهای جدید یک ایده مبتکرانه است؛ اما از برخی جهات مستلزم این است که دوباره یک دفتر کل غیرمتمرکز با حداقل اعتماد طراحی شود.
جمعبندی
گس در شبکه اتریوم نقش سوخت این شبکه را دارد و بدون آن پردازش تراکنشها انجام نمیشود. در تمام بهروزرسانیهایی که در طول این سالها انجام شده است، گس و مدل هزینه تراکنشها در اتریوم یکی از موضوعات اصلی بوده است. ارتقای لندن اتفاق مهمی را در این خصوص رقم زد و باعث شد بازار گس اتریوم از یک مدل غیرسیستماتیک و پرنوسان به یک مدل پیشبینیپذیر و ریاضیاتی تبدیل شود. جدیدترین ایده ویتالیک هم قیمتگذاری بر اساس جداسازی ابعاد استفاده از گس است تا به جای اینکه همه منابع در یک محاسبه ترکیبی در نظر گرفته شوند، هر منبع بهطور جداگانه بررسی و قیمتگذاری شود.
البته این پیشنهاد با انتقادهایی هم مواجه شده است. بهطور مثال، پیتر زیلاگی (Péter Szilágyi) سرپرست تیم توسعه معتقد است که افزایش درجه آزادی و پیچیدگی محدودیت منابع در ممپول، خطر تمرکز و سانسور را افزایش میدهد و زمینه را برای سوء استفاده افراد مخرب فراهم میکند. به هر حال، تاریخچه گس و آینده مدل هزینه تراکنش اتریوم