نخستین بار نیک سابو قراردادهای هوشمند را در دهه ۱۹۹۰ تعریف کرد. او قرارداد هوشمند را به ابزاری تعبیر کرد که با ترکیب پروتکلها و رابطهای کاربری، به شبکههای کامپیوتری رسمیت میدهد و آنها را ایمن میکند.
او در مورد پتانسیل کاربرد قراردادهای هوشمند در زمینههای مختلفی ازجمله توافقهای قراردادی مانند سیستمهای اعتباری، فرایندهای پرداخت و مدیریت حقوق محتوا، مطالبی مطرح کرد. قرارداد هوشمند ممکن است در دنیای ارزهای دیجیتال بهعنوان اپلیکیشن یا برنامهای تعریف شود که روی بلاکچین اجرا میشود.
این قراردادها معمولاً بهعنوان توافق دیجیتالی هستند که به وسیله مجموعه قوانین خاصی اِعمال میشوند. چنین قوانینی از قبل به وسیله کد کامپیوتری تعریف شده و توسط تمامی نودهای شبکهای تکرار و اجرا میشوند.
قرارداد هوشمند بلاکچین، پروتکلهای عدم اعتماد را امکانپذیر میکند. یعنی دو طرف قرارداد بدون نیاز به شناخت یکدیگر یا اعتماد به هم، بوسیله بلاکچین میتوانند تعهداتی را ایجاد کنند. آنها مطمئن هستند که در صورت عدم تحقق شرایط، قرارداد اجرا نخواهد شد. همچنین استفاده از قراردادهای هوشمند میتواند نیاز به واسطهها را حذف و هزینههای عملیاتی را تا حد زیادی کاهش دهد.
با اینکه پروتکل بیتکوین سالها است از قراردادهای هوشمند پشتیبانی میکند، اما این قراردادها توسط ویتالیک بوترین، خالق و همبنیانگذار اتریوم محبوبیت شد. البته ممکن است هر بلاکچین روش متفاوتی برای اجرای قراردادهای هوشمند عرضه کند.
این مقاله به قراردادهای هوشمندی میپردازد که روی ماشین مجازی اتریوم (EVM) به عنوان بخش اصلی بلاکچین اتریوم، اجرا میشوند.
قراردادهای هوشمند چگونه کار میکنند؟
به بیان ساده قرارداد هوشمند بهعنوان برنامهای قطعی عمل میکند. یعنی در صورت برقراری شرایط خاصی، کار بخصوصی انجام میشود. به این ترتیب، سیستم قرارداد هوشمند غالباً از الگوی «اگر–آنگاه» پیروی میکند. قراردادهای هوشمند با اینکه کلمات فنی و تخصصی رایجی دارند، قراردادهای قانونی یا هوشمند محسوب نمیشوند. آنها صرفاً کدهایی هستند که در سیستم توزیعشدهای به نام بلاکچین اجرا میشوند.
قرارداد هوشمند مدیریت و اجرای عملیات بلاکچین را هنگام تعامل کاربران (نشانیها) با یکدیگر در شبکه اتریوم بر عهده دارند. آدرسی که قرارداد هوشمند نباشد حساب دارای مالکیت خارجی یا (EOA) نامیده میشود. بنابراین، قراردادهای هوشمند به وسیله کد رایانهای و EOAها توسط کاربران کنترل میشوند.
قراردادهای هوشمند اتریوم اساساً از یک کد قراردادی و دو کلید عمومی تشکیل میشوند. کلید عمومی نخست توسط ایجادکننده قرارداد ایجاد میشود. کلید دیگر به وسیله خود قرارداد عرضه میشود و بهعنوان شناساگر دیجیتالی عمل میکند که برای هر قراردادی یکتا است. اجرای هر قرارداد هوشمند با انجام تراکنش صورت میگیرد و چنین قراردادهایی صرفاً زمانی فعال میشوند که توسط EOA (یا سایر قراردادهای هوشمند) فراخوانی شوند. اما همیشه نخستین عامل، EOA (کاربر) است.
ویژگیهای اصلی یک قرارداد هوشمند
قرارداد هوشمند اتریوم غالباً مشخصات زیر را دارد.
توزیعشده
قراردادهای هوشمند در همه نودهای شبکه اتریوم تکرار و توزیع میشوند. این ویژگی یکی از تفاوتهای اصلی این قراردادها با سایر راهکارهایی است که مبتنی بر سرورهای متمرکز هستند.
قطعی
قراردادهای هوشمند با فرض تأمین الزاماتشان صرفاً اقداماتی را انجام میدهند که برای آنها طراحی شدهاند. فارغ از اینکه چه کسی آنها را اجرا کند، نتیجه همیشه یکسان خواهد بود.
خودگردانی
قراردادهای هوشمند همانند برنامهای خودبهخود قابلاجرا میتوانند تمامی وظایف را خودکار کنند. اما در اکثر موارد، چنانچه قرارداد هوشمند فعال نشود «به حالت مخفی» باقی مانده و کاری انجام نمیدهد.
تغییرناپذیر
قراردادهای هوشمند پس از اجرا، تغییر نمیکنند و فقط در صورتی میتوان آنها را «حذف» کرد که قبلاً تابع خاصی در آنها لحاظ شده باشد. بنابراین قراردادهای هوشمند میتواند کدهای ضددستکاری ارائه کند.
قابل تنظیم
قبل از اجرا (deploy)، قراردادهای هوشمند را به روشهای مختلفی میتوان کدگذاری کرد. بنابراین، میتوان آنها را برای ساخت بسیاری از اپلیکیشنهای غیرمتمرکز (DApps) به کار گرفت. به همین خاطر است که اتریوم، بلاکچین تورینگ کامل (Turing complete) محسوب میشود.
عدم اعتماد
طرفین قراردادهای هوشمند میتوانند بدون شناخت یکدیگر یا اعتماد به هم، تعامل کنند. فناوری بلاکچین صحت دادهها را تضمین میکند.
شفاف
از آنجا که قراردادهای هوشمند مبتنی بر بلاکچین عمومی هستند، کد منبع آنها نهتنها تغییرناپذیر بلکه برای همه قابل مشاهده است.
آیا میتوان قرارداد هوشمند را تغییر داد یا حذف کرد؟
اضافه کردن توابع جدید به قرارداد هوشمند اتریوم پس از استقرار آن امکانپذیر نیست. اما اگر سازنده آن تابعی با عنوان SELFDESTRUCT را در کد آن گنجانده باشد، میتوان آن قرارداد را در آینده «حذف» یا با قرارداد جدیدی جایگزین کرد. در مقابل، اگر چنین تابعی قبلاً در کد قرار داده نشده باشد حذف قرارداد ممکن نخواهد بود.
قراردادهای هوشمند که قابلیت ارتقا دارند، به سازندگانش انعطاف بیشتری درباره تغییرناپذیری میدهد. روشهای زیادی برای ایجاد قراردادهای هوشمند قابل ارتقا با درجات پیچیدگی مختلف وجود دارند.
مثال سادهای را در نظر بگیرید. تصور کنید که قرارداد هوشمندی به چندین قرارداد کوچکتر تقسیم شده است. برخی از این قراردادها به شکل تغییرناپذیر طراحی شدهاند و تابع «حذف» در بقیه فعال شده است. در این صورت بخشی از کد (قراردادهای هوشمند) را میتوان حذف یا جایگزین کرد درحالیکه سایر کارکردها دستنخورده باقی میماند.
مزایا و موارد استفاده
قرارداد هوشمند به عنوان کدهای قابلبرنامهریزی قابل تنظیمی هستند که به روشهای مختلفی میتواند طراحی شود. این قراردادها خدمات و راهکارهای بسیاری دارند.
قراردادهای هوشمند بهعنوان برنامههایی با قابلیت اجرای خودبهخودی و غیرمتمرکز، ممکن است باعث افزایش شفافیت و کاهش هزینههای عملیاتی شود. همچنین با توجه به اجرا و به کارگیری آنها، میتوانند کارایی را ارتقا و هزینههای اداری را کاهش دهند.
این قراردادها بهویژه برای انتقال یا مبادله ارز بین دو یا چند طرف، بسیار مفید هستند.
به عبارت دیگر، قراردادهای هوشمند را میتوان برای کاربردهای مختلفی طراحی کرد. برای مثال میتوان به ساخت داراییهای توکنی، سیستمهای رایگیری، کیف پولهای رمزارزی، مبادلات غیرمتمرکز، بازیها و اپلیکیشنهای موبایلی اشاره کرد. همچنین این قراردادها را میتوان همراه با سایر راهکارهای بلاکچینی در زمینه مراقبتهای بهداشتی، خیریه، زنجیره تأمین، امور حاکمیتی و امور مالی غیرمتمرکز (DeFi) به کار گرفت.
ERC-20
توکنهای صادرشده در بلاکچین اتریوم از استانداردی با عنوان ERC-20 پیروی میکنند. این استاندارد کارکردهای اصلی همه توکنهای مبتنی بر اتریوم را تعیین میکند. بهاینترتیب، از این داراییهای دیجیتال غالباً به توکنهای ERC-20 نیز تعبیر میشود که بخش زیادی از ارز دیجیتال موجود را تشکیل میدهد.
بسیاری از شرکتها و استارتاپهای بلاکچینی برای صدور توکنهای دیجیتال شبکه اتریوم، قراردادهای هوشمند را به کار گرفتهاند. بسیاری از این شرکتها توکنهای ERC-20 را پس از صدور بهوسیله عرضه اولیه ارز دیجیتال (ICO) توزیع کردهاند. در اکثر موارد، استفاده از قراردادهای هوشمند، تبادل ارزی و توزیع توکنها را بهصورت غیرقابل اعتماد و کارآمد امکانپذیر میکند.
محدودیتها
قراردادهای هوشمند با کدهای رایانهای نوشته شده توسط انسان ایجاد میشوند. این امر ریسکهایی به دنبال دارد. زیرا کدها آسیبپذیرند و ممکن است اشکال داشته باشند. البته قاعدتاً چنین کدهایی، بهویژه در مواقعی که اطلاعات حساس یا مقادیر زیاد پول را در برمیگیرند، توسط برنامهنویسان باتجربه نوشته و به کار گرفته میشوند.
استدلال دیگری که مطرح میشود این است که سیستمهای متمرکز میتوانند بسیاری از راهکارها و کارکردهای قراردادهای هوشمند را در بر داشته باشند. تفاوت اصلی اینجاست که این قراردادها بهجای سرور متمرکز روی شبکه P2P توزیعشده اجرا میشوند. از آنجا که آنها مبتنی بر سیستم بلاکچین هستند، یا تغییرناپذیرند یا بهسختی تغییر میکنند.
تغییرناپذیری در اکثر اوقات، مفید است؛ اما در پارهای موارد بسیار نامطلوب خواهد بود. برای مثال با هک شدن یک سازمان خودگردان غیرمتمرکز (DAO) با نام «The DAO» در سال ۲۰۱۶ میلیونها اتر (ETH) بهدلیل ایراد کد قرارداد هوشمند، سرقت شد.
چون این قرارداد هوشمند غیرقابلتغییر بود، ایجادکنندگان نتوانستند کد را تصحیح کنند. این اتفاق سرانجام منجر به هاردفورک و ایجاد زنجیره اتریوم دوم شد. به بیان ساده، یک زنجیره، هک را برگرداند و ارزها را به صاحبان قانونی آنها رساند (این پدیده بخشی از بلاکچین اتریوم فعلی است). زنجیره در هک دخالتی نداشت و بر این اصل استوار بود که آنچه در یک بلاکچین رخ میدهد هرگز نباید تغییر کند (این زنجیره هماکنون اتریوم کلاسیک نامیده میشود).
باید توجه داشت که این مشکل از بلاکچین اتریوم ناشی نشد بلکه بهعلت اجرای معیوب قرارداد هوشمند رخ داده است.
وضعیت حقوقی نامشخص
محدودیت دیگر قراردادهای هوشمند وضعیت حقوقی نامشخص آنهاست. این قراردادها نهتنها در بسیاری از کشورها وضعیت مبهمی دارند بلکه با چارچوبهای قانونی فعلی نیز همخوانی ندارند.
برای مثال، بسیاری از قراردادها مستلزم این هستند که طرفین به درستی شناسایی شوند و سن آنها بالای ۱۸ سال باشد. درحالیکه نامهای مستعار استفاده شده در فناوری بلاکچین بههمراه فقدان واسطهها ناقض چنین الزاماتی است. با اینکه این مشکل راهحلهای بالقوهای دارد، اما اجرای قراردادهای هوشمند از نظر قانونی چالش واقعی محسوب میشود؛ مخصوصا هنگامیکه چنین قراردادهایی در شبکههای بدونمرز و توزیعشده به کار میروند.
نقد
برخی طرفداران بلاکچین قراردادهای هوشمند را راهحلی میدانند که بهزودی به خودکارسازی و جایگزینی بخش زیادی از سیستمهای تجاری و اداری منجر خواهد شد. هر چند در عمل چنین چیزی امکانپذیر است اما رواج آن غیرمحتمل بهنظر میرسد.
قطعاً قراردادهای هوشمند فناوری جالبی هستند اما ویژگیهایی نظیر توزیعشدگی، قطعیت، شفافیت و تا حدودی تغییرناپذیری، جذابیت آنها را در برخی شرایط کاهش میدهد.
اساساً انتقاد وارد بر قراردادهای هوشمند مبتنی بر این حقیقت است که راهحل مناسبی برای بسیاری از مشکلات دنیای واقعی نیستند. در حقیقت بهتر است برخی سازمانها از جایگزینهایی مبتنی بر سرورهای معمولی استفاده کنند. نگهداری سرورهای متمرکز نسبتبه قراردادهای هوشمند ارزانتر و آسانتر است و از نظر سرعت و ارتباطات بینشبکهای (قابلیت همکاری) کارایی بیشتری دارند.
سخن پایانی
تردیدی نیست که قراردادهای هوشمند تأثیر زیادی زوی دنیای رمزارزها گذاشتهاند و قطعاً فضای بلاکچین را متحول کردهاند. اگرچه ممکن است کاربران نهایی مستقیماً با قراردادهای هوشمند سر و کاری نداشته باشند، اما این قراردادها احتمالاً در آینده کاربردهای وسیعی از خدمات مالی گرفته تا مدیریت زنجیره تأمین خواهند داشت.
در مجموع، قراردادهای هوشمند و بلاکچین پتانسیل مختل کردن تقریباً تمامی حوزههای جامعه را دارند. اما زمان مشخص خواهد کرد که آیا این فناوریهای پیشگام، بر چالشهای فراوانی که بر سر راه بهکارگیری گستردهشان وجود دارد فائق خواهند شد یا خیر.
اترکس؛ صرافی ارزهای دیجیتال
می خواهید بهترین صرافی برای خرید و فروش ارزهای گوناگون با خدمات خودکار و درگاه بانکی را بشناسید؟ اترکس بهترین گزینه است!
اترکس، صرافی ارزهای دیجیتال با خدمات خودکار و پرداخت از طریق درگاه بانکی است. خرید و فروش ارزهای دیجیتال گوناگون به صورت سریع و امن در اترکس انجام میشود. با مزایایی نظیر سرعت، امنیت، تنوع و سهولت، اترکس بهترین گزینه برای خرید و فروش ارزهای دیجیتال است.
همین حالا به اترکس ملحق شوید و تجربه کار با صرافی مدرن و راحت را تجربه کنید.
بیشتر بخوانید: