قرارداد هوشمند

قرارداد هوشمند یک پروتکل کامپیوتری برای ایجاد یا بهبود قرارداد است. قرارداد هوشمند امکان ایجاد تراکنش‌های معتبر بدون واسط را فراهم می‌کند. این تراکنش‌ها قابل پیگیری و غیرقابل برگشت هستند.[1] قراردادهای هوشمند شامل تمام اطلاعات مربوط به شرایط قرارداد و اجرای تمام اقدامات هدف گذاری شده به‌طور خودکار می‌شوند. اصطلاح قرارداد هوشمند اولین بار در سال ۱۹۹۴ توسط Nick Szabo استفاده شد.[2]

قرارداد هوشمند می‌تواند بدون نیاز به فرد یا نهادی اجرا و اعمال شود. از این رو می‌تواند امنیت بیشتر و هزینه کمتری داشته باشد. در مقابل، مواردی نظیر امکان بروز خطای انسانی (در هنگام نگارش کدهای قرارداد)، قوانین حقوقی غیرشفاف کنونی در کشورهای مختلف در قبال این شکل از قرارداد و نیز هزینه بالای نگارش آن توسط برنامه‌نویسان از مهم‌ترین معایب قراردادهای هوشمند به‌شمار می‌روند. گفتنی است برخی از انواع ارز دیجیتال پیاده‌سازی‌هایی برای قرارداد هوشمند ارائه کرده‌اند.

تاریخچه

این ایده ابتدا توسط دانشمند کامپیوتر و رمز نگاری، نیک سابو در سال ۱۹۹۴ مطرح شد. او اصول اصلی کار را تعریف کرد، اما در آن زمان فضای مناسب برای تحقق ایده‌ها وجود نداشت. با ظهور فناوری بلاک چین (زنجیره بلوکی)، ایدهٔ قراردادهای هوشمند عملیاتی شد. بیت کوین به عنوان اولین ارز دیجیتال غیرمتمرکز جهان پایه‌گذار نوعی قرارداد در بلاک چین بود اما پروتکل بیت کوین فقط با هدف ایجاد یک ارز خصوصی توسعه یافته بود و نمی‌توانست تمام نیازها و فرایندها را انجام دهد. اتیریم امکان ایجاد قراردادهای هوشمند را برای تمام پروژه‌ها عملی کرد و گام نوینی در جهت هوشمند سازی جهان برداشت.

کاربرد قرارداد هوشمند

از قراردادهای هوشمند در زمینه‌های مختلفی می‌توان استفاده کرد. این زمینه‌ها شامل انتخابات، موسسات مالی و بانک‌ها، بیمه‌ها، دولت‌ها، املاک، رسانه‌ها، خدمات سلامتی و … می‌باشد.

زبان جدید برای قراردادهای هوشمند بیت کوین

مینی اسکریپت چیست؟

مینی‌اسکریپت زبانی است که توسط پیتر وولی، اندرو پولسترا و سنکت کانجالکار در شرکت تحقیقات بلاک چینی کانادایی بلاک استریم توسعه یافته‌است.

وولی در این پیام اشاره کرده‌است که این پروژه حدود یک سال زمان برده و هم‌اکنون به مرحله‌ای رسیده‌است که نیازمند توجه بیشتر است.

زبان برنامه‌نویسی مینی‌اسکریپت برای نوشتن زیردسته‌هایی از اسکریپت بیت کوین به صورت ساختار یافته به کار می‌رود که امکان تحلیل، هم‌نهشتی، امضای جنریک و موارد دیگر را فراهم می‌کند. در همین حال، اسکریپت بیت کوین یک زبان بیسیک برنامه‌نویسی است که به کاربران ایجاد قراردادهای هوشمند را با تعیین شرایط خاصی برای اجرای تراکنش‌ها ممکن می‌سازد.

براساس گفته‌های وولی، پذیرش مینی‌اسکریپت می‌تواند برخی موانعی که در نرم‌افزار وجود دارد را از میان برداشته و سیستم چندامضایی را به وجود آورد که از زبان ساده اسکریپت‌نویسی بیت کوین بهینه‌تر عمل می‌کند. پیتر وولی در توییتر خود گفت:

تصور کنید که شرکتی برای محافظت از ذخایر کیف پول سرد خود از آدرس‌های چند امضایی ۲ از ۳ کلید با ۳ عامل اجرایی استفاده کند. یکی از عوامل اجرایی چینش چندامضایی قفل شده به همراه رمز عبور دو کلمه‌ای خود را دارد. چرا این چینش به تنهایی نتواند یکی از شرکت‌کنندگان چندامضایی را مشخص کند؟ پژوهش و انرژی زیادی بر روی گسترش کارآمدی بلاک چین در جهت پشتیبانی از برنامه‌های پیچیده‌تر صرف می‌شود، اما احساس می‌کنم که فراموش کرده‌ایم از این قابلیت‌ها در روشی دسترس‌پذیرتر، سازنده‌تر و تحلیل‌پذیرتر که عملاً امروزه غیرممکن است، استفاده کنیم.

تحلیل اسکریپت ساده‌تر می‌شود

وولی در ردیت توضیح داد که مینی‌اسکریپت بازسازی فرمول اسکریپت بیت کوین محسوب می‌شود و در حالی که از زبان اسکریپت یکسانی بهره می‌برد، به کیف پول‌ها و سایر نرم‌افزارها امکان ساخت و تحلیل اسکریپت‌ها را به صورت بهینه‌تر خواهد داد.

همچنین این توسعه‌دهنده در پستی تفاوت کد یکسانی از اسکریپت بیت کوین را با مینی‌اسکریپت مقایسه کرد.

در حال حاضر مینی‌اسکریپت در زبان‌های برنامه‌نویسی سی پلاس‌پلاس و راست پیاده‌سازی شده‌است. وولی همچنین توضیح داد که مینی‌اسکریپت برای بیت کوین کنونی طراحی شده و اعمال آن به هیچگونه تغییری در اجماع نیاز نخواهد داشت.[3]

منابع

  1. "Smart Contracts, Explained". Cointelegraph. 31 October 2017.
  2. "Nick Szabo -- Smart Contracts: Building Blocks for Digital Markets". www.fon.hum.uva.nl. Archived from the original on 27 April 2018. Retrieved 2017-07-29.
  3. وبگاه پارسیان ارز. «مینی اسکریپت، زبان جدید نگارش قراردادهای هوشمند بیت‌کوین».
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.