آشنایی با قرارداد هوشمند اتریوم و نحوه ساخت آن
یک قرارداد هوشمند اتریوم به زبان ساده به برنامهای اشاره دارد که روی بلاکچین اتریوم اجرا میشود. در واقع، مجموعهای از کدها و دادهها در یک آدرس خاص روی بلاکچین اتریوم قرار دارند که به صورت خودکار اجرا میشوند که به آنها قرارداد هوشمند اتریوم میگویند.
پادکست قرارداد هوشمند اتریوم
اتریوم یک سیستم بلاکچینی غیرمتمرکز منبع باز است که رمزارزی اختصاصی به نام اتر (ETH) دارد. برای خرید و نگهداری اتر، میتوانید به صرافی ارز دیجیتال او ام پی فینکس مراجعه کنید. بلاکچین اتریوم یک پلتفرم مناسب برای ایجاد ارزهای دیجیتال و همچنین اجرای قراردادهای هوشمند غیرمتمرکز محسوب میشود.
در واقع، قرارداد هوشمند اتریوم یک بلاک اساسی در ساختار اتریوم است که امکان تبدیل قراردادهای سنتی به معادل دیجیتالی آنها را فراهم میکند. این بدان معنی است که یک قرارداد هوشمند اتریوم دقیقاً مطابق برنامهریزی عمل میکند و نمیتوان آنها را تغییر داد. در ادامه این مطلب، به معرفی بیشتر قراردادهای هوشمند در بلاکچین اتریوم و چگونگی کارایی آنها میپردازیم.
بلاکچین اتریوم بستری برای اجرای قراردادهای هوشمند
اصطلاح قرارداد هوشمند (Smart Contract) برای اولین بار توسط نیک سابو (Nick Szabo)، برنامهنویس آمریکایی و فعال حوزه رمزارزها از دهه ۹۰ میلادی که بسیاری از فعالان ارزهای دیجیتال او را ساتوشی ناکاموتو (خالق ناشناخته بیتکوین) نیز مینامند، ابداع شد. نیک سابو در سال ۱۹۹۴، مقدمهای بر مفهوم قراردادهای هوشمند نوشت و در سال ۱۹۹۶، مقالهای در مورد آنچه که این نوع قراردادها میتوانند انجام دهند، منتشر کرد.
در واقع، نیک سابو در این مقاله یک بازار دیجیتالی را متصور بود که بر اساس فرآیندهای خودکار و رمزنگاری امن ساخته شده بود. مکانی که در آن تراکنشها و عملکردهای تجاری میتوانند بدون واسطه انجام شوند. در ادامه توضیح خواهیم داد که چگونه با راهاندازی قراردادهای هوشمند در اتریوم این دیدگاه عملی شد.
قرارداد هوشمند اتریوم چیست؟
همانطور که در ابتدای مقاله اشاره شد، قراردادهای هوشمند، قراردادهای دیجیتالی ذخیره شده روی یک بلاکچین هستند که با رعایت شرایط و ضوابط از پیش تعیین شده به صورت خودکار اجرا میشوند. یک قرارداد هوشمند اتریوم صرفاً برنامهای است که روی بلاک چین این ارز دیجیتال ذخیره میشود و در صورت برآورده شدن شرایط از پیش تعیین شده، اجرا میشود. به عبارت دیگر، قرارداد هوشمند اتریوم معمولاً برای خودکارسازی اجرای یک توافق یا یک گردش کار استفاده میشود تا همه شرکتکنندگان در آن توافق یا گردش کار، بتوانند بدون دخالت واسطه یا اتلاف زمانی، به طور آنی از نتیجه مطمئن شوند و در صورت برآورده شدن شرایط، مرحله بعدی را آغاز کنند.
در یک قرارداد هوشمند اتریوم، پس از تکمیل و تایید شرایط اجرای قرارداد، تراکنشها برگشتناپذیر اما قابل پیگیری هستند. از این رو، قراردادهای هوشمند اجازه میدهند تا معاملات و توافقات بین طرفهای ناشناس بدون نیاز به یک مرجع متمرکز، نهاد قانونی یا یک مکانیزم اجرایی بیرونی انجام شود.
در حالی که فناوری بلاکچین در ابتدا اساساً به عنوان پایهای برای بیتکوین در نظر گرفته شده بود، کاربرد این فناوری تا به امروز بسیار فراتر از ایجاد یک رمزارز تکاملیافته است. یک مورد از کاربردهای نوآوری بلاکچین، امکان ایجاد همین قراردادهای هوشمند است که با ظهور دومین ارز دیجیتال یعنی اتریوم به مرحله اجرا رسید. همین قابلیت اتریوم باعث شده، قیمت اتریوم تا به امروز رشد قابل توجهی تجربه کند و کاربردهای این بلاکچین بسیار بیشتر شود.
یک قرارداد هوشمند اتریوم نوعی حساب در بلاکچین اتریوم است که توسط یک کاربر کنترل نمیشود، در عوض در شبکه این ارز دیجیتال راهاندازی شده و طبق برنامهای مشخص عمل میکند. یک قرارداد هوشمند در بلاکچین میتواند قوانینی را مانند یک قرارداد معمولی تعریف کند و به طور خودکار آنها را از طریق کد اجرا کند. همچنین باید در نظر داشته باشید که قراردادهای هوشمند را نمیتوان به طور پیش فرض حذف کرد؛ زیرا تعامل با آنها غیرقابل برگشت است.
کاربردهای قرارداد هوشمند اتریوم
ممکن است وقتی با کلمه قرارداد مواجه میشوید، به این فکر کنید که «من وکیل نیستم! چرا باید به قراردادها اهمیت دهم؟» دلیل چنین طرز فکری شاید این موضوع باشد که قراردادها برای اکثر افراد یادآور توافقات طولانی مدت و یا اسناد حقوقی خستهکننده است. اما از آنجایی که قراردادها توافقی هستند، میتوان هر شکلی از یک توافق را در شرایط یک قرارداد گنجاند. توافقات شفاهی یا قراردادهای سنتی برای خیلی موارد قابل قبول هستند، اما در موضوعات زیادی نیز با ایراداتی همراهند. در ادامه به چند مورد از چالشهایی میپردازیم که با پیدایش قراردادهای هوشمند برطرف شدهاند:
قرارداد هوشمند اتریوم روشی برای اجرای تعهد بدون واسطه
یکی از بزرگترین مشکلات یک قرارداد سنتی، نیاز به افراد مورد اعتماد برای پیگیری نتایج قرارداد است. به عنوان مثال، فرض کنید علی و حسین مسابقه دوچرخه سواری دارند. آنها با یکدیگر توافق میکنند که هر کدام برنده شد، ۱۰ دلار از دیگری بگیرد. حال فرض کنید که حسین در مسابقه برنده میشود، اما علی از پرداخت ۱۰ دلار اجتناب میکند و ادعا دارد که حسین تقلب کرده است.
این مثال به درستی نشان میدهد که در قراردادهای سنتی نیاز به یک شخص ثالث و قابل اعتماد وجود دارد که موارد بعد توافق را پیگیری کند. همین موضوع نیز منجر به افزایش هزینهها و کاهش امنیت این دسته از قراردادها میشود. اما قراردادهای هوشمند در بلاک چین این مشکل را حل کردهاند و به صورت خودکار در صورت تحقق شرایط توافق، مبلغ (مورد) توافق را از بدهکار گرفته و به طلبکار انتقال میدهند.
به عبارت سادهتر، یک قرارداد هوشمند در بلاکچین درست مانند یک دستگاه فروش دیجیتالی عمل میکند؛ یعنی این نوع از قرارداد با ورودیهای خاص، خروجیهای از پیش تعیین شدهای را تضمین میکند. فرض کنید فرد از یک دستگاه فروش دیجیتالی، محصولی را انتخاب میکند. سپس دستگاه خودپرداز مبلغ مورد نیاز برای خرید محصول را به عنوان خروجی به کاربر نمایش میدهد. پس از وارد کردن مقدار مورد نظر توسط کاربر، دستگاه درستی مقدار را به طور خودکار تایید میکند. در صورت تایید دستگاه، محصول مورد نظر تحویل کاربر داده میشود. اگر کاربر پول کافی را پرداخت نکند، دستگاه محصول را تحویل نخواهد داد.
اجرای خودکار قرارداد هوشمند اتریوم
یکی از مهمترین مزایای قراردادهای هوشمند در بلاکچین نسبت به قراردادهای معمولی، اجرای خودکار قرارداد در صورت رعایت شرایط لازم است. در واقع نیازی نیست منتظر بمانید تا یک نفر نتیجه را اجرا کند؛ چراکه قراردادهای هوشمند نیاز اعتماد کردن به دیگران را از بین میبرند.
قرارداد هوشمند اتریوم امکان خلق نتایج بدون تفسیر
یکی دیگر از نقاط ضعف قراردادهای سنتی دخالت نظرات و سلایق انسانی است. برای مثال، دو قاضی ممکن است یک قرارداد سنتی را به دو طریق مختلف تفسیر کنند. تفاسیر آنها میتواند منجر به تصمیمگیریها و نتایج متفاوت شود. اما قراردادهای هوشمند در بلاکچین امکان تفاسیر مختلف را از بین میبرد، زیرا آنها دقیقا بر اساس شرایط نوشته شده در کد قرارداد اجرا میشوند. این بدان معنا است که در شرایط یکسان، یک قرارداد هوشمند نتایج یکسانی را به همراه خواهد داشت.
شفافیت و استفاده عمومی با قرارداد هوشمند اتریوم
قرارداد های هوشمند در بلاک چین منجر به شفافیت برای عموم شدهاند. از آنجایی که یک قرارداد هوشمند اتریوم روی یک بلاک چین عمومی و منبع باز ایجاد میشود، هر کسی میتواند فورا انتقال داراییها و سایر اطلاعات مرتبط را ردیابی و بررسی کند. این در حالی است که در قراردادهای سنتی این امکان وجود ندارد و شما نمیتوانید روند بررسی یک پرونده یا قرارداد را پیگیری کنید. با این حال، بررسی موارد ذکرشده در هر قرارداد هوشمند، پیش از تایید یا تعامل با آن امکانپذیر است.
حفاظت از حریم خصوصی
بلاک چین و قراردادهای هوشمند میتوانند از حریم خصوصی شما محافظت کنند؛ چراکه در فضای بلاکچین، تراکنشهای شما به صورت عمومی به یک آدرس رمزنگاری منحصربهفرد به شما و نه هویت واقعی شما، مرتبط هستند.
ساخت قرارداد هوشمند اتریوم
در حالی که بیشتر قراردادهای هوشمند بر پایه اتریوم ساخته میشوند، سایر بلاکچینها از جمله؛ سولانا، پولکادات، بایننس چین و… نیز از قراردادهای هوشمند پشتیبانی میکنند. با این حال، اتریوم همچنان به عنوان محبوبترین پروتکل برای ایجاد یک قرارداد هوشمند در بلاکچینها شناخته میشود. در ادامه، به آموزش گام به گام نحوه ایجاد و استقرار یک قرارداد هوشمند در اتریوم میپردازیم:
مرحله ۱: اتصال به شبکه اصلی اتریوم
با دانلود و نصب افزونه کیف پول متامسک در مرورگر کروم، سپس فعال کردن آن و انجام تنظیمات لازم میتوانید به شبکه اصلی اتریوم متصل شوید.
مرحله ۲: انتخاب یک شبکه آزمایشی
لیستی از شبکههای آزمایشی از جمله؛ رابستن (Robsten)، رینکبی (Rinkeby)، کوان (Kovan) و گورلی (Goerli) در کیف پول متامسک وجود دارند. یکی از این موارد را برای آزمایش قرارداد هوشمند خود انتخاب کنید.
مرحله ۳: شارژ کیف پول با ETHهای تستنت
در نهایت، زمانی که آماده آزمایش قرارداد هوشمند خود هستید، باید اتر تستنت را در کیف پول خود داشته باشید. روند اضافه کردن اتر تستنت در متامسک ساده است. کافی است روی آیکون “Deposit”، سپس روی “Get Ether” کلیک کرده و دستورالعملها را ادامه دهید.
مرحله ۴: نوشتن کد قرارداد هوشمند
برای نوشتن قرارداد هوشمند خود در زبان سالیدیتی، یک زبان برنامهنویسی سازگار با بلاکچین اتریوم برای نوشتن قراردادهای هوشمند در بلاکچین، میتوانید از ادیتور در مرورگر Remix IDE استفاده کنید. ادیتور ریمیکس بهترین گزینه برای نوشتن قراردادهای هوشمند محسوب میشود، زیرا امکانات متعددی دارد و معمولا برای نوشتن قراردادهای هوشمند اولیه استفاده میشود.
مرحله ۵: ایجاد یک فایل با پسوند sol.
مرورگر ریمیکس را باز کنید و روی نماد (+) در سمت چپ کلیک کنید تا یک پسوند sol. ایجاد کنید. این کار یک فایل سازگار با پنجره اجرای سالیدیتی ایجاد میکند. در ادامه، نسخهای از کامپایلر را از مرورگر ریمیکس انتخاب و کد قرارداد هوشمند اتریوم خود را کامپایل کنید.
مرحله ۶: بسط دادن قرارداد هوشمند ایجادشده
با کلیک روی دکمه Deploy در مرورگر ریمیکس، قرارداد هوشمند را در شبکه آزمایشی اتریوم انتخابی خود گسترش دهید. پس از تکمیل تراکنش، آدرس قرارداد هوشمند ایجادشده توسط شما، در سمت راست مرورگر ریمیکس ظاهر میشود.
مرحله ۷: آماده کردن قرارداد هوشمند برای راهاندازی
ملاحظات و نکات لازم برای اجرای قرارداد هوشمند ایجادشده در بلاکچین اتریوم را انجام دهید. سپس قرارداد هوشمند ایجادشده را به شبکه اتریوم اضافه کنید.
مفید بود