قرارداد هوشمند چیست؟
ما در دنیایی زندگی میکنیم که فناوریهایی که همواره در تکامل هستند آیندهی جهان هستی را تغییر میدهند. به عنوان مثال؛ فکر کنید که در خیابان سوار تاکسی که راننده ندارد (ماشینهای خودران همانند تسلا) شما را سوار میکند. ماشین به پمپ بنزین رفته و هزینهی بنرین را از پولی که از مسافران قبلی دریافت کرده است، پرداخت میکند. بعد از سوختگیری تاکسی شما را به مقصد رسانده و کرایه سفر از پول الکترونیکی پرداخت میشود. در این زمان هزینهی بیمهی سالیانه بدهی ماهانه مالک خودرو هم پرداخت میشود. بعد از پیاده شدن شما تاکسی برای رفع عیبهای احتمالی به تعمیرگاه میرود.
متن بالا ممکن است شبیه خواب یا فیلمهای تخیلی باشد اما تمامی اینها آیندهی جهان با قراردادهای هوشمند است.
اگر بخواهیم سادهتر بیان کنیم قرارداد هوشمند کد برنامهنویسی است که بر روی بلاک چین پیاده میشود تا در صورت اتفاق افتادن شرایطی خاص دستوراتی که برنامهنویس به آن داده است را اجرا نماید. قراردادهای هوشمند یک فناوری نوآورانه هستند که ما را از اعتماد به دیگران بی نیار مینمایند.
قرارداد معمولی چیست؟
قرارداد معمولی تعهدی بین دو یا چند فرد است که آنها را در آینده متعهد به چیزی میکند. به عنوان مثال وقتی مستاجری برای ساکن شدن در خانهی فردی متعهد به پرداخت وجه میشود، قراردادی بین این دو بسته میشود که به آن قرارداد اجاره گفته میشود.
کدهای کامپیوتری درواقع نوعی قرارداد هستند به عنوان مثال؛ وقتی از اینترنت فایلی خریداری میکنید، در پشت صحنه کدهایی وجود دارند که برای آنها تعریف میشود؛ اگر خریدار پول پرداخت نماید و مبلغش کافی باشد، لینک دانلود فایل را به خریدار نمایش خواهد داد در غیر این صورت پیغام خطا نشان داده خواهد شد.
ما در جهان برای قراردادهای معمولی نیازمند واسطههایی هستیم که مجبوریم به آنها اعتماد کنیم. این واسطه همانند سرورهای متمرکز کامپیوتر باشند یا بانکها و دولتها.
تفاوت قرارداد هوشمند و قرارداد معمولی چیست؟
چیزی که قرارداد هوشمند را نسبت به قراردادهای معمولی متمایز میکند استفاده از فناوری بلاک چین است، که ما را از اعتماد به واسطه بینیاز نموده است.
به عبارت دیگر، قرارداد هوشمند کدی است که روی بلاک چین فعال شده تا واسطهها از بین توافق دو نفر حذف شوند.
وقتی که قرارداد هوشمند بر روی بلاک چین ازادی همانند اتریوم اجرا میشود. دیگر این اجرا قابل توقف نیست و هیچکس قادر به توقف اجرای این برنامه نخواهد بود. با قراردادهای هوشمند میتوان برنامهها و پروژههایی ایجاد کرد که تا ابد کار میکنند و خود برنامهنویس هم نمیتواند تغییری در اجرای آنها داشته باشد. به این برنامهها برنامههای غیرمتمرکز (dapp) نیز میگویند.
روش کار در برنامه هموشمند همانند کار با دستگاههای فروش است که در متروها و اماکن عمومی قرار دارند. زمانی که شما قصد خرید نوشابهای دارید دستگاه پول شما را پردازش کرده و نوشابه را به شما تحویل میدهد، ببینید واسطهای در میان نیست!
قرار داد هوشمند چگونه کار می کند؟
همان طور که ذکر کردیم قراردادهای هوشمند بر روی فناوری بلاک چین پیاده میشوند و خاصیت اصلی بلاک چین هم توزیع شده بودن است. به غیر از فرآیندهای پیچیدهی فنی زمانی که قراردادهای هوشمند روی بلاک چین ثبت میشوند میان تمامی اعضا یا همان نودها به اشتراک گذاشته میشوند و همهی آنها یک نسخه از آن را خواهند داشت. بنابراین جلوگیری از قراداد هوشمند یا دستکاری آن تقریبا غیر ممکن خواهد بود.
قراردادهای هوشمند برای اولین بار در سال ۱۹۹۴ توسط نیک زابو، دانشمند فناوری کامپیوتر آمریکایی که ۱۰ سال قبل از اختراع بیت کوین یک ارز مجازی به نام «بیت گلد» (Bit Gold) اختراع کرد، ارائه شد. شایعاتی مبنی بر این موضوع که ساتوشی ناکاموتی معروف همان زابو هست وجود داشت که زابو این خبر را تکذیب نکرده است.
زابو قراردادهای هوشمند را به عنوان پروتکلهای معاملاتی رایانهای تعریف میکند که شرایط یک قرارداد را اجرا میکنند. او می خواست عملکرد روشهای معاملات الکترونیکی مانند POS (نقطه فروش) را به حوزهی دیجیتال گسترش دهد.
زابو در مقالهی خود همچنین اجرای قراردادی را برای داراییهای مصنوعی مانند مشتقات و اوراق قرضه پیشنهاد داده است.
زابو اعلام کرد:
اوراق بهادار جدید با ترکیب اوراق بهاداری (مانند اوراق قرضه) و مشتقات (اختیارات و معاملات آتی) به طرق بسیار متنوعی شکل میگیرد. ساختارهای بسیار پیچیده برای پرداختها اکنون میتوانند در قراردادهای استاندارد ساخته شده و با هزینههای معاملاتی پایین معامله شوند. به دلیل این که تجزیه تحلیل این موارد پیچیده است نیاز به یک برنامه نویسی کامپیوتری دارد.
بسیاری از پیش بینیهای زابو به روشهای قبل از فناوری بلاک چین تحقق یافته است. به عنوان مثال، تجارت مشتقات اکنون بیشتر از طریق شبکههای رایانهای با استفاده از ساختارهای پیچیده انجام میشود.
پیاده کردن قرارداد های هوشمند
کدهای قرارداد هوشمند پس از نوشته شدن به وسیلهی برنامه نویس بوسیلهی کلاینت (نرم افزار رسمی که کاربر را مستقیم به بلاک چین متصل میکند) به صورت تراکنش روی بلاک چین ثبت میشود. قراردادهای هوشمند بوسیلهی یک یا چند زبان برنامه نویسی نوشته میشوند. به عنوان مثال؛ زبان برنامهنویسی قراردادهای هوشمند ارز دیجیتال اتریوم، «سالیدیتی» (solidity) است. پس برای یادگیری نوشتن قرارداد هوشمند برای فناوری بلاک چین اتریوم نیاز به یادیگیری زبان برنامهنویسی سالیدیتی است.
اجرای قرارداد هوشمند
برای انجام تعامل با قراردادهای ثبت شده هم باید با تراکنش این کار را به انجام رساند. لازم به ذکر است اگر فقط نیاز به بررسی وضعیت قرارداد باشد، نیاز به تراکنش نیست. تراکنش به قرارداد به عنوان ورودی انجام میشود. پس نودها یا اعضا با استفاده از «ماشین مجازی اتریوم» (EVM) خود و ورودی دریافت شده، قرارداد را اجرا مینمایند. ماشین مجازی اتریوم یا همان (EVM) فضایی مجازی برای اجرای قرارد است. اگر کارمزد قرارداد به اندازهی کافی باشد، تراکنش تایید خواهد شد.
ممکن است در مورد نحوهی کار کرد قراردادهای هوشمند کمی گیج شوید که این امری طبیعی است زیرا فرایند اجرای این قراردادها دارای پیچیدگیهای فنی زیادی هستند.
به عنوان یک کاربر معمولی، برای استفادهی کاربردی از قراردادهای هوشمند نیاز نیست که دقیقا بدانید این قراردادها چطور کار میکنند، همانطور که برای استفاده از اینترنت نیاز نیست بدانید که اینترنت دقیقا چطور کار میکند.
مشکلات قرارداد های هوشمند چیست؟
با وجود مزایای زیاد، فوقالعاده و انقلابی بودن، قراردادهای هوشمند هنوز هم کامل نیستند و هماکنون نمیتوان از آنها در سطح گسترده استفاده نمود. بزرگترین مشکلاتی که قراردادهای هوشمند در حال حاضر با آنها دستوپنجه نرم میکنند عبارتند از :
کد قراردادها توسط برنامه نویسان نوشته میشود، بنابراین احتمال اشتباه یا باگ در کد قرارداد وجود داشته و طبیعی است. اگر قراردادهای هوشمند در بلاک چین ثبت شوند، دیگر نمیتوان تغییر در آنها ایجاد کرد بنابراین باگهای احتمالی موجود هم قابل رفع شدن نیستند.
به عنوان نمونه میتوان به پروژه DAO در اتریوم اشاره کرد. وجود یک مشکل امنیتی در کد قرارداد DAO باعث شد تا بیش از ۵۰ میلیون دلار اتریوم به سرقت رود و توسعه دهندگان مجبور شوند برای برگشت دادن سرمایهها، هارد فورک انجام دهند که در نتیجه موجب به وجود آمدن اتریوم جدیدی شد و اتریوم قبلی اتریوم کلاسیک نام گرفت.
هزینه های پیاده سازی قرارداد های هوشمند
قراردادهای هوشمند بدون برنامه نویسی قابل اجرا نخواهند بود. باید یک یا چند برنامه نویس ماهردر اختیار داشته باشید تا قراردادهای هوشمند مد نظرتان به خوبی تنظیم شوند.
البته سرویسهایی برای ایجاد قراردادهای هوشمند توسط کاربران عادی وجود دارند که کاربران میتوانند با چند کلیک بعضی از قرارداد های هوشمند خود را تنظیم نمایند. با این وجود این سرویس ها نمیتوانند قرارداد های پیچیده را طراحی کنند.