قراردادهای هوشمند (Smart Contracts)، همه چیز درباره این امکان در بستر بلاکچین اتریوم

نیک سابو (Nick Szabo) اولین بار در دهه 1990 قراردادهای هوشمند را معرقی کرد. در آن زمان، او قرارداد هوشمند را ابزاری تعریف کرد که با ترکیب پروتکلها با رابطهای کاربری، شبکههای رایانهای را رسمی و ایمن میکند.
قراردادهای هوشمند (Smart Contracts)، همه چیز درباره این امکان در بستر بلاکچین اتریوم

قراردادهای هوشمند (Smart Contracts)، همه چیز درباره این امکان در بستر بلاکچین اتریوم
مقدمه
نیک سابو (Nick Szabo) اولین بار در دهه 1990 قراردادهای هوشمند را توصیف کرد. در آن زمان، او قرارداد هوشمند را ابزاری تعریف کرد که با ترکیب پروتکلها با رابطهای کاربری، شبکههای رایانهای را رسمی و ایمن میکند.
سابو در مورد استفاده بالقوه از قراردادهای هوشمند در زمینههای مختلف که شامل توافق نامههای قراردادی است، بحث کرد. این قراردادها در زمینههایی مانند سیستمهای اعتباری، پردازش پرداخت و مدیریت حقوق محتوا میتوانستند مفید واقع شوند.
قراردادهای هوشمند در بلاکچین
در دنیای ارزهای دیجیتال، ممکن است ما یک قرارداد هوشمند را به عنوان یک برنامه که با بلاکچین اجرا میشود، تعریف کنیم. به طور معمول، آنها به عنوان یک توافق نامه دیجیتالی کار میکنند. این توافق نامهها توسط مجموعه خاصی از قوانین اجرا میشوند. این قوانین توسط کد رایانهای از پیش تعریف شده ای، توسط همه گرههای شبکه تکرار و اجرا میشود.
قراردادهای هوشمند بلاکچین امکان ایجاد پروتکلهای بدون نیاز به اعتماد را فراهم میکنند. این بدان معناست که دو طرف میتوانند از طریق بلاکچین تعهداتی را انجام دهند، بدون اینکه نیازی به شناخت و اعتماد به یکدیگر داشته باشند. آنها میتوانند مطمئن باشند که در صورت عدم تحقق شرایط، قرارداد اجرا نمیشود. به غیر از این، استفاده از قراردادهای هوشمند میتواند نیاز به واسطهها را برطرف کند. این امر هزینههای عملیاتی را به میزان قابل توجهی کاهش میدهد.
پروتکل بیت کوین سالهاست که از قراردادهای هوشمند پشتیبانی میکند. اما این قراردادها توسط سازنده و بنیانگذار اتریوم، ویتالیک بوترین محبوب شده است. البته لازم به ذکر است که هر بلاکچین ممکن است روش متفاوتی برای اجرای قراردادهای هوشمند ارائه دهد.
این مقاله به قراردادهای هوشمندی که در ماشین مجازی اتریوم (EVM) اجرا میشوند، متمرکز خواهد شد. قراردادهای هوشمند بخشی اساسی از بلاک چین اتریوم و اکثر پروتکلهای صنعت رمزنگاری هستند.
قراردادهای هوشمند چطور کار میکنند؟
به زبان ساده، یک قرارداد هوشمند به عنوان یک برنامه تعیین کننده عمل میکند. این قرارداد یک وظیفه خاص را هنگام و در صورت تحقق برخی شرایط انجام میدهد. به همین ترتیب، یک سیستم قرارداد هوشمند غالباً از عبارات “اگر… پس” پیروی میکند. اما علی رغم اصطلاحات رایج، قراردادهای هوشمند نه قراردادهای حقوقی هستند و نه هوشمندانه. آنها فقط قطعهای از کد هستند که روی سیستم توزیع شده (بلاکچین) اجرا میشوند.
در شبکه اتریوم، قراردادهای هوشمند وظیفه اجرا و مدیریت عملیات بلاکچین را دارند که هنگام تعامل کاربران (آدرسها) با یکدیگر انجام میشود. هر آدرسی که قرارداد هوشمند نباشد، یک حساب خارجی (EOA) نامیده میشود. بنابراین، قراردادهای هوشمند توسط کد رایانه و EOA توسط کاربران کنترل میشود.
اصولاً قراردادهای هوشمند اتریوم از یک کد قرارداد و دو کلید عمومی ساخته شدهاند. اولین کلید عمومی کلید ارائه شده توسط سازنده قرارداد است. کلید دیگر نشان دهنده خود قرارداد است، به عنوان یک شناسه دیجیتال منحصر به فرد برای هر قرارداد هوشمند عمل میکند.
استقرار هر قرارداد هوشمند از طریق معامله بلاکچین انجام میشود و آنها فقط در صورت تماس با EOA یا با سایر قراردادهای هوشمند فعال میشوند. با این حال، اولین حرکت همیشه توسط EOA (کاربر) ایجاد میشود.
ویژگیهای اصلی
یک قرارداد هوشمند اتریوم اغلب مشخصات زیر را دارد:
توزیع شده (Distributed) – قراردادهای هوشمند در همه گرههای شبکه اتریوم تکثیر و توزیع میشوند. این یکی از تفاوتهای عمده با سایر راه حلهای مبتنی بر سرورهای متمرکز است.
قطعی (Deterministic) – قراردادهای هوشمند فقط با توجه به برآورده شدن شرایط، اقداماتی را انجام میدهند که برای آنها طراحی شدهاند. همچنین، مهم نیست که چه کسی آنها را اجرا کند، نتیجه همیشه یکسان خواهد بود.
خود مختار (Autonomous) – قراردادهای هوشمند میتوانند انواع کارها را به صورت خودکار انجام دهند و مانند یک برنامه خودکار اجرا شوند. اگرچه در بیشتر موارد، اگر قرارداد هوشمند منعقد نشود، “خواب” خواهد ماند و هیچ عملیاتی انجام نمیدهد.
غیرقابل تغییر (Immutable) – قراردادهای هوشمند پس از استقرار قابل تغییر نیست. تنها در صورتی که قبلاً یک عملکرد خاص اجرا شده باشد، میتوان آنها را “حذف” کرد. بنابراین، ممکن است بگوییم که قراردادهای هوشمند میتوانند کدهای ضد دستکاری ارائه دهند.
قابل تنظیم (Customizable) – قبل از استقرار، قراردادهای هوشمند را میتوان به طرق مختلف کدگذاری کرد. بنابراین، میتوان از آنها برای ایجاد انواع مختلفی از برنامههای غیرمتمرکز یا دپ ها (DApps) استفاده کرد. این مربوط به این واقعیت است که اتریوم یک بلاکچین کامل تورینگ است.
بی اعتماد (Trustless) – دو یا چند طرف میتوانند از طریق قراردادهای هوشمند بدون شناخت و اعتماد به یکدیگر تعامل داشته باشند. علاوه بر این، فناوری بلاکچین از صحت دادهها اطمینان حاصل میکند.
شفافیت (Transparent) – از آنجا که قراردادهای هوشمند مبتنی بر بلاکچین عمومی است، کد منبع آنها نه تنها تغییرناپذیر نیست بلکه برای همه قابل مشاهده است.
آیا میتوان قرارداد هوشمند را تغییر داد یا حذف کرد؟
اضافه کردن توابع جدید به یک قرارداد هوشمند اتریوم پس از استقرار غیرممکن است. با این حال، اگر سازنده آن تابعی به نام سلف دیستراکت (SELFDESTRUCT) را در کد خود گنجانده باشد، در آینده میتوانند قرارداد هوشمند را “حذف” کنند و قرارداد جدید را جایگزین آن کنند. در مقابل، اگر این عملکرد از قبل در کد وجود نداشته باشد، آنها قادر به حذف آن نخواهند بود.
قابل ذکر است، به اصطلاح قراردادهای هوشمند قابل ارتقا به توسعه دهندگان اجازه میدهد انعطاف پذیری بیشتری نسبت به تغییرناپذیری قراردادها داشته باشند. روشهای زیادی برای ایجاد قراردادهای هوشمند قابل ارتقا، با درجات مختلف از پیچیدگی وجود دارد.
با یک مثال ساده، بیایید تصور کنیم که یک قرارداد هوشمند به چندین قرارداد کوچک تقسیم میشود. برخی از آنها غیرقابل تغییر طراحی شدهاند، در حالی که در برخی دیگر عملکرد حذف وجود دارد. این بدان معنی است که بخشی از کد (قرارداد هوشمند) قابل حذف و جایگزینی است، در حالی که سایر ویژگیها دست نخورده باقی ماندهاند.
مزایا و موارد استفاده قراردادهای هوشمند
به عنوان کد قابل برنامه ریزی، قراردادهای هوشمند بسیار قابل تنظیم هستند و میتوانند به طرق مختلف طراحی و ارائه انواع خدمات و راه حلها را انجام دهند.
به عنوان برنامههای غیرمتمرکز و خود اجرا، قراردادهای هوشمند ممکن است شفافیت بیشتر و هزینههای عملیاتی را کاهش دهند. بسته به اجرا، آنها همچنین میتوانند کارایی را افزایش دهند و هزینههای دیوان سالاری را کاهش دهند.
قراردادهای هوشمند به ویژه در شرایطی که شامل انتقال یا مبادله وجوه بین دو یا چند طرف باشد مفید هستند. به عبارت دیگر، این قراردادها میتوانند برای موارد بسیار متنوعی برای استفاده طراحی شوند. برخی از نمونهها شامل ایجاد داراییهای توکن دار، سیستمهای رأی گیری، کیف پولهای ارز دیجیتال، صرافیهای غیرمتمرکز، بازیها و برنامههای تلفن همراه است. آنها همچنین میتوانند همراه با سایر راه حلهای بلاکچین که در زمینههای مراقبتهای بهداشتی، امور خیریه، زنجیره تأمین، حاکمیت و امور مالی غیرمتمرکز (DeFi) فعالیت میکنند، مستقر شوند.
استاندارد توکن ERC-20
توکن های صادر شده در بلاک چین اتریوم از استانداردی پیروی میکنند که به ERC-20 معروف است. این استاندارد توابع اصلی همه توکن های مبتنی بر اتریوم را توصیف میکند. به این ترتیب، این داراییهای دیجیتال اغلب به عنوان توکن های ERC-20 شناخته میشوند. توکن های ERC20 نمایانگر بخش بزرگی از ارزهای دیجیتال موجود هستند.
بسیاری از شرکتهای بلاکچین و استارتاپ ها قرارداد هوشمندی را برای صدور توکن های دیجیتالی خود در شبکه اتریوم مستقر کردهاند. پس از انتشار، اکثر این شرکتها توکن های ERC-20 خود را از طریق رویدادهای عرضه اولیه سکه (ICO) توزیع کردند. در بیشتر موارد، استفاده از این قراردادها امکان تبادل وجوه و توزیع توکن ها را به روشی مطمئن و کارآمد فراهم میکند.
محدودیتهای قراردادهای هوشمند
تغییرناپذیری
قراردادهای هوشمند از کد رایانهای ساخته شده توسط بشر ایجاد میشوند. این کد خطرات زیادی را به همراه دارد زیرا کد در معرض آسیب پذیری و اشکال است. در حالت ایده آل، آنها باید توسط برنامه نویسان باتجربه نوشته و مستقر شوند، به ویژه هنگامی که شامل اطلاعات حساس یا مبالغ زیادی باشد.
غیر از این، برخی معتقدند که سیستمهای متمرکز میتوانند بیشتر راه حلها و ویژگیهای ارائه شده توسط قراردادهای هوشمند را ارائه دهند. تفاوت اصلی این است که قراردادهای هوشمند به جای یک سرور متمرکز بر روی شبکه توزیع شده P2P در حال اجرا هستند. از آنجایی که آنها مبتنی بر یک سیستم بلاکچین هستند، تمایل دارند که تغییرناپذیر باشند یا بسیار سخت تغییر کنند.
تغییرناپذیر بودن در بعضی شرایط میتواند عالی باشد، اما در برخی موارد بسیار بد است. به عنوان مثال، هنگامی که یک سازمان خودمختار غیرمتمرکز (DAO) به نام “DAO” در سال 2016 هک شد، میلیونها اتر به دلیل نقص در کد قرارداد هوشمند آنها به سرقت رفت.
از آنجا که قرارداد هوشمند آنها تغییرناپذیر بود، توسعه دهندگان قادر به اصلاح کد نبودند. این امر سرانجام به یک هارد فورک منجر شد و زنجیره دوم اتریوم را به دنیا آورد. به زبان ساده، یک زنجیره هک را “برگرداند” و وجوه را به صاحبان قانونی بازگرداند (این بخشی از بلاک چین فعلی اتریوم است). زنجیره دیگر با بیان اینکه اتفاقاتی که در بلاکچین رخ میدهد هرگز نباید تغییر کند (این زنجیره اکنون Ethereum Classic نامیده میشود) تصمیم گرفت که در هک انجام شده دخالت نکند.
توجه به این نکته مهم است که این مشکل از بلاکچین اتریوم نبوده است. در عوض، این امر به دلیل اجرای معیوب قرارداد هوشمند ایجاد شده است.
غیر قابل قانون گذاری
محدودیت دیگر قراردادهای هوشمند مربوط به وضعیت قانونی نامشخص آنهاست. نه تنها به این دلیل که در بیشتر کشورها در یک منطقه خاکستری قرار دارد، بلکه به این دلیل که قراردادهای هوشمند متناسب با چارچوب قانونی فعلی نیستند.
به عنوان مثال، در بسیاری از قراردادها لازم است هر دو طرف به درستی شناسایی شوند و بیش از 18 سال سن داشته باشند. نام مستعار ارائه شده توسط فناوری بلاکچین، همراه با کمبود واسطه، ممکن است این الزامات را تهدید کند. در حالی که راه حلهای بالقوهای برای این وجود دارد، اجرای قانونی قراردادهای هوشمند یک چالش واقعی است. به ویژه هنگامی که صحبت از شبکههای توزیع شده و بدون مرز میشود.
انتقاد
برخی از علاقه مندان به بلاکچین قرارداد هوشمند را راه حلی میدانند که به زودی بخش بزرگی از سیستمهای اداری ما را جایگزین و خودکار خواهد کرد. در حالی که این یک واقعیت ممکن است، اما احتمالاً این امر تبدیل به روال نمیشود.
قرارداد هوشمند مطمئناً یک فناوری جالب است. اما توزیع، تعیین گرایانه، شفاف و تا حدی تغییرناپذیر میتواند در برخی شرایط باعث جذابیت کمتر شود.
اساساً، انتقادات به این واقعیت متکی است که قراردادهای هوشمند راه حل مناسبی برای بسیاری از مشکلات دنیای واقعی نیستند. در حقیقت، برخی از سازمانها بهتر است از گزینههای معمولی مبتنی بر سرور استفاده کنند.
وقتی سرورهای متمرکز با فناوری قرارداد هوشمند مقایسه میشوند، راحتتر و ارزانتر هستند و از نظر سرعت و ارتباط بین شبکهای (قابلیت همکاری) بهره وری بالاتری دارند.
کلام پایانی
شکی نیست که قراردادهای هوشمند تأثیر زیادی در دنیای ارزهای دیجیتال ایجاد کردند. قطعاً آنها انقلابی در فضای بلاکچین به وجود آوردند. ممکن است کاربران نهایی با این قراردادها تعامل مستقیم نداشته باشند. با این وجود قرارداد هوشمند احتمالاً طیف گستردهای از برنامهها را در آینده تأمین میکنند، از خدمات مالی گرفته تا مدیریت زنجیره تأمین.
قرارداد هوشمند و بلاکچین با هم این توانایی را دارند که تقریباً همه حوزههای جامعه ما را پوشش دهند. اما فقط زمان مشخص خواهد کرد که آیا این فناوریهای پیشگام موفق به غلبه بر بسیاری از موانع پذیرش در مقیاس بزرگ خواهند شد.