فرض کنید یک رباتی طراحی شده است که می تواند سخت ترین داده ها را دریافت کرده، سپس تجزیه و تحلیل کند و در نهایت بر اساس نتیجه های به دست آمده، کارهایی را انجام دهد، این دقیقا نحوه عملکرد قراردادهای هوشمند (smart contract) است. در واقع قراردادهای هوشمند منتظر رخ دادن شرط هایی هستند تا به محض اتفاق افتادن آن ها، کارهایی را انجام دهند. در ادامه به بررسی کاربرد قرارداد هوشمند در بلاک چین می پردازیم.
قراردادهای هوشمند
قرارداد هوشمند یک قرارداد خوداجرا است که شرایط توافق بین خریدار و فروشنده مستقیماً در قالب کدهایی نوشته می شود. کد و قراردادهای موجود در آن در سراسر یک شبکه بلاک چین غیرمتمرکز توزیع شده وجود دارد. این کد اجرا را کنترل می کند. باید بدانید تراکنش ها قابل پیگیری و برگشت ناپذیر هستند. قراردادهای هوشمند اجازه می دهد تا معاملات و توافقات قابل اعتماد بین طرف های ناهمگون و ناشناس بدون نیاز به یک مرجع مرکزی، سیستم قانونی یا مکانیزم اجرایی خارجی انجام شود. در حالی که فناوری بلاک چین اساساً به عنوان پایه ای برای بیت کوین در نظر گرفته شده است اما بسیار فراتر از زیربنای ارز مجازی تکامل یافته است.
در واقع این قراردادها مجموعه ای از کدهای پیشرفته هستند که بر روی بلاک چین قرار گرفته و انجام می شوند. در سال 1994 بود که نیک سابو برای اولین بار به ایده قراردادهای هوشمند رسید و تصمیم گرفت قراردادهای معمولی دنیای واقعی را به کدهای رایانه ای تبدیل کند. در واقع او می خواست با smart contracts کاری کند تا دیگر طرف همه قراردادها، بانک ها و موسسات نباشند و امکان خطا و فساد در قراردادها به صفر برسد.
ایده نیک سابو خیلی خوب بود اما در آن سال هنوز فناوری بلاک چین به وجود نیامده بود و عملی کردن این ایده سخت بود. اولین بار در سال 2009 بود که ارز دیجیتال بیت کوین از شبکه بلاک چین استفاده کرد. بعد از سال 2015 بود که Vitalik Buterin اتریوم را تاسیس کرد و کاربردهای قراردادهای هوشمند را تعریف کرد.
برای درک بهتر کاربرد smart contract در بلاک چین مثالی می زنیم: فرض کنید دو نفر در یک صرافی غیرمتمرکز می خواهند معامله کنند. در چنین شرایطی به نظر شما ملاک اعتماد دو طرف به یک دیگر چیست؟! قطعا اعتماد به فردی ناشناس که حتی نمی دانید کجای دنیا زندگی می کند سخت است اما قرارداد هوشمند به عنوان ملاک ثابت و قابل اعتمادی، برای انجام معامله ها در صرافی های غیرمتمرکز مورد استفاده قرار میگیرد؛ یعنی با کدنویسی برای قرارداد هوشمند تعریف می کنند که اگر این شروط اتفاق افتاد بدون دخالت کسی این نقل و انتقال را انجام بده.
مهم ترین مزیت های قرارداد هوشمند
مهم ترین مزیت این قراردادها این است که حتی خود سازنده ی قراردادها نمی تواند آن ها را متوقف کند. یعنی وقتی قراردادهای هوشمند بخواهند انجام شوند، هیچ کس نمی تواند در آن ها دخالتی داشته باشد و این قراردادها به طور خودکار تا همیشه در حال انجام هستند. از دیگر مزیت های آن می توان به موارد زیر اشاره کرد:
- از آن جایی که این قراردادها در بلاک چین استفاده می شوند و به صورت خودکار در حال انجام هستند، از سرعت بالایی نیز برخوردار هستند.
- همان طور که گفته شد هیچ کس نمی تواند در smart contracts دخالت داشته باشد، همین موضوع باعث شده است که کاربران شبکه به این قراردادها اعتماد کامل داشته باشند.
- می دانیم انجام امور مالی در دنیای واقعی می تواند هزینه های جانبی زیادی داشته باشد، مانند کارمزدهای دفترخانه ها، املاک ها، هزینه تمدید و.... اما در دنیای غیرمتمرکز دیفای، قراردادهای هوشمند این هزینه های جانبی را حذف کرده اند.
معایب قراردادهای هوشمند
- با توجه به اینکه قراردادهای هوشمند نیاز به کدنویسی و برنامه نویسی های گسترده ای دارند، در نتیجه احتیاج به چند کدنویس و برنامه نویس می باشد که این کار را انجام دهند. به همین دلیل است که هزینه قرارداد هوشمند زیاد می باشد.
- همان طور که گفته شد smart contracts توسط انسان ها برنامه نویسی شده اند در نتیجه ممکن است خطایی در هنگام نوشتن کدها پیش آید. اگر این اتفاق بیوفتد، دیگر نمی شود حتی آن را اصلاح کرد و هکرها می توانند از طریق این قرارداد به شبکه نفوذ کرده، آن را هک کرده و سرقت انجام دهند.
- این قراردادها و کل شبکه دیفای غیرمتمرکز، توسط کامپیوترهای سراسر دنیا کنترل می شود و هیچ سازمان یا دولتی به آن نظارت ندارد. حال اگر تصمیم همگانی دولت ها این باشد که محدودیتی بر این شبکه ایجاد کند، قراردادهای هوشمند دچار مشکل و باگ خواهند شد.
- اوراکل ها همواره با قراردادهای هوشمند در ارتباط هستند و داده هایی را برای قراردادهای هوشمند فراهم می کنند. درست است که اوراکل ها بدون نقض داده ها را جمع آوری می کنند و به قراردادهای هوشمند می دهند. در این میان اگر هکرها بتوانند به اوراکلی که با یک قرارداد هوشمند کار می کند، دسترسی پیدا کنند، مشکل بزرگی در شبکه رخ خواهد داد. در واقع هکرها متناسب با خواسته خود دوست دارند برای یک قرارداد هوشمند اتفاق خاصی بیوفتد، به طور مثال می خواهند بین دو حالت، قرارداد هوشمند حالت یک را تایید کنند. در چنین شرایطی هکری که به اوراکل دسترسی دارد، اطلاعات دلخواه را به قرارداد هوشمند می دهد و قرارداد هوشمند نیز متناسب با شروط خود، حالت یک را تایید میکند. این موضوع باعث شده است، مشکل اوراکل ها، باگی در smart contracts ایجاد کنند.
چگونه یک قرارداد هوشمند ایجاد می شود؟
اول از همه باید در نظر داشت که کدام بلاک چین ها توانایی ساپورت قراردادهای هوشمند را دارند.
بلاک چین های: بیت کوین، زنجیره های جانبی، NXT و اتریوم می توانند smart contracts را پردازش کنند.
برای شروع یک برنامه نویس از طریق نرم افزار مخصوص ارتباط با بلاک چین(کلاینت)، قرارداد هوشمند را بر روی شبکه بلاک چین ثبت می کند. لازم به ذکر است که برنامه نویسان باید به چندین زبان برنامه نویسی از جمله زبان های سالیدیتی، مسلط باشند. سپس نیاز است که با انجام تراکنش به تست اجرای قراردادهای هوشمند، بپردازیم. به محض انجام تراکنش، نودهای موجود در شبکه، داده ها را دریافت کرده و قرارداد هوشمند را اجرا می کنند.
برای ایجاد قرارداد هوشمند لازم است سطح دسترسی ها را برای قرارداد مشخص کنیم، به طور مثال اگر قرار است این قرارداد به صورتی انجام شود که در ازای پرداخت مبلغ خاصی، محصول مجازی خاصی را در اختیار کاربر قرار دهد، باید دسترسی به محصول مجازی برای قرارداد هوشمند تعریف شود. برای قراردادهای هوشمند شرط هایی تعریف می شود و لازم است تمامی استفاده کنندگان با آن موافق باشند و آن را امضا کنند.
نکته مهم دیگر ارتباط بین اوراکل ها و قراردادهای هوشمند می باشد، در واقع این اوراکل ها هستن که اطلاعات مربوط به دنیای واقعی را در اختیار smart contracts قرار می دهند تا داده های پردازشی قراردادهای هوشمند کامل شود.
یک قرارداد هوشمند چگونه کار می کند؟
عملیات یک قرارداد هوشمند مشابه سایر انتقالات بلاک چین است. این مراحل لازم است:
1. یک کاربر تراکنش را از کیف پول بلاک چین خود آغاز می کند.
2. تراکنش به پایگاه داده توزیع شده می رسد، جایی که هویت تأیید می شود.
3. معامله ای که ممکن است انتقال وجه باشد تایید می شود.
4. تراکنش شامل کدی است که تعیین می کند چه نوع تراکنشی باید اجرا شود.
5. تراکنش ها به عنوان یک بلوک در بلاک چین اضافه می شوند.
6. هر گونه تغییر در وضعیت قرارداد از همین روند پیروی می کند تا به روز شود.
کاربرد قراردادهای هوشمند در دنیای واقعی
درست است که smart contracts مخصوص دنیای غیرمتمرکز است اما این قراردادها می تواند در دنیای واقعی کاربردهای بسیاری داشته باشد. برای مثال:
از طریق قراردادهای هوشمند و نودهای موجود در شبکه می توان یک انتخابات برگزار کرد که به هیچ وجه، هیچ کس نتواند در آن دخالت یا تقلب کند!. همچنین می توان از smart contracts در امور بیمه نیز استفاده کرد، از آن جایی که قراردادهای هوشمند به طور خودکار کار می کنند، می توان برای پرداخت حق بیمه، خسارت و تمدید بیمه نیز از آن ها استفاده کرد. علاوه بر این می توان در سیستم هایی از جمله حمل و نقل، بانکداری و اینترنت اشیا نیز از قراردادهای هوشمند استفاده کرد.
با توجه به ویژگی های منحصر به فرد قراردادهای هوشمند، می توان گفت این تکنولوژی در آینده، انقلابی در زمینه هایی که مثال زدیم ایجاد خواهد کرد.
پلتفرم های قراردادهای هوشمند
در زیر، برخی از پرکاربردترین پلتفرمها برای توسعه و اجرای قراردادهای هوشمند در بلاک چین را بررسی میکنیم:
Ethereum: قراردادهای هوشمند به زبان برنامه نویسی به نام Solidity نوشته شده و توسط ماشین مجازی اتریوم اجرا می شود. در حال حاضر محبوب ترین است.
Hyperledger: یک سیستم متن باز توسعه یافته توسط بنیاد لینوکس که یک ارز رمزنگاری شده نیست، بلکه یک پلتفرم انعطاف پذیر است که می توان smart contracts را بر اساس آن توسعه داد.
transactions: این پلتفرم دادهها را در تراکنشهای بیتکوین ترکیب میکند، یعنی از بلاک چین ارز دیجیتال استفاده میکند و اجازه میدهد تا قراردادها بر روی آن توسعه یابد.
Polkadot: جایگزینی برای بلاک چین است و به دلیل توانایی میزبانی پاراچین، زنجیرههای درون زنجیرهای، که امکان تراکنش های بیشتری را نسبت به معمول دارد، مشهور است.
جمع بندی: قراردادهای هوشمند متناسب با شروطی که اتفاق می افتد، کاری را انجام می دهند. کار smart contracts بدون توقف می باشد و هیچ کس توانایی دخالت یا دستکاری در آن ها را ندارد. همین موضوع باعث شده است که کاربران موجود در شبکه به این قراردادها اعتماد کامل داشته باشند.
از معایب قراردادهای هوشمند می توان به: هزینه زیاد و باگ اوراکل ها اشاره کرد. به کار بردن قراردادهای هوشمند در حوزه های حمل و نقل، بیمه و اینترنت اشیا می تواند انقلابی در دنیای واقعی ایجاد کند.
مراحل به وجود آمدن قراردادهای هوشمند به این صورت می باشد که ابتدا برنامه نویسان، قرارداد را بر روی شبکه بلاک چین ثبت می کنند، سپس با انجام تراکنش آن را تست می کنند، سپس نودها داده ها را دریافت کرده و قرارداد را اجرا می کنند. تعیین سطح دسترسی و شروط لازم برای smart contracts در مرحله تکمیل می باشد.