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