قرارداد هوشمند چیست

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

برای درک بهتر قرارداد هوشمند، ابتدا باید بدانیم که یک قرارداد معمولی چیست.

یک قرارداد معمولی چیست؟

یک قرارداد معمولی، توافقی بین دو یا چند شخص است که آن‌ها را به چیزی در آینده متعهد می‌‌کند. مثلاً محمد برای استفاده از خانه علی هر ماه به او مبلغی پرداخت می‌کند، که به آن «قرارداد اجاره» هم می‌گویند. یا رضا تضمین می‌کند که در ازای گرفتن مبلغی پول، خسارت‌های احتمالی ماشین سعید در تصادفات را پرداخت کند که به آن «قرارداد بیمه» هم می‌گویند.

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

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

تاریخچه قرارداد هوشمند

این ایده ابتدا توسط دانشمند کامپیوتر و رمز نگاری، نیک سابو در سال ۱۹۹۴ مطرح شد. او اصول اصلی کار را تعریف کرد، اما در آن زمان فضای مناسب برای تحقق ایده‌ها وجود نداشت. با ظهور فناوری بلاک چین (زنجیره بلوکی)، ایدهٔ قراردادهای هوشمند عملیاتی شد. بیت کوین به عنوان اولین ارز دیجیتال غیرمتمرکز جهان پایه‌گذار نوعی قرارداد در بلاک چین بود اما پروتکل بیت کوین فقط با هدف ایجاد یک ارز خصوصی توسعه یافته بود و نمی‌توانست تمام نیازها و فرایندها را انجام دهد. اتریوم امکان ایجاد قراردادهای هوشمند را برای تمام پروژه‌ها عملی کرد و گام نوینی در جهت هوشمند سازی جهان برداشت.

قرارداد هوشمند چگونه کار می کنند؟

ایده اولیه قراردادهای هوشمند در سال ۱۹۹۳ توسط یه مهندس کامپیوتر و رمزنگاری به نام نیک سابو به عنوان یک دستگاه داد و ستد خودکار معرفی شد.

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

در عوض، اتریوم جایگزین زبان محدودتر بیت کوین است و به توسعه دهندگان اجازه می دهد برنامه های خود را روی بلاکچین اتریوم بنویسند. اتریوم به توسعه دهندگان این امکان را می دهد که قراردادهای هوشمند خود یا “autonomous agents” را برنامه ریزی کنند.

اکثر بلاکچین ها اساساً محدود هستند. اما اتریوم متفاوت است. قراردادهای هوشمند اتریوم به توسعه دهندگان خود اجازه می دهد تا هرگونه عملیات مورد نظر خود را ایجاد و راه‌اندازی کنند، با ایجاد هزاران برنامه متنوع که تصویری از بلاکچین را ارائه می دهد.

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

قراردادهای هوشمند می توانند:

  • خدمات دیگری را برای سایر قراردادها فراهم کنید (مشابه نحوه کار یک کتابخانه نرم افزاری)
  • ساخت برنامه هایی برای بیمه
  • اطلاعات مربوط به یک برنامه مانند اطلاعات ثبت دامنه یا سوابق عضویت را ذخیره می کند
  • ایجاد حساب های مشترک و چند امضایی

پیاده سازی قرارداد هوشمند

کد قرارداد هوشمند پس از نوشته شدن توسط برنامه‌نویس از طریق یک کلاینت (نرم افزار رسمی که شما را مستقیم به بلاک چین متصل می‌کند) به صورت یک تراکنش بر روی بلاک چین ثبت می‌شود. قراردادهای هوشمند توسط یک یا چند زبان برنامه‌نویسی نوشته می‌شوند. مثلا زبان برنامه نویسی قراردادهای هوشمند اتریوم، سالیدیتی (Solidity) است. پس برای یادگیری نوشتن یک قرارداد هوشمند برای بلاک چین اتریوم نیاز است تا زبان برنامه‌نویسی سالیدیتی را یاد بگیرید.

اجرای قرارداد هوشمند

برای انجام تعامل با قرارداد ثبت شده هم باید با تراکنش این کار را انجام داد. البته اگر فقط نیاز به بررسی وضعیت قرارداد باشد، نیاز به تراکنش نیست. یک تراکنش به قرارداد به عنوان ورودی انجام می‌شود. سپس نودها با استفاده از ماشین مجازی اتریوم (EVM) خود و ورودی دریافت شده، قرارداد را اجرا می‌کنند. ماشین مجازی اتریوم فضایی مجازی برای اجرای قراردادها است. اگر کارمزد قرارداد به اندازه کافی باشد، تراکنش تایید می‌شود.

به عنوان یک کاربرد معمولی، برای استفاده کاربردی از قراردادهای هوشمند نیاز نیست که بدانید دقیقا چطور کار می‌کنند، همانطور که برای استفاده از اینترنت نیاز نیست بدانید که اینترنت دقیقا چطور کار می‌کند.

مزایای قرارداد هوشمند

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

امنیت

