قراردادهای هوشمند لایهای از فنّاوری بلاکچین هستند که به کاربران اجازه میدهند از طریق یک «واسطۀ روباتیک» با یکدیگر ارتباط برقرار کرده و معامله کنند. یک قرارداد هوشمند را میتوان انبوهی از کدهای اتوماتیک در نظر گرفت که میتواند فعّالیتهای خاصی را انجام دهد که بدون وجود آن باید به صورت دستی انجام شود.
بنابراین، اهمیت قراردادهای هوشمند چیست؟ آنها عنصر بی اعتمادی را که بلاکچینها به آن نیاز دارند، ارائه میدهند.آیا میتوانید برای پیگیری تراکنش آنلاین به شخص ناشناس اعتماد کنید؟ بدیهی است که نه.
علاوه براین، قراردادهای هوشمند قادر به خودکارسازی وظایف و میزبانی برنامههای غیرمتمرکز (DApps) و ارائه اطمینان هستند. در نتیجه، توسعهدهندگان DeFi اغلب از آنها برای خودکارسازی وامهای سریع، وامهای استاندارد، سهام و سایر ویژگیهای منحصر به فرد استفاده میکنند.
توسعهدهندگان میتوانند برنامههای قرارداد هوشمند را با استفاده از رابطهای ساده بر روی پلتفرمهای مبتنی بر بلاکچین ایجاد کنند. بسیاری از پلتفرمهای بلاکچین موجود قادر به پشتیبانی از قراردادهای هوشمند هستند.این مقاله پنج پلتفرم برجستۀ قرارداد هوشمند را معرّفی و تحلیل میکند، و همچنین محبوبیت و پیشرفت فنّی آنها را در جامعۀ رو به رشد کنونی در نظر میگیرد.
پنج پلتفرم محبوب قرارداد هوشمند، «اتریوم»، «Hyperledger Fabric»،«Corda»،«Stellar» و«Rootstock» در این بخش مورد بحث قرار میگیرند.
«اتریوم» یک پلتفرم غیرمتمرکز است که امکان اجرای قراردادهای هوشمند را فراهم میکند.برخلاف سیستم اسکریپت کامل تورینگ بیتکوین، اتریوم زبانهای کامل تورینگ مانند«Serpent»،«Solidity»،Lisp-like Language (LLL) و Mutan را برای ارائۀ خدمات به کاربران برنامههای غیرکریپتوکارنسی ایجاد کرده است.
اتریوم قراردادهای هوشمند Solidity، Serpent، LLL و Mutan را به کد ماشین تبدیل میکند که سپس در ماشین مجازی اتریوم (EVM) بارگذاری شده و اجرا میشود.از سوی دیگر، قراردادهای هوشمند اتریوم دارای یک قالب داده مبتنی بر حساب هستند که در آن هر شرکت کننده توسّط کیف پول دیجیتال خود شناسایی میشود.
اتریوم مانند بیت کوین از مکانیزم اجماع اثبات کار (PoW) استفاده میکند که از نظر محاسباتی گران است. با این حال، اتریوم به زودی از PoW به اثبات سهام (PoS) تغییر خواهد کرد.هدف همیشه این بود؛ زیرا یکی از اجزای اساسی برنامه جامعه برای رشد اتریوم از طریق ارتقاء Eth2 است. برای پاداش دادن به ماینرها برای هزینۀ حل مشکلات، از اتر (ETH) به جای بیت کوین (BTC) استفاده میشود. به بیان دیگر، «گس» بهعنوان یک شارژ داخلی برای تکمیل تراکنش عمل میکند تا ارزش فرار ETH را جبران کند.
کاربران میتوانند مقادیر متفاوتی از گس مصرف کنند تا دیر یا زود تراکنشهای خود را تایید کنند (یعنی مقدار زیادی گس که منجر به تایید سریع میشود).از آنجایی که PoW نیاز به محاسبات دارد، میتواند قدرت زیادی را در کارهای بیهوده استخراج بلوک هدر دهد.انتظار میرود اگر فرآیند استخراج برای کارهای ارزشمندتر، مانند کمک به حل مسائل پیچیدۀ ریاضی و انجام وظایف یادگیری ماشینی به کار گرفته شود.
«Hyperledger Fabric» یک فنّاوری دفتر کل توزیع شده است که میتواند برای اجرای قراردادهای هوشمند نیز استفاده شود. برخلاف اتریوم که از ماشینهای مجازی (VM) برای اجرای قراردادهای هوشمند یعنیEVM)) استفاده میکند، قرارداد هوشمند Hyperledger Fabric از یک پلتفرم Docker برای اجرای کد استفاده میکند. برخلاف ماشینهای مجازی، کانتینرها میتوانند برنامههای قرارداد هوشمند را با هزینۀ کمتر و بدون به خطر انداختن انزوا اجاره دهند(بهعنوان مثال، برنامههای کاربردی در یک کانتینر در بالای یک سیستم عامل اجرا میشوند).
بنیاد لینوکس بر پروژه Hyperledger Fabric نظارت دارد. با این حال، آنها سرمایه گذاری قابل توجهی از«IBM» دریافت کردند.درهرصورت، ممکن است برخی از شما با آن بهعنوان بلاکچین IBM آشنا باشید.
Fabric زبانهای برنامهنویسی سنتی سطح بالا مانند Java و Go را به جای ساخت زبانهای قرارداد هوشمند اتریوم معروف به Golang) )فعال میکند.
علاوه بر این، Fabricبصورت تورینگ کامل است و مدل داده موجود در Fabric، جفت کلید-مقدار است (توصیف دو مقدار). یک مثال برای جفتهای کلید-مقدار به شرح زیر است:
« Mercedes» :«Car»
اینجا ماشین کلید است و مرسدس ارزش.
شبکۀ بلاکچین Fabric مجاز است (بصورت خصوصی یا کنسرسیومی) زیرا برنامههای گستردۀ سازمانی را در خود جای میدهد. مقامات صدور گواهی (CA) باید کاربران را قبل از پیوستن به شبکه تأیید کنند.چندین نوع CA در شبکه وجود دارند زیرا مسئولیتهای متنوعی در آن وجود دارد. بهعنوان مثال، مرجع گواهی ثبت نام، به کاربران اجازه میدهد تا از طریق بلاکچین ثبت نام کنند.علاوه بر این، کاربر باید پس از ثبت نام، گواهی تراکنش را از مرجع صدور گواهی تراکنش دریافت کند. در شبکۀ بلاکچین مجاز، میتوان به سرعت به اجماع رسید.
برخلاف اتریوم که کاربردهای گستردهای دارد، کوردا فقط بر روی برنامههای ارز دیجیتال متمرکز شده است.این یک پلتفرم دفتر کل توزیع شده برای ذخیره و پردازش دادههای دارایی دیجیتال از گذشته است.امّا آیا کوردا از قراردادهای هوشمند پشتیبانی میکند؟ قراردادهای هوشمند Corda بر روی ماشین مجازی جاوا (JVM) کار میکنند و از زبانهای برنامه نویسی سطح بالا مانند جاوا و کاتلین استفاده میکنند. درهمین حال، برای فعّال کردن قابلیت تأیید، کوردا از لحاظ تورینگ ناقص است. علاوه بر این، مدل داده کوردا یک رویکرد مبتنی بر تراکنش است.
Corda اغلب برای فعّال کردن پلتفرمهای خصوصی استفاده میشود، که در آن کسبوکارها شبکۀ خود را برای تبادل داراییهای دیجیتال ایمن ایجاد میکنند.در پلتفرمهای بلاکچین خصوصی میتوان به سرعت به اجماع رسید.الگوریتم اجماع در کوردا«Raft» است.
Raft یک سرویس سفارش دهی با قابلیت کنترل خطا (CFT) است که بر اساس پروتکل «رهبر و دنبال کننده»عمل میکند،بهعنوان رهبر انتخاب شده (در هر کانال) و دنبال کنندگان تصمیمات آن را تکرار میکنند.«CFT» لایهای از استحکام را به پروتکل اضافه میکند و به الگوریتم اجازه میدهد تا روند را ادامه دهد و توافق ایجاد کند حتی اگر اجزای جداگانه شکست بخورند.
انتخاب رهبر، تکرار گزارش و تضمین ایمنی، همه راههایی برای ایجاد اجماع در Raft هستند. کوردا از یک سیستم پیام رسانی نقطه به نقطه به جای پخش جهانی در بلاکچین استفاده میکند. گیرندگان پیام و اطّلاعات خاصی که قرار است ارسال شود باید توسّط کاربران مشخّص شود.
«Stellar» یک پلتفرم تخصّصی برای برنامههای کاربردی ارز دیجیتال، مشابه Corda است .Stella یک ارز دیجیتال سادهتر و قابل دسترستر از اتریوم است.از سوی دیگر،Stellar ممکن است از طیف گستردهای از زبانها از جمله« Python»، «JavaScript»،«Golang» و« PHP» پشتیبانی کند.امّا آیا استلار قرارداد هوشمندی دارد؟
بله، Stellar از قراردادهای هوشمند پشتیبانی میکند، امّا قراردادهای Stellar کامل نشدهاند، سوال این است که چگونه یک قرارداد هوشمند Stellar ایجاد میشود؟
قرارداد هوشمند Stellar مجموعهای از تراکنشهای متّصل و اجرا شده با استفاده از محدودیتهای مختلف است و برای ارسال، ذخیره و تجارت ارزش طراحی شده است.
در اینجا با «Multisignature» روبرو میشویم.مفهومی که نیاز به امضای چندین طرف برای امضای تراکنشهای منشا یک حساب دارد. «Batching / Atomicity» دو نمونه از محدودیتها برای قراردادهای هوشمند Stellar هستند.
مفهوم Atomicity
« اتمیسیتی» به این معنی است که اگر یک عملیات در یک سری شکست بخورد، بقیۀ تراکنش همچنان کار خواهد کرد.
Stellar، مانند Fabric، کدهای برنامه را در بالای کانتینرهای Docker اجرا میکند و در نتیجه شلوغی کمتری دارد. برای مثال هزینۀ اجرای یک تراکنش در Stellar تنها 0.0000002 دلار است که تقریباً ناچیز است.علاوه بر این، یک تراکنش در Stellar بطور متوسّط تقریباً 5 ثانیه طول میکشد ولی در اتریوم 3.5 دقیقه به طول میانجامید.
بنابراین Stellar یک پلتفرم عالی برای برنامههای کاربردی ارز دیجیتال است.Stellar مانند اتریوم از رویکرد مبتنی بر حساب بهعنوان مدل داده خود استفاده میکند.پروتکل اجماع ستارهای (SCP) الگوریتم اجماع این شرکت است. SCP به طرفین اجازه میدهد بدون اتّکا به یک سیستم بسته برای پیگیری تراکنشهای مالی توافق کنند.
از آنجا که Stellar مجاز است، رسیدن به یک اجماع ساده است.
«RSK» در راًس بیت کوین کار میکند و امکان پردازش سریعتر تراکنشها را فراهم میکند.برای مثال RSK ممکن است یک تراکنش را در کمتر از 20 ثانیه تایید کند.در همین حال، RSK با اتریوم سازگار است .بهعنوان مثال، از « Solidity » برای اجرای قراردادها استفاده میکند). قراردادهای هوشمند Rootstock نیز تکمیل شده هستند) RSK همچنین رایانههای مجازی خود را برای اجرای قراردادهای هوشمند ایجاد کرد. هرچند RSK یک سیستم بلاکچین عمومی است، ولی مدل داده RSK مبتنی بر حساب است.
RSKیک مکانیسم اجماع مبتنی بر PoW ایجاد کرد و آن را به شیوهای لایتویت اجرا کرد و هزینههای اضافی را کاهش داد.RSKمانند Corda و Stellar، برای فعّال کردن برنامههای کاربردی ارز دیجیتال طرّاحی شده است.
RSK از این نظر اعتبار دارد که ایمنتر از سیستمهایی است که مبتنی بر بلاکچین نیستند ؛زیرا در راًس بیت کوین ساخته شده است. با این حال، ممکن است فشار بیشتری بر بلاکچین بیت کوین وارد کند .RSK باید این وضعیت را اصلاح کند.
جنبههای اصلی پلتفرمهای قرارداد هوشمند فوق در این بخش توضیح داده شده است.
«EVM» برای اجرای قراردادهای اتریوم استفاده میشود.ماشینهای مجازی JVM و RSK به ترتیب توسّط Corda و Rootstock استفاده میشوند.از سوی دیگر، Fabric و Stellar قراردادهای هوشمند را در راًس کانتینرهای Docker اجرا میکنند و در عین اینکه هزینههای اضافی را کاهش میدهند، برنامهها را سازگار میکنند.
اتریوم، فابریک و RSK همگی دارای قراردادهای هوشمند کامل تورینگ هستند. با این حال، کوردا و استلار قراردادهای هوشمند تورینگ ناقص دارند. قراردادهایی که تورینگ کامل هستند معمولاً گویاتر و قابل فهمتر از قراردادهایی هستند که تورینگ ناقص هستند. با این حال، کامل بودن تورینگ احتمال وجود نقص و آسیب پذیر شدن نرم افزار در برابر حملات مخرّب و هک شدن را افزایش میدهد.
برخلاف Corda، استلار و RSK بطور انحصاری از پول دیجیتال پشتیبانی میکنند، در حالی که اتریوم و فابریک طیف گستردهتری از برنامههای کاربردی از جمله ارز دیجیتال، مدیریت دارایی دیجیتال، سرمایهگذاری، حکومت و به اشتراک گذاری اقتصاد را ارائه میدهند.Corda، Stellar، RSK و نسخههای آیندۀ آنها ممکن است در آینده از کاربردهای عمومی بیشتری پشتیبانی کنند.
اتریوم از زبانهای برنامه نویسی خاص اتریوم Solidity، Serpent و Mutan پشتیبانی میکند. Fabric از زبان Golang در حال حاضر پشتیبانی میکند، در حالی که Corda از جاوا و Kotlin استفاده میکند .Python Javascript، Golang و PHP تنها چند نمونه از زبانهایی هستند که Stellar میتواند از آنها پشتیبانی کند .RSK از Solidity بهعنوان زبان قراردادی خود برای تعامل با اتریوم استفاده میکند.
اتریوم و RSK پلتفرمهای قرارداد هوشمند عمومی (بدون نیاز به مجوز) هستند، به این معنی که هر کسی میتواند در هر زمانی به شبکه بپیوندد. در مقابل، Corda و Hyperledger پلتفرمهای خصوصی هستند که فقط کاربران احراز هویت شده میتوانند به آنها دسترسی داشته باشند .Stellar یک کنسرسیوم بلاکچین است که چندین بخش شرکتی را در بر میگیرد و بین بلاکچینهای عمومی و خصوصی (یا سازمانها) قرار میگیرد.
پروتکل PoW توسّط اتریوم و RSK استفاده میشود. بطوری که اعتبار سنجی یک بلاک، مانند حل یک مسئله ریاضی چالش برانگیز (یعنی یک محاسبه) است. اکثر الگوریتمهای اجماع PoW نیاز به محاسبات دارند.
Fabric مکانیسم اجماع عملی تحمّل خطای بیزانسی (PBFT) را انتخاب میکند، که شامل دورهای متعدّدی از رأی گیری در میان نود های تأیید شده برای دستیابی به یک تصمیم است. در نتیجه، PBFT شبکۀ فشرده است. کوردا به جای یک سیستم جهانی، از یک مکانیسم اجماع اساسی به نام Raft برای دستیابی به اجماع بین بخشهای مختلف در سطح معاملات فردی استفاده میکند.از سوی دیگر،Stellar یک تکنیک اجماع ساده به نام SCP را برای رسیدن به یک اجماع پیاده سازی میکند.
کوردا همانند بیت کوین از مکانیزم خروجی تراکنش خرج نشده (UTXO) استفاده میکند.هر پرداخت در مدل UTXO باید تراکنش خرج نشده قبلی را بهعنوان ورودی ذکر کند.سپس تراکنش ذکر شده تکمیل میشود. در تراکنشهای خرج نشده جدید، اصلاحات انجام خواهد شد.
در مقابل، مدلهای مبتنی بر حساب توسّط اتریوم، استلار و RSK استفاده میشوند.
در مدلهای مبتنی بر حساب، مانده یک آدرس بهجای محاسبه مبالغ تراکنشهای خرج نشده، مستقیماً ثبت میشود .Fabric از مفهوم کلید-مقدار استفاده میکند که در آن دادهها در بلاکچینها بهعنوان جفتهای کلید-مقدار ذخیره میشوند.
یکی از مهمترین مسائلی که شرکتها با آن مواجه هستند، عدم اعتماد در برخورد با اشخاص ثالث است.سازمانها با احتیاط عمل میکنند و به دلیل عدم اعتماد و شفافیت، زمان و هزینۀ قابل توجهی را برای واسطهها صرف میکنند.
وقتی شرایط قرارداد به صورت عمومی قابل مشاهده باشد، قراردادهای هوشمند میتوانند به حذف واسطهها کمک کنند. با استفاده از فنّاوری بلاک چین، این قراردادها باعث افزایش اعتماد و شفافیت بین دو طرف میشود.علاوه بر این، ایجاد قراردادهای غیرقابل تغییر و در دسترس تری را امکان پذیر میکنند.
قراردادهای هوشمند فنّاوری جدیدی هستند که میتوانند کارایی را در صنایع مختلف افزایش دهند.با پیشرفت فنّاوری، کسب و کارهای بیشتری از آن برای کاهش هزینهها و تسهیل تراکنشهای سریع و ایمن استفاده میکنند. زمانی که جزئیات توافقنامه یا قرارداد به صورت عمومی و دیجیتالی قابل مشاهده باشد، قراردادهای هوشمند میتوانند جایگاه نمایندگان یا واسطههایی را که قراردادها را میانجیگری میکنند، بگیرند. بهعنوان مثال، قراردادهای هوشمند میتوانند جایگزین وکلا در فرآیندهای حقوقی شوند که متّکی بر جرایم سنتی، اموال، آیین دادرسی مدنی، شواهد یا تجزیه و تحلیل قرارداد با عملیاتهای پر زحمت هستند.
نهایی کردن یک قرارداد به دلیل واسطهها و کاغذبازیهای موجود در قراردادهای معمولی زمان بر است. با این حال، قراردادهای هوشمند را میتوان با سرعت بیشتری منعقد کرد، زیرا آنها نیازی به واسطه ندارند.همچنین، از آنجایی که قراردادهای هوشمند با کد کامپیوتری نوشته میشوند، طرفین در طول فرآیند تنظیم قرارداد، کمتر مرتکب اشتباهات دستی خواهند شد.
علاوه بر این، فنّاوری بلاکچین به دلیل ساختار غیرمتمرکز آن، تراکنشها را ایمنتر میکند.برای مثال، اگر هکرها بخواهند مبلغ دلار را در یک تراکنش تغییر دهند، باید حداقل نیمی از قدرت محاسباتی بلاکچین را کنترل کنند.اگرچه این فنّاوری سیستم را کاملا غیرقابل نفوذ نمیکند، امّا روند نفوذ به سیستم را بسیار دشوارتر میکند.