قراردادهای هوشمند کدهای کامپیوتری هستند که مجموعهای از دستورالعملهای مشخص را اجرا میکنند. اپلیکیشنهای غیرمتمرکز یا به اختصار Dapp قراردادهای هوشمند را در پکیجهایی که کاربران امکان تعامل با آنها را دارند، بسته بندی میکنند.
خلاصه
- قراردادهای هوشمند، توافقنامههایی هستند که به شکل کدهای کامپیوتری بیان میشوند و برای اجرای یک مجموعه دستورالعمل مشخص طراحی شده اند.
- اصطلاح قرارداد هوشمند در دهه 90 میلادی و در مقاله دانشگاهی نوشته شده توسط Nick Szabo ابداع شد.
- Dapp یا اپلیکیشنهای غیرمتمرکز، در اصل مجموعهای از قراردادهای هوشمند به هم پیوسته هستند.
امروزه همه ما با اپلیکیشنها و اپ استورها آشنایی داریم. کافیست اپلیکیشن مورد نظرتان را جستجو پیدا کنید و سپس به راحتی آن را دانلود و از آن استفاده کنید.
این اپلیکیشنها در پشت رابط کاربری و تجربیات کاربری که برای شما فراهم میکنند مجموعهای از دستورالعملهای مشخص که توسط طراح آنها نوشته شده را اجرا میکنند که میتواند شامل یک بازی، یک تقویم یا راهی برای خرید کالاها و خدمات باشد.
قراردادهای هوشمند هم عملکرد مشابهی دارند. قرارداد هوشمند یک توافقنامه است که به شکل کد بیان میشود و برای اجرای مجموعهای از دستورالعملها طراحی شده است.
تنها تفاوت این است که در قراردادهای هوشمند هیچ واسطهای وجود ندارد. هیچ شخص یا شرکتی نیست که اطلاعات شما را در اختیار داشته باشد یا آنها را بررسی و اعتبارسنجی کند. خود بلاکچین یک رکورد برای شما نگه داشته و آن را اعتبارسنجی میکند.
ویتالیک بوترین و جامعه اتریوم بر این باورند که آینده بلاکچین به همین صورت است. اگر بیتکوین طلای دنیای بیزنس باشد، قراردادهای هوشمند نفت و سوخت اصلی هستند که این دنیا با استفاده از آن پیش میرود.
قرارداد هوشمند چطور کار میکند؟
فرض کنید که قصد دارید بدون استفاده از قرارداد هوشمند ماشین بخرید. برای انجام این کار به آیتمهای زیر نیاز خواهید داشت:
- وبسایتی حاوی اطلاعات همه ماشینهایی که تمایل به دیدن آنها دارید.
- روشی برای برقراری ارتباط با فروشندهها.
- یک سیستم پرداخت که امکان مبادله پول پس از پیدا کردن ماشین مورد نظرتان را فراهم کند.
- قابلیت استرداد وجه در صورت معیوب بودن خودرو.
- این خرید باید مراحل لازم برای ثبت قانونی را هم طی کند.
در همه این نقاط باید به سایت یا سرویسی که قصد دسترسی به آن را دارید اعتماد داشته باشید – و در بسیاری از مواقع، بخشی از این فرایند تحت کنترل یک شخص یا کمپانی متفاوت قرار دارد.
یک شخص یا مؤسسه تبهکار میتواند به راحتی هر یک از مراحل بالا را تغییر دهد تا باعث تخریب کل این فرایند شود. قرارداد هوشمند نیاز به اعتماد کردن به اشخاص مختلف در فرایند خرید را از بین میبرد به دلیل دلیل که این قراردادها:
- ایمن هستند و از رمزنگاری برای پیشگیری از تغییر رکوردها توسط اشخاص استفاده میکنند.
- شفاف هستند و همه میتوانند روی بلاکچین مشاهده کنند که این قرارداد هوشمند چیست و برای چه کاری استفاده میشود.
- واسطهای در قراردادهای هوشمند وجود ندارد. قراردادهای هوشمند برای تأیید، نیاز به هیچ واسطهای ندارد. خود بلاکچین این کارها را برای شما انجام میدهد.
- مستقل هستند و کاملاً خودکار عمل میکنند بنابراین نیاز نیست منتظر فشردن دکمه یا انجام کاری توسط یک شخص خاص بمانید.
- دقیق هستند. از آنجایی که قراردادهای هوشمند به شکل کد نوشته میشوند، متکی به زبانهای مبهم و معنای زبانهای انسانی نیستند.
اگر این اتفاق رخ داد، این کار را انجام بده
در قلب قرارداد هوشمند مکانیزمی وجود دارد که مفهوم کلی آن مربوط به کدهای If then …. است که باعث میشود اگر شرایط خاصی برقرار باشد، این کد یک کار خاص را انجام بدهد.
چنین کدهایی همین حالا هم وجود دارند. فرض کنید که قرار است با استفاده از کارت بانکی هزینه کالا یا خدماتی را پرداخت کنید. نرمافزار بانک به روش زیر از این مکانیزم استفاده میکند:
- اگر مبلغ موجود در حساب بانکی، بیشتر از مجموع مبالغ درخواستی است، وجه آزاد شود.
- اگر مبلغ موجود در حساب بانکی، کمتر از مجموع مبالغ درخواستی است، وجه آزاد نشود.
فرق قراردادهای هوشمند این است که به جای اینکه بانک (یا هر شخص ثالث و واسط دیگری) کنترل کننده این تصمیم باشد، کنترل آن در اختیار بلاکچین قرار دارد.
بنابراین با در نظر گرفتن مثال بالا و اعمال آن به قرارداد هوشمندی که روی یک بلاکچین اجرا میشود، مراحل زیر را داریم:
- اگر مبلغ موجود در والت دیجیتال کاربر بیشتر (از مبلغ مورد نیاز) است و هنوز خرج نشده، وجه آزاد شود.
- اگر مبلغ موجود در والت دیجیتال کاربر کمتر است یا خرج شده، وجه آزاد نشود.
جذابیت قراردادهای هوشمند در این ویژگی است که همه میتوانند با دیگران وارد توافق شوند و خود بلاکچین رکوردی از همه اطلاعات را ثبت میکند.
اپلیکیشنهای غیرمتمرکز چگونه از قراردادهای هوشمند استفاده میکنند؟
میتوان Dapp یا اپلیکیشنهای غیرمتمرکز را مجموعهای از قراردادهای هوشمند در نظر گرفت که به یکدیگر متصل شده اند.
قرارداد هوشمند به خودی خود فقط برای یک نوع تراکنش قابل استفاده است اما اپلیکیشن غیرمتمرکز میتواند چندین قرارداد هوشمند را در خود ترکیب کند تا امکان انجام کارهای پیچیده تری را داشته باشد.
همچنین، اپلیکیشن غیرمتمرکز میتواند یک اینترفیس کاربرپسند روی قراردادها نصب کند – مثل کاری که امروزه برای اپلیکیشنهای معمولی انجام میشود.
معرفی چند اپلیکیشن غیرمتمرکز برجسته
- Augur: ابزاری که به همه امکان میدهد درباره آینده مشتقات گمانه زنی کنند.
- MakerDAO: اپلیکیشنی در اقتصاد غیرمتمرکز که به کاربران امکان میدهد بدون وجود واسطه، ارزهای دیجیتال را قرض گرفته و به دیگران قرض بدهند.
- Uniswap: یک اکسچنج مبتنی بر اتریوم که به همه امکان میدهد توکنهای ERC20 را مبادله کنند.
- CryptoKitties: آیتمهای قابل جمع آوری مبتنی بر NFT که میتوان با استفاده از قراردادهای هوشمند آنها را پرورش داد.
- Argent: یک والت اتریوم که از قراردادهای هوشمند برای انتزاعی کردن مفاهیمی همچون کلید خصوصی و آدرس استفاده میکند.
چه کسی قراردادهای هوشمند را ابداع کرد؟
مثل فناوری بلاکچین که برای قدرت دادن به بیشتر ارزهای دیجیتال استفاده میشود، قراردادهای هوشمند هم از فناوریهای اولیهای به وجود آمدند که در آن زمان هنوز کامل نبودند. در رابطه با قراردادهای هوشمند، این فناوری هم اولین بار از کدهای دستوری کامپیوتری ایجاد شد که از دستورات if/else و منطق شرطی برای اجرای خودکار یک فرایند بر اساس اطلاعات ارائه شده استفاده میکردند.
خود اصطلاح «قرارداد هوشمند» در دهه 90 در مقاله آکادمیک نوشته شده توسط Nick Szabo، دانشمند برجسته کامپیوتر و حوزه رمزنگاری ابداع شد که کار توسعه یکی از اولین نسخههای بیتکوین به نام بیت گلد را هم انجام داد. در ابتدا Szabo قراردادهای هوشمند را به عنوان ابزاری برای کارهای مختلف مثل تشخیص تقلب و اعمال شرایط توافقنامهها معرفی کرد اما بعداً در مقاله سال 1996 کاربردهای بالقوه این تکنولوژی به عنوان پول نقد، یک دارایی دیجیتال و غیره تشریح شد.
اتریوم در بلاکچین خودش یک زبان تورینگ کامل را معرفی کرد که امکان استفاده از منطق پیچیده را در قراردادهای هوشمند فراهم میکرد.
قراردادهای هوشمند همیشه هم بی نقص نیستند
هر چند قراردادهای هوشمند به طور کلی راهکاری برای اجرای توافقنامه و منطقهای مختلف بدون نیاز به وجود اعتماد در نظر گرفته میشوند اما این قراردادها هم مشکلات خاص خود را دارند.
اول اینکه قراردادهای هوشمند در بسیاری از بلاکچینها تغییرناپذیر هستند و این یعنی پس از تکمیل و راه اندازی امکان تغییر یا آپگرید آنها وجود ندارد در نتیجه اگر مشکلی در کد آنها وجود داشته باشد، ممکن است عواقب فاجعه باری ایجاد شود. بهترین مثال از این موضوع هک Ethereum DAO در سال 2016 بود که باعث شد یک هکر ناشناس بتواند میلیونها اتر را با سوء استفاده از یک نقص در تابع تقسیم DAO به سرقت ببرد.
امکان استفاده از مسیرهای حمله جدید و ناشناس هم وجود دارد که در نهایت منجر به از دست رفتن دارایی سرمایه گذاران میشود. این اتفاق در سپتامبر 2020 با فروپاشی نسخه آزمایشی Eminence (پروژهای که توسط Andre Cronje از Yearn Finance طراحی شده بود) رخ داد. در اثر این حادثه یک هکر ناشناس توانست 15 میلیون دلار از داراییهای سرمایه گذاران را به سرقت ببرد.
در عین حال ممکن است یک خطای کوچک باعث بی استفاده شدن کل قرارداد هوشمند شود. این اتفاق در آگوست 2020 در پروژه کشت سود YAM رخ داد که از قراردادهای هوشمند بررسی نشده استفاده میکرد و وجود یک باگ مهم در آن باعث بیهوده شدن کل این پروژه شد.
آینده قراردادهای هوشمند
امروزه بیشتر بلاکچینها توابعی برای اجرای قراردادهای هوشمند دارند و جامعهای فعال از برنامه نویسان در حال نوشتن اپلیکیشنهای غیرمتمرکز با استفاده از قراردادهای هوشمند در بلاکچینهایی مثل Cosmos، NEO و Hyperledger هستند. قابلیتهای قراردادهای هوشمند بسیار متنوع است و میتواند مثل بیتکوین یا لایت کوین ساده و مثل اتریوم، ترون و Polkadot پیچیده باشد.
در حال حاضر از قراردادهای هوشمند برای انجام کارهای مختلف از جمله مدیریت هویت دیجیتال، مدیریت زنجیره تأمین، بیمه، ذخیره داده و کارهای مختلف دیگر استفاده میشود.
اما هنوز اپلیکیشنهای غیرمتمرکز و قراردادهای هوشمند در اولین روزهای حیات خود به سر میبرند. با این حال شرکتها و دولتهایی هستند که بررسی کاربرد قراردادهای هوشمند را آغاز کرده اند.
- دولتها – کشورهایی مثل استونی استفاده از بلاکچین برای حکومت و اداره مملکت را آغاز کرده اند.
- زنجیره تأمین – استارتاپهایی مثل Provenance به شرکتهای تولیدی برای استفاده از بلاک چین جهت خرید و جابجایی کالاها کمک میکنند.
- بیمه – استارتاپهایی مثل Etherisc به ساختن پلتفرمهای بیمه برای صنعت کشاورزی و حمل و نقل هوایی کمک میکنند.