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


کارمزد در شبکه اتریوم و تعیین مقدار Gas

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

Gas و قرارداد هوشمند

Gas به عنوان یک “واحد اندازه‌گیری در زمان استفاده از اتریوم” تعریف می‌شود. این تعریفی جامع از آن می‌باشد. اما به زبان ساده‌تر، Gas، هزینه یا کارمزد استفاده از شبکه اتریوم است.

اما در واقع Gas فراتر از هزینه پردازش تراکنش‌ها در شبکه اتریوم می‌باشد. اتریوم قادر به راه‌اندازی و اجرای انواع برنامه‌ها و اپلیکیشن‌هاست که این ویژگی پایه و اساس “شبکه غیرمتمرکز” را تشکیل می‌دهد. همین ویژگی شبکه اتریوم است که باعث شده از آن به عنوان “کامپیوتر جهانی” یاد شود.

به همین ترتیب و از لحاظ فنی، Gas را می‌توان به عنوان هزینه معاملات و تراکنش‌ها در شبکه اتریوم در نظر گرفت.

یکی از توسعه‌دهندگان اتریوم – گاوین وود- در Yellow Paper اتریوم، دستورالعمل دقیق مقدار پرداخت Gas در ازای فعالیت‌های مختلف در شبکه اتریوم را تشریح کرده‌است.

مکانیزم کارمزد و تعیین مقدار gas در اتریوم چگونه است؟
Yellow Paper اتریوم و تعیین کارمزد gas برای هر تراکنش

هر دستور (اقدام) انجام شده در شبکه اتریوم ، قیمت و هزینه ثابت خود را دارد. برای فهمیدن هزینه یک معامله یا قرارداد هوشمند، ارزش هر “دستور” انجام شده را محاسبه می‌کنیم. مجموع این هزینه‌ها، هزینه کل آن قرارداد هوشمند یا آن معامله خواهد بود.

اما این موضوع زمانی مسئله ساز می‌شود که بخواهیم هزینه تراکنش‌ها را پرداخت کنیم.

“سوخت برای شبکه اتریوم” بهترین توصیفی است که از Gas می‌توان داشت. اما سوخت (بنزین، گازوئیل و…) به خودی خود ارز نیست. بلکه لازم است آن را به دلار یا یورو یا ریال خریداری کرد. در واقع ارزش آنها به دلار و ریال بیان می‌شود.

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

کارکرد Gas در شبکه اتریوم و پرداحت کارمزد تراکنش‌ها

برای هر دستورالعملی که بخواهد بر روی شبکه اتریوم اجرا شود، فرستنده این تراکنش بایستی پیش از ارائه آن به شبکه، “Gas limit”  آن را تعیین کند.

Gas limit بیشترین مبلغی است که برای عملیاتی شدن و اجرا شدن برنامه بر روی شبکه اتریوم باید پرداخت شود. این مبلغ توسط فرستنده دستورالعمل پرداخت خواهد شد و مقدار آن به اختيار او خواهد بود.

پردازنده‌های این معاملات، اپراتورهای سرور، که به عنوان “ماینرها” شناخته می‌شوند، در زمان دریافت یک تراکنش چند راه بيشتر ندارند:

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

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

هرچند این مکانیزم به دلیل نحوه انجام معاملات نوآورانه بوده‌است اما در عمل مستعد ایجاد مشکلاتی نیز می‌باشد.

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

تراکنشی را در نظر بگیرید که gas limit آن 10 هزار gas می‌باشد. در مورد این تراکنش، ماینرها تمایل کمتری به پردازش آن دارند. به همین دلیل تراکنش عموما توسط ماینرها بازگردانده خواهد شد. زیرا از نظر اقتصادی برای آنها به‌صرفه نخواهد بود.

برای مثال، برای ماینرها، بررسی دو تراکنش جدا با کارمزد 21000 gas اقتصادی‌تر است از انجام یک تراکنش با کارمزد 42000 gas. وجود این ویژگی در شبکه، مسئله‌ساز خواهد شد.

مسئله کارمزد gas در شبکه اتریوم

