قراردادهای هوشمند به سادگی برنامههایی هستند که در یک زنجیره بلوکی ذخیره میشوند و هنگامی که شرایط تعیینشده برآورده میشوند، اجرا میشوند. به طور معمول، از آنها برای انجام خودکار یک توافق استفاده میشود تا تمامی شرکتکنندگان بتوانند بلافاصله از نتیجه مطمئن شوند. همچنین میتوانند یک گردش کار را خودکار کنند و عمل بعدی را هنگام برآورده شدن شرایط به دنبال داشته باشند.
قراردادهای هوشمند با دنبال کردن اظهارات ساده “اگر/هنگامی که…آنگاه…” که به کد در یک زنجیره بلوکی نوشته میشوند، عمل میکنند. یک شبکه از کامپیوترها اقدامات را اجرا میکند هنگامی که شرایط پیشفرض برآورده و تایید میشوند.
این اقدامات ممکن است شامل ثبت یک وسیله نقلیه، ارسال اطلاعیهها یا صدور یک بلیت و یا هر چیز دیگری باشد. زمانی که معامله کامل میشود، زنجیره بلوک بهروزرسانی میشود. این به معنای این است که معامله قابل تغییر نیست و تنها افرادی که مجوز مشاهده نتایج را دارند، میتوانند آنها را ببینند.
در یک قرارداد هوشمند، میتوان شرایطی را که لازم است برآورده شوند تا شرکتکنندگان مطمئن شوند وظیفه بهخوبی انجام خواهد شد، باید مشخص شود. برای تعیین شرایط، شرکتکنندگان باید تعیین کنند چگونه معاملات و دادههای آنها در زنجیره بلوک نمایش داده میشوند. آن ها باید بر روی قوانین “اگر/هنگامی که…آنگاه…” ، توافق کنند، همه استثناهای ممکن را بررسی کنند و یک چارچوب برای حل اختلافات تعریف کنند.
سپس قرارداد هوشمند میتواند توسط یک توسعهدهنده برنامه نویسی شود. در حال حاضر سازمانهایی که از زنجیره بلوک برای کسبوکارشان استفاده میکنند؛ قالبها، رابطهای وب و ابزارهای دیگر آنلاین را فراهم کردهاند تا ساختار قراردادهای هوشمند را سادهتر کنند.
قراردادهای هوشمند برای اولین بار در سال 1994 توسط نیک سابو، یک دانشمند کامپیوتر آمریکایی که در سال 1998 یک ارز مجازی به نام “بیت گلد” اختراع کرد دقیقا 10 سال پیش از معرفی بیتکوین! برای مدتی شایعاتی مبنی بر اینکه سابو نیکولاس ویتالی ساتوشی ناکاموتو، مخترع ناشناس بیتکوین باشد بود، اما وی این اخبار را انکار کرد.
سابو قراردادهای هوشمند را به عنوان پروتکلهای تراکنش کامپیوتری تعریف کرد که شرایط یک قرارداد را اجرا میکنند. او میخواست قابلیتهای روشهای تراکنش الکترونیکی مانند POS (نقطه فروش) را به دنیای دیجیتال گسترش دهد.
قراردادهای هوشمند شامل زبان یا اصطلاحات حقوقی و قرارداد بین دو طرف نمیشوند. بلکه در واقع اسکریپتهایی هستند که شامل اظهارات اگر/هنگامی که، توابع، وارد کردن ماژول و دیگر برنامهنویسی است که عملیات مشخصشده در یک قرارداد را بهصورت خودکار انجام میدهند.
کامل این مطلب رو در وبلاگ ارزهشت مشاهده کنید.