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