اجرای Smart Contract به وسیله اتریوم چگونه صورت میگیرد؟
در پی ظهور فناوری بلاکچین و اوج گرفتن محبوبیت آن، یک فناوری دیگر که زیرشاخه آن بود ظهور محبوبیت پیدا کرد: قراردادهای هوشمند (Smart Contracts). قرارداد هوشمند یک قرارداد خود اجرا است که در آن محتویات توافق نامه مستقیماً در خطوط کد نوشته میشوند. به زبان ساده، میتوانید قراردادهای هوشمند را مجموعهای از کدها و دادهها در نظر بگیرید که در شبکه اتریوم قرار دارند. از زمان ظهور فناوری قراردادهای هوشمند، خرید اتریوم رایجتر شده و صفحه خرید ETH در صرافی والکس شلوغتر شده است. مردم بیشتر پیگیر قیمت اتریوم هستند و قیمت ETH را به صورت لحظهای از مراجع معتبری مانند صرافی والکس رصد میکنند.
مفهوم قراردادهای هوشمند را نیک سابو (Nick Szabo)، دانشمند رایانه، محقق حقوقی و یکی از افرادی که گمان میرود ساتوشی ناکاماتو باشند، برای اولین بار در دهه ۱۹۹۰ مطرح کرد. طبق گفته سابو که ارز مجازی بیت گلد (Bit Gold) را در سال ۱۹۹۸ طراحی کرد و به همین دلیل گمان میرود ساتوشی ناکاموتو باشد، قراردادهای هوشمند پروتکلهایی معاملاتی هستند که به شرایط قرارداد مشروعیت میدهند و آن شرایط را اجرا میکنند.
قراردادهای هوشمند توسط کاربر کنترل نمیشوند؛ بلکه آنها برنامههایی خود اجرا بوده و در بلاکچین اتریوم و سایر بلاکچینها هستند. کاربران میتوانند با ارسال تراکنشهایی که عملکرد کدنویسی شده در یک قرارداد هوشمند را فعال میکنند، با آن تعامل برقرار کنند. قراردادهای هوشمند درست مثل قراردادهای کاغذی میتوانند بندها و قوانینی را تعریف کنند؛ با این تفاوت که در قراردادهای هوشمند بر خلاف قراردادهای معمولی، آن بندها و قوانین نه با مداخله انسانی، بلکه به طور خودکار و از طریق کدها اجرا میشوند. یک قیاس عالی برای توصیف یک قرارداد هوشمند، دستگاههای فروش دیجیتال هستند. برای دریافت یک پفک یا شکلات از یک دستگاه فروش خودکار، باید دستورالعملی را وارد کنید که به طور خودکار خروجی خاصی را ایجاد میکند. منطق عملیات در دستگاه برنامهریزی شده است.
در یک قرارداد هوشمند نیز مانند دستگاه فروش، منطق عملیات کدها آن برنامهریزی شده است. همچنین، دستگاه فروش خودکار نیاز به اپراتورها را از میان بر میدارد. به همین ترتیب، قراردادهای هوشمند نیز این پتانسیل را دارند که جای واسطهها را در بسیاری از بخشها بگیرند.
قراردادهای هوشمند مزایای متعددی دارند. اول، شفاف هستند. کاربران میتوانند گزارش رمزگذاری شده تراکنشها را بررسی و مشاهده کنند. دوم، نیاز به مجوز ندارند. بدین معنی که هر کسی میتواند یک قرارداد هوشمند بنویسد و آن را بر روی بلاکچین اتریوم مستقر کرده به اجرا درآورد. سوم و مهمتر از همه، قراردادهای هوشمند قابل تنظیم هستند و میتوانند با سایر قراردادهای هوشمند در شبکه اتریوم ارتباط برقرار کنند. این مزایا باعث محبوبیت قراردادهای هوشمند و در نتیجه محبوبیت اتریوم، افزایش تقاضا برای خرید اتریوم (ETH) و رشد قیمت اتریوم (ETH) شدهاند.
همانطور که برای انجام تراکنشهایی مانند خرید اتریوم یا همان خرید ETH، باید به شبکه اتریوم هزینه گس (Gas Fee) پرداخت کرد، استقرار یک قرارداد هوشمند روی این شبکه نیز نیازمند پرداخت هزینه گس است. هرچه پیچیدگی یک قرارداد هوشمند بیشتر باشد، اجرای آن در بلاکچین عمومی گرانتر است. قیمت اتریوم و بلاکچین آن برای استقرار یک قرارداد هوشمند ساده حدود ۵۰۰ دلار است. همچنین برای یک قرارداد با اندازه متوسط، ممکن است مجبور باشید ۵۰۰۰ دلار را فقط برای هزینههای استقرار خرج کنید و قیمت ETH برای استقرار و اجرای قراردادهای بزرگتر، بیشتر است.
چگونگی ساخت یک نرمافزار غیرمتمرکز در بلاکچین اتریوم
در حالی که بلاکچینهای دیگری مانند سولانا، پولکادات و زنجیره هوشمند بایننس از قراردادهای هوشمند پشتیبانی میکنند، اما بسیاری از این قراردادهای بر پایه اتریوم ساخته میشوند. حتی اگر قیمت اتریوم (قیمت ETH) بالاتر از شبکههای دیگر باشد، همچنان محبوبترین پروتکل برای توسعهدهندگان است. اطلاعات در مورد تعداد قراردادهای هوشمند مستقر در اتریوم هنوز کامل نیست، اما یک مطالعه در سال ۲۰۲۰ نشان داد که بیش از ۱ میلیون قرارداد هوشمند روی اتریوم وجود دارد. از آن زمان تاکنون این تعداد باید بسیار رشد کرده باشد. بر اساس گزارش یاهو فایننس، تعداد قراردادهای هوشمند مستقر در اتریوم، در ژوئن ۲۰۲۱ به اوج خود یعنی به ۲/۵ میلیون قرارداد رسید.
با این حال، زبان های مختلفی برای استقرار قرارداد هوشمند وجود دارد.
- سالیدیتی (Solidity): یک زبان برنامهنویسی است که توسعهدهندگان را قادر میسازد تا قراردادهای هوشمند را ایجاد کنند. سالیدیتی بر مبنای زبانهای برنامهنویسی سیپلاسپلاس، جاوا اسکریپت و پایتون است و روی ماشین مجازی اتریوم (EVM) اجرا میشود.
- راست (Rust): یک زبان برنامهنویسی سریع و کارآمد در حافظه است که برای ساخت پروتکلهای مقیاسپذیر استفاده میشود. راست از بلاکچینهایی مانند سوالانا و پولکادات پشتیبانی میکند و در بلاکچین اتریوم کاربرد چندانی ندارد.
- وایپر (Vyper): یک زبان برنامهنویسی شبیه پایتون و قرارداد محور است که ماشین مجازی اتریوم را هدف قرار میدهد. وایپر برای بهبود مسائل امنیتی سالیدیتی ساخته شده است.
- یول (Yul): یک زبان برنامه نویسی میانی است که توسط سالیدیتی مورد استفاده قرار میگیرد و نیازهای باطنی مختلف را برطرف می کند. در حال حاضر، یول در اکثر پروژههای مبتنی بر اتریوم به کار رفته است.
مراحل ساخت یک قرارداد هوشمند
در زیر راهنمای گامبهگام ایجاد و استقرار یک قرارداد هوشمند در اتریوم آورده شده است.
۱- اتصال به اتریوم
میتوانید با نصب افزونه کیف پول متامسک به مرورگر گوگل کروم خود، به شبکه اصلی اتریوم متصل شوید. پس از تکمیل نصب، به شبکه اصلی متصل خواهید شد.
۲- انتخاب یک شبکه تست
در متامسک لیستی از شبکههای تست خواهید یافت که به شرح زیر است:
- رابستن (Robsten)
- رینکبی (Rinckeby)
- کوان (Koan)
- گوئرلی (Goerli)
این شبکهها قرارداد هوشمند شما را تست میکنند.
۳- تامین مالی کیف پول با اتریوم تستنت
برای اینکه قرارداد هوشمند خود را تست کنید نیازی به خرید اتریوم (خرید ETH) و پرداخت قیمت اتریوم (قیمت ETH) ندارید. بلکه نیازمند اتریوم تستنت خواهید بود. دریافت اتریوم تستنت در متامسک بسیار ساده است.
۴- نوشتن قرارداد هوشمند
برای نوشتن قرارداد هوشمند خود در سالیدیتی میتوانید از ویرایشگر مرورگر Remix IDE استفاده کنید. این مرورگر بهترین گزینه برای نوشتن قراردادهای هوشمند است. زیرا چندین ویژگی دارد و معمولاً برای نوشتن قراردادهای هوشمند اولیه استفاده میشود.
۵- ایجاد فایل با پسوند sol.
مرورگر Remix را باز کنید و روی نماد (+) در سمت چپ کلیک کنید تا یک پسوند sol. ایجاد کنید. این باعث میشود هر برنامهای که مینویسید با سالیدیتی سازگار باشد.
۶- تکمیل برنامهنویسی
نسخهای از کامپایلر را در مرورگر Remix انتخاب کنید و کد سالیدیتی را کامپایل کنید.
۷- استقرار قرارداد هوشمند
با کلیک بر روی دکمه Deploy در مرورگر Remix، قرارداد هوشمند را در شبکه آزمایشی اتریوم مستقر کنید. پس از تکمیل تراکنش، آدرس قرارداد هوشمند در سمت راست مرورگر Remix ظاهر میشود.
۸- آمادهسازی برای اجرا
کارهای نهایی را انجام داده و قرارداد هوشمند خود را آماده اجرا کنید.