گس (Gas) اتریوم چیست ؟

0

Gas هزینه ی پردازش برای هر تراکنش انجام شده در شبکه ی اتریوم است،که برای اقدامات محاسباتی انجام یک تراکنش،اجرای یک قرارداد هوشمند و یا عرضه ی برنامه های غیر متمرکز در بستر بلاکچین اتریوم باید پرداخت شود. واحد سنجش  Gas با واحد کوچکتر اتریوم یعنی گیگا وی (Giga Wei) می باشد که در واقع پول خرد  Ethereum است که با نام Gwei نیز شناخته می شود و ارزش آن 0.000000001 اتریوم است درست مانند واحد ساتوشی در بیت کوین.

هر عملیاتی که در اتریوم انجام شود، چه یک معامله ی ساده باشد یا یک قرارداد هوشمند یا حتی یک ICO نیاز به مقداری gas دارد که بعنوان سوخت ماشین مجازی اتریوم (EVM)  استفاده می شود.اگر این مفهوم برایتان گنگ است عجله نکنید در ادامه به توضیح آن خواهیم پرداخت.

در این مقاله، ما می خواهیم درک کنیم که سوخت و یا gas اتریوم  چگونه کار می کند. اما قبل از این کار، چندین مفهوم وجود دارد که باید یاد بگیریم. بنابراین، بدون مقدمه چینی بیشتر، بیایید بررسی سوخت (gas) اتریوم را آغاز کنیم.


چرا Gas در بیت کوین لازم نیست ؟؟


بیت کوین به دلایل زیر ساخته شد :

  • چگونه یک ساختار می تواند وجود داشته باشد که دو شخص بتوانند تراکنش های خود را بدون واسطه انجام دهند .
  • چگونه ساختار غیر مترمرکزی می تواند وجود داشته باشد که وابسته به سازمان و یا نهاد خاصی نباشد.

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

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

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

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

هر معامله ای که از طریق قرداد های هوشمند انجام شود توسط شبکه پردازش و بروزرسانی می شود .در واقع gas سوخت لازم ماشین مجازی اتریوم برای پردازش قراردادهای هوشمند می باشد.


ماشین مجازی اتریوم  (Ethereum Virtual Machine(EVM چیست؟


ماشین مجازی اتریوم (EVM) یک ماشین مجازی قدرتمند است که درون تمامی عضو های شبکه ی اتریوم تعبیه شده است و مسؤل اجرای کدهای قرادادهای هوشمند می باشد. قراردادها بطور معمول به زبان های برنامه نویسی مانند solidity نوشته می شوند و سپس به EVM برای پردازش و اجرا وارد می شوند. هر نود یا عضو در شبکه اتریوم یک نمونه EVM را اجرا می کند که به آن ها این توانایی را می دهد که برای اجرای دستورالمل های یک قرارداد به توافق برسند. می توان گفت EVM یا همان ماشین مجازی اتریوم یک Turing کامل است ،Turing به سیستمی اطلاق می شود که یک ماشین و یا دستگاه فرضی است و قادر است هر نوع محاسبات پیچیده ای را انجام دهد.

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

این ها تنها چند نمونه ای بود که می توان با استفاده از قرارداد های هوشمند انجام داد. پتانسیل بسیار جذابی که با آن می توان تمامی قراردادهای قانونی، مالی و اجتماعی را انجام داد.


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


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

اکثر قرارداد های هوشمند که درEVM  اجرا می شوند با استفاده از زبان برنامه نویسی Solidity کدگذاری شده اند (اتریوم قصد دارد در آینده  از Solidity به viper حرکت کند)هر خط کد در Solidity به مقدار مشخصی gas احتیاج دارد.

 

بیایید برای درک بهتر نحوه کار gas در اتریوم ، به بررسی مثالی بپردازیم .فرض کنید در حال رفتن به یک سفر جاده ای هستید. قبل از سفر مراحل زیر را چک می کنید :

  • به پمپ بنزین مراجعه می کنید و مشخص می کنید که چه مقدار بنزین می خواهید در باک اتومبیل خود بزنید.
  • سپس سوخت را در ماشین خود می ریزید.
  • و در انتها به ازای مقدار سوخت استفاده شده به پمپ بنزین پول پرداخت می کنید.

حالا بیاید این مثال را با اتریوم تطبیق دهیم.

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

اکنون که اصول مقدماتی را شرح دادیم. به بررسی بیشتر آن می پردازیم.

چرا سیستم gas را داریم ؟

جواب سوال ساده است… راه تشویقی برای ماینرها

مانند تمام سیسم های اثبات کار (proof-of-work) همتا به همتا، اتریوم به شدت به hash rate(توان محاسباتی) ماینرهایش وابسته است. هر چه ماینر بیشتر،هش ریت بیشتر و درنهایت، شبکه امن تر و سریع تر برای جذب بیشتر ماینرها به سیستم، باید سیستم تا حد امکان سودآور و جذاب باشد.

در اتریوم دو روش وجود دارد که ماینرها می توانند کسب درآمد کنند:

  • با استخراج بلاک ها و دریافت پاداش استخراج.
  • با فرمانروای موقت شدن بلاک های استخراج شده شان .

بیایید نکته دوم را بررسی کنیم.

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

معامله ای که به شبکه اتریوم فرستاده می شود بسته به تعداد دستورالعمل هایی که در EVM باید اجرا شود، مقادیر مختلفی از gas (بعنوان مثال gas 100 )به همراه دارد.

قبل از اینکه جلوتر بریم، مهم است که مفهوم gas limit   و gas price را بدانیم.


حد gas یا GAS LIMIT چیست ؟


حد gas یا gas limit به حداکثر میزان gas که مایلید در یک معامله هزینه کنید اشاره دارد.

 در اتریوم مقدار gas limit بصورت پیش فرض 21,000 واحد gas است.

هرچه شما بخواهید عملیات پیچیده تر و با محاسبات بیشتر اجرا کنید،gas  بیشتری باید پرداخت کنید. شما می توانید این را هنگامی مشاهده کنید که می خواهید در یک ICO (عرضه ی اولیه یک رمز ارز) شرکت کنید یا زمانی که می خواهید ارزهای ICO خود را از یک صرافی برداشت کنید. هزینه ی انتقال بسیار بالاتر از حد مجاز پیش فرض 21,000 gas است. این امر به این دلیل است که قراردادهای هوشمند یک ICO ، کد های بسیار پیچیده تری دارند و نیازمند محاسبات بسیار بیشتری نسبت به یک انتقال ساده ETH هستند.

در واقع gas limit به عنوان یک مکانیزم ایمنی عمل می کند تا از بودجه شما در برابر از بین رفتن به دلیل کد های ایراد دار یا یک خطا در قرارداد هوشمند محافظت کند.

هنگام مشخص کردن gas limit، نکات زیر باید رعایت شود:

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

در اینجا دو سناریو مطرح می شود :

  • سناریو 1: زمانی که مقدار gas، بسیار پایین تر از gas مصرفی در آن عملیات تعیین شود.
  • سناریو 2: زمانی که مقدار gas، بیشتر از gas مصرفی در آن عملیات تعیین شود.

چه اتفاقی می افتد اگر شما مقدار gas limit را بسیار پایین مشخص کنید ؟

در ابتدا ماینر ها شروع به انجام تراکنش شما می کنند، اما زمانی که gas شما به اتمام برسد، کار خود را متوقف خواهند کرد. بلاکچین معامله را با عنوان تراکنش ناموفق ثبت می کند و  ETH شما در wallet یا کیف پولتان خواهد ماند زیرا gas کافی برای اجرای کامل انتقال وجود ندارد. gas استفاده شده برای تراکنش ناموفق توسط ماینرها برای کاری که انجام دادند، نگه داشته می شود و به شما پس داده نخواهد شد.

اگر شما مقدار خیلی کمی gas مشخص کنید این اتفاق که در عکس پایین مشخص شده خواهد افتاد:

 

چه اتفاقی می افتد اگر شما مقدار gas limit را زیاد مشخص کنید ؟

در آن تراکنش مقدار gas مصرفی لازم برای محاسبات قرارداد استفاده می شود و مابقی آن به فرستنده پس داده می شود.

ماینر ها مجاز به دریافت مقدار gas مازاد نیستند .

اگر به مثال اتومبیل در حال سوخت گیری برگردیم، دو سناریوی تعیین gas limit درست همانند سوخت گیری اتومبیل شماست. اگر شما مقدار کمتری از مقدار مورد نیاز برای مسیر بنزین بزنید، بنزین شما تا نیمی از مسیر مصرف می شود و در صورت تمام شدن سوخت، اتومبیل قادر به اتمام مسیر نیست و بنزین مصرف شده برگردانده نمی شود و اگر بیشتر از حد نیاز برای سفر بنزین زده شود مقدار نیاز برای آن مسیر مصرف می شود و مابقی آن باقی می ماند.

البته نیازی نیست برای تنظیم gas limit نگران نباشید،زیرا MyEtherWallet(MEW) و Metamask به طور خودکار حد مجاز پیش فرض gas limit را برای انواع معاملات مورد نظر خود تعیین می کنند.

در زیر می توانید نمودار میانگین gas limit را مشاهده کنید:


قیمت gas یا GAS PRICE چیست ؟


قیمت gas یا gas price مقدار اتری است که شما برای هر واحد gas می پردازید، که معمولا با Gwei اندازه گیری می شود. Wei  کوچکترین واحد اتر است، یک گیگا وی (Gwei) برابر یک میلیارد وی (wie) است .

gas limit مانند چند لیتر بنزینی است که برای طی کردن یک مسیر در باک اتومبیل خود پر میکنید و  gas price مانند هزینه هر لیتر بنزینی است که برای پر کردن ماشین خود هزینه می کنید.

در نهایت هزینه کل تراکنش از gas limit*gas price به دست می آید.

اگر شما می خواهید برای یک معامله کمتر هزینه کنید، می توانید gas price را کاهش دهید، که در این صورت از سرعت انجام تراکنش شما کاسته می شود .

ماینر ها بعد از اینکه بلاکی به بلاکچین اضافه می کنند، درباره بلاک بعدی تصمیم می گیرند که کدام تراکنش را در اولویت قرار دهند، معمولا آن ها برای این انتخاب یک استراتژی ساده دارند، معاملات مختلف از بالاترین میزان gas price به پایین ترین آنها مرتب شده است و اولویت آنها با معاملاتیست که gas price بیشتری برای آن انتخاب شده است.

شما می توانید با مراجعه به سایت ethgasstation.info نرخ gas price اتریوم را مشاهده کنید.

 نتیجه گیری

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

 

امکان نظردهی غیر فعال شده.