قرارداد هوشمند چیست؟ معرفی Smart Contract و بررسی کاربرد های آن
در سال ۱۹۹۶ یک کارشناس علوم کامپیوتر و رمزنگاری به نام نیک زابو (Nick Szabo)، ایده اولیه قرارداد هوشمند را مطرح کرد. زابو پس از چندین سال فعالیت بر روی این ایده، نسخههای مختلفی از آن را منتشر کرد. اما این قراردادها در آن سالها چندان مورد توجه قرار نگرفت. در سال ۲۰۰۹ با معرفی بیت کوین و شبکه بلاکچین، فضای مناسبی برای ارائه و معرفی قرارداد هوشمند ایجاد شد. امروزه این قراردادها کموبیش به معاملات تجاری و اقتصادی راه پیدا کردند و افراد بسیار در جهان با آنها آشنا هستند. این قراردادها مانند برنامههای کامپیوتری کدنویسی و در بستر بلاکچین، با توجه به الگوریتمهای این شبکه اجرا میشوند.
در ادامه این مقاله به بررسی قرارداد هوشمند به همراه مزایا و معایب استفاده از آنها میپردازیم.
مفهوم قرارداد هوشمند چیست؟
قرارداد هوشمند یا اسمارت کانترکت (smart contract) توافقی است بین دو شخص یا نهاد در قالب کدهای رایانهای که برای اجرای خودکار برنامهریزی شده است. این ایده در دهه ۱۹۹۰ توسط نیک سابو، یکی از پیشگامان علوم کامپیوتر مدرن پیشنهاد شد. قرار داد هوشمند تحت شرایط و ضوابط خاص یک پروتکل بدون واسط اداره میشود و بندهای قرارداد از طریق بلاکچین که یک دفتر کل توزیع شده و غیرمتمرکز است ذخیره و اجرا میشود.
یک مثال برای قرارداد هوشمند
حتماً تا به حال در سطح شهر دستگاههای خودکار فروش آبمیوه را دیدهاید. در این دستگاه خبری از فروشنده بهعنوان واسطهی بین کارخانه و خریدار نیست. شما محصول موردنظر خود را انتخاب میکنید، پول را وارد یک دستگاه تمام اتوماتیک میکنید و دستگاه با توجه به برنامهای که برای آن مشخص شده، محصول را در اختیار شما قرار میدهد. قرارداد هوشمند نیز تقریباً به این شکل کار میکند. در این قراردادها خریدار بدون نیاز به واسطه مبلغی که برای معامله نیاز است وارد حساب بلاکچین خود میکند؛ سپس این مبلغ با توجه به مفاد قرارداد به حساب طرف دیگر معامله واریز میشود.
تفاوت قرارداد هوشمند با قرارداد سنتی
در قراردادهای سنتی که در حال حاضر در جهان رایج هستند، همیشه یک واسطه برای تنظیم قرارداد نیاز است. این واسطه یا شخص سوم برای تنظیم قرارداد مبلغی را نیز به عنوان کمیسیون دریافت میکند. قراردادهای سنتی امکان تغییر یا حذف دارند. هر یک از طرفین معامله میتواند به زبانی ساده زیر قولش بزند و همچنین امکان تقلب در این قراردادها همیشه وجود دارد.
اما قراردادهای هوشمند نیاز به واسطه ندارند و مانند سایر تراکنشهای ارز دیجیتال که در بستر بلاکچین انجام میشوند، به صورت همتا به همتا (P2P) میان طرفین معامله انجام میگیرد. همچنین غیر قابل تغییر بودن مفاد و شرایط قرارداد پس از تنظیم و انتشار آن، عملاً امکان فسخ یک طرفه و تقلب را از بین برده است.
اجزای قرارداد هوشمند چیست؟
هر smart contract از پنج رکن اساسی تشکیل شده که عبارتند از:
۱. امضا کنندگان: هر یک از طرفین اسمارت کانترکت از طریق امضای دیجیتال اعلام میکنند که قرارداد مورد تایید آنهاست.
۲. موضوع قرارداد: قراردادهای هوشمند باید دسترسی سریع به موضوع قرارداد داشته باشند. برای مثال، اگر در معامله قرار است به ازای مبلغی یکی از طرفین فایلی را دریافت کند؛ قرارداد باید به این فایل دسترسی داشته باشد.
۳. شرایط قرارداد: شرایط و ضوابط قرارداد هوشمند به زبان برنامهنویسی سالیدیتی نوشته میشود. این شرایط متناسب با فضای قرارداد نوشته شده و شامل تمام مواردی است که طرفین باید آنها را رعایت کنند (قوانین، خسارات، تخفیفها و …).
۴. اوراکل: سیستمی که قرار است اطلاعات خارج از بلاکچین را به قرارداد ارائه دهد. برای مثال، اگر موضوع قرارداد در رابطه با نفت است، یک سایت برای بررسی قیمت روزانه نفت در قرارداد تعریف میشود.
۵. پلتفرم اختصاصی: این قراردادها ابتدا در یک سیستم اختصاصی منتشر شده و میان کاربران آن توزیع میشوند. پس از آن نیاز به یک پلتفرم رسمی مانند بلاکچین اتریوم دارند تا اجرا شوند.
محیط قرارداد هوشمند
محیط قرارداد هوشمند مهمترین رکن اجرای آن است. محیطی که این قراردادها در بستر آنها منتشر میشوند، در وهلهی اول باید از سیستم رمزنگاری دادهها پشتیبانی کند تا طرفین قرارداد بتوانند از طریق کدهای رمزنگاری شده، قرارداد را اجرا و تایید کنند. این سیستم رمزنگاری در شبکه کرپیتوکارنسی مورد استفاده قرار میگیرد.
همچنین شبکهای که قرارداد هوشمند مبتنی بر آن است، باید غیرمتمرکز، بدون حضور نهاد مرکزی و بهطور خودکار فعالیت کند تا طرفین بتوانند به آن اعتماد کنند. همچنین دادهها باید در این شبکه شفاف و برای همه قابل رویت باشد. با توجه به ویژگیهایی که محیط قرارداد هوشمند باید داشته باشد، بلاکچین بهترین فضا برای اجرای این نوع قراردادها است.
در آخر اینکه بستر قرارداد هوشمند باید کاملاً قابل اطمینان باشد. این سیستمها باید دارای گواهی SSL و HTTPS باشند. همچنین باید سایر پروتکلهایی که برای افزایش امنیت بلاکچین در آنها اجرا شود تا شبکه کاملاً امن و مورد اطمینان طرفین قرارداد باشد.
قرارداد هوشمند چگونه اجرا میشود؟
کدهای قرارداد هوشمند پس از نوشتن از طریق یک کلاینت (نرمافزاری که ما را به بلاکچین متصل میکند)، بر بستر بلاکچین منتشر میشود. نودهای بلاکچین (کاربران)، برای تعامل با این قرارداد باید یک تراکنش با آن انجام دهند. اما اگر آنها فقط قصد بررسی و تایید قرارداد را داشته باشند، نیاز به انجام تراکنش نیست. نودها با استفاده از ماشین مجازی (فضایی برای اجرای قرارداد هوشمند) و ورودی دریافت شده، قرارداد را بر روی سیستم خود اجرا و اگر کارمزد آن مناسب باشد، قرارداد را تایید میکنند.
مزایای قرارداد هوشمند
حذف واسطهها: اصلیترین ویژگی اسمارت کانترکت، خود مختار بودن آن است. تنظیم و اجرای آنها احتیاج به واسطه ندارد و فقط طرفین قرارداد در آن دخیلاند.
قابل اعتماد بودن: استفاده از سیستم رمزنگاری و اجرای در یک بستر غیرمتمرکز و توزیع شده، احتمال تقلب، گم شدن و فسخ یک طرفه قرارداد را از بین برده است.
امنیت: سیستم رمزنگاری احتمال هک شدن قرارداد و سرقت دادههای آن را از بین میبرد.
کاهش هزینهها: با استفاده از قرارداد هوشمند برای انجام معاملات دیگر نیازی به پرداخت هزینه به دفاتر اسناد رسمی، بنگاههای معاملات ملکی و هر نوع واسطهی دیگر نخواهد بود.
تنوع: طیف گستردهای از قراردادهای هوشمند قابل اجرا هستند و میتوان با توجه به نوع معامله یکی از آنها را انتخاب کرد.
کارآمد بودن: قراردادهای هوشمند بر روی کاغذ نوشته نمیشوند و جابهجایی، انتقال و ارسال آنها بسیار آسانتر از قراردادهای سنتی است. همچنین نیازی نیست هر دو طرف قرارداد برای امضا در یک مکان حضور داشته باشند. این ویژگی آنها را کارآمدتر میکند و موجب صرفهجویی در زمان میشود.
معایب قراردادهای هوشمند
خطای انسانی: کدنویسی قراردادهای هوشمند توسط برنامهنویسان صورت میگیرد. بهدلیل انجام این فرایند توسط انسان، امکان خطا در آن همیشه وجود دارد. قبلتر اشاره کردیم که قرارداد هوشمند مانند سایر فعالیتهای مبتنی بر بلاکچین، غیرقابل تغییر است و اگر چنین خطایی صورت بگیرد، امکان اصلاح آن وجود ندارد و مشکلات جدی در مسیر اجرای قرارداد ایجاد خواهد شد.
رسمی نبودن: هنوز هیچ دولت یا نهاد قانونی، قراردادهای هوشمند را به رسمیت نمیشناسند و از آنها برای مبادلات تجاری استفاده نمیکند. بههمین دلیل، هنوز موضع نهادهای رسمی در رابطه با این فناوری مشخص نیست و ممکن است با ورود آنها به این مبحث قوانین جدیدی در این زمینه وضع شود که خوشایند همه نباشد.
هزینههای بالای تنظیم: یک برنامهنویس مبتدی نمیتواند smart contract تنظیم کند. برای این کار باید به سراغ افراد مسلط به کدنویسی، قوانین و ساختار بلاکچین رفت.
مشکلات اوراکلها: منابعی که هر اوراکل به آن استناد میکند متمرکز است. بنابراین ممکن است در قراردادهای بزرگ یکی از طرفین این سیستم را هک کند و اطلاعات آن را بر اساس منافع خود در مفاد قرارداد، تغییر دهد.
کاهش حریم خصوصی: میدانیم که اطلاعات در بلاکچین بین تمام نودهای شبکه (کاربران) توزیع میشود. شاید انتشار مفاد قرارداد برای تمام اعضای شبکه، امنیت آن را بالا ببرد، اما حریم خصوصی طرفین را تحت الشعاع قرار خواهد داد.
کاربرد قرارداد هوشمند
مهمترین ویژگی قراردادهای هوشمند این است که قابلیت اجرایی کردن تمام فعالیتها در فضای دیجیتال را دارند، البته این تنها در صورتی امکانپذیر است که بتوان آن فعالیت را به صورت دیجیتالی مشخص کرد. به همین دلیل کاربردهای قراردادهای هوشمند بسیار متنوع است. امروزه از smart contract در صنعت بیمه، بنگاههای معاملاتی، خرید ارز دیجیتال، ماشینهای خودران، انتخابات و رأیگیری، علوم پزشکی و درمانی، مالکیت معنوی (قوانین کپیرایت)، قراردادهای تجاری و اقتصادی میان دولتها و بسیاری دیگر که ممکن است تاکنون به آنها پی نبرده باشیم، استفاده میشود.
در حالت کلی میتوان کاربردهای اسمارت کانترکت را به صورت زیر دستهبندی کرد:
دیفای: دیفای یا امور مالی غیرمتمرکز مهمترین کاربرد قرار داد هوشمند است. منظور از دیفای تمامی فعالیتهای مالی مثل وامدهی، وامگیری و صرافی ارز دیجیتال است.
ایجاد توکن جدید: ایجاد توکنهای ارز دیجیتال یکی دیگر از کاربردهای مهم قراردادهای هوشمند است. توکنهای ارز دیجیتال با استفاده از قراردادهای هوشمند خود پروژه ساخته میشوند و در همان پروژه مشخص میشود که کاربرد توکنهای ایجاد شده چیست.
اتوماسیون: خودکارسازی یا اتوماسیون با استفاده از قراردادهای هوشمند کاربرد بسیار زیادی دارد. به عنوان مثال دولتها از این قابلیت میتوانند برای ثبت اسناد مربوط به املاک، خودرو و سایر داراییها بدون نیاز به نیروی انسانی کمک بگیرند.
بهترین پلتفرمهای قرارداد هوشمند
در سالهای اخیر تعداد پلتفرمهای قرداد هوشمند افزایش پیدا کرده است. اتریوم به عنوان اولین پلتفرم بلاکچین شناخته میشود که از قرارداد هوشمند استفاده کرده است. بعد از آن پلتفرمهای دیگری هم از قرارداد هوشمند استفاده کردند که در ادامه به معرفی مهمترین آنها میپردازیم:
اتریوم: از آنجایی که اتریوم اولین پلتفرم قرارداد هوشمند است، بزرگترین سهم از بازار اپلیکیشنهای غیر متمرکز را هم به خود اختصاص داده است و بیشترین مزیت استفاده برای dAppها را دارد.
پولکادات: اجرای فناوری پاراچین در شبکه پولکادات باعث شده تا این شبکه بتواند برنامههای کاربردی جدیدی را ارائه دهد. از طرف دیگر به کمک پاراچینهای متصل به شبکه رله از قراردادهای هوشمند پشتیبانی میکند.
سولانا: تراکنشهای سریع، مقیاس پذیر و ارزان از مهمترین ویژگیهای بلاکچین سولانا است. در حال حاضر این بلاکچین از قراردادهای هوشمند ساخته شده با زبانهای برنامه نویسی C++، C و Rust پشتیبانی میکند.
کاردانو: هر چند هنوز امکان قرارداد هوشمند در این شبکه فعال نشده است اما پلتفرم کاردانو در تلاش برای اجرای قابلیتهای قرارداد هوشمند از طریق به روزرسانی Goguen در سال جاری است.
کلاهبرداری از طریق قرارداد هوشمند
در پایان توجه داشته باشید که استفاده از قراردادهای هوشمند در هر حوزهای مستلزم بررسی دقیق تمام جوانب و نیازهای آن کسبوکار است. بهطور کلی نباید تصور کرد که چون این تکنولوژی امکان تقلب و کلاهبرداری را از بین میبرد، میتواند به سرعت وارد تمامی حوزهها شود.
بنابراین توصیه میکنیم قبل از هر اقدامی برای استفاده از قراردادهای هوشمند در مورد مکانیسمهای جلوگیری از کلاهبرداری نیز تحقیق کنید تا بتوانید از چالشهای احتمالی جلوگیری کنید.
قراردادهای هوشمند به گونهای هستند که تنها در صورت اجرای پیششرطهای توافق شده اجرا میشوند و پس از آن قابل دستکاری نیستند.
هر فردی قادر است یک قرارداد هوشمند بنویسد و آن را در شبکه مستقر کند. شما برای این کار نیاز به دانش برنامه نویسی سالیدیتی و مقدار کافی اتر برای اجرای قرارداد خود دارد.
در حال حاضر هزینه استقرار یک قرارداد هوشمند در بلاکچین اتریوم ۴۳۶ دلار است.
سالیدیتی قابلیتهای مختلفی را برای اتریوم فراهم کرده و به افراد این امکان را میدهد تا از توکنهای غیرقابل تعویض (NFT) در بلاکچین اتریوم استفاده کنند.
سلام امکان نوشتن قرارداد هوشمند برای ایرانیها وجود دارد . مثلاً دو قرارداد خرید و فروش ماشینهای کار کرده
که یک نفر سرمایه را تامین کند و دیگران خرید و فروش کنند و سود هم به نسبت تقسیم شود . اگر هست که بیشتر صحبت کنیم
سلام
بله رضا جان. از نظر تئوریک و حتی عملی امکان پیادهسازی چنین نوآوریهایی در بستر بلاکچین با استفاده از قراردادهای هوشمند وجود دارد. کمااینکه برخی کشورهای توسعه یافته هم، امروزه خدمات سرویس دهی به مشتریان را در بستر بلاکچین انجام میدهند.