
قراردادهای هوشمند اتریوم چیست
بعد از تاسیس اتریوم که در مقالههای گذشته مجله ارز دیجیتال در مورد آن صحبت کردیم، وقتی در سال ۲۰۱۵ ویتالیک بوترین اتریوم را بوجود آورد و اولین کاربردهای قرارداد هوشمند را در شبکه غیرمتمرکز بلاکچین تعریف کرد، نیک سابو(Nick Szabo) برای اولین بار ایده قراردادهای هوشمند را بیان کرد که هدف او جلوگیری از فساد و خطاهای انسانی بود که این امر به وسیله ترکیب پروتکلها با رابطهای کاربری صورت گرفت. او میخواست قراردادهای معمولی را به شکل کدهای رایانه ای بنویسد تا کسی نتواند آن ها را تغییر دهد.
تعریف قرارداد هوشمند:
قرارداد در مفهوم سنتی آن به توافق حاصل فیمابین دو یا چند نفر گفته میشود که منجر به تبادل چیزی میشود. اما قرارداد هوشمند یا به اصطلاح اسمارت کانترکت (Smart Contract) اندکی متفاوت است. این قراردادها بعد از تنظیم و ثبت در بلاکچین قرار داده میشوند و منجر به اجرای کدهایی خوداجرا میشوند که دیگر امکان متوقف کردن روند کار آنها امکانپذیر نیست حتی توسط نویسنده آن. این قراردادها کدهای خوداجرا هستند که مجموعهای از دستورالعملها را انجام میدهند و پس از آن در زنجیرهیی از بلوکهای مورد تأیید قرار میگیرند.
از جمله ویژگیهای این قراردادها میتوان به مستقل، غیرمتمرکز، شفاف و غیرقابل اعتماد بودن آنها اشاره کرد. این کدهای خوداجرا شرایط توافق را اجرا میکنند و میتوان آنها را یک تراکنش تلقی کرد که به آدرسی در یک بلاکچین ارسال میشود، جایی که توسط مکانیسم اجماع آن بلاکچین تأیید میشوند. هنگامی که این تراکنش در یک بلوک گنجانده شد، دیگر امکان بازگشت آن وجود ندارد.
کاربرد قراردادهای هوشمند:
همانطور که گفتیم از مزیتهای قراردادهوشمند این است که خوداجرا هستند که این مزیت باعث میشود نیاز به واسطه در اجرای قرارداد را منتفی کند و همچنین این امر باعث کاهش هزینههای ممکن و سادهتر کردن فرایند قرارداد میشود. غیرقابل تغییر بودند کد را میتوان یک مزیت یا نقطه قوت دانست اما در صورتی که اشکالی در کد وجود داشتهباشد، هیچ راهی برای منقضی کردن یا تغییر قراردادهوشمند وجود ندارد، مگر اینکه از قبل این شرایط پیش بینی شده باشد و در کدها گنجانده شده است.
قراردادهای هوشمند شدیدا قابل سفارشیسازی بوده و امکان طراحی آنها به روشهای مختلف میسر است. از دیگر کاربردهای قراردادهای هوشمند میتوان به ساخت کیف پول ارز دیجیتال، صرافیهای غیر متمرکز، بازیها و اپلیکیشنهای موبایل اشاره کرد. به عنوان نمونه میتوان به سیستم مالی غیر متمرکز یا دیفای اشاره کرد.
از کاربردهای قراردادهای هوشمند می توان به موارد زیر اشاره کرد:
- بکارگیری در دنیای مالی و بانکی به دلیل اطمینان و شفافیت این قراردادها
- استفاده در سیستم رای گیری برای افزایش شفافیت و در دسترس بودن
- استفاده در زنجیره تامین کالا برای نظارت بر کالاها
- خودکار کردن همه اعمال و پرداختها
ویژگیهای اصلی قرارداد هوشمند
این قراردادها دارای ویژگی های زیر هستند
- توزیع شدن: یکی از ویژگیهای قراردادهای هوشمند است که در همه گرههای اتریوم تکثیر میشود و علاوه بر آن از تفاوتهای مهم آن با سایر راهحل های مبتنی بر سرورهای متمرکز است.
- این قراردادها در صورتی اجرا میشوند که شرایط از پیش طراحی شده فراهم باشد که به معنای قطعی بودن آنهاست.
- قراردادهای هوشمند میتوانند کارها را خودکار کرده و از دخالت مستقیم انسان جلوگیری کنند.
- تغییر ناپذیر بودن از دیگر ویژگیهای آنهاست. تنها در صورتی که یک عملکرد خاص تعیین شده باشد میتوان آنها را حذف کرد.
- پیش از استقرار آنها میتوان به روشهای مختلف کدنویسی انجام داد و آنها را سفارشیسازی کرد و همین امر باعث میشود تا منجر به ایجاد انواع اپلیکشینهای غیرمتمرکز با استفاده از آنها شویم.
- اعتماد دو یا چند نفر در یک قرارداد که هیچگونه شناخت و اعتمادی نسبت بهم ندارند از دیگر ویژگیهای این نوع قراردادهاست. علاوه بر آن، فناوری بلاکچین از صحت داده اطمینان حاصل میکند.
- از آنجایی که قراردادهای هوشمند مبتنی بر بلاکچین عمومی است، کد منبع آن غیر قابل تغییر است و همچنین قابل مشاهده برای همگان است.
نحوه عملکرد قرارداد هوشمند یا اسمارت کانترکت
در قراردادهای سنتی تقریبا در تمام معاملاتی که صورت میگیرد، واسطهایی نقش دارند تا قرارداد خاتمه پیدا کند. همانطور که اشاره کردیم یکی از مزیتهای قراردادهای هوشمند حذف واسط هست که مزیتهای دیگری نیز به دنبال دارد. کاهش هزینهها، سادهتر کردن روند و از همه مهمتر مسئله اعتماد را برطرف کردهاند. قراردادهای هوشمند براساس if… then کار میکنند. به طور مثال: اگر مبلغ توافق شده برای فروش خانه به حساب فروشنده واریز شد پس مالکیت خانه منتقل میشود و در صورتیکه شرط برآورده نشود انتقال مالکیت هم صورت نخواهد گرفت. پس در نتیجه قرارداد هوشمند در واقع تنها قطعه کدهایی بوده که روی سیستم بلاکچین اجرا میشوند.
در شبکه اتریوم، قراردادهای هوشمند مسئول اجرا و مدیریت عملیاتهای بلاکچین هستند که در زمان تعامل کاربران یا همان آدرسها با یکدیگر رخ میدهند. هر قرارداد هوشمند شامل یک کد قرارداد و دو کلید عمومی میباشد. کد قرارداد توسط سازنده آن ایجاد میشود و کلید عمومی نیز شناسه خاص مربوط به قرارداد است. این قراردادها تنها توسط یک EOA (کاربر) فعال میشوند.
اساسا هر قراردادهوشمند شامل سه قسمت میباشد:
بخش اول، دو یا چند طرف هستند که امضاکنندگان آن قرارداد محسوب میشوند که میتوانند از طریق امضای دیجیتال با قرارداد موافقت یا مخالفت خود را اعلام کنند. دومین بخش، موضوع قرارداد میباشد که باید صرفا در محیط قرارداد وجود داشته باشد و فقط در اینجا معنی پیدا کند. و سومین بخش، اصلاحات است، این اصلاحات باید به طور کامل از طریق زبان برنامهنویسی مناسب با شرایط قرارداد هوشمند پیادهسازی شوند.