آشنایی با قرارداد هوشمند Smart Contract به زبانی ساده با نیما حاجیان
قرارداد هوشمند کد یا برنامهای است که در صورت تحقق شرایطی خاص، بهطور خودکار و بدون نیاز به واسطه دستوراتی را اجرا میکند.
تصور کنید در خیابان هستید و میخواهید تاکسی سوار شوید. از تاکسی اینترنتی خودرو درخواست میکنید و ماشین خودرانی (بدون راننده) سوارتان میکند. تاکسی به پمپبنزین میرود و هزینه سوخت را هم از ارز دیجیتالی که از مسافرهای قبلی دریافت کرده است، پرداخت میکند.
سپس شما را به مقصدتان میرساند و کرایه سفرتان هم از کیف پولتان با ارزهای دیجیتال پرداخت میشود. قبل از آن، ماشین بطور خودکار هزینه بیمه سالیانه و بدهی ماهانه مالک خود را هم میپردازد و بعد از اینکه پیادهتان میکند، به تعمیرگاه میرود تا عیبهای احتمالی را هم برطرف کند.
شاید فکر کنید اینها صحنهای از فیلمی علمیتخیلی هستند؛ اما این آینده جهان است. قراردادهای هوشمند میتوانند در چنین آیندهای نقش اساسی داشته باشند.
در این مقاله، بدون واردشدن به مفاهیم فنی و پیچیده، قراردادهای هوشمند را با بیانی ساده توضیح میدهم و با ارائه مثالهای معتدد، درباره کاربردهایش میگویم. همچنین، ریسکها و چالشهای این فناوری را بررسی میکنم.
با جناب آقای نیما حاجیان پژوهشگر حوزه آینده پژوهی و مدیریت تکنولوژی تا پایان این مقاله همراه باشید.
بهزبان خیلی ساده، قرارداد هوشمند یا همان اسمارت کانترکت (Smart Contract) یک کد برنامهنویسی است. این کد شامل یکسری دستورات است که روی بلاک چین پیاده میشود. در صورت رخدادن شرایطی خاص، این دستورات بهاجرا درمیآیند.
مثلا:
اگر فلان اتفاق رخ داد، این دستورات را اجرا کن. اگر اتفاق دیگری رخ داد، دستور دیگر را اجرا کن و الی آخر.
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، حتی خود توسعهدهنده هم نمیتواند مانع اجرای آن شود؛ مگر آنکه پیش از اجرا، فکر آن را کرده باشد.
جذابیت دیگر قرارداد هوشمند روی بلاکچینهای عمومی این است که بررسی کد آن برای همه آزاد است و همه میتوانند از پشتپرده کدها باخبر شوند.
در زندگی روزمره با قراردادها زیاد سروکار داریم.
در حقیقت، یک قرارداد، توافقی است بین دو یا چند شخص که آنها را به چیزی در آینده متعهد میکند.
مثلاً محمد برای استفاده از خانه علی هر ماه به او مبلغی پرداخت میکند که به آن «قرارداد اجاره» هم میگویند. یا رضا تضمین میکند که در ازای گرفتن مبلغی پول، خسارتهای احتمالی ماشین سعید در تصادفات را پرداخت کند که به آن «قرارداد بیمه» هم میگویند.
کدهای کامپیوتری هم میتوانند نوعی قرارداد باشند؛ اما از نوع دیجیتالی.
بهعنوان نمونه، وقتی از اینترنت فایلی خریداری میکنید، در پشت صحنه کدهایی وجود دارند که برای آنها تعریف شده است: «اگر کاربر پول را پرداخت کرد و مبلغش کافی بود، لینک دانلود فایل را به او نمایش بده؛ در غیر این صورت پیغام خطا نمایش بده».
برای اجرای قراردادهای عادی نیاز به واسطههایی داریم که مجبور هستیم به آنها اعتماد کنیم. این واسطهها میتوانند سرورهای متمرکز کامپیوتری باشند یا بانکها و دولتها و دفترخانهها.
تفاوت قرارداد هوشمند و قرارداد معمولی چیست؟
چیزی که قرارداد هوشمند را از قراردادهای عادی متمایز میکند، استفاده از فناوری بلاکچین است.
بهعبارت دیگر، قرارداد هوشمند کدی است که روی بلاکچین فعال میشود تا بدون نیاز به واسطهها، شرایط توافقنامهای را بین دو طرف بررسی و اجرا کند.
زمانی که قرارداد هوشمندی روی یک بلاک چینِ آزاد مثل اتریوم اجرا شود، دیگر متوقف نمیشود و هیچکس نمیتواند جلوی اجرای آن را بگیرد؛ مگر اینکه از قبل در کد دستوراتی برای جلوگیری از عملیاتها اعمال شده باشد.
مزایای غیرمستقیم قراردادهای هوشمند بیشمار است. با این حال، اگر بخواهیم تأثیر مستقیم این قراردادها را بررسی کنیم، به مزایای زیر میرسیم:
- خودکارسازی: قراردادهای هوشمند با کاهش نیاز به واسطهها، کارایی را افزایش و خطای انسانی را کاهش میدهند.
- اعتماد در عین بینیازی از اعتماد: قراردادهای هوشمندی که روی بلاکچینهای امن و شفاف اجرا شوند، به اعتماد بیشتر طرفین کمک میکنند.
- امنیت: قراردادهای هوشمند از الگوریتمهای رمزنگاری استفاده میکنند تا تراکنشها را ایمن کنند؛ بنابراین ریسک تقلب کم میشود.
- سرعت: قراردادهای هوشمند با حذف کاغذبازیها و فرایندهای زمانبر، سرعت انجام تعاملات را بیشتر میکنند.
- توقفناپذیری: وقتی قرارداد هوشمندی پیادهسازی میشود، قوانین و شرایط موجود در آن قابلتغییر نیست. در همه شرایط، طرفین مجبور هستند به توافق پایبند بمانند.
- تمرکززدایی: قراردادهای هوشمندی که روی بلاکچینهای آزاد اجرا شوند، غیرمتمرکز هستند؛ یعنی کنترل آن در دست نهاد یا شرکت واحدی نیست و این یعنی خداحافظی با منفعتطلبی یا فساد در اجرای این قراردادها.
- قابلیت برنامهنویسی: میشود قراردادهای هوشمند را برای انجام طیف گستردهای از وظایف برنامهنویسی کرد؛ از تراکنشهای ساده گرفته تا فرایندهای پیچیده کسبوکاری.
در حقیقت، اگر چالشهایی که در ادامه مقاله به آنها میپردازم رفع شوند، پذیرش قراردادهای هوشمند، انقلابی در صنایع متنوع ایجاد میکند؛ از امور مالی گرفته تا بیمه و املاک و مدیریت زنجیره تأمین.
با مزایایی که بعضی از مهمترینشان را برشماردم و علاقه فزاینده به سیستمهای غیرمتمرکز، در آیندهٔ نزدیک حتماً کاربرد قراردادهای هوشمند غیرمتمرکز را در زندگی روزمره خود خواهیم دید.
قبل از هر چیز بگویم که بهعنوان کاربر، برای استفاده از قراردادهای هوشمند نیاز نیست که بدانید دقیقاً چطور کار میکنند؛ همان طور که برای استفاده از اینترنت نیاز نیست بدانید که شبکه جهانی وب چطور کار میکند.
با این حال، روش کار قراردادهای هوشمند مشابه با کار دستگاههای فروش خودکار است که در مترو و امکان عمومی آنها را میبینیم.
بهعنوان مثال، وقتی میخواهید از این دستگاهها نوشابه بخرید، پول را به دستگاه میدهید و دستگاه بهصورت خودکار پول را پردازش میکند و نوشابه را تحویل میدهد؛ بدون اینکه پای واسطهای در میان باشد.
برای اجرای قرارداد هوشمند روی بلاکچین بهطور کل گامهای زیر طی میشود:
۱. شرایط بهطور کد نوشته میشود و روی بلاکچین ذخیره میشود.
۲. وقتی شرایط موجود در کد برآورده شد، دستورات بهطور خودکار اجرا میشود.
۳. نتیجه اجرای قرارداد روی بلاکچین ذخیره میشود.
برای ایجاد یک قرارداد هوشمند به چه چیزهایی نیاز داریم؟
نیما حاجیان پژوهشگر حوزه آینده پژوهی و مدیریت تکنولوژی میگوید بهطور کلی، برای نوشتن کد قراردادهای هوشمند، علاوه بر یادگیری برنامهنویسی، باید روی موضوعات زیر متمرکز باشیم:
موضوع قرارداد و دسترسی
این برنامه باید به محصول یا خدمات تحتقرارداد دسترسی داشته باشد تا بهطور خودکار آنها را در فرایند عرضه یا خرید کنترل کند. مثلاً اگر قرارداد قرار است در صورت دریافت پول، فایلی را تحویل بدهد، باید به فایل دسترسی داشته باشد.
شرایط قرارداد
شرایط قرارداد هوشمند دنبالهای از عملیات است که در صورت رخدادن شرایط، موجب اجرای قرارداد میشود. نوشتن صحیح این شرایط برای داشتن قرارداد هوشمندی سالم و دقیق بسیار مهم است.
اوراکل (Oracle)
اوراکل به منبعی گفته میشود که اطلاعات خارجی را به قرارداد میدهد تا پردازش شوند؛ مثلاً اگر قرارداد باید اطلاعات هواشناسی را بررسی کند، اوراکل میتواند یک وبسایت هواشناسی باشد که اطلاعات از آن گرفته میشود.
پلتفرم انحصاری
پلتفرم اتریوم در حال حاضر محبوبترین پلتفرم برای اجرای قراردادهای هوشمند است و امتحان خود را پس داده است. بهجز این، بلاکچینهای زیاد دیگری مانند سولانا، کاردانو و … میتوانند قرارداد هوشمند را میزبانی کنند.
با اینکه قرارداد هوشمند انقلابی است و مزایای فوقالعادهای دارد، در حال حاضر هنوز نمیشود از آنها در سطح گسترده استفاده کرد. بزرگترین مشکلاتی که قراردادهای هوشمند در سطح فعلی با آنها دستوپنجه نرم میکنند عبارتاند از:
پیچیدگی و هزینهها
در حال حاضر، برای ایجاد قراردادهای هوشمندِ دلخواه راهی جز کدنویسی پیچیده وجود ندارد که فقط توسعهدهندگان حرفهای از پسش برمیآیند.
البته سرویسهایی برای ایجاد قراردادهای هوشمند بدون کدنویسی راهاندازی شده است؛ اما همچنان این سرویسها نمیتوانند قراردادهای پیچیده را طراحی کنند.
خطای انسانی
احتمال اشتباه یا باگ در کد قرارداد وجود دارد و بنابراین، اگر قرارداد هوشمند در بلاک چین ثبت شود، ازآنجاکه تغییرپذیر نیست ممکن است ضررهای مالی قابلتوجهای را متوجه کاربران کند.
بهعنوان نمونهای بارز، میتوان پروژه DAO در اتریوم را نام برد. وجود مشکل امنیتی در کد این قرارداد باعث شد تا بیش از ۵۰ میلیون دلار اتریوم سرقت شود و توسعهدهندگان مجبور شوند برای بازگردانی سرمایهها، هارد فورک انجام دهند که در نتیجه اتریوم جدیدی متولد شد و اتریوم قبلی، اتریوم کلاسیک نام گرفت.
مشکل اوراکلها
اوراکل به منبع یا سرویسی گفته میشود که برای قرارداد، دادههای خارجی را فراهم میکند تا آنها را پردازش کند.
فرض کنید محمد و علی روی هوای فردای تهران شرط میبندند. علی میگوید فردا هوا بارانی است و محمد میگوید فردا هوا آفتابی است. این دو نفر به چیزی نیاز دارند که بینشان داوری کند و هر کدام را که درست پیشبینی کرده بودند، بهعنوان برنده اعلام کند.
محمد و علی میتوانند از قرارداد هوشمند استفاده کنند که از سایت رسمی هواشناسی اطلاعات آبوهوا را بررسی میکند و این مفاد را اجرا کند:
- اگر هوای تهران بارانی بود، آن وقت: علی برنده است.
- اگر هوای تهران آفتابی بود، آن وقت: محمد برنده است.
سایت رسمی هواشناسی در اینجا اوراکل است. این سایت متمرکز است و شاید بشود با هککردن و تغییردادن اطلاعات هواشناسی در این سایت، قرارداد هوشمند را به اشتباه انداخت.
اوراکلها، تمرکززدایی قرارداد هوشمند را با چالش مواجه میکنند. برای این چالشها، پلتفرمهایی مانند چینلینک ایجاد شدهاند؛ اما همچنان در بعضی کاربردها مانند انتخابات، این چالش بسیار جدی است.
قراردادهای هوشمندِ بلاکچینی هنوز در مراحل اولیه خود هستند و قطعاً چیزهای زیادی برای یادگیری بیشتر درباره پیچیدگیهای قراردادهای هوشمند و نحوه استفاده از آنها در صنایع مختلف وجود دارد و وجود خواهد داشت. به همین دلیل، حتماً توصیه میکنم که اخبار این نوآوری را دنبال کنید و با آخرین پیشرفتها در این زمینه بهروز باشید.