پایان کار GasToken، چگونه یک ایده‌ی نوآورانه سرسام‌آور شد و اتریوم را به حذف آن واداشت؟

GasToken یک توکن ERC20 است که در ابتدا با هدف کمک به کاهش هزینه‌های گس در اتریوم عرضه شد. این توکن از ایده‌ی بازپرداخت گس استفاده‌ی نوآورانه‌ای کرد تا به کاربرانِ متقاضی، گس برساند. چیزی که هدفِ ایده‌ی بازپرداخت گس نبود ولی به کاربران اتریوم کمک کرد تا هزینه‌های گس خود را کاهش دهند.  در این مقاله به نقش GasToken در کاهش هزنیه ها پرداختیم.

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

مفهوم Gas

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


مفهوم بازپرداخت گس (Gas Refund)

پیش از هاردفورک لندن، دو عمل در EVM موجود بودند که مصرف گس آن‌ها منفی بود (اصطلاحا گسِ منفی مصرف می‌کردند). آن دو عمل عبارت بودند از: 1) غیرفعال‌سازی قرارداد هوشمند (به اندازه‌ی -24000 گس) 2) پاک‌سازی ذخیره‌گاه (به اندازه‌ی -15000 گس). به طور کلی، هرگاه EVM تراکنشی را پردازش کند، ابتدا مقداری گس را، به اندازه‌ای که در آن تراکنش تعیین شده باشد، برای آن پردازش در نظر می‌گیرد. سپس، با گذر از هر گامِ پردازش، مقداری از گسِ تعیین شده کاسته می‌شود. اما در گذشته، با پردازش هر کدام از عمل‌های دوگانه‌ی مذکور، به مقدار گسِ تعیین شده افزوده می‌شد. 


در حالت معمول، اگر مقدار مصرف گس از مقدار تعیین شده در تراکنش بگذرد، فرستنده‌ی تراکنش با خطای Out of Gas مواجه خواهد شد. در نتیجه، اگر تراکنشی را می‌فرستیم که قصد داریم از بازپرداخت گس آن بهره‌برداری کنیم، نباید با این خطا مواجه شویم.
پیش از هاردفورک لندن، مقدار بازپرداخت گس حداکثر نصف گس مصرف شده در اجرای یک تراکنش بود. برای مثال، اگر تراکنشی داشتیم که شامل غیرفعال‌سازی 2 قرارداد هوشمند بود و ماینر پیش از رسیدن به دستورِ غیرفعال‌ساز، 50000 گس مصرف می‌کرد، به جای بازپرداختِ 48000 گس به فرستنده‌ی تراکنش، در ازای اجرای این دستور، تنها 25000 گس به او بازپرداخت می‌شد. در این مثال، اگر نصفِ گسی که ماینر تا رسیدن به آن دستور مصرف می‌کرد، بیش از 48000 گس بود، تمام 48000 گس به فرستنده بازپرداخت می‌شد.

هدف بازپرداخت گس

هدف از ایده‌ی بازپرداخت گس، در ازای دو عمل مذکور، این بود که به برنامه‌نویسان قرارداد هوشمند انگیزه بدهد تا کدِ خود را به گونه‌ای بنویسند که همواره state آن و شبکه در بهترین وضعیت قرار بگیرد.
اگر ایده‌ی بازپرداخت گس در اتریوم وجود نمی‌داشت با دو مشکل مواجه می‌شدیم:

1)    هیچ قراردادی که دارای دستور منتج به بازپرداخت گس بود، اجرا نمی‌شد.
2)    این امکان وجود داشت که هزینه‌ی چنین دستورهایی بر دوش ماینرها بیافتد.
وجود چنین ایده‌ای به ثبات و پایداری اتریوم کمک زیادی می‌کند.


فلسفه‌ی پیدایش GasToken

وجود ایده‌ی بازپرداخت گس موجب پیدایش توکنی به نام GasToken شد که هدف آن ارائه‌ی یک نوع کمک-هزینه برای پرداخت دستمزد گس به ماینرها بود. این توکن قصد داشت تا با استفاده از بازپرداخت گس، سنگینیِ هزینه‌های گس را برای کاربران اتریوم کاهش دهد. GasToken یک توکن با استاندارد ERC20 و نماد اختصاری GST است. 
نحوه‌ی کار با GasToken به این گونه بود که کاربر در زمان ارزانیِ گس، تعدادی توکن GasToken می‌ساخت (قرارداد هوشمند GasToken را در شبکه مستقر می‌کرد) و با این کار یک داده در ذخیره‌گاه این قرارداد ذخیره می‌شد. هرگاه قیمت گس افزایش می‌یافت، کاربر برای آزادسازی داده‌ی ذخیره شده در گام پیشین، اقدام می‌کرد. در این گام، کاربر با پس فرستادن توکن‌های خریداری شده به قرارداد هوشمندِ GasToken، موجب غیرفعال‌سازی آن می‌شد. در نتیجه، تراکنشِ شامل این دستور یک بازپرداخت دریافت می‌کرد. با دریافت این بازپرداخت اجرای این تراکنش ارزان‌تر از حالتی بود که از GasToken استفاده نمی‌شد. 
با این وجود، این توکن دارای معایبی بود که توسعه‌دهندگان هسته‌ی اتریوم نتوانستند از آن چشم‌پوشی کنند. این توکن به state شبکه آسیبی را وارد می‌ساخت که با آغاز به کار هاردفورک لندن، این آسیب برطرف شد. در ادامه درباره‌ی این آسیب و نحوه‌ی برطرف‌سازی آن صحبت خواهیم کرد.


هاردفورک لندن

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

پروپوزال 3529

همانطور که پیشتر اشاره شد، هدف از ارائه‌ی امکان بازپرداخت گس، تشویق برنامه‌نویسان برای بهتر نگه داشتن state قرارداد هوشمند بود. اما وجود این امکان، موجب پیدایش GasToken شد. هدف این توکن از استفاده از بازپرداخت گس، چیز دیگری بود. کاربران انگیزه داشتند تا برای کاهش هزینه‌های گس، از GasToken استفاده کنند. استفاده از این توکن موجب ثبت و ذخیره‌ی تراکنش‌های مربوط به آن در زنجیره‌ی بلوکی می‌شد. در نتیجه، زنجیره‌ی بلوکیِ اتریوم شامل شمار بالای تراکنش‌های استقرار قرارداد هوشمند GasToken و تعامل با آن می‌شد، که پس از مدتی غیرفعال و غیرقابل استفاده می‌شدند. پس، اتریوم در حال نگه‌داری حجم بالایی از داده‌هایی قرار داشت که بیهوده‌ بودند. این دستاورد با هدفِ ایده‌ی بازپرداخت گس مغایرت داشت. 


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

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

پایان کار GasToken و تبدیل شدن آن به شت کوین

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


جمع‌بندی

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

نویسنده : علیرضا کیاکجوری
تاریخ انتشار : 1400-11-14 21:37:07
446

0 نظر

user


تازه ترین ها