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