برای آنکه اتریوم بتواند به یک کامپیوتر جهانی تبدیل شود، نیازاست تا مقدار کارمزد شبکه آن بسیار پایین باقی بماند. به همین دلیل، سازوکار پرداخت این تراکنش‌ها نیز باید به نحوی باشد که مقادیر بسیار پایین کارمزد با واحد پولی معینی بیان شود. برای بیان کارمزد تراکنش‌ها، اتر در نسبت‌های کوچکتر قرض می‌شود. واحد شمارشی  که زیاد مورد استفاده قرار می‌گیرد، gwei می‌باشد. که به نانو اتر نیز شناخته می‌شود. هر یک نانو اتر معادل(10 به توان -9) 0.000000001 اتر می‌باشد.

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

مکانیزم کارمزد و تعیین مقدار gas در اتریوم چگونه است؟
نام‌گذاری واحدهای کوچکتر در محاسبه کارمزد gas در شبکه اتریوم

نحوه محاسبه کارمزد تراکنش اتریوم (gas)

برای محاسبه مقدار کارمزد مورد نیاز برای اجرای هر تراکنش در شبکه اتریوم راه‌های متفاوتی وجود دارد. شبکه اتریوم به گونه‌ای طراحی شده‌است که می‌توان هر مقدار کارمزدی را انتخاب کرد. بنابراین، بر روی کاغذ، فرستنده می‌تواند مقدار دلخواه کارمزد تراکنش خود را انتخاب کند. این مقدار اهمیتی ندارد که چقدر باشد ( حتی می‌تواند 1gwei باشد).

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

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

در زمان نگارش این مقاله، برای اینکه یک تراکنش در زمانی کمتر از 5 دقیقه تایید شود، هزینه کارمزد آن 23 gwei  یا 0.091 دلار می‌باشد. برای اینکه همین تراکنش در زمانی کمتر از 2 دقیقه انجام شود، باید 34 gwei یا حدود 0.135 دلار پرداخت شود.

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

مکانیزم کارمزد و تعیین مقدار gas در اتریوم چگونه است؟
مثالی از محاسبه gas برای محاسبه کارمزد تراکنش در شبکه اتریوم

برای مثال انتقال یک توکن ساده بر روی شبکه بلاکچین اتریوم نیازمند 21000 gas می‌باشد. همانطور که در بالا اشاره شد، قیمت gas ثابت نمی‌باشد. فرض کنید قیمت هر gas برابر 6 gwei باشد. محاسبه کارمزد این تراکنش را به صورت زیر انجام می‌دهیم.

مکانیزم کارمزد و تعیین مقدار gas در اتریوم چگونه است؟

با فرض اینکه قیمت هر واحد اتریوم، 200 دلار باشد، در نهایت این کاربر برای انجام این دستور و اجرایی شدن آن در شبکه بایستی مقدار 0.025 دلار پرداخت کند.

ایرادات مکانیزم حراج در شبکه اتریوم

پیش از این اشاره کردیم که قیمت gas مقدار ثابتی نیست. اما قیمت gas کجا و با چه مکانیزمی تعیین می‌شود؟ شبکه اتریوم، اولین سیستم “حراج قیمت” را ارائه کرده‌است. از طریق این سازوکار، قیمت gas تعیین می‌شود. در این سیستم، هر فرستنده و ارسال‌کننده دستور، قیمتی را پیشنهاد می‌دهد که به gas limit شناخته می‌شود. در واقع این gas limit مقداری است که فرستنده مایل است پرداخت کند. ماینرها از میان تراکنش‌های ارسال شده و با توجه به مقدار gas اختصاص یافته به آن، تراکنش‌های مورد علاقه خود را انتخاب کرده و پردازش بر روی آن را آغاز کرده و در انتها وارد زنجیره بلوکی می‌کنند. بر روی کاغذ، این سیستم به فرستنده‌ها این اجازه را می‌دهد تا براساس اولویت‌بندی خود برای برخی از تراکنش‌های خود کارمزد بالاتری تخصیص دهند. اما در عمل این مکانیزم دارای ایراداتی‌است.

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

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

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

تمامی این مشکلات و ایرادهایی که از شبکه اتریوم ذکر شد، مربوط به شبکه فعلی اتریوم می‌شود. بسیاری از این مشکلات توسط توسعه‌دهندگان این ارز دیجیتال شناسایی شده و در اتریوم 2 راه‌حل‌هایی برای رفع آن در نظر گرفته شده‌است.