گس در اتریوم واحدی است که بیانگر تلاش محاسباتی است که برای اجرای برخی عملیاتها مشخص میشود. در واقع هر عملیاتی که در اتریوم اجرا میشود، خواه یک تراکنش باشد یا اجرای قرارداد هوشمند، به مقداری گس نیاز دارد.
در این سیستم به ماینرها مبلغی به اتر پرداخت میشود که معادل کل گسی است که برای اجرای یک عملیات کامل مصرف میشود.
گس در اتریوم در واقع رگ حیاتی اکوسیستم اتریوم بوده و هیچ راه دیگری برای کنار گذاشتن و حذف آن وجود ندارد. در حقیقت گس پارامتری است که برای محاسبه میزان هزینههایی که برای اجرای یک عملیات باید به شبکه پرداخت شود را تعیین میکند.
در همین راستا در این مطلب قصد داریم تا شما را با گس در اتریوم آشنا کرده و در مورد مفهوم آن اطلاعات جامع و کاملی را ارائه دهیم، پس با ما همراه باشید.
گس در اتریوم چیست: راهنمای گام به گام
چرا گس در بیت کوین وجود ندارد؟
پیش از آن که بخواهیم به این سوال پاسخ دهیم که چرا بر خلاف اتریوم گس در بیت کوین وجود ندارد بهتر است تا چند سوال مهم را مطرح کرد.
- آیا میتوان شکلی از پول ایجاد کرد که بتوان آن را بین دو نفر بدون واسطه منتقل کرد؟
- آیا ایجاد یک پول غیر متمرکز که بتواند روی چیزی مانند بلاک چین کار کند امکان پذیر است؟
ساتوشی ناکاموتو به عنوان خالق بیت کوین، در زمان ایجاد بیت کوین به این سوالات پاسخ داد و به واسطه اختراع بیت کوین ما بالاخره یک سیستم پولی غیر متمرکز را تجربه کردیم که میتوانست پول را از شخصی به شخص دیگر منتقل کند.
با این حال، یک مشکلی که در مورد بیت کوین وجود داشت، مشکلی بود که تمام بلاک چینهای نسل اول آن را تجربه کردند. این سیستمها فقط به معاملات پولی اجازه اجرا میدادند و هیچ راهی برای اضافه کردن شرایط دیگر به آن معاملات وجود نداشت.
به عنوان مثال در یک معامله بیت کوین یک شخص میتواند 5 بیت کوین ارسال کند، اما نمیتواند شرایطی را برای آن تراکنشها اعمال کند. به عنوان مثال شخص نمیتواند مشخص کند که گیرنده تنها در صورتی پول دریافت کند که وظایف خاصی را انجام دهد. این شرایط به برنامه نویسی بسیار پیچیده نیاز دارند و لازم بود تا این فرآیند یکپارچه تر شود. برای حل این مشکل شاهد به وجود آمدن مفهومی به نام قرارداد هوشمند هستیم.
بیت کوین تنها برای تراکنشهای مالی مستقیم است، در حالی که اتریوم ویژگیهای پیشرفته تری دارد.
قرارداد هوشمند چیست؟
قراردادهای هوشمند به شما کمک میکند تا پول، دارایی، سهام یا هر چیز با ارزشی را به روشی شفاف و بدون مشکل مبادله کنید و در عین حال نیازی به حضور یک واسط هم نباشد.
اتریوم که توسط Vitalik Buterin ایجاد شد به دنیا نشان داد که چگونه بلاک چین میتواند از یک مکانیسم پرداخت ساده به چیزی بسیار معنادار تر و قدرتمندتر تبدیل شود. بنابراین او اقدام به ایجاد مفهوم قرارداد هوشمند در شبکه اتریوم کرد.
قراردادهای هوشمند قراردادهای خودکاری هستند. آنها با دستورات خاصی که در کد آن قرار میگیرد، در صورت داشتن شرایط مشخص شده اجرا میشوند.
قراردادهای هوشمند نحوه انجام کارها در اکوسیستم اتریوم است. هنگامی که شخصی میخواهد کار خاصی را در اتریوم انجام دهد، یک قرارداد هوشمند را با یک یا چند نفر ایجاد میکند.
قراردادهای هوشمند مجموعهای از دستورالعملها هستند که با استفاده از زبان برنامه نویسی ” Soliity ” نوشته شده اند، که بر اساس منطق IFTTT یا منطق IF-THIS-THEN-TAT کار میکند. این منطق بیان میکند که اگر یک اتفاق افتاد، سپس یک کار را انجام بده. اساساً اگر اولین مجموعه دستورات انجام شد، تابع بعدی و بعد از آن تابع بعدی را اجرا کنید و این تکرار ادامه پیدا میکند تا به پایان قرارداد برسید.
بهترین راه برای درک این موضوع، تصور یک دستگاه فروش خودکار است. هر قدمی که بر میدارید یک فرآیند است که مرحله بعدی را اجرا کند. این فرآیند شبیه به اثر دومینو است.
برای درک بهتر بیایید مراحلی را که در هنگام تعامل با دستگاه فروش خودکار انجام میدهید را بررسی کنیم:
- مرحله 1: شما مقداری پول به دستگاه خود پرداز میدهید.
- مرحله 2: دکمه مربوط به موردی که میخواهید را فشار دهید.
- مرحله 3: آیتم بیرون میآید و شما آن را دریافت میکنید.
اکنون به تمام آن مراحل نگاه کنید و در مورد آن فکر کنید. اگر مرحله قبلی اجرا نشود، آیا هیچ یک از مراحل کار میکند؟ هر یک از این مراحل ارتباط مستقیمی با مرحله قبل دارد. یک عامل دیگر وجود دارد که باید به آن فکر کرد و آن بخشی جدایی ناپذیر از قراردادهای هوشمند است و آن هم نبود واسطه است. در واقع کل تعامل شما با دستگاه فروش خودکار بوده و مطلقاً هیچ شخص ثالثی درگیر این فرآیند نبود.
بنابراین، اکنون اگر این تراکنش در شبکه اتریوم اتفاق بیافتد چه میشود؟
فرض کنید شما به تازگی چیزی از یک دستگاه فروش خودکار در شبکه اتریوم خریداری کرده اید، در آن صورت مراحل چگونه خواهد بود؟
- مرحله 1: شما مقداری پول به دستگاه خود پرداز میدهید و این فرآیند توسط تمام گرههای شبکه اتریوم ثبت میشود و تراکنش در دفتر کل به روز میشود.
- مرحله 2: دکمه مربوط به آیتم مورد نظر را فشار میدهید و رکورد آن در شبکه اتریوم و دفتر کل به روز میشود.
- مرحله 3: آیتم در اختیار شما قرار میگیرد و این مسئله توسط تمام گرهها و دفتر کل ثبت میشود.
هر تراکنشی که از طریق قراردادهای هوشمند انجام میدهید توسط شبکه ثبت و به روز میشود. درک این موضوعات به شما کمک میکند تا معنا گس در اتریوم را به خوبی درک کنید.
قراردادهای هوشمند به شما کمک میکنند تا برای اجرا تراکنشها شرایط خاصی را تعیین کنید.
ماشین مجازی اتریوم چیست؟
پیش از بررسی گس در اتریوم لازم است تا اطلاعاتی در مورد ماشین مجازی اتریوم (EVM) و همین طور خود اتریوم بدست آورده و همچنین درک کنید که چرا در اتریوم یک ماشین مجازی نیاز است. برای کسب اطلاعات در مورد اتریوم به مقاله همه چیز در مورد اتریوم مراجعه فرمایید
هر چیزی که بر روی یک بلاک چین اجرا میشود باید تغییر ناپذیر باشد و باید قابلیت اجرا از طریق چندین گره را بدون به خطر انداختن یکپارچگی آن داشته باشد. در نتیجه، عملکرد قرارداد هوشمند باید دارای سه ویژگی باشد:
- قطعیت
- پایان پذیری
- جدا بودن
قطعیت در اتریوم
یک برنامه قطعی است اگر هر بار خروجی یکسانی را به یک ورودی داده شده بدهد. به عنوان مثال. اگر 3+1 = 4، 3+1 همیشه 4 خواهد بود. بنابراین وقتی یک برنامه خروجی یکسانی را به مجموعه ورودیهای یکسان در رایانههای مختلف میدهد، برنامه قطعی نامیده میشود.
پایان پذیری در اتریوم
در منطق ریاضی خطایی به نام «مسئله توقف» داریم. این خطا بیان میکند که نمیتوان فهمید که آیا یک برنامه میتواند عملکرد خود را در یک محدوده زمانی اجرا کند یا خیر.
بدیهی است که این یک مشکل در قراردادهای هوشمند است زیرا، طبق تعریف، قراردادها باید در یک محدوده زمانی مشخص فسخ شوند. به همین دلیل شاهد اقداماتی برای اطمینان از وجود راهی برای از بین بردن قرارداد و وارد نشدن به یک حلقه بی پایان هستیم. این اقدامات شامل موارد زیر میشود:
- سیستم ناقص بودن تورینگ: یک بلاک چین ناقص تورینگ عملکرد محدودی خواهد داشت و قادر به ایجاد پرش و/یا حلقه نخواهد بود. از این رو آنها نمیتوانند وارد یک حلقه بی پایان شوند.
- وجود گام و کارمزد سنج: یک برنامه میتواند به سادگی تعداد «گام هایی» را که برداشته است، یعنی تعداد دستورالعملهایی که اجرا کرده است، ردیابی کند و پس از اجرا شدن تعداد گامهای خاص، خاتمه یابد. روش دیگر Fee meter است. در اینجا قراردادها با هزینه از پیش پرداخت شده اجرا میشود. اجرای هر دستوری مستلزم هزینه خاصی است. اگر هزینهای که مشخص و پرداخت میشود بیشتر از هزینه از پیش پرداخت شده باشد، قرارداد فسخ میشود.
- تایمر: در اینجا یک تایمر از پیش تعیین شده نگهداری میشود. اگر اجرای قرارداد بیش از مدت زمان تعیین شده طول بکشد، قرارداد لغو میشود.
جدا بودن در اتریوم
در یک بلاک چین، همه میتوانند یک قرارداد هوشمند را آپلود کنند. به همین دلیل ممکن است قراردادها، آگاهانه و ناآگاهانه حاوی ویروس و اشکال باشند.
اگر قرارداد جدا از سیستم نباشد، ممکن است کل سیستم را مختل کند. از این رو، برای نجات کل اکوسیستم از هرگونه تأثیر منفی، ضروری است که یک قرارداد در یک بخش ایزوله نگه داشته شود.
معمولاً قراردادهای هوشمند با استفاده از یکی از دو سیستم زیر اجرا میشوند:
- ماشینهای مجازی
- Docker
ماشینهای مجازی محیط قطعی، قابل پایان و ایزوله بهتری را برای قراردادهای هوشمند فراهم میکنند. با این حال، داکرها یک مزیت متمایز دارند. آنها انعطاف پذیری زبان برنامه نویسی را فراهم میکنند در حالی که در ماشین مجازی (VM) مانند اتریوم، فرد برای ایجاد قراردادهای هوشمند نیاز به یادگیری یک زبان کاملاً جدید دارد.
EVM ماشین مجازی اتریوم است که تمام قراردادهای هوشمند در اتریوم در آن کار میکنند. این یک ماشین مجازی ساده و در عین حال قدرتمند 256 بیتی است.
گس در اتریوم چیست؟
همان طوری که در مقدمه توضیح داده شد، گس در اتریوم واحدی است که میزان تلاش محاسباتی را که برای اجرای عملیات معین نیاز است اندازه گیری و مشخص میکند.
بیشتر قراردادهای هوشمندی که در EVM اجرا میشوند به نحوی است که اجرا هر خط کد به مقدار معینی گس در اتریوم نیاز دارد تا اجرا شود.
گس در واقع مثل بنزین است و برای کار با اتریوم به آن نیاز دارید.
نمودار قیمت گس در اتریوم
تصویر زیر از یلو پیپر اتریوم گرفته شده است و میتوان از آن برای به دست آوردن یک ایده تقریبی از هزینه دستورالعملهای خاص بر اساس گس استفاده کرد. طبق این جدول، هر تراکنش حداقل به 21000 گس نیاز دارد.
برای درک بهتر نحوه عملکرد گس در اتریوم، بیایید از یک قیاس استفاده کنیم.
به عنوان مثال فرض کنید که قصد دارید تا یک سفر بروید. پیش از انجام این کار، لازم است تا گامهای زیر را طی کنید:
- شما به پمپ بنزین میروید و مشخص میکنید که میخواهید چقدر به ماشین خود بنزین بزنید.
- شما آن بنزین را در باک ماشین تان میریزید.
- شما مبلغی را که بابت بنزین باید بدهید را به پمپ بنزین میپردازید.
حالا بیایید این فرآیند را با گس در اتریوم مقایسه کنیم:
- رانندگی با ماشین عملیاتی است که میخواهید اجرا کنید، مانند اجرای یک تابع از یک قرارداد هوشمند در شبکه اتریوم
- گس در اتریوم معادل بنزین است
- پمپ بنزین ماینرهای اتریوم هستند
- پولی که به آنها پرداخت کردید، هزینههای مربوط به ماینرها است.
چرا ما به گس در اتریوم نیاز داریم؟
شاید برای شما این سوال بسیار مهم مطرح شود که چرا به گس در اتریوم نیاز است. پاسخ این ساده است، به خاطر انگیزه در شبکه اتریوم به گس نیاز داریم.
مانند هر سیستم اثبات کار نظیر به نظیر، اتریوم به شدت به هش ماینرهای خود وابسته است. به هر میزانی که تعداد ماینرهای بیشتر شود، هش ریت بیشتر شده، سیستم امن تر میشود و سریع تر خواهد شد.
برای جذب ماینرهای بیشتر به سیستم، باید سیستم را تا حد امکان سودآور و جذاب کرد. در اتریوم روش که ماینرها میتوانند از آن درآمد کسب کنند با استخراج بلوکها و دریافت جوایز بلوک است.
ماینرها مسئول بررسی تراکنشها در بلاکها هستند. برای انجام این کار، آنها باید از قدرت محاسباتی سیستمهای خود برای اعتبار سنجی قراردادهای هوشمند استفاده کنند. سیستم گس به آنها اجازه میدهد تا برای انجام این کار هزینه مشخصی را دریافت کنند.
این هزینه به عنوان حق الزحمه ماینر شناخته میشود و به آنها کمک میکند تا به اندازه کافی انگیزه داشته باشند تا در اکوسیستم شرکت کرده و فعالیت کنند.
ماینرهای شبکه اتریوم برای استخراج گس و دریافت اتر از این طریق با هم رقابت میکنند.
چگونه گس در اتریوم را به اتر تبدیل کنیم؟
هیچ قیمت ثابتی برای تبدیل گس در اتریوم به اتر وجود ندارد. این به فرستنده تراکنش بستگی دارد که هر قیمت گسی را که دوست دارد مشخص کند. از طرف دیگر، این به ماینر بستگی دارد که هر معاملهای را که دوست دارد تأیید کند. معمولاً تراکنشهایی که بالاترین قیمت گس را دارند توسط ماینرها انتخاب میشوند.
میانگین قیمت گس معمولاً حدود 20 Gwei یا معادل 0.00000002 اتر است، اما میتواند در زمان ترافیک شبکه این قیمت افزایش پیدا کند زیرا تراکنشهای بیشتری برای گنجاندن در بلوک بعدی رقابت میکنند.
نمودار زیر نمودار میانگین قیمت گس در اتریوم را نشان میدهد:
محدودیت گس در اتریوم
یکی از موضوعاتی که در مورد گس در اتریوم باید بدانید محدودیت آن است. در واقع برای انجام یک عملیات در اتریوم، فرستنده تراکنش باید قبل از ارسال آن به شبکه، محدودیت گس در اتریوم را مشخص کند. حد گس در اتریوم در واقع حداکثر مقدار گسی است که فرستنده مایل است برای این تراکنش پرداخت کند.
هنگام تعیین حد گس در اتریوم لازم است تا به نکات زیر توجه کنید:
- عملیاتهای مختلف هزینههای گس متفاوتی خواهند داشت.
- زمانی که گس تمام شود، ماینرها اجرای آن را متوقف خواهند کرد.
- اگر گسی باقی مانده باشد، بلافاصله به ژنراتور عملیات بازگردانده خواهد شد.
برای درک بهتر گس در اتریوم بیایید یک مثال بزنیم:
فرض کنید ما قصد داریم تا دو عدد را با یکدیگر جمع کنیم. برای این قرارداد باید اقدامات زیر را انجام دهد:
- برای ذخیره اعداد در متغیرها نیاز به 10 گس است.
- این عملیات نیاز 45 بنزین است.
- با اضافه کردن دو متغیر، شاهد هزینه 10 گس هستیم.
- ذخیره نتیجه دوباره به 45 گس نیاز دارد.
- فرض کنید فرستنده حد گس 120 گس را مشخص کرده است.
مجموع گس استفاده شده توسط ماینر برای اجرای محاسبات (45+10+45) = 100 گس است. برای انجام این عملیات به 2 گس 45 تایی برای انجام جمع و ذخیره، 1 گس 10 تایی برای ذخیره اعداد در متغیرها نیاز است.
هزینهای که برای انجام این کار باید به ماینر بدهید، با فرض این که قیمت 1 گس برابر 20 Gwei است، معادل (100 * 20 Gwei) = 0.000002 ETH خواهد شد.
اگر شما 120 گس داشتید، 20 گس برای شما باقی مانده است و 20 گس استفاده نشده به فرستنده بازگردانده میشود. مقدار این 20 گس برابر (20 * 20 Gwei) = 0. 000004 ETH است.
در چنین شرایطی با توجه به انتخاب میزان گس از سوی کاربر ممکن است دو حالت رخ دهد:
- حد گس مشخص شده خیلی کم است.
- حد گس مشخص شده خیلی زیاد است.
برای انجام تراکنش در اتریوم باید گس را به درستی انتخاب کنید تا با مشکل مواجه نشوید.
سناریوی شماره 1: حد گس در اتریوم بسیار کم است
اگر گس در اتریوم کم باشد و نتواند یک فرآیند را به صورت کامل انجام دهد، گس به حالت اولیه خود برمی گردد، مثل این که هیچ اتفاقی نیفتاده است. با این حال، شخصی که عملیات را ایجاد کرده همچنان باید هزینههای محاسباتی خود را به ماینرها بپردازد و عملیات به بلاک چین اضافه میشود، حتی اگر این کار اجرا نشده است.
اگر دوباره بخواهیم با مثال سفر کردن این موضوع را توضیح دهیم باید گفت که گر به اندازه کافی بنزین در ماشین خود پر نکرده باشید، نمیتوانید به مقصد برسید. در این صورت هم پول سوخت را به پمپ بنزین پرداخت کرده اید و هم نتوانستید به هدف خود برسید.
سناریوی شماره 2: حد گس در اتریوم خیلی زیاد است
اگر حد گس در اتریوم را خیلی بالا تنظیم کنیم، چه اتفاقی میافتد. از نظر تئوری در چنین شرایطی هر چه باقی مانده است به فرستنده بازپرداخت میشود. شاید روی کاغذ این ایده خوب به نظر میرسد اما در واقعیت به خوبی کار نمیکند.
ماینرها با محدودیت گس بلوک محدود میشوند. فرض میکنیم که یک تراکنش 6,700,000 گس دارد. یک تراکنش پایه و انتقال ساده به حداقل 21000 گس نیاز دارد. در چنین شرایطی ماینرها فقط میتوانند تراکنشهایی را که مجموعاً کمتر یا مساوی با حد مجاز گس بلوک دارند را انتخاب کنند.
به عنوان مثال فرض کنید یک تراکنش به نام A وجود دارد که یک انتقال ساده اتریوم را انجام میدهد و دارای محدودیت گس مشخص شده 42000 است. از سوی دیگر دو تراکنش B و C نیز یک انتقال ساده هستند که محدودیت گس در اتریوم آنها 21000 تعیین شده است.
در چنین شرایطی ماینرها تراکنشهای B و C را انجام میدهند و مبلغ اندکی بر میگردانند یا هیچ چیز را به کاربر نمیدهند. انجام این کار از نظر اقتصادی برای آنها منطقی تر است.
دقیقاً به همین دلیل است که انتخاب بیش از اندازه گس در اتریوم راه معقولی نیست. در چنین شرایطی بهتر است که حد گس در اتریوم را که فقط کمی بیشتر از مقدار گس مورد نیاز برای معامله تعیین کنید.
نمودار زیر میانگین حد گس است.
نقاط ضعف گس در اتریوم
اگر چه سیستم گس در اتریوم به دلیل ارائه یک مکانیسم عالی مشوقی بسیار مثبت برای ماینرها بوده و همواره مورد تحسین قرار گرفته است اما اخیراً به دلیل گران بودن برای توسعه دهندگان و سازندگان قراردادهای هوشمند شاهد انتقادات بسیار زیادی از آن هستیم.
در واقع در شرایط فعلی به دلیل وضعیت شبکه اتریوم، هزینه گس در اتریوم افزایش چشمگیری پیدا کرده است و از این مسئله به عنوان یکی از مهم ترین نقاط ضعف گس در اتریوم یاد میشود.
امروزه قیمت گس در شبکه اتریوم افزایش پیدا کرده است و این یعنی ماینرها درآمد بیشتری کسب میکنند.
حرف آخر
در این مطلب شما را با گس در اتریوم آشنا کرده و تلاش کردیم تا در مورد مفهوم آن اطلاعات جامع و کاملی را به شما ارائه دهیم. توجه به نکات گفته شده در این مطلب به شما کمک میکند تا به خوبی مفهوم گس در اتریوم را درک کرده و متوجه آن شوید.
منبع