اصطلاح “قرارداد هوشمند” اولین بار توسط Nick Szabo در سال 1997 مدتها قبل از ایجاد بیت کوین استفاده شد. او یک متخصص رایانه، پژوهشگر حقوق و رمزنگاری بود و میخواست از دفتر کل توزیع شده برای ذخیره قراردادها استفاده کند.
قراردادهای هوشمند دقیقاً مانند قراردادها در دنیای واقعی هستند. تنها تفاوت این است که آنها کاملاً دیجیتالی هستند. در حقیقت قرارداد هوشمند یک برنامه کوچک کامپیوتری است که درون یک بلاکچین ذخیره شده است.
بیایید یک مثال بزنیم تا بفهمیم قراردادهای هوشمند چگونه کار میکنند.
شاید با Kickstarter که یک پلتفرم بزرگ برای جذب سرمایه است، آشنا باشید. استارتاپ ها میتوانند به Kickstarter بروند و پروژهای را ایجاد، یک هدف تأمین مالی را تعیین و شروع به جمعآوری پول از کسانی که آن ایده را قبول دارند کنند.
Kickstarter در اصل یک شخص ثالث است که بین استارتاپها و حامیان قرار دارد. این بدان معنی است که هردوی آنها برای اداره صحیح پول خود باید به Kickstarter اعتماد کنند. اگر پروژه با موفقیت تأمین شود، گروه پروژه انتظار دارند که Kickstarter این پول را به آنها بدهد.
از طرف دیگر حامیان میخواهند اگر روی چیزی سرمایهگذاری میکنند، وجوه آن روی پروژهها صرف شود و اگر آن پروژه به اهداف خود دست نیافت، پول خود را پس بگیرند. هم گروه استارتاپ و هم حامیان باید به Kickstarter اعتماد کنند. با قراردادهای هوشمند میتوانیم سیستمی مشابه را بسازیم که به شخص ثالثی مانند Kickstarter نیاز نباشد.
ما میتوانیم قرارداد هوشمند را طوری برنامه ریزی کنیم که همه وجوه دریافتی را تا رسیدن به یک هدف مشخص نگه دارد. حامیان یک پروژه میتوانند پول خود را به قرارداد هوشمند انتقال دهند. اگر پروژه به طور کامل تأمین شود، قرارداد بهطور خودکار پول را به سازنده پروژه انتقال می دهد و اگر پروژه نتواند به هدف برسد، پول به طور خودکار به حامیان برمیگردد.
ازآنجاکه قراردادهای هوشمند در یک بلاک چین ذخیره میشوند، بنابراین همهچیز کاملاً توزیع شده است. با این تکنیک هیچ فردی کنترلی روی پول ندارد.
چرا باید به یک قرارداد هوشمند اعتماد کنیم؟
به دلیل اینکه قراردادهای هوشمند که روی یک بلاکچین ذخیره میشوند، برخی از خواص جالب آن را به ارث میبرند از جملهی آنها میتوان تغییرناپذیری و توزیع شدگی را نام برد .
تغییرناپذیر بودن بدان معنی است که پس از ایجاد یک قرارداد هوشمند، دیگر نمیتوان آن را تغییر داد؛ بنابراین هیچکس نمیتواند کد قرارداد شما را دستکاری کند. در سوی دیگر توزیعشدگی بدان معنی است که خروجی قرارداد شما توسط همه افراد موجود در شبکه تائید اعتبار میشود.
بنابراین یک فرد نمیتواند با تحمیل فشار، قراردادی را وادار کند تا وجوه را آزاد نماید زیرا سایر افراد موجود در شبکه این فعالیت را مشاهده کرده و آن را بهعنوان نامعتبر، نشان گذاری میکنند.
دستکاری قراردادهای هوشمند تقریباً غیرممکن است. از قراردادهای هوشمند میتوانند در بسیاری از امور، نه فقط در مورد سرمایهگذاری استفاده کرد. بانکها میتوانند از آن برای صدور وام یا ارائه پرداختهای خودکار استفاده کنند. همچنین شرکتهای بیمه میتوانند از آن برای پردازش مطالبات یا موارد خاص استفاده نمایند.
شرکتهای پستی میتوانند از آن برای پرداخت هنگام تحویل سفارشها و غیره استفاده کنند. اکنون ممکن است سؤال کنید که چگونه میتوانید از قراردادهای هوشمند استفاده کنید؛ در حال حاضر تعداد انگشت شماری از بلاکچین ها وجود دارند که از قراردادهای هوشمند پشتیبانی میکنند که بزرگترین آن Ethereum است. اتریم به طور خاص برای پشتیبانی از قراردادهای هوشمند ایجاد و طراحی شده است.
آنها را میتوان با یک زبان ویژه برنامه نویسی به نام Solity توسعه داد. این زبان هم به طور خاص برای اتریم ایجاد شده است و از نحوی (سینتکسی) استفاده میکند که شبیه Javascrip است. شایان ذکر است که بیت کوین نیز از قراردادهای هوشمند پشتیبانی میکند اگرچه در مقایسه با اتریم بسیار محدودتر است.