قرارداد هوشمند (Smart Contract) چیست؟

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

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

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

تصور کنید در خیابان هستید و می‌خواهید تاکسی سوار شوید. از تاکسیِ اینترنتی خودرو درخواست می‌کنید و ماشینِ خودرانی (بدون راننده) سوارتان می‌کند. تاکسی به پمپ‌بنزین می‌رود و هزینه سوخت را هم از ارز دیجیتالی که از مسافرهای قبلی دریافت کرده است، پرداخت می‌کند.

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

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

به‌زبان خیلی ساده، قرارداد هوشمند یا همان اسمارت کانترکت (Smart contract) یک کد برنامه‌نویسی است. این کد شامل یک‌سری دستورات است که روی بلاک چین پیاده می‌شود. در صورت رخ‌دادن شرایطی خاص، این دستورات به‌اجرا درمی‌آیند.

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

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

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

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

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

در زندگی روزمره با قراردادها زیاد سروکار داریم.

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

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

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

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

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

تفاوت قرارداد هوشمند و قرارداد معمولی چیست؟

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

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

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

با قراردادهای هوشمند می‌شود برنامه‌ها و پروژه‌هایی را توسعه داد که بدون هیچ‌گونه واسطه‌ و از کارافتادگی تا ابد به کار خود ادامه دهند. به این برنامه‌ها برنامه‌های غیرمتمرکز (Dapp) هم می‌گویند.

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

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

مزایای غیرمستقیم قراردادهای هوشمند بی‌شمار است. با این حال، اگر بخواهیم تأثیر مستقیم این قراردادها را بررسی کنیم، به مزایای زیر می‌رسیم:

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

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

در حقیقت، اگر چالش‌هایی که در ادامه مقاله به آن‌ها می‌پردازم رفع شوند، پذیرش قراردادهای هوشمند، انقلابی در صنایع متنوع ایجاد می‌کند؛ از امور مالی گرفته تا بیمه و املاک و مدیریت زنجیره تأمین.

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

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

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