نسل دوم قراردادهای هوشمند یا KCS2 در راه است

شبکه ققنوس با بهره‌گیری از ظرفیت فناوری استلار نسل اول قراردادهای هوشمند خود را عرضه و نیازمندی‌های کاربران خود را رفع کرده است. نسل اول قرارداد هوشمند چیزی جز توالی تراکنش‌های هوشمند از پیش تعیین شده، در راستای اجرایی ساختن بندهای یک توافق بین چند ذی‌نفع نیست. کاربران می‌توانند با استفاده از قابلیت‌های تراکنش‌های شبکه مانند چندامضایی، بازه زمانی و عدد توالی نحوه مبادلات مالی یک قرارداد را به صورت توالی تراکنش‌های هوشمند تنظیم کرده و در زمان نیاز به شبکه ارسال کنند. در این مقاله به بیان معماری نسل دوم قرارداد هوشمند ققنوس می‌پردازیم. این نسل از قراردادها با بهره‌گیری از ظرفیت‌های نسل اول قرارداد هوشمند، بستری را برای اجرای قرارداد پیچیده‌تر با بهره‌گیری از منطق تعریف شده برای ذی‌نفعان را ایجاد خواهد کرد.مشکلات قراردادهای هوشمند اولیهنسل اول قراردادهای هوشمند انعطاف لازم برای تعریف قراردادهای حاوی شرایطِ با منطق پیچیده‌تر را ندارند. به عبارتی این قرارداد هوشمند تنها شامل تراکنش‌های از پیش تعیین شده هستند. لذا با توجه به پیشرفت سامانه‌های فناوری اطلاعات و وابستگی سرویس‌های فناوری به یکدیگر نیازش تا قراردادهایی با قابلیت پذیرش داده‌های ورودی از سیستم‌های پیچیده‌تر، تحلیل و پردازش آن‌ها با توجه به شرایط و اهداف کاربران و کاوش وضعیت لحظه‌ای شبکه دفترکل توزیع شده و تبادلات آن، ایجاد شود.در صورتی که قرارداد هوشمند بر روی شبکه اصلی اجرا شود، کلیه معاملات و تراکنش‌های آن قابل مشاهده و پیگیری می‌باشد که علاوه بر مزایای شفافیت، نقض حریم خصوصی را در پی خواهد داشت. همچنین در صورت اجرای قرارداد هوشمند برروی گره‌های دفترکل توزیع شده به‌دلیل ازدیاد حجم پردازش‌ها در قراردادهای هوشمند پیچیده‌تر، زمان اجرای آن برای هر گره افزایش می‌یابد که این عامل موجب تأخیر در فرآیند اجماع روی شبکه اصلی می‌شود.از دیگر محدودیت‌های نسل اول قراردادهای هوشمند عدم امکان اتصال به APIهای خارج از شبکه و اینترنت اشیا است.قابلیت‌های نسل دوم قراردادهای هوشمندانتظار می‌رود نسل دوم قرارداد هوشمند ققنوس ویژگی‌های زیر تأمین نماید:– عدم الزام به استفاده از یک زبان برنامه‌نویسی خاص برای توسعه و پیاده‌سازی قراردادهای هوشمند.– فراهم آوردن امکان استفاده از فضای ذخیره بیشتر بر حسب نیاز قرارداد هوشمند.– امکان دریافت ورودی‌ها به قراردادهای مختلف از سیستم‌های پیچیده.– امکان استفاده قرارداد هوشمند از اطلاعات موجود در شبکه دفتر کل توزیع شده.– اجرای قراردادهای منعطف با منطق و پردازش پیچیده‌تر.تمامی این ویژگی‌ها در عین حفظ سرعت و امنیت شبکه انجام شده و نتیجه پایانی اجرا قرارداد بر روی دفتر کل توزیع شده ثبت خواهد شد. همان گونه که در بخش بیان مسئله ذکر شد در صورت اجرای قرارداد هوشمند برروی گره‌های شبکه اصلی، فرایند اجماع با تاخیر همراه خواهد بود. برای رفع این مشکل مفهومی به نام زنجیره کناری معرفی می‌شود.زنجیره کناری متشکل از چند گره است که مانند زنجیره اصلی ارتباط آن‌ها از نوع نقطه‌به‌نقطه می‌باشد و برای یک هدف مشخص با یکدیگر اجماع می‌کنند. نسل دوم قرارداد هوشمند ققنوس مبتنی بر مفهوم زنجیره کناری طراحی شده است و پس از اجماع در زنجیره کناری، نتیجه نهایی در دفتر اصلی شبکه ققنوس ذخیره می‌شود. ایجاد زنجیره کناری مزایای زیر را دربر دارد:– افزایش امنیت:هنگام نیاز به اجرای قرارداد هوشمند، زنجیره کناری با فراهم آوردن سندباکس به آزمایش آن کمک می‌کند. این زنجیره می‌تواند با ایجاد گره‌های بیشتر امنیت برنامه را نیز افزایش دهد. همچنین شبکه اصلی از خطرات ناشی از اجرای برنامه‌های ناامن محفوظ می‌ماند.– افزایش سرعت:بدلیل ماهیت پردازشی نسل دوم قرارداد هوشمند ققنوس، اجرای آن در برنامه‌های پیچیده تر زمان‌بر خواهد بود. بدین ترتیب با برون سپاری برای اجرای قرارداد هوشمند به زنجیره کناری، بار پردازشی از زنجیره اصلی به زنجیره کناری منتقل و زمان اجماع در زنجیره اصلی حفظ می‌شود.– تمرکز زدایی:زنجیره کناری مانند زنجیره اصلی از معماری غیر‌متمرکز استفاده می‌کند.تصویر بالا شماتیک یک زنجیره کناری را نمایش می‌دهد. در این معماری زنجیره کناری داده‌های اولیه را جهت پردازش از بلاک‌چین اصلی دریافت می‌کند و پس از اجماع، نتیجه نهایی را به بلاک‌چین اصلی جهت ذخیره در یک بلاک ارسال می‌کند.اجرا و پیاده سازی قرارداد هوشمند در دیگر بلاک‌چین‌ها محدودیت‌های زیر را دارند. این پلتفرم سعی دارد این محدودیت‌ها را رفع کند:۱- برخی از قراردادهای هوشمند نیازمند تایید و امضای ذی‌نفعان آن قرارداد می‌باشد. به همین منظور یکی از دغدغه‌های یک ذی‌نفع جهت اجرای قرارداد هوشمند، جمع‌آوری امضای دیگر ذی‌نفعان می‌باشد.۲- همان‌گونه که اشاره شد، قرارداد هوشمند توالی چند تراکنش هوشمند می‌باشد. منطق ساخت این تراکنش ها پس از بررسی و پردازش داده‌ها صورت می‌پذیرد. جهت پیاده‌سازی این منطق در شبکه اتریوم، از یک زبان برنامه‌نویسی اختصاصی به نام سالیدیتی استفاده می‌شود.با توجه به محدودیت‌های برنامه‌نویسی این زبان، امکان ایجاد برنامه‌های پیچیده و استفاده از الگوریتم‌های یادگیری ماشین یا هوش مصنوعی محدود است. همچنین حجم برنامه‌های سالیدیتی نمی‌تواند از ۲۴ کیلوبایت بیشتر باشد که امکان ایجاد برنامه‌های با حجم بیشتر را دارا نمی‌باشد.تعریف اجزا و موجودیت هاالزام استفاده از زنجیره کناری در یک بلاکچین به‌دلیل افزایش سرعت، امنیت و مقیاس پذیری ثابت شده می‌باشد. به همین دلیل شبکه ققنوس دارای یک زنجیره کناری به نام قرارداد هوشمند ققنوس ۲.۰ یا KSC2 می‌باشد. هدف از آن استقرار و اجرای قرارداد هوشمند ایجاد شده است. این زنجیره متشکل از اجزا و موجودیت‌های گوناگون است که با تعامل با یکدیگر هدف را اجرا می‌کنند.معماری قرارداد هوشمند ققنوسی ۲.۰۱- قرارداد هوشمند ققنوسی: شروط، روال و قوانین حاکم بر یک قرارداد یا توافق در قالب یک نرم افزار به نام قرارداد هوشمند ققنوسی پیاده سازی می‌شود. این نرم افزار محدود به زبان برنامه نویسی خاصی نیست. همچنین این امکان را به برنامه‌نویس می‌دهد تا فرآیند را به زبان برنامه‌نویسی دلخواه خود پیاده‌سازی کند. همچنین این نرم افزار بر روی تمامی پلتفرم‌ها (اعم از لینوکس، ویندوز و مک) قابل اجرا است. خروجی این نرم‌افزار عملیات معتبر روی شبکه ققنوس است که پس از اجرا، اهداف ذینفعان تحقق می‌پذیرد.۲- توسعه‌دهنده: برنامه‌نویس یا توسعه‌دهنده، وظیفه پیاده‌سازی یک قرارداد را در قالب نرم افزار برعهده دارد.۳- حساب توسعه‌دهنده: هر توسعه‌دهنده دارای یک حساب در شبکه ققنوس است که به‌وسیله آن وارد ابزار توسعه قرارداد هوشمند ققنوسی ۲.۰ می شود. پس از توسعه قرارداد هوشمند خود، آن را در فروشگاه قرار می دهد. همچنین درآمد حاصل از فروش قراردادهای توسعه یافته، به این حساب واریز می شود.۴-استقراردهنده: ذینفعی که خواهان اجرای یک قراردادهوشمند توسط چند هم‌‌پرداز است. استقراردهنده به‌وسیله ابزار توسعه، قرارداد هوشمند ققنوسی را از فروشگاه انتخاب و هم‌پردازهای موردنظرش را برای اجرای آن انتخاب می‌کند.۵-کاربر: کاربر تأمین کننده مالی اجرای قرارداد است و با پرداخت هزینه‌های مربوطه از جمله کارمزد، فرمان اجرای قرارداد هوشمند ققنوسی را صادر می کند. کاربر هم‌چنین با استفاده از ابزار توسعه، ورودی‌های موردنیاز برای اجرای قرارداد را جهت مشاهده هم‌پردازها در IPFS بارگذاری می‌کند.۶-هم‌پرداز: هم‌پرداز توسط موتور اجرا، اجراکننده قرارداد هوشمند است. هم‌پرداز پس از اجرای قرارداد هوشمند، خروجی را امضا کرده و در بخش مدیریت داده حساب ققنوسی‌اش می‌گذارد. سپس با سایر هم‌پردازها در فرآیند اجماع شرکت و خروجی منتخب امضاشده را به شبکه ققنوس ارسال می‌کند.۷-حساب هم پرداز: هر هم‌پرداز دارای یک حساب ققنوسی بروی شبکه ققنوس است که به وسیله آن در شبکه شناخته شده و وارد ابزار توسعه و موتور اجرا می‌شود.هم‌پرداز پس از اجرای قرارداد هوشمند، تراکنش موردنظر را امضا کرده و در بخش مدیریت‌داده حساب‌اش قرار می‌دهد. پس از اجرای یک قرارداد هوشمند، کارمزد عملکرد هم‌پرداز به این حساب واریز می‌شود.۸-حساب هوشمند: به‌ازای هر قرارداد هوشمند مستقرشده و آماده اجرا در زنجیره کناری، یک حساب ققنوسی روی شبکه ققنوس ایجاد می‌شود، که آن را حساب هوشمند می‌نامیم. هم‌پردازهای منتخب برای اجرا به عنوان امضا کنندگان این حساب تعیین می‌شوند. پس از اجرای قرارداد و اجماع روی نتیجه آن، فایل وضعیت خروجی در بخش مدیریت داده حساب نوشته می‌شود. کارمزد هم‌پردازها توسط تراکنش هوشمند از حساب کاربر اجراکننده قرارداد هوشمند، در زمان صدور فرمان اجرا به این حساب واریز شده و هم‌پردازها در پایانِ فرآیند اجماع و اجرای قرارداد هوشمند، آن را برداشت می‌کنند.۹-فایل وضعیت: فایل وضعیت حاوی اطلاعات و داده‌های آخرین اجرای یک قرارداد هوشمند می‌باشد که آدرس ذخیره سازی آن روی IPFS در بخش داده های حساب هوشمند ذخیره می‌شود. پس از اجرای قرارداد هوشمند توسط هم‌پردازها، فایل وضعیت جدید ساخته‌شده و هم‌پردازها روی محتوای این فایل اجماع می‌کنند. در آخر آدرس فایل وضعیت جدید منتخب را در بخش داده‌های حساب هوشمند به‌روزرسانی می‌شود.۱۰- حساب صادرکننده توکن قرارداد هوشمند ققنوسی: به منظور اعلام آمادگی هم‌پردازها برای اجرای قرارداد هوشمند در شبکه ققنوس، نیاز به یک فرآیند قابل ثبت و ردیابی در شبکه است. به این منظور توکن قرارداد هوشمند ققنوسی در شبکه ایجاد شده است. هم‌پردازها باید برای اعلام آمادگی به عنوان اجراکننده، به حساب صادرکننده این توکن خط اعتماد بزنند.۱۱-فروشگاه قرارداد هوشمند: قراردادهای هوشمند جهت دسترسی و خرید و فروش در فروشگاه قراردادهای هوشمند ققنوسی قرار می‌گیرند.۱۲-حساب ققنوسی فروشگاه: متناظر با فروشگاه نیز در زنجیره کناری، یک حساب با نام حساب ققنوسی فروشگاه در شبکه ققنوس وجود دارد که در بخش مدیریت داده آن، آدرس حاصل از بارگذاری قراردادهای موجود IPFS، در فروشگاه قرار دارد.۱۳-ابزار توسعه: ابزاری که به توسعه دهنده اجازه می‌دهد قرارداد هوشمند خود را به فروشگاه قرارداد هوشمند اضافه کند. همچنین استقراردهنده پس از انتخاب هم‌پردازها، قرارداد هوشمند موردنظر را از فروشگاه قرارداد هوشمند انتخاب و حساب هوشمند را ایجاد کند. کاربر اجراکننده نیز با انتخاب حساب هوشمند، کارمزد اجرای قرارداد هوشمند توسط هم‌پردازها را پرداخت و فرمان اجرا را صادر می‌کند.۱۴-موتور اجرا قرارداد هوشمند ققنوسی: سرویسی که هم‌پرداز از طریق آن، اعلام آمادگی و اقدام به اجرای قرارداد هوشمند می‌کند. این موتور نسخه اجرایی قرارداد هوشمند و ورودی های آن را از IPFS دریافت نموده و پس از اجرا و انجام فرایند اجماع، ارسال تراکنش منتخب امضا شده به شبکه و تغییر مدیریت داده حساب هوشمند را انجام می‌دهد.۱۵- IPFS: یک سیستم توزیع شده ذخیره سازی فایل در بستر شبکه می‌باشد. پس از ذخیره‌سازی یک فایل در IPFS، این سیستم یک آدرس منحصربه‌فرد براساس محتوا، برای دسترسی به آن ایجاد می‌کند. به‌دلیل محدودیت ذخیره‌سازی داده‌ها در دفترکل توزیع‌شده، تنها آدرس فایل داده‌ی ذخیره‌شده در IPFS در دفترکل ذخیره می‌شود.۱۶-صدور فرمان اجرا: صدور فرمان اجرا به‌وسیله یک تراکنش به نام تراکنش هوشمند انجام می‌شود. در بخش داده‌های تراکنش هوشمند فایل ورودی حاوی اطلاعات لازم برای اجرای قرارداد هوشمند می‌باشد. به‌وسیله اجرای این تراکنش، کارمزد اجرای قرارداد هوشمند از طریق ابزار توسعه از حساب کاربر اجراکننده به حساب هوشمند واریز می‌شود. بدین ترتیب هم‌پردازهای منتخب(امضاکنندگان حساب هوشمند) این عملیات پرداخت را مشاهده و اقدام به اجرای قرارداد هوشمندِ متناظر با حساب هوشمندِ دریافت کننده کارمزد می‌کنند. این پرداخت متناظر با صدور فرمان اجرای قرارداد هوشمند می‌باشد.فرآیندها و روابط بین اجزادر این بخش فرآیندهای کلی و روابط بین اجزا اصلی معماری را تعریف می‌کنیم.فرآیند توسعه و انتشار قرارداد هوشمندابتدا توسعه‌دهنده وارد ابزار توسعه قرارداد هوشمند ققنوسی۲.۰ می‌شود و فایل اجرایی برنامه توسعه یافته را بارگذاری می‌نماید.ابزار توسعه، این فایل اجرایی را بر روی IPFS بارگذاری می‌کند.توسعه دهنده آدرس دریافتی از IPFS را در بخش مدیریت داده حساب خود اضافه می‌کند.آدرس و مشخصات قرارداد هوشمند از طریق ابزار توسعه در فروشگاه قراردادهای هوشمند ققنوس قرار می‌گیرد.آدرس و مشخصات قرارداد هوشمند از طریق فروشگاه در حساب ققنوسی فروشگاه ثبت می‌شود.فرآیند ثبت‌نام هم‌پردازهاهم‌پردازها از طریق موتور راه‌اندازی و اجرای یک قرارداد هوشمند ققنوسی اعلام آمادگی می‌کنند.موتور راه اندازی و اجرا، هم‌پرداز را به عنوان درخواست کننده برای اجرای قرارداد هوشمند ثبت نام می‌کند.طی فرآیند ثبت‌نام هم‌پرداز، خط اعتمادی از حساب هم‌پرداز به حساب صادرکننده توکن قرارداد هوشمند ایجاد می‌شود.فرآیند استقرار قرارداد هوشمنداستقراردهنده‌ی قرارداد هوشمند، از طریق ابزار توسعه اقدام به استقرار یک قرارداد هوشمند از فروشگاه می‌نماید.سپس به وسیله ابزار توسعه، قرارداد هوشمند ققنوسی مورد نظر را، از فروشگاه دریافت می‌کند.استقراردهنده از طریق ابزار توسعه هم‌پردازهای مورد نظر را برای اجرای قرارداد هوشمند انتخاب می‌کند.در این مرحله یک حساب هوشمند ققنوسی متناظر با قرارداد هوشمند ساخته می‌شود. سپس لیستی از هم‌پردازها، کارمزد اجرا و آدرس فایل اجرایی قرارداد هوشمند، در بخش مدیریت داده حساب نوشته می‌شود.استقراردهنده به منظور اطلاع‌رسانی به هم‌پردازانی که برای اجرا انتخاب شده‌اند، مقداری پیمان از حساب هوشمند به حساب ققنوسی آن‌ها، به عنوان هم‌پرداز اجراکننده قرارداد جاری، واریز می‌کند. این تراکنش جنبه مادی ندارد و صرفا جهت آگاه‌سازی هم‌پرداز برای اجرا کردن این قرارداد هوشمند پرداخت می‌شود.موتور اجرایی هم‌پرداز، فایل اجرایی قرارداد هوشمند مستقر در IPFS را دانلود می کند.هم پرداز ها به صورت برخط حساب هوشمند را برای دریافت فرمان اجرا نظاره می کنند.فرآیند صدور فرمان اجرا و اجرای قرارداد هوشمندکاربر اجراکننده از طریق ابزار توسعه، اقدام به تأمین مالی هزینه ها، کارمزد اجرا و بارگذاری ورودی موردنظر خود می نماید.کاربر اجراکننده فایل حاوی ورودی های مورد نظر را ساخته و توسط ابزار توسعه قرارداد هوشمند، بر روی IPFS بارگذاری می نماید.با اجرای تراکنش هوشمند توسط کاربر اجراکننده، کارمزد اجرای قرارداد هوشمند از طریق ابزار توسعه از حساب کاربر اجراکننده به حساب هوشمند واریز می شود.موتور راه انداز، به صورت برخط حساب هوشمند مورد نظر را بررسی می‌کند، و از اجرای تراکنش هوشمند آگاه می‌شود. سپس آدرس فایل ورودی قرارداد هوشمند موجود در بخش داده‌های تراکنش هوشمند را دریافت و آن را از IPFS دانلود می‌کند.موتور راه انداز، قرارداد هوشمند مورد نظر را اجرا نموده و به عنوان نتیجه فایلِ وضعیت جدیدی را ایجاد می‌کند.موتور راه‌انداز، فایلِ وضعیتِ قرارداد هوشمند را روی IPFS بارگذاری کرده و آدرس حاصل ذخیره‌سازی این فایل را از IPFS دریافت می‌کند.سپس جهت دسترسی دیگر هم‌پردازها، آدرس فایل وضعیت جدید را در بخش مدیریت داده حساب خود ذخیره می‌کند.هر هم‌پرداز با بررسی بخش مدیریت داده حساب دیگر هم پردازها، آدرس فایل وضعیت جدید را مشاهده و فایل متناظر آن را از IPFS دانلود می‌کند.هم‌پردازها صاحبان امضای حساب هوشمند هستند، پس با جمع‌آوری امضاهای موجود در فایل وضعیت دیگران، تعداد امضای موردنیاز جهت ارسال تراکنش تغیر آدرس فایل وضعیت جدید در بخش داده‌های حساب هوشمند را به‌دست می‌آورد. سپس هم‌پرداز این تراکنش را به انضمام امضاها به شبکه اصلی ارسال می‌کند. همچنین آدرس فایل وضعیت در بخش داده‌های حساب هوشمند را به آدرس جدید به‌روزرسانی می کند.ابزار توسعه آخرین وضعیت را از حساب هوشمند متناظر با قرارداد در شبکه، دریافت می‌کنند. سپس داده‌های دریافتی را به نقش‌های مجاز نمایش می‌دهد.مزایای پلتفرم قرارداد هوشمند ۲.۰توسعه دهندهچندزبانی: در پلتفرم قرارداد هوشمند ۲.۰ تمامی زبان‌های برنامه‌نویسی بدون محدودیت پشتیبانی می‌شود.کسب درآمد بدون بازاریابی: توسعه‌دهنده‌ها می‌توانند قرارداد هوشمند خود را در فروشگاه قرار داده و کسب درآمد کنند.توسعه و بهبود: توسعه‌دهنده‌ها می‌توانند با توسعه و بهبود قرارداد‌های هوشمند خود امتیاز بیشتری از استقراردهنده‌ها دریافت نموده و شانس خرید قرارداد های خود توسط استقراردهنده‌ها را افزایش دهند.استقراردهندهتوان پردازشی بالا: از این طریق هر استقراردهنده می‌تواند قرارداد‌های حاوی پردازش‌های سنگین را به سرعت و با استفاده از توان پردازشی توزیع شده اجرا نمایند.امنیت: به دلیل اجماع در شبکه توزیع شده ققنوس، امکان تقلب، خدشه و یا عدم اعتماد به حداقل رسیده است. کاهش هزینه‌ها: در پلتفرم قرارداد هوشمند ۲.۰ صاحبان کسب‌و‌کارها با هزینه مناسب و بی‌واسطه، قراردادهای هوشمند خود را اجرا می‌کنند.هم پردازکسب درآمد با حداقل سرمایه: هم‌پردازها می‌توانند با حداقل سرمایه (کامپیوتر شخصی) با عضویت در زیست بوم قرارداد هوشمند ۲.۰ و مشارکت در اجرای برنامه‌ها، کسب درآمد نمایند.امکان کسب درآمد ۲۴ ساعته: در پلتفرم قرارداد هوشمند ۲.۰ این امکان خودکار کردن تنظیمات پنل کاربری وجود دارد. بدین ترتیب نیازی به حضور آن‌ها در کنار کامپیوتر نیست. افراد می‌توانند در زمان استراحت و غیرحضوری، کسب درآمد کنند.