قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) کد یا برنامهای است که در صورت تحقق شرایطی خاص، بهطور خودکار و بدون نیاز به واسطه دستوراتی را اجرا میکند.
تصور کنید در خیابان هستید و میخواهید تاکسی سوار شوید. از تاکسیِ اینترنتی خودرو درخواست میکنید و ماشینِ خودرانی (بدون راننده) سوارتان میکند. تاکسی به پمپبنزین میرود و هزینه سوخت را هم از ارز دیجیتالی که از مسافرهای قبلی دریافت کرده است، پرداخت میکند.
سپس شما را به مقصدتان میرساند و کرایه سفرتان هم از کیف پولتان با ارزهای دیجیتال پرداخت میشود. قبل از آن، ماشین بهطور خودکار هزینه بیمه سالیانه و بدهی ماهانه مالک خود را هم میپردازد و بعد از اینکه پیادهتان میکند، به تعمیرگاه میرود تا عیبهای احتمالی را هم برطرف کند.
شاید فکر کنید اینها صحنهای از فیلمی علمیتخیلی هستند؛ اما این آینده جهان است. قراردادهای هوشمند میتوانند در چنین آیندهای نقش اساسی داشته باشند.
در این مقاله، بدون واردشدن به مفاهیم فنی و پیچیده، قراردادهای هوشمند را با بیانی ساده توضیح میدهم و با ارائه مثالهای معتدد، درباره کاربردهایش میگویم. همچنین، ریسکها و چالشهای این فناوری را بررسی میکنم. با من تا پایان این مقاله همراه باشید.
قرارداد هوشمند چیست؟
قرارداد هوشمند یا همان اسمارت کانترکت (Smart Contract) برنامه یا کدی است که روی بلاک چین ذخیره میشود و در صورت رخدادن شرایط خاص، بدون واسطه و بدون نیاز به تأیید کسی اجرا خواهد شد. مفهوم این قراردادها اولین بار توسط نیک زابو (Nick Szabo) در سال ۱۹۹۴ ارائه شد.
قراردادهای هوشمند به نوعی نوشته میشوند که پس از اجرا و تحقق همه طرفین از صحت اجرای آن مطمئن باشند و پای واسطه در قرارداد حذف شود.
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، حتی خود توسعهدهنده هم نمیتواند مانع اجرای آن شود، مگر آنکه پیش از اجرا فکر آن را کرده باشد. برای همین است که پس از اجرا همه طرفین از درست اجراشدن آن مطمئن هستند.
تاریخچه قرارداد هوشمند
نیک زابو، توسعهدهنده ارز دیجیتال بیت گلد (Bit Gold)، اولین بار مفهوم اسمارت کانترکت را در سال ۱۹۹۴ مطرح کرد. شبکه اتریوم (Ethereum) اولین شبکه مخصوص قراردادهای هوشمند بود که توسط ویتالیک بوترین (Vitalik Buterin) ساخته شد.
بیشتر بخوانید: اتریوم (Ethereum) چیست؟
زابو قرارداد هوشمند را یک پروتکل تعریف میکند که یک قرارداد رایانهای را بر اساس شروط قید شده اجرایی میکند. هدف زابو از ارائه چنین پروتکلی این بود که میخواست عملکردهای تراکنشهای الکترونیکی را وارد فضای دیجیتال کند.
قرارداد هوشمند چطور کار میکند؟
اصل کار قرار هوشمند بسیار ساده است: اگر فلان اتفاق رخ داد، این دستورات را اجرا کن. اگر اتفاق دیگری رخ داد، دستور دیگر را اجرا کن و الی آخر. روش کار قراردادهای هوشمند مشابه با کار دستگاههای فروش خودکار است که در مترو و امکان عمومی آنها را میبینیم.
بهعنوان مثال، وقتی میخواهید از این دستگاهها نوشابه بخرید، پول را به دستگاه میدهید و دستگاه بهصورت خودکار پول را پردازش میکند و نوشابه را تحویل میدهد؛ بدون اینکه پای واسطهای در میان باشد. برای اجرای یک قرارداد هوشمند سه مرحله اصلی طی میشود:
- شرایط بهطور کد نوشته میشود و روی بلاکچین ذخیره میشود.
- وقتی شرایط موجود در کد برآورده شد، دستورات بهطور خودکار اجرا میشود.
- نتیجه اجرای قرارداد روی بلاکچین ذخیره میشود.
ویژگیهای قرارداد هوشمند
ازآنجاکه بلاکچینهای باز مانند اتریوم امنیت بالایی دارند و بهراحتی دستکاری نمیشوند، قراردادهای هوشمند اکنون به یک نوآوریِ انقلابی تبدیل شدهاند که میتوانند افراد را از اعتمادکردن به واسطهها بینیاز کنند یا حداقل نقش اعتماد کورکورانه را کمرنگتر کنند.
حتی خودِ برنامهنویس قرارداد هوشمند هم نمیتواند کد قرارداد هوشمند ثبتشده در بلاک چین را تغییر دهد.
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، حتی خود توسعهدهنده هم نمیتواند مانع اجرای آن شود؛ مگر آنکه پیش از اجرا، فکر آن را کرده باشد.
جذابیت دیگر قرارداد هوشمند روی بلاکچینهای عمومی این است که بررسی کد آن برای همه آزاد است و همه میتوانند از پشتپرده کدها باخبر شوند.
برای اجرای قراردادهای عادی نیاز به واسطههایی داریم که مجبور هستیم به آنها اعتماد کنیم. این واسطهها میتوانند سرورهای متمرکز کامپیوتری باشند یا بانکها و دولتها و دفترخانهها.
قرارداد هوشمند چه فرقی با قرارداد عادی دارد؟
چیزی که قرارداد هوشمند را از قراردادهای عادی متمایز میکند، استفاده از فناوری بلاکچین است. بهعبارت دیگر، اسمارت کانترکت کدی است که روی بلاکچین فعال میشود تا بدون نیاز به واسطهها، شرایط توافقنامهای را بین دو طرف بررسی و اجرا کند.
زمانی که قرارداد هوشمندی روی یک بلاک چینِ آزاد مثل اتریوم اجرا شود، دیگر متوقف نمیشود و هیچکس نمیتواند جلوی اجرای آن را بگیرد؛ مگر اینکه از قبل در کد دستوراتی برای جلوگیری از عملیاتها اعمال شده باشد.
با قراردادهای هوشمند میشود برنامهها و پروژههایی را توسعه داد که بدون هیچگونه واسطه و از کارافتادگی تا ابد به کار خود ادامه دهند. به این برنامهها برنامههای غیرمتمرکز (Dapp) هم میگویند.
بیشتر بخوانید: دپ (Dapp) یا برنامه غیرمتمرکز چیست؟
مزایای و معایب قراردادهای هوشمند
مزایای اسمارت کانترکت
- خودکارسازی: قراردادهای هوشمند با کاهش نیاز به واسطهها، کارایی را افزایش و خطای انسانی را کاهش میدهند.
- اعتماد در عین بینیازی از اعتماد: قراردادهای هوشمندی که روی بلاکچینهای امن و شفاف اجرا شوند، به اعتماد بیشتر طرفین کمک میکنند.
- امنیت: قراردادهای هوشمند از الگوریتمهای رمزنگاری استفاده میکنند تا تراکنشها را ایمن کنند؛ بنابراین ریسک تقلب کم میشود.
- سرعت: قراردادهای هوشمند با حذف کاغذبازیها و فرایندهای زمانبر، سرعت انجام تعاملات را بیشتر میکنند.
- توقفناپذیری: وقتی قرارداد هوشمندی پیادهسازی میشود، قوانین و شرایط موجود در آن قابلتغییر نیست. در همه شرایط، طرفین مجبور هستند به توافق پایبند بمانند.
- تمرکززدایی: قراردادهای هوشمندی که روی بلاکچینهای آزاد اجرا شوند، غیرمتمرکز هستند؛ یعنی کنترل آن در دست نهاد یا شرکت واحدی نیست و این یعنی خداحافظی با منفعتطلبی یا فساد در اجرای این قراردادها.
- قابلیت برنامهنویسی: میشود قراردادهای هوشمند را برای انجام طیف گستردهای از وظایف برنامهنویسی کرد؛ از تراکنشهای ساده گرفته تا فرایندهای پیچیده کسبوکاری.
معایب اسمارت کانترکت
- پیچیدگی و هزینه: در حال حاضر، برای ایجاد قراردادهای هوشمندِ دلخواه راهی جز کدنویسی پیچیده وجود ندارد که فقط توسعهدهندگان حرفهای از پسش برمیآیند. البته سرویسهایی برای ایجاد قراردادهای هوشمند بدون کدنویسی راهاندازی شده است، اما همچنان این سرویسها نمیتوانند قراردادهای پیچیده را طراحی کنند.
- خطای انسانی: احتمال اشتباه یا باگ در کد قرارداد وجود دارد و بنابراین، اگر Smart Contract در بلاک چین ثبت شود، ازآنجاکه تغییرپذیر نیست ممکن است ضررهای مالی قابلتوجهای را متوجه کاربران کند. بهعنوان نمونهای بارز، میتوان پروژه DAO در اتریوم را نام برد.
- مشکل اوراکلها: اوراکل به منبع یا سرویسی گفته میشود که برای قرارداد، دادههای خارجی را فراهم میکند تا آنها را پردازش کند. این منبع متمرکز است و شاید بشود با هککردن و تغییردادن اطلاعات هواشناسی در این سایت، Smart Contract را به اشتباه انداخت.
- نبود پذیرش قانونی و حقوقی: در حال حاضر، نهادهای قضایی و دولتها، دادههای قراردادهای هوشمند را بهرسمیت نمیشناسند. بهعنوان مثال، مالکیت خانه روی قرارداد هوشمند در حال حاضر برای دادگاهها پذیرفتهشده نیست.
- نبود بلوغ کافی: قراردادهای هوشمندِ بلاکچینی هنوز در مراحل اولیه خود هستند و قطعاً چیزهای زیادی برای یادگیری بیشتر درباره پیچیدگیهای قراردادهای هوشمند و نحوه استفاده از آنها در صنایع مختلف وجود دارد و وجود خواهد داشت.
زبان برنامهنویسی قراردادهای هوشمند
در حال حاضر سالیدیتی (Solidity) بهترین و پرکاربردترین زبان برنامهنویسی برای نوشتن اسمارت کانترکت است. با سالیدیتی میشود برنامههای غیرمتمرکز روی اتریوم، ترون و تعداد دیگری از بلاک چینها ساخت. در جدول زیر بهترین زبانهای برنامهنویسی اسمارت کانترکتها را میبینید.
نام زبان برنامهنویسی | بلاک چین هدف |
---|---|
سالیدیتی (Solidity) | اتریوم، اولنچ، بایننس، ترون، هدرا و پالیگان |
راست (Rust) | کازماس، پولکادات و سولانا |
سی پلاس پلاس (C++) | ریپل، ایاس و استلار |
کلاریتی (Clarity) | استکس |
جاوا (Java) | اتریوم، بلاک چین آیبیام و نئو |
جاوا اسکریپت (JavaScript) | اتریوم، نئو، پولکادات، سولانا |
پایتون (Python) | اتریوم، نئو و استیم |
برای ایجاد یک قرارداد هوشمند به چه چیزهایی نیاز داریم؟
بهطور کلی، برای نوشتن کد قراردادهای هوشمند، علاوه بر یادگیری برنامهنویسی، باید روی موضوعات زیر متمرکز باشیم:
- موضوع قرارداد و دسترسی: این برنامه باید به محصول یا خدمات تحتقرارداد دسترسی داشته باشد تا بهطور خودکار آنها را در فرایند عرضه یا خرید کنترل کند. مثلاً اگر قرارداد قرار است در صورت دریافت پول، فایلی را تحویل بدهد، باید به فایل دسترسی داشته باشد.
- شرایط قرارداد: شرایط اسمارت کانترکت دنبالهای از عملکردهاست که در صورت رخدادن شرایط، موجب اجرای قرارداد میشود. نوشتن صحیح این شرایط برای داشتن قراردادی سالم و دقیق بسیار مهم است.
- اوراکل (Oracle): اوراکل به منبعی گفته میشود که اطلاعات خارجی را به قرارداد میدهد تا پردازش شوند؛ مثلاً اگر قرارداد باید اطلاعات هواشناسی را بررسی کند، اوراکل میتواند یک وبسایت هواشناسی باشد که اطلاعات از آن گرفته میشود.
- پلتفرم: پلتفرم خود را طوری انتخاب کنید که بعداً دست شما را برای توسعه نبندد. مثلاً اتریوم محبوبترین بلاک چین برنامهنویسهاست. بهجز این، بلاکچینهای زیاد دیگری مانند سولانا، کاردانو و اولنچ میتوانند Smart Contract را میزبانی کنند.
کاربرد قراردادهای هوشمند در زندگی واقعی
امور مالی غیرمتمرکز (دیفای)
واضحترین کاربرد قراردادهای هوشمند در حوزه مالی دیده میشود که باعث ایجاد حوزهای بهنام دیفای (DeFi) شده است. دیفای به مجموعه خدماتی اشاره دارد که با کمک قراردادهای هوشمند، امور مالی مختلف مانند معامله، تبادلات مالی، وام، سرمایهگذاری و … را غیرمتمرکز میکند.
بیشتر بخوانید: دیفای چیست؟
انتخابات
نتایج رأیگیری در بلاک چین ثبت میشود و در میان اعضای شبکه توزیع میشود. تمام دادهها شفاف، رمزنگاریشده و ناشناس هستند. این روش از دستکاری یا تقلب در انتخابات جلوگیری میکند.
مدیریت زنجیره تأمین
از قراردادهای هوشمند میشود برای رهگیری جابهجایی کالا در زنجیره تأمین بهره برد. بهعنوان مثال، Smart Contract میتواند بهطور خودکار وضعیت تحویل محمولهای را بررسی کند و اگر مثلاً محموله به مقصد رسید، بهطور خودکار این فرایند را ثبت کند.
احراز هویت
احراز هویت متمرکز مدتهاست که چالش اصلی دنیای اینترنت است. نبود حفاظت از اطلاعات هویتی کاربران و نقض حریمخصوصی ازجمله مشکلات روش سنتی احراز هویت است. اسمارت کانترکت میتواند با احراز هویت دیجیتال، این مشکلات را از بین ببرد یا حداقل کمرنگ کند.
بیمه
با قراردادهای هوشمند میشود نیاز به واسطهها را در سیستمهای سنتی بیمه از بین برد. پرداخت خودکار خسارت، دریافت حق بیمه و تمدید بیمه با قراردادهای هوشمند چیزی است که شرکتهای بیمه اکنون روی آن کار میکنند و در ایالاتمتحده آزمایشهای موفقی هم انجام شده است.
بهترین پلتفرمهای قراردادهوشمند
- اتریوم (Ethereum): در حال حاضر اتریوم محبوبترین پلتفرم اسمارت کانترکت دنیای بلاک چین به حساب میآید و صدها برنامه غیرمتمرکز مختلف روی آن ساخته شده و اجرا میشود.
- سولانا (Solana): سوالانا که به یکی از «قاتلین اتریوم» مشهور است، در سالهای اخیر محبوبیت خوبی میان علاقهمندان به دنیای قراردادهایهوشمند پیدا کرده است. اگر میخواهید بیشتر در مورد شبکه بدانید پیشنهاد میکنیم مقاله «سولانا چیست؟» را مطالعه کنید.
- پولکادات (Polkadot): یکی دیگر قویترین پلتفرمهای اسمارت کانترکتهاست که توسط گووین وود (Gavin Wood)، توسعهدهنده اتریوم، ساخته شده است. برای اطلاعات بیشتر در مورد این شبکه «پولکادات چیست؟» را بخوانید.
- اولنچ (Avalanche): امین گون سیرر (Emin Gun Sirer)، سازنده اولنچ، این پلتفرم اسمارت کانترکت را متمایز از سایر نمونههای مشابه ساخته است. اولنچ یک پروژه پیچیده به حساب میآید و پیشنهاد میکنیم مطلب «اولانچ چیست؟» را بخوانید.
- بایننس اسمارت چین: پلتفرم بایننس اسمارت چین که توسط صرافی بایننس ایجاد شده است، طی سالهای اخیر سهم قابلتوجهی از فضای Smart Contractها را به خود اختصاص داده است و این سهم رفتهرفته در حال افزایش است.
- تزوس (Tezos): تزوس، یک پلتفرم بلاکچینی است که از قراردادهای هوشمند و برنامههای غیرمتمرکز پشتیبانی میکند. این پلتفرم، به دلیل قابلیت خوداصلاحگری، میتواند بهروزرسانیهای جدید را بدون نیاز به توقف یا تغییر عملکرد خود، اجرا کند. در مقاله «تزوس چیست؟» میتوانید اطلاعات بیشتری در این پلتفرم به دست بیاورید.
- ترون (Tron): ترون، یک پلتفرم بلاکچینی است که برای ایجاد یک شبکه جهانی و غیرمتمرکز برای اشتراکگذاری محتوای دیجیتال، توسط جاستین سان توسعه یافته است. در مقاله «ترون چیست؟» میتوانید بیشتر در این رابطه اطلاعات کسب کنید.
- شبکه تلگرام (The Open Network): اوپن نتورک یا شبکه باز که به اختصار تن (TON) نامیده میشود، یک بلاک چین منحصربهفرد جامعهمحور است که تیم تلگرام آن را طراحی کرده است.
بیشتر بخوانید: تون کوین چیست؟
سؤالات متداول
بله؛ یکی از آسیبپذیریهای اسمارت کانترکتها امکان هکشدن آنهاست که با توجه به تدابیر امنیتی میشود جلوی آن را گرفت.
خیر؛ بیت کوین از قراردادهای هوشمند پشتیبانی نمیکند و نمیشود روی بلاک چین اصلی آن برنامهای نوشت.
جذابیت اصلی قرارداد هوشمند آنجاست که وقتی اجرا میشود، هیچکس (حتی خودِ توسعهدهنده) هم نمیتواند مانع اجرای آن شود؛ مگر آنکه پیش از اجرا، فکر آن را کرده باشد.