
تصور کنید در خیابان هستید و قصد دارید سوار تاکسی شوید؛ از تاکسی اینترنتی یک خودرو درخواست میکنید و یک ماشین خودران (بدون راننده) شما را سوار میکند. تاکسی شما را به یک پمپ بنزین میبرد و هزینه سوخت را هم از پولی که از مسافرهای قبلی دریافت کرده، پرداخت میکند. سپس شما را به مقصدتان میرساند و کرایه سفرتان هم از کیف پول الکترونیکی شما پرداخت میشود. در زمانی که تاکسی در حال رساندن شما به مقصد است، به صورت خودکار هزینه بیمه سالیانه و بدهی ماهانه مالک خود را هم میپردازد. بعد از اینکه شما را پیاده میکند به یک تعمیرگاه میرود تا عیبهای احتمالی را هم تعمیر کند.
شاید فکر کنید اینها صحنهای از یک فیلم علمی و تخیلی باشد، اما این آینده جهان است؛ قراردادهای هوشمند می توانند آینده جهان را بسازند.
قرارداد هوشمند (smart contract) چیست؟
به زبان ساده، قرارداد هوشمند یک کد برنامه نویسی است که روی بلاک چین پیادهسازی میشود تا در صورت اتفاق افتادن دادن یک سری شرایط، دستورات خاصی را که برنامه نویس به آن داده است، اجرا کند. قراردادهای هوشمند یک نوآوری بسیار انقلابی هستند که ما را از اعتماد کردن به دیگران بی نیاز میکنند.
برای درک بهتر قرارداد هوشمند، ابتدا باید بدانیم که یک قرارداد معمولی چیست.
یک قرارداد معمولی چیست؟
یک قرارداد معمولی، توافقی بین دو یا چند شخص است که آنها را به چیزی در آینده متعهد میکند. مثلاً محمد برای استفاده از خانه علی هر ماه به او مبلغی پرداخت میکند، که به آن «قرارداد اجاره» هم میگویند. یا رضا تضمین میکند که در ازای گرفتن مبلغی پول، خسارتهای احتمالی ماشین سعید در تصادفات را پرداخت کند که به آن «قرارداد بیمه» هم میگویند.
کدهای کامپیوتری هم نوعی قرارداد هستند. به عنوان نمونه وقتی از اینترنت یک فایل خریداری میکنید، در پشت صحنه کدهایی وجود دارند که برای آنها تعریف شده است: اگر کاربر پول را پرداخت کرد و مبلغش کافی بود، لینک دانلود فایل را به او نمایش بده، در غیر اینصورت پیغام خطا نشان بده.
ما برای اجرای قراردادهای عادی نیاز به واسطههایی داریم که مجبور هستیم به آنها اعتماد کنیم. این واسطهها میتوانند سرورهای متمرکز کامپیوتر باشند یا بانکها و دولتها.
تفاوت قرارداد هوشمند و قرارداد معمولی چیست؟
تفاوت قرارداد هوشمند و قرار سنتی
چیزی که قرارداد هوشمند را نسبت به قرارداد عادی متفاوت کرده، استفاده از فناوری بلاک چین است که ما را از اعتماد کردن به واسطهها بینیاز میکند.
به عبارت دیگر، قرارداد هوشمند کدی است که روی بلاک چین فعال میشود تا بدون نیاز به واسطهها، شرایط یک توافقنامه بین دو طرف را بررسی و اجرا کند.
زمانی که یک قرارداد هوشمند بر روی یک بلاک چینِ آزاد مثل اتریوم اجرا شود، دیگر قابل توقف نیست و هیچکس نمیتواند جلوی اجرای آن را بگیرد. با قراردادهای هوشمند میتوان برنامهها و پروژههایی را ساخت که بدون هیچگونه واسطه و از کارافتادگی تا ابد به کار خود ادامه دهند. به این برنامهها برنامههای غیرمتمرکز (Dapp) هم میگویند. حتی خودِ برنامهنویس قرارداد هوشمند هم نمیتواند کد قرارداد هوشمند ثبت شده در بلاک چین را تغییر دهد.
روش کار قراردادهای هوشمند مشابه با کار دستگاههای فروش خودکار است که در مترو و امکان عمومی قرار دارند. وقتی شما قصد خرید یک نوشابه با استفاده از این دستگاهها را دارید، پول را به دستگاه وارد میکنید و دستگاه به صورت خودکار پول شما را پردازش میکند و نوشابه را تحویل میدهد، بدون اینکه پای واسطهای در میان باشد.
قراردادهای هوشمند به زبان ساده
قرارداد هوشمند چگونه کار میکند؟
همانطور که گفتیم، قرارداد هوشمند روی بلاک چین پیادهسازی میشود و خاصیت اصلی بلاک چین هم توزیعشده بودنِ آن است. جدا از فرایندهای پیچیده فنی، وقتی قرارداد هوشمند روی بلاک چین ثبت شود میان همه اعضای بلاک چین یا همان نودها (Node) به اشتراک گذاشته میشود و همه یک نسخه از آن را خواهند داشت، بنابراین جلوگیری از اجرای آن یا دستکاری در آن تقریبا ممکن نیست زیرا همه اعضای بلاک چین آن را اجرا میکنند، نه یک یا چند سرور و نهاد متمرکز.
همچنین بخوانید: فناوری بلاک چین چگونه کار میکند؟
پیاده سازی قرارداد هوشمند
کد قرارداد هوشمند پس از نوشته شدن توسط برنامهنویس از طریق یک کلاینت (نرم افزار رسمی که شما را مستقیم به بلاک چین متصل میکند) به صورت یک تراکنش بر روی بلاک چین ثبت میشود. قراردادهای هوشمند توسط یک یا چند زبان برنامهنویسی نوشته میشوند. مثلا زبان برنامه نویسی قراردادهای هوشمند اتریوم، سالیدیتی (Solidity) است. پس برای یادگیری نوشتن یک قرارداد هوشمند برای بلاک چین اتریوم نیاز است تا زبان برنامهنویسی سالیدیتی را یاد بگیرید.
اجرای قرارداد هوشمند
برای انجام تعامل با قرارداد ثبت شده هم باید با تراکنش این کار را انجام داد. البته اگر فقط نیاز به بررسی وضعیت قرارداد باشد، نیاز به تراکنش نیست. یک تراکنش به قرارداد به عنوان ورودی انجام میشود. سپس نودها با استفاده از ماشین مجازی اتریوم (EVM) خود و ورودی دریافت شده، قرارداد را اجرا میکنند. ماشین مجازی اتریوم فضایی مجازی برای اجرای قراردادها است. اگر کارمزد قرارداد به اندازه کافی باشد، تراکنش تایید میشود.
شاید در مورد نحوه کارکرد قراردادهای هوشمند کمی گیج شده باشید اما این طبیعی است زیرا فرایند اجرای این قراردادها پیچیدگیهای فنی زیادی دارد. برای درک دقیق آن میتوانید مقاله چگونکی کارکرد اتریوم را بخوانید.
به عنوان یک کاربرد معمولی، برای استفاده کاربردی از قراردادهای هوشمند نیاز نیست که بدانید دقیقا چطور کار میکنند، همانطور که برای استفاده از اینترنت نیاز نیست بدانید که اینترنت دقیقا چطور کار میکند.
قراردادهای هوشمند به زبان ساده
برای ایجاد یک قرارداد هوشمند به چه چیزهایی نیاز دارم؟
به طور کلی برای ایجاد یک قرارداد هوشمند علاوه بر مواردی که بالا ذکر شد، به موارد زیر هم نیاز است:
موضوع قرارداد و دسترسی
این برنامه باید به محصول یا خدمات تحت قرارداد دسترسی داشته باشد تا به طور خودکار آنها را در فرایند عرضه یا خرید کنترل کند. مثلا اگر قرارداد قرار است تا در صورت دریافت پول یک فایل را تحویل بدهد، باید به فایل دسترسی داشته باشد.
شرایط قرارداد
شرایط قرارداد هوشمند به شکل دقیق دنبالهای از عملیات است که در صورت رخ دادن شرایط، موجب اجرای قرارداد میشوند. این شرایط باید با برنامهنویسی مشخص شوند. همه شرکتکنندگان باید این شرایط را امضا کنند.
اوراکل (Oracle)
اوراکل به چیزی گفته میشود که اطلاعات خارجی را به قرارداد میدهد تا قرارداد آنها را پردازش کند. مثلا اگر قرار است تا قرارداد اطلاعات هواشناسی را بررسی کند، اوراکل میتواند یک سایت هواشناسی باشد.
پلتفرم انحصاری
قرارداد هوشمند به بلاک چین یک پلتفرم خاص صادر میشود و در میان نودهای پلتفرم مورد نظر توزیع میشود. همچنین برای ثبت قرارداد نیاز به یک نرم افزار کلاینت رسمی هم دارید که مستقیما به بلاک چین متصل باشد. اتریوم در حال حاضر محبوبترین پلتفرم برای اجرای قراردادهای هوشمند است.
نظرات (0)
به یوزبیت؛ خانه محتوا خوش آمدید
یوزبیت، به نویسندگان مستقل این امکان را میدهد که رایگان تولید محتوا کنند و با کمک هوش مصنوعی، محتوای خود را به صورت مؤثر به مخاطبان نمایش دهند.
سایر مقالات نویسنده
جدیدترین مقالات
درباره ما . راهنما . اطلاعیهها . آپدیتها . قوانین . ارتباط با ما
کلیه حقوق این سایت برای یوزبیت محفوظ میباشد.