معرفی
نیک سابو برای اولین بار قراردادهای هوشمند را در دهه 1990 توصیف کرد. در آن زمان، او قرارداد هوشمند را به عنوان ابزاری تعریف کرد که با ترکیب پروتکلها و رابطهای کاربری، شبکه های کامپیوتری را رسمیت میدهد و ایمن می کند.
سابو استفاده بالقوه از قراردادهای هوشمند در زمینههای مختلف شامل توافقات قراردادی را مطرح کرد – مانند سیستمهای اعتباری، فرآیند پرداخت و ….
در دنیای ارزهای دیجیتال ، ممکن است قرارداد هوشمند را به عنوان اپلیکیشن یا برنامهای که بر روی یک بلاکچین اجرا میشود، تعریف کنیم. معمولا، قراردادهای هوشمند مانند قراردادی دیجیتالی کار میکنند که با مجموعهای از قوانین خاص اجرا میشود. این قوانین توسط کد کامپیوتری از پیش تعریف شده است و توسط تمام نودهای شبکه تکرار و اجرا میشود.
قراردادهای هوشمند بلاکچین این امکان را فراهم میکند که دو طرف از طریق بلاکچین بدون نیاز به شناخت یا اعتماد به یکدیگر به تعهدات خود عمل کنند. آنها میتوانند اطمینان حاصل کنند که در صورت عدم تحقق شرایط، قرارداد اجرا نمیشود. به غیر از آن، استفاده از قراردادهای هوشمند می تواند نیاز به واسطهها را برطرف کند و هزینههای اجرایی را به میزان قابل توجهی کاهش دهد.
اگرچه پروتکل بیتکوین سالهاست از قراردادهای هوشمند پشتیبانی میکند، اما توسط خالق و یکی از بنیانگذاران اتریوم، ویتالیک بوترین، محبوبیت پیدا کرد. البته خوب است بدانید که هر بلاکچین ممکن است روش متفاوتی برای اجرای قراردادهای هوشمند ارائه دهد.
تمرکز این مقاله بر روی قراردادهای هوشمندی است که بر روی ماشین مجازی اتریوم (EVM) اجرا میشوند که بخش مهمی از بلاکچین اتریوم است.
قرارداد هوشمند چگونه کار میکند؟
به زبان ساده، یک قرارداد هوشمند به عنوان یک برنامه قطعی عمل میکند. اگر شرایط خاصی تحقق یابد آنگاه عملیات خاصی را اجرا میکند. به این ترتیب، سیستم قرارداد هوشمند اغلب از عبارات “اگر… آنگاه…” پیروی میکند. برخلاف اصطلاح رایج شده قراردادهای هوشمند، آنها نه قراردادهای قانونی هستند و نه هوشمند. آنها فقط چند کد هستند که روی یک سیستم توزیع شده (بلاکچین) اجرا میشوند.
در شبکه اتریوم، قراردادهای هوشمند مسئول اجرا و مدیریت عملیات بلاکچین حین تعامل کاربران (آدرسها) با یکدیگر هستند. هر آدرسی که متعلق به قرارداد هوشمند نباشد، حساب خارج از شبکه (EOA) نامیده میشود. بنابراین، قراردادهای هوشمند توسط کد کامپیوتری کنترل میشوند و EOAها توسط کاربران کنترل میشوند.
اساساً قراردادهای هوشمند اتریوم از یک کد قرارداد و دو کلید عمومی تشکیل شدهاند. اولین کلید عمومی، کلیدی است که توسط سازنده قرارداد ارائه شده است. کلید دیگر خود قرارداد را نشان میدهد و به عنوان یک شناسه دیجیتال عمل میکند که برای هر قرارداد هوشمندی منحصر به فرد است.
اجرای هر قرارداد هوشمند از طریق یک تراکنش بلاکچین انجام میشود و تنها زمانی فعال میشود که توسط EOA (یا سایر قراردادهای هوشمند) درخواستی ارسال شده باشد.
ویژگیهای کلیدی
یک قرارداد هوشمند اتریوم اغلب ویژگیهای زیر را ارائه میدهد:
- توزیع شده
قراردادهای هوشمند در تمام نودهای شبکه اتریوم تکرار و توزیع میشوند.
- قطعی
قراردادهای هوشمند اگر شرایط تحقق یابد، تنها اقداماتی را که برای آن طراحی شدهاند را انجام میدهند. همچنین، بدون توجه به اینکه چه کسی آنها را اجرا میکند، نتیجه همیشه یکسان خواهد بود.
- خودکار
قراردادهای هوشمند میتوانند انواع کارها را به صورت خودکار انجام دهند و برنامهای است که خود به خود قابل اجرا است.
- تغییرناپذیر
قراردادهای هوشمند پس از اجرا قابل تغییر نیستند. بنابراین، قراردادهای هوشمند میتوانند کدهای غیر قابل دستکاری ارائه دهند.
- قابل تنظیم
قبل از اجرا، قراردادهای هوشمند را میتوان به روشهای مختلف کدگذاری کرد. بنابراین، میتوان از آنها برای ایجاد بسیاری از انواع برنامههای غیرمتمرکز (DApps) استفاده کرد که مربوط به این است که اتریوم یک بلاکچین تورینگ کامل است.
- بدون نیاز به اعتماد کردن
دو یا چند طرف میتوانند از طریق قراردادهای هوشمند بدون شناخت یا اعتماد به یکدیگر تعامل داشته باشند. علاوه بر این، فناوری بلاکچین تضمین میکند که دادهها دقیق هستند.
- شفاف
از آنجایی که قراردادهای هوشمند مبتنی بر یک بلاکچین عمومی هستند، کد منبع آنها نه تنها تغییرناپذیر است، بلکه برای همه قابل مشاهده است.
آیا میتوانم قرارداد هوشمند را تغییر دهم یا حذف کنم؟
اضافه کردن قابلیتهای جدید به قرارداد هوشمند اتریوم پس از اجرا غیرممکن است. با این حال، اگر سازنده آن قابلیتی به نام SELFDESTRUCT (خود تخریبی) را در کد قرار دهد، میتوان قرارداد هوشمند را در آینده “حذف” کرد – و آن را با یک قرارداد جدید جایگزین کرد. اما اگر این قابلیت از قبل در کد گنجانده نشده باشد، نمیتوان آن را حذف کرد.
خوب است بدانید که، قراردادهای هوشمند به اصطلاح قابل ارتقا به توسعهدهندگان این اجازه را میدهند تا تغییرپذیری بیشتری داشته باشند. راههای زیادی برای ایجاد قراردادهای هوشمند قابل ارتقا، با درجات مختلف پیچیدگی وجود دارد.
یک مثال ساده، بیایید تصور کنیم که یک قرارداد هوشمند به چندین قرارداد کوچکتر تقسیم میشود. برخی از آنها غیرقابل تغییر طراحی شدهاند، در حالی که در برخی دیگر قابلیت “حذف” فعال شده است. این یعنی بخشی از کد (قراردادهای هوشمند) را می توان حذف و جایگزین کرد، به طوری که سایر قابلیتها دست نخورده باقی بمانند.
مزایا و موارد استفاده
قراردادهای هوشمند به عنوان کدهای برنامهنویسی ، قابلیت تنظیم بسیار بالایی دارند و به روشهای مختلف قابل طراحی هستند و میتوان از آنها برای ارائه انواع خدمات استفاده کرد.
قراردادهای هوشمند به عنوان برنامههای غیرمتمرکز و خوداجرا، شفافیت را افزایش و هزینههای عملیاتی را کاهش میدهند. بسته به سطح اجرایی، آنها میتوانند کارایی را افزایش و هزینه های اداری را کاهش دهند.
قراردادهای هوشمند به ویژه در شرایطی که نیاز به انتقال یا مبادله وجوه بین دو یا چند طرف است، بسیار مفید هستند.
به عبارت دیگر، قراردادهای هوشمند را می توان برای موارد استفاده بسیار متنوعی طراحی کرد. به عنوان مثال: ساخت داراییهای توکنیزه شده، سیستمهای رأیگیری، کیفپولهای کریپتو، صرافیهای غیرمتمرکز، بازیها و اپلیکیشنهای تلفنهمراه. قراردادهای هوشمند همچنین میتوانند همراه با سایر پلتفرمهای بلاکچین اجرا شوند که در زمینه های مختلفی مانند مراقبت های بهداشتی، خیریه، زنجیره تامین، و امور مالی غیرمتمرکز (DeFi) نقش دارند.
محدودیتها
قراردادهای هوشمند از کدهای کامپیوتری نوشته شده توسط انسان ساخته میشوند که خطرات متعددی را به همراه دارد زیرا کد آسیبپذیر و دارای باگ است. در حالت ایده آل، آنها باید توسط برنامه نویسان باتجربه نوشته و اجرا شوند، به خصوص زمانی که شامل اطلاعات حساس یا مقادیر زیادی پول باشند.
تغییرناپذیر بودن میتواند در برخی موقعیتها عالی باشد، اما در برخی موقعیتها هم بسیار بد است. برای مثال، زمانی که یک سازمان غیرمتمرکز خودمختار (DAO ) به نام «The DAO» در سال 2016 هک شد، میلیونها اتر (ETH) به دلیل نقص در کد قرارداد هوشمند آنها به سرقت رفت.
توجه به این نکته مهم است که مشکل از بلاک چین اتریوم نشات نگرفته بود. بلکه، به دلیل اجرای ناقص قرارداد هوشمند ایجاد شد.
یکی دیگر از محدودیت های قراردادهای هوشمند به وضعیت حقوقی نامشخص آنها مربوط میشود. نه تنها به این دلیل که در اکثر کشورها در وضعیت مبهمی قرار دارند، بلکه به این دلیل که قراردادهای هوشمند با چارچوب قانونی فعلی همخوانی ندارند.
شکی نیست که قراردادهای هوشمند تأثیر زیادی در دنیای ارزهای دیجیتال ایجاد کردند و مطمئناً فضای بلاکچین را متحول کردند. با این حال کاربران واقعی ممکن است مستقیماً با قراردادهای هوشمند تعامل نداشته باشند، اما این قراردادها احتمالاً به طیف وسیعی از اپلیکیشنها در آینده قدرت میدهند ، از خدمات مالی گرفته تا مدیریت زنجیره تأمین.
منبع: https://academy.binance.com/en/articles/what-are-smart-contracts