قرار داد هوشمند یا اسمارت کانترکت چیست؟ Smart Contract یکی از مفاهیم جذاب در دنیای بلاکچین است که در این مطلب میخواهیم به توضیح کاربرد، مزایا و معایب آن به بیانی ساده بپردازیم.
در ابتدا مختصری از مطلب را بیان میکنیم: قرار داد هوشمند به نوعی پروتکل کامپیوتری است که فعالیتها در شبکه بلاکچین را به صورت خودکار اجرا میکند. این قرار دادها بدون هیچ واسطهای فعالیتها را به انجام میرسانند.
ایده اصلی اجرای اسمارت کانترکتها در سال ۱۹۹۴ برای اولین بار توسط نیک سابو، دانشمند آمریکایی که در حوزههای مختلفی همچون کامپیوتر، اقتصاد، حقوق و رمزنگاری دانش داشت ابداع شد. او نام این فناوری را با توجه به خودکار بودن فعالیتشان انتخاب کرد.
در ادامه با تیم تحلیل ارز هشت همراه باشید، تا این مفهوم بلاکچینی را بررسی کنیم.
قرار داد هوشمند چیست؟
قراردادهای هوشمند به سادگی برنامههایی هستند که در یک زنجیره بلوکی ذخیره میشوند و هنگامی که شرایط تعیینشده برآورده میشوند، اجرا میشوند. به طور معمول، از آنها برای انجام خودکار یک توافق استفاده میشود تا تمامی شرکتکنندگان بتوانند بلافاصله از نتیجه مطمئن شوند. همچنین میتوانند یک گردش کار را خودکار کنند و عمل بعدی را هنگام برآورده شدن شرایط به دنبال داشته باشند.
-
نحوه فعالیت قراردادهای هوشمند:
قراردادهای هوشمند با دنبال کردن اظهارات ساده “اگر/هنگامی که…آنگاه…” که به کد در یک زنجیره بلوکی نوشته میشوند، عمل میکنند. یک شبکه از کامپیوترها اقدامات را اجرا میکند هنگامی که شرایط پیشفرض برآورده و تایید میشوند.
این اقدامات ممکن است شامل ثبت یک وسیله نقلیه، ارسال اطلاعیهها یا صدور یک بلیت و یا هر چیز دیگری باشد. زمانی که معامله کامل میشود، زنجیره بلوک بهروزرسانی میشود. این به معنای این است که معامله قابل تغییر نیست و تنها افرادی که مجوز مشاهده نتایج را دارند، میتوانند آنها را ببینند.
در یک قرارداد هوشمند، میتوان شرایطی را که لازم است برآورده شوند تا شرکتکنندگان مطمئن شوند وظیفه بهخوبی انجام خواهد شد، باید مشخص شود. برای تعیین شرایط، شرکتکنندگان باید تعیین کنند چگونه معاملات و دادههای آنها در زنجیره بلوک نمایش داده میشوند. آن ها باید بر روی قوانین “اگر/هنگامی که…آنگاه…” ، توافق کنند، همه استثناهای ممکن را بررسی کنند و یک چارچوب برای حل اختلافات تعریف کنند.
سپس قرارداد هوشمند میتواند توسط یک توسعهدهنده برنامه نویسی شود. در حال حاضر سازمانهایی که از زنجیره بلوک برای کسبوکارشان استفاده میکنند؛ قالبها، رابطهای وب و ابزارهای دیگر آنلاین را فراهم کردهاند تا ساختار قراردادهای هوشمند را سادهتر کنند.
تاریخچه قراردادهای هوشمند:
قراردادهای هوشمند برای اولین بار در سال 1994 توسط نیک سابو، یک دانشمند کامپیوتر آمریکایی که در سال 1998 یک ارز مجازی به نام “بیت گلد” اختراع کرد دقیقا 10 سال پیش از معرفی بیتکوین! برای مدتی شایعاتی مبنی بر اینکه سابو نیکولاس ویتالی ساتوشی ناکاموتو، مخترع ناشناس بیتکوین باشد بود، اما وی این اخبار را انکار کرد.
سابو قراردادهای هوشمند را به عنوان پروتکلهای تراکنش کامپیوتری تعریف کرد که شرایط یک قرارداد را اجرا میکنند. او میخواست قابلیتهای روشهای تراکنش الکترونیکی مانند POS (نقطه فروش) را به دنیای دیجیتال گسترش دهد.
قراردادهای هوشمند شامل زبان یا اصطلاحات حقوقی و قرارداد بین دو طرف نمیشوند. بلکه در واقع اسکریپتهایی هستند که شامل اظهارات اگر/هنگامی که، توابع، وارد کردن ماژول و دیگر برنامهنویسی است که عملیات مشخصشده در یک قرارداد را بهصورت خودکار انجام میدهند.
قرار داد هوشمند چه کاربردی دارد؟
1-مدیریت توکن ها:
قراردادهای هوشمند توکن برای ایجاد، پیگیری، و اختصاص حقوق مالکیت به توکنهای دیجیتال خاص موجود در شبکههای بلوکچین استفاده میشوند. این قرارداد توکن ویژگیها را به توکنهایی که صادر میشود، اعمال میکند و به دارندگان ویژگیهایی مانند استفاده در یک dApp (توکن کاربردی)، امکان رای دهی در یک پروتکل (توکن حاکمیتی)، سهام در یک شرکت (توکن امنیتی)، حقوق مالکیت به یک دارایی منحصر به فرد جهانی یا دیجیتال (توکن غیر قابل تعویض) و غیره ارائه میدهد.
به عنوان مثال، توکن FIL برای پرداخت خدمات ذخیره سازی غیر متمرکز Filecoin و توکن COMP به کاربران این امکان را میدهد که در حاکمیت پروتکل Compound شرکت کنند.
2- استفاده در DeFi:
توسعه مالی غیر متمرکز (DeFi) از برنامههای کاربردی استفاده میکند که از قراردادهای هوشمند برای بازسازی محصولات و خدمات مالی سنتی مانند بازارهای پول، گزینهها، ارزهای پایدار، صرافیها و مدیریت داراییها استفاده میکنند و همچنین از ترکیب چند ویژگی برای ایجاد ابزارهای مالی جدید از طریق ترکیبپذیری بدون مجوز استفاده میکنند.
3-nft های گیمینگ:
بازیهای مبتنی بر بلوکچین از قراردادهای هوشمند برای اجرای بیتغییر اقدامات درون بازی استفاده میکنند. یک مثال از این دست بازیها، بازی PoolTogether است که یک بازی صرفهجویی بدون افت است که کاربران میزان سپرده مالی مدنظر خود را در یک استخر مشترک قرار میدهند و سپس به بازار پول هدایت میشود تا بهرهوری کسب کند.
پس از گذشت یک دوره زمانی از پیشتعیینشده، کار پایان مییابد و برنده به صورت تصادفی تمام پاداش کسبشده را دریافت میکند. در حالی که همه دیگران میتوانند سپرده اصلی خود را برداشت کنند.
به همین ترتیب، NFTهای با محدودیت میتوانند مدلهای توزیع عادلانه داشته باشند و بازیهای نقشآفرین (RPG) میتوانند از قطرههای جواهرات پیشبینیناپذیر حمایت کنند تا اطمینان حاصل شود که همه کاربران فرصت عادلانهای برای دریافت داراییهای دیجیتال نادر دارند.
بسیاری از پروژهها از تابع تصادفی Chainlink Verifiable Random Function (VRF) استفاده میکنند؛ یک مولد شماره تصادفی (RNG) که از رمزنگاری استفاده میکند تا اثبات کند که غیر قابل تغییر است، به این معنا که فرآیند RNG قابل ارزیابی عمومی است.
مزایا و معایب اسمارت کانترکت ها چیست؟
مزایای قرار دادهای هوشمند:
- کارایی: قراردادهای هوشمند اجرای قراردادها را سریعتر میکنند.
- دقت: امکان خطاهای انسانی وجود ندارد.
- غیرقابل تغییر: برنامهنویسی قابل تغییر نیست و قابلیت اصلاح ندارد.
- حذف نیاز به واسطههای سوم: مانند فناوری زنجیره بلوک، قراردادهای هوشمند نیازی به واسطههای سوم ندارند.
معایب قرار دادهای هوشمند:
- دائمی: اگر خطاهایی وجود داشته باشد، قراردادهای هوشمند قابل تغییر نیستند.
- عامل انسانی: قرار داد هوشمند بب برنامهنویس وابسته است تا کد بهطور صحیح به شرایط قرارداد پاسخ دهد.
- حفرهها: ممکن است در کد حفرههایی وجود داشته باشد که اجازه اجرای قراردادها با نیت های نادرست را بدهند.
تفاوت قرار داد هوشمند با قرار داد سنتی در بلاکچین چیست؟
تفاوتهای میان قراردادهای هوشمند و قراردادهای سنتی در فضای بلاکچین عبارت اند از:
ویژگی | قرار داد هوشمند/قرار داد سنتی |
تراکنشات الکترونیکی: |
قراردادهای هوشمند: اجرای الگوریتمها و شرایط قراردادی به صورت خودکار با استفاده از کد برنامهنویسی در بلاکچین انجام میشود.
قراردادهای سنتی: نیاز به تراکنشهای الکترونیکی و مراحل دستی برای اجرای شرایط قرارداد دارد. |
هزینه و زمان: |
قراردادهای هوشمند: اجرا به صورت فوری و با کاهش هزینههای واسطهگری.
قراردادهای سنتی: نیاز به زمان و هزینه بیشتر برای انجام مراحل دستی و واسطهگری. |
تغییرپذیری: |
قراردادهای هوشمند: پس از اجرا، اکثر قراردادهای هوشمند قابل تغییر نیستند (غیرقابل تغییر).
قراردادهای سنتی: قابلیت تغییر و تعدیل دارند. |
نحوه اجرا: |
قراردادهای هوشمند: اجرا به صورت خودکار و بدون واسطه در بلاکچین انجام میشود.
قراردادهای سنتی: نیاز به واسطههای متعدد برای اجرا و نظارت دارند. |
ردیابی و شفافیت: |
قراردادهای هوشمند: تمامی تراکنشها و تغییرات قابل دسترسی و ردیابی در بلاکچین هستند.
قراردادهای سنتی: برخی از تراکنشها و شرایط ممکن است در اسناد قانونی پنهان باقی بمانند. |
اطمینان از اجرا: |
قراردادهای هوشمند: اجرا بر اساس کد برنامهنویسی و شرایط بلاکچینی بدون نیاز به اطمینان از طرف طرفهای قرارداد.
قراردادهای سنتی: نیاز به اعتماد به واسطهها و نظارت انسانی بیشتر دارند. |
هرکدام از این تفاوتها نشاندهنده ویژگیهای منحصر به فرد هر نوع قرارداد در محیط بلاکچین هستند.
چرا قرار دادهای هوشمند در دنیای امروز مهم اند؟
قراردادهای هوشمند به توسعهدهندگان این امکان را میدهند که انواع گستردهای از برنامهها و توکنهای غیرمتمرکز بسازند. آنها در هر چیزی از ابزارهای مالی جدید تا لجستیک و تجربیات بازی مورد استفاده قرار میگیرند و همانند هر معامله کریپتو دیگری در یک بلاکچین ذخیره میشوند. هنگامی که یک برنامه قرارداد هوشمند به بلاکچین اضافه شده است، به طور کلی نمیتوان آن را برگرداند یا تغییر داد. (گاهی اوقات برخی استثناها وجود دارد)
برنامههای قدرتمند قراردادهای هوشمند اغلب به عنوان «برنامههای غیرمتمرکز» یا «DApps» اشاره دارند – و آنها شامل فناوریهای مالی غیرمتمرکز (یا DeFi) هستند که هدف آن تغییر صنعت بانکداری است.برنامههای DeFi به دارندگان ارزهای دیجیتال این امکان را میدهند که در معاملات مالی پیچیده (مانند سپرده گذاری، وام دادن و بیمه) بدون اینکه یک بانک یا موسسه مالی دیگر قسمتی از آن را کنترل کند، شرکت کنند و این امکان را به صورت بین المللی داشته باشند.
کدام پلتفرم های بلاکچینی از قرارداد هوشمند پیروی میکنند؟
برخی از محبوبترین برنامههای قراردادهای هوشمند در حال حاضر، شامل موارد ذیل هستند:
- Uniswap/یونی سواپ:یک صرافی غیرمتمرکز که به کاربران این امکان را میدهد که از طریق قراردادهای هوشمند، انواع ارز دیجیتال را بدون هیچ گونه مرجع مرکزی دیگری معامله کنند.
- Compound/کامپوند: یک پلتفرم که از قراردادهای هوشمند برای این استفاده میکند که به سرمایهگذاران این امکان را میدهد تا به صورت فوری و بدون نیاز به بانک در میان قراردادها وام بگیرند و به ازای آن بهرهای تعیین شده الگوریتمی دریافت کنند.
قرار داد هوشمند از چه اجزائی تشکیل شده است؟
در ادامه به معرفی اجزاء قراردادهای هوشمند میپردازیم. این موارد عبارت اند از:
۱. طرفین قرارداد یا امضاکنندگان (Signatories):
طرفین قرارداد هوشمند از امضاهای دیجیتالی برای تایید یا رد کردن یک سری داده استفاده میکنند.
۲. موضوع قرارداد (Contract Subject):
موضوع قرارداد، این است که طرفین بر سر آن به توافق میرسند. برای مثال ممکن است موضوع قرارداد فروش خودرو، اجاره آپارتمان یا پرداخت وام باشد.
۳. شرایط قرارداد (Contract Terms):
شرایط قرارداد، دستوراتی که در صورت تایید آنها، شاهد نهایی شدن یک قرارداد خواهیم بود. برای مثال شرط قرارداد ممکن است این باشد که پس از تحویل خودرو، پول آن به حساب فروشنده منتقل شود.
۴. زبان برنامهنویسی (Programming Language):
زبان برنامهنویسی قرارداد هوشمند کدی منطبق بر شرایط قرارداد نوشته شده است که روی بلاک چین قابل اجرا است. برای مثال زبان برنامهنویسی سالیدیتی (Solidity) که برای نوشتن قراردادهای هوشمند روی بلاک چین اتریوم استفاده میشود.
نمونه ای قرار داد هوشمند در دنیای واقعی
یکی از اهداف یک قرارداد هوشمند، اتوماتیک کردن یک فرآیند تجاری خاص بین یک گروه مشخص از کاربران است. کاربران به طور جمعی بر تمامی شرایط قرارداد هوشمند مانند پرداختها، جریان فرآیند و حل اختلافات توافق میکنند. یک مثال ساده از یک قرارداد هوشمند برای تجارت جهانی ممکن است چنین شرایطی داشته باشد:
شرط ۱: اگر کالاها به موقع برسند، آنگاه پرداخت از خرده فروش به تامینکننده به میزان کامل صورت گیرد.
شرط ۲: اگر کالاها یک روز دیر برسند، آنگاه پرداخت از خرده فروش به تامینکننده به میزان ۹۸٪ از مبلغ کامل صورت گیرد.
قراردادهای هوشمند دیگر نیز از طریق برنامههای کاربردی عمومی غیرمتمرکز (dApps) را پشتیبانی میکنند که هر کس میتواند بدون نیاز به هر گونه مجوزی با آنها تعامل کند. این dApp های عمومی اغلب به صورت منبع باز هستند، به طوری که هر کسی در سراسر جهان میتواند قبل از تصمیمگیری در مورد تعامل با آنها، دقیقا نحوه عملکرد آنها را بررسی کند.
یک مثال از یک dApp عمومی، یک بازار اعتبار دهی غیرمتمرکز است که ممکن است، چنین شرایطی داشته باشد:
شرط ۱: اگر کاربر تضمین را به قرارداد هوشمند مشخص وارد کند، میتواند وامی تا حداکثر ۵۰٪ ارزش تضمین خود (به عبارت دیگر، یک سپرده ۱۰۰ دلاری میتواند تا حداکثر ۵۰ دلار وام بگیرد) دریافت کند.
شرط ۲: اگر نسبت تضمین (ارزش تضمین/ارزش وام بدهی در حالت نقدی) کاربر به کمتر از ۲۰۰٪ برسد، ضمانت کاربر به صورت خودکار نقد شده و به تسویه کنندگان انتقال داده میشود تا اطمینان حاصل شود که آنها سود خود را از دست نمیدهند.
قرار دادهای هوشمند چه محدودیت هایی دارند؟
یکی از محدودیتهای اصلی توسعه قراردادهای هوشمند، ماهیت غیرقابل تغییر آنهاست: یک بار ایجاد شده، کد قراردادهای هوشمند نمیتواند تغییر کند. این ممکن است به عنوان یک ویژگی قدرتمند و یک محدودیت اساسی نگاه شود: برنامههای کاربردی غیرقابل تغییر به مدتی که زنده بودن زنجیره بلوکی که روی آن اجرا میشوند، به صورت خودکار عمل میکنند.
اما نمیتوانند برای ویژگیها، قابلیتها، رفع باگ، یا گسترشهای جدید بهروزرسانی شوند. این نکته یک محدودیت و خطر دیگر برای قراردادهای هوشمند است؛ یعنی یک قرارداد هوشمند که با یک باگ یا آسیبپذیری کشفنشده است نمیتواند به بهروزرسانیهای مناسبی تحت وقت (یا گاهی اوقات به هیچ وجه) تغییر یابد، که باعث میشود حسابرسی قراردادهای هوشمند یک بخش اساسی از فرآیند توسعه قراردادهای هوشمند شود.
یک راه حلی که بسیاری از توسعهدهندگان برای پشت سر گذاشتن این محدودیت استفاده میکنند، ایجاد قراردادهای هوشمند قابل بهروزرسانی است، جایی که یک قرارداد پروکسی برای اشاره به یک قرارداد هوشمند جدید و بهروزشده استفاده میشود. این باعث شکستن چسبندگی قراردادهای هوشمند نمیشود، بلکه قابلیت هدایت کاربران به یک قرارداد هوشمند جدید و بهروزشده را فراهم میکند.
کلام پایانی:
در این مطلب از ارز هشت، توضیح دادیم قرار داد هوشمند چیست؟ و با نکات مهم آن آشنا شدیم. گفتیم که قرار داد های هوشمند کد نویسی هایی هستند که در بلاکچین سبب اجرا خودکار فعالیت های مختلف میشوند.
با وجود این قرار دادها، حضور واسطه سوم از تمام فرآیندها حذف میشود و تمام کارها با شفافیت کامل و بدون تغییر پذیری اجرا میشود.
نظر شما در این باره چیست؟ شما با قرار دادهای هوشمند موافقید و یا قراردادهای سنتی و معمولی؟ نظرات و سوالات خود را در این رابطه با تیم ارز هشت در میان بگذارید.
سوالات متداول کاربران در رابطه با اسمارت کانترکت ها
قرارداد هوشمند چیست؟
قراردادهای هوشمند، برنامههای کامپیوتری هستند که در بلاکچین و توسط شرایط برنامهنویسی اجرا میشوند. این قراردادها خودکار و بدون نیاز به واسطه انسانی اجرا میشوند.
چگونه یک قرارداد هوشمند اجرا میشود؟
قراردادهای هوشمند به صورت خودکار اجرا میشوند. هنگامی که شرایط مشخص شده در برنامه توسط شبکه بلاکچین تایید میشود، قرارداد به صورت خودکار اجرا میشود و تغییرات مورد نظر را اعمال میکند.
چه تفاوتی بین قراردادهای هوشمند و قراردادهای معمولی وجود دارد؟
قراردادهای هوشمند دارای قابلیتهای خودکار و برنامهریزی شده هستند، در حالی که قراردادهای معمولی نیاز به اجرای دستی دارند. قراردادهای هوشمند در بلاکچین ذخیره میشوند و توسط تکنولوژی هوشمندی قابل اجرا هستند.
آیا قراردادهای هوشمند قابل تغییر هستند؟
یکبار که قرارداد هوشمند در بلاکچین اجرا شده و توسط شبکه تایید شده باشد، تغییرات در آن اعمال میشود. این تغییرات نیاز به تأیید اکثریت شبکه دارند. اما زمانی که اجرا شد، دیگر امکان انجام تغییر در آن وجود ندارد.
آیا امنیت قراردادهای هوشمند تضمین شده است؟
بله، امنیت قراردادهای هوشمند به واسطه تکنولوژی بلاکچین و الگوریتمهای رمزنگاری به خوبی تضمین شده است. اما باید مواظب برنامههای کدنویسی شده به دقت برای جلوگیری از ثغرات امنیتی باشید.
آیا اجرای قرار داد هوشمند نیاز به پرداخت هزینه دارد؟
به طور کلی هزینه اجرای یک قرارداد هوشمند وابسته به مفاد قرارداد و مقدار منابع مورد نیاز برای اجرای آن است. این هزینه به عنوان هزینه گس یا هزینه معامله نیز شناخته میشود.
چگونه میتوانم یک قرارداد هوشمند بسازم؟
برای ساخت یک قرارداد هوشمند، نیاز به دانش در زمینه برنامهنویسی و هوشمندی بلاکچین دارید. ابزارها و زبانهای برنامهنویسی مختلفی برای ایجاد قراردادهای هوشمند در دسترس هستند.
آیا همه بلاکچینها از قراردادهای هوشمند پشتیبانی میکنند؟
نه، همه بلاکچینها از قراردادهای هوشمند پشتیبانی نمیکنند. برخی از بلاکچینها قابلیت اجرای قراردادهای هوشمند را فراهم میکنند، در حالی که برخی دیگر این امکان را فراهم نمیکنند. در حال حاضر یکی از شناخته شده بلاکچین ها برای اجرای قراردادهای هوشمند اتریوم است.