قرارداد هوشمند به صورت هوشمند در میان همه گره‌های موجود در شبکه توزیع می‌شود. به این ترتیب امکان گم شدن و یا تغییر غیرمجاز آن از بین می‌رود.

هزینه پایین و سرعت بالا

این قراردادها به صورت خودکار اجرا می‌شوند و نیاز به واسطه و شخص ثالث میانجی را از بین می‌برند.

تنوع زیاد

طیف بسیار متنوعی از قراردادهای هوشمند وجود دارد که می‌توانید یکی از آنها را انتخاب کرده و بر اساس نیاز خود، بخشی از بندهای آن را تغییر دهید.

معایب قرارداد هوشمند

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

عامل انسانی

کدها در قرارداد هوشمند توسط انسان نوشته می‌شود و انسان نیز ممکن است اشتباه کند! اگر قرارداد هوشمند بر روی بلاک چین قرار گیرد، دیگر نمی‌توان آن را تغییر داد. یکی از معروف‌ترین اشتباهات انسانی درباره قراردادهای هوشمند برای The DAO روی داد. اشتباه برنامه‌نویسان در نوشتن این کد برای کاربران گران تمام شد و برخی هکرها توانستند از اشتباه موجود در آن سوءاستفاده کرده و حدود ۶۰ میلیون دلار را سرقت کنند.

وضعیت قانونی نامطمئن

هنوز هیچ کشوری تاکنون به وضع قوانین برای قراردادهای هوشمند نپرداخته است. در نتیجه، این امکان وجود دارد که برخی کشورها به زودی یک سری مقررات در این زمینه تهیه کنند که این موجب تغییر وضعیت حقوقی این نوع قرارداد خواهد شد.

هزینه نگارش

قراردادهای هوشمند را نمی‌توان بدون برنامه نویسی پیاده کرد. لازم است حتما از یک یا چند برنامه نویس خبره برای نوشتن این نوع قرارداد استفاده کرد و البته ساختار داخلی شرکت‌های طرف قرارداد نیز باید با فناوری بلاک چین سازگار باشد.

برای ایجاد یک قرارداد هوشمند به چه چیزهایی نیاز دارم؟

  • موضوع قرارداد و دسترسی

این برنامه باید به محصول یا خدمات تحت قرارداد دسترسی داشته باشد تا به طور خودکار آن‌ها را در فرایند عرضه یا خرید کنترل کند. مثلا اگر قرارداد قرار است تا در صورت دریافت پول یک فایل را تحویل بدهد، باید به فایل دسترسی داشته باشد.

  • شرایط قرارداد

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

  • اوراکل (Oracle)

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

  • پلتفرم انحصاری

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

کاربردهای قرارداد هوشمند

قراردادهای هوشمند را می‌توان در زمینه‌های مختلف به کار گرفت که در ادامه به بررسی برخی از آنها می‌پردازیم:

انتخابات

نتایج آراء را می‌توان بر روی بلاک چین قرار داد و بر روی گره‌های شبکه توزیع کرد. این داده‌ها محرمانه می‌ماند و امکان هر نوع دستکاری در آراء و نتیجه انتخابات نیز از بین می‌رود.

لجستیک (حمل‌ونقل)

زنجیره تامین دربردارنده بخش‌های مختلف است. هر بخش باید از بخش قبلی خود تائیدیه بگیرد تا مفاد قرارداد همکاریش قابل اجرا شود. قراردادهای هوشمند همچنین امکان شفافیت بیشتر در بندهای قرارداد و نیز جلوگیری از کلاهبرداری را نیز فراهم می‌سازند. قراردادهای هوشمند در حوزه‌ّای دیگری نظیر مدیریت، نظام بانکی، املاک، اینترنت اشیاء و … نیز کاربرد دارند.

مدیریت

قراردادهای هوشمند می‌توانند مثل ربات‌ها فرایندهای روتین را به شکلی دقیق اجرا کنند. به عنوان مثال می‌توان قراردادی برای پرداخت حقوق به کارمندان نسبت به ساعات فعالیت تنظیم کرد که نیاز به اعتماد کردن به حسابدارها نباشد.

بیمه

با قراردادهای هوشمند می‌توان نیاز به واسطه‌ها را در سیستم‌های سنتی بیمه از بین برد. پرداخت خودکار خسارت، دریافت حق بیمه و تمدید بیمه با قراردادهای هوشمند چیزیست که شرکت‌های بیمه روی آن کار می‌کنند.

مالکیت معنوی

یک اثر مخصوصا از نوع فایل (موسیقی، عکس، فیلم و …) پس از انتشار در فضای اینترنت به شدت در خطر نقض کپی رایت قرار دارد که ضرر زیادی به مالک اثر می‌رساند. با استفاده از قراردادهای هوشمند می‌توان برای استفاده از یک فایل، یک سری شرایط خاص مثل پرداخت بها با یک توکن خاص را تعیین کرد. امروزه پروژه‌های زیادی برای این هدف در حال کار هستند.