قرارداد هوشمند یا همان اسمارت کانترکت (Smart Contract) برنامه یا کدی است که روی بلاک چین ذخیره میشود و در صورت رخدادن شرایط خاص، بدون واسطه و بدون نیاز به تأیید کسی اجرا خواهد شد. مفهوم این قراردادها اولین بار توسط نیک زابو (Nick Szabo) در سال ۱۹۹۴ ارائه شد.
قراردادهای هوشمند به نوعی نوشته میشوند که پس از اجرا و تحقق همه طرفین از صحت اجرای آن مطمئن باشند و پای واسطه در قرارداد حذف شود.
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، حتی خود توسعهدهنده هم نمیتواند مانع اجرای آن شود، مگر آنکه پیش از اجرا فکر آن را کرده باشد. برای همین است که پس از اجرا همه طرفین از درست اجراشدن آن مطمئن هستند.
تاریخچه قرارداد هوشمند
نیک زابو، توسعهدهنده ارز دیجیتال بیت گلد (Bit Gold)، اولین بار مفهوم اسمارت کانترکت را در سال ۱۹۹۴ مطرح کرد. شبکه اتریوم (Ethereum) اولین شبکه مخصوص قراردادهای هوشمند بود که توسط ویتالیک بوترین (Vitalik Buterin) ساخته شد.
زابو قرارداد هوشمند را یک پروتکل تعریف میکند که یک قرارداد رایانهای را بر اساس شروط قید شده اجرایی میکند. هدف زابو از ارائه چنین پروتکلی این بود که میخواست عملکردهای تراکنشهای الکترونیکی را وارد فضای دیجیتال کند.
قرارداد هوشمند چطور کار میکند
اصل کار قرار هوشمند بسیار ساده است: اگر فلان اتفاق رخ داد، این دستورات را اجرا کن. اگر اتفاق دیگری رخ داد، دستور دیگر را اجرا کن و الی آخر. روش کار قراردادهای هوشمند مشابه با کار دستگاههای فروش خودکار است که در مترو و امکان عمومی آنها را میبینیم.
بهعنوان مثال، وقتی میخواهید از این دستگاهها نوشابه بخرید، پول را به دستگاه میدهید و دستگاه بهصورت خودکار پول را پردازش میکند و نوشابه را تحویل میدهد؛ بدون اینکه پای واسطهای در میان باشد. برای اجرای یک قرارداد هوشمند سه مرحله اصلی طی میشود:
- شرایط بهطور کد نوشته میشود و روی بلاکچین ذخیره میشود.
- وقتی شرایط موجود در کد برآورده شد، دستورات بهطور خودکار اجرا میشود.
- نتیجه اجرای قرارداد روی بلاکچین ذخیره میشود.
ویژگیهای قرارداد هوشمند
ازآنجاکه بلاکچینهای باز مانند اتریوم امنیت بالایی دارند و بهراحتی دستکاری نمیشوند، قراردادهای هوشمند اکنون به یک نوآوریِ انقلابی تبدیل شدهاند که میتوانند افراد را از اعتمادکردن به واسطهها بینیاز کنند یا حداقل نقش اعتماد کورکورانه را کمرنگتر کنند.
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، حتی خود توسعهدهنده هم نمیتواند مانع اجرای آن شود؛ مگر آنکه پیش از اجرا، فکر آن را کرده باشد.
جذابیت دیگر قرارداد هوشمند روی بلاکچینهای عمومی این است که بررسی کد آن برای همه آزاد است و همه میتوانند از پشتپرده کدها باخبر شوند.
![ماشین فروش خودکار اتریومی ماشین فروش خودکار اتریومی](https://cdn.arz.digital/ad-cnt/main/2023/02/vending_machine_that_has_Ethereum_logo_on_it_and_it.png)
برای اجرای قراردادهای عادی نیاز به واسطههایی داریم که مجبور هستیم به آنها اعتماد کنیم. این واسطهها میتوانند سرورهای متمرکز کامپیوتری باشند یا بانکها و دولتها و دفترخانهها.
قرارداد هوشمند چه فرقی با قرارداد عادی دارد
چیزی که قرارداد هوشمند را از قراردادهای عادی متمایز میکند، استفاده از فناوری بلاکچین است. بهعبارت دیگر، اسمارت کانترکت کدی است که روی بلاکچین فعال میشود تا بدون نیاز به واسطهها، شرایط توافقنامهای را بین دو طرف بررسی و اجرا کند.
زمانی که قرارداد هوشمندی روی یک بلاک چینِ آزاد مثل اتریوم اجرا شود، دیگر متوقف نمیشود و هیچکس نمیتواند جلوی اجرای آن را بگیرد؛ مگر اینکه از قبل در کد دستوراتی برای جلوگیری از عملیاتها اعمال شده باشد.
با قراردادهای هوشمند میشود برنامهها و پروژههایی را توسعه داد که بدون هیچگونه واسطه و از کارافتادگی تا ابد به کار خود ادامه دهند. به این برنامهها برنامههای غیرمتمرکز (Dapp) هم میگویند.
مزایای و معایب قراردادهای هوشمند
مزایای اسمارت کانترکت
- خودکارسازی: قراردادهای هوشمند با کاهش نیاز به واسطهها، کارایی را افزایش و خطای انسانی را کاهش میدهند.
- اعتماد در عین بینیازی از اعتماد: قراردادهای هوشمندی که روی بلاکچینهای امن و شفاف اجرا شوند، به اعتماد بیشتر طرفین کمک میکنند.
- امنیت: قراردادهای هوشمند از الگوریتمهای رمزنگاری استفاده میکنند تا تراکنشها را ایمن کنند؛ بنابراین ریسک تقلب کم میشود.
- سرعت: قراردادهای هوشمند با حذف کاغذبازیها و فرایندهای زمانبر، سرعت انجام تعاملات را بیشتر میکنند.
- توقفناپذیری: وقتی قرارداد هوشمندی پیادهسازی میشود، قوانین و شرایط موجود در آن قابلتغییر نیست. در همه شرایط، طرفین مجبور هستند به توافق پایبند بمانند.
- تمرکززدایی: قراردادهای هوشمندی که روی بلاکچینهای آزاد اجرا شوند، غیرمتمرکز هستند؛ یعنی کنترل آن در دست نهاد یا شرکت واحدی نیست و این یعنی خداحافظی با منفعتطلبی یا فساد در اجرای این قراردادها.
- قابلیت برنامهنویسی: میشود قراردادهای هوشمند را برای انجام طیف گستردهای از وظایف برنامهنویسی کرد؛ از تراکنشهای ساده گرفته تا فرایندهای پیچیده کسبوکاری.
معایب اسمارت کانترکت
- پیچیدگی و هزینه: در حال حاضر، برای ایجاد قراردادهای هوشمندِ دلخواه راهی جز کدنویسی پیچیده وجود ندارد که فقط توسعهدهندگان حرفهای از پسش برمیآیند. البته سرویسهایی برای ایجاد قراردادهای هوشمند بدون کدنویسی راهاندازی شده است، اما همچنان این سرویسها نمیتوانند قراردادهای پیچیده را طراحی کنند.
- خطای انسانی: احتمال اشتباه یا باگ در کد قرارداد وجود دارد و بنابراین، اگر Smart Contract در بلاک چین ثبت شود، ازآنجاکه تغییرپذیر نیست ممکن است ضررهای مالی قابلتوجهای را متوجه کاربران کند. بهعنوان نمونهای بارز، میتوان پروژه DAO در اتریوم را نام برد.
- مشکل اوراکلها: اوراکل به منبع یا سرویسی گفته میشود که برای قرارداد، دادههای خارجی را فراهم میکند تا آنها را پردازش کند. این منبع متمرکز است و شاید بشود با هککردن و تغییردادن اطلاعات هواشناسی در این سایت، Smart Contract را به اشتباه انداخت.
- نبود پذیرش قانونی و حقوقی: در حال حاضر، نهادهای قضایی و دولتها، دادههای قراردادهای هوشمند را بهرسمیت نمیشناسند. بهعنوان مثال، مالکیت خانه روی قرارداد هوشمند در حال حاضر برای دادگاهها پذیرفتهشده نیست.
- نبود بلوغ کافی: قراردادهای هوشمندِ بلاکچینی هنوز در مراحل اولیه خود هستند و قطعاً چیزهای زیادی برای یادگیری بیشتر درباره پیچیدگیهای قراردادهای هوشمند و نحوه استفاده از آنها در صنایع مختلف وجود دارد و وجود خواهد داشت.
زبان برنامهنویسی قراردادهای هوشمند
در حال حاضر سالیدیتی (Solidity) بهترین و پرکاربردترین زبان برنامهنویسی برای نوشتن اسمارت کانترکت است. با سالیدیتی میشود برنامههای غیرمتمرکز روی اتریوم، ترون و تعداد دیگری از بلاک چینها ساخت. در جدول زیر بهترین زبانهای برنامهنویسی اسمارت کانترکتها را میبینید.
برای ایجاد یک قرارداد هوشمند به چه چیزهایی نیاز داریم
بهطور کلی، برای نوشتن کد قراردادهای هوشمند، علاوه بر یادگیری برنامهنویسی، باید روی موضوعات زیر متمرکز باشیم
- موضوع قرارداد و دسترسی: این برنامه باید به محصول یا خدمات تحتقرارداد دسترسی داشته باشد تا بهطور خودکار آنها را در فرایند عرضه یا خرید کنترل کند. مثلاً اگر قرارداد قرار است در صورت دریافت پول، فایلی را تحویل بدهد، باید به فایل دسترسی داشته باشد.
- شرایط قرارداد: شرایط اسمارت کانترکت دنبالهای از عملکردهاست که در صورت رخدادن شرایط، موجب اجرای قرارداد میشود. نوشتن صحیح این شرایط برای داشتن قراردادی سالم و دقیق بسیار مهم است.
- اوراکل (Oracle): اوراکل به منبعی گفته میشود که اطلاعات خارجی را به قرارداد میدهد تا پردازش شوند؛ مثلاً اگر قرارداد باید اطلاعات هواشناسی را بررسی کند، اوراکل میتواند یک وبسایت هواشناسی باشد که اطلاعات از آن گرفته میشود.
- پلتفرم: پلتفرم خود را طوری انتخاب کنید که بعداً دست شما را برای توسعه نبندد. مثلاً اتریوم محبوبترین بلاک چین برنامهنویسهاست. بهجز این، بلاکچینهای زیاد دیگری مانند سولانا، کاردانو و اولنچ میتوانند Smart Contract را میزبانی کنند.
کاربرد قراردادهای هوشمند در زندگی واقعی
انواع کاربرد اسمارت کانترکت
امور مالی غیرمتمرکز (دیفای)
واضحترین کاربرد قراردادهای هوشمند در حوزه مالی دیده میشود که باعث ایجاد حوزهای بهنام دیفای (DeFi) شده است. دیفای به مجموعه خدماتی اشاره دارد که با کمک قراردادهای هوشمند، امور مالی مختلف مانند معامله، تبادلات مالی، وام، سرمایهگذاری و … را غیرمتمرکز میکند.
بیشتر بخوانید: دیفای چیست؟
انتخابات
نتایج رأیگیری در بلاک چین ثبت میشود و در میان اعضای شبکه توزیع میشود. تمام دادهها شفاف، رمزنگاریشده و ناشناس هستند. این روش از دستکاری یا تقلب در انتخابات جلوگیری میکند.
مدیریت زنجیره تأمین
از قراردادهای هوشمند میشود برای رهگیری جابهجایی کالا در زنجیره تأمین بهره برد. بهعنوان مثال، Smart Contract میتواند بهطور خودکار وضعیت تحویل محمولهای را بررسی کند و اگر مثلاً محموله به مقصد رسید، بهطور خودکار این فرایند را ثبت کند.
احراز هویت
احراز هویت متمرکز مدتهاست که چالش اصلی دنیای اینترنت است. نبود حفاظت از اطلاعات هویتی کاربران و نقض حریمخصوصی ازجمله مشکلات روش سنتی احراز هویت است. اسمارت کانترکت میتواند با احراز هویت دیجیتال، این مشکلات را از بین ببرد یا حداقل کمرنگ کند.
بیمه
با قراردادهای هوشمند میشود نیاز به واسطهها را در سیستمهای سنتی بیمه از بین برد. پرداخت خودکار خسارت، دریافت حق بیمه و تمدید بیمه با قراردادهای هوشمند چیزی است که شرکتهای بیمه اکنون روی آن کار میکنند و در ایالاتمتحده آزمایش های موفقی هم انجام شده است.
بهترین پلتفرمهای قراردادهوشمند
- اتریوم (Ethereum): در حال حاضر اتریوم محبوبترین پلتفرم اسمارت کانترکت دنیای بلاک چین به حساب میآید و صدها برنامه غیرمتمرکز مختلف روی آن ساخته شده و اجرا میشود.
- سولانا (Solana): سوالانا که به یکی از «قاتلین اتریوم» مشهور است، در سالهای اخیر محبوبیت خوبی میان علاقهمندان به دنیای قراردادهایهوشمند پیدا کرده است. اگر میخواهید بیشتر در مورد شبکه بدانید پیشنهاد میکنیم مقاله «سولانا چیست؟» را مطالعه کنید.
- پولکادات (Polkadot): یکی دیگر قویترین پلتفرمهای اسمارت کانترکتهاست که توسط گووین وود (Gavin Wood)، توسعهدهنده اتریوم، ساخته شده است. برای اطلاعات بیشتر در مورد این شبکه «پولکادات چیست؟» را بخوانید.
- اولنچ (Avalanche): امین گون سیرر (Emin Gun Sirer)، سازنده اولنچ، این پلتفرم اسمارت کانترکت را متمایز از سایر نمونههای مشابه ساخته است. اولنچ یک پروژه پیچیده به حساب میآید و پیشنهاد میکنیم مطلب «اولانچ چیست؟» را بخوانید.
- بایننس اسمارت چین: پلتفرم بایننس اسمارت چین که توسط صرافی بایننس ایجاد شده است، طی سالهای اخیر سهم قابلتوجهی از فضای Smart Contractها را به خود اختصاص داده است و این سهم رفتهرفته در حال افزایش است.
- تزوس (Tezos): تزوس، یک پلتفرم بلاکچینی است که از قراردادهای هوشمند و برنامههای غیرمتمرکز پشتیبانی میکند. این پلتفرم، به دلیل قابلیت خوداصلاحگری، میتواند بهروزرسانیهای جدید را بدون نیاز به توقف یا تغییر عملکرد خود، اجرا کند. در مقاله «تزوس چیست؟» میتوانید اطلاعات بیشتری در این پلتفرم به دست بیاورید.
- ترون (Tron): ترون، یک پلتفرم بلاکچینی است که برای ایجاد یک شبکه جهانی و غیرمتمرکز برای اشتراکگذاری محتوای دیجیتال، توسط جاستین سان توسعه یافته است. در مقاله «ترون چیست؟» میتوانید بیشتر در این رابطه اطلاعات کسب کنید.
- شبکه تلگرام (The Open Network): اوپن نتورک یا شبکه باز که به اختصار تن (TON) نامیده میشود، یک بلاک چین منحصربهفرد جامعهمحور است که تیم تلگرام آن را طراحی کرده است.
سؤالات متداول
آیا قرارداد هوشمند هک میشود؟
بله؛ یکی از آسیبپذیریهای اسمارت کانترکتها امکان هکشدن آنهاست که با توجه به تدابیر امنیتی میشود جلوی آن را گرفت.
آیا بیت کوین با قرارداد هوشمند کار میکند؟
خیر؛ بیت کوین از قراردادهای هوشمند پشتیبانی نمیکند و نمیشود روی بلاک چین اصلی آن برنامهای نوشت.
چرا قراردادهای هوشمند انقلابی هستند؟
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، هیچکس (حتی خودِ توسعهدهنده) هم نمیتواند مانع اجرای آن شود؛ مگر آنکه پیش از اجرا، فکر آن را کرده باشد.