قرارداد هوشمند یا اسمارت کانترکت اپلیکیشینی است که برنامه نویسان آن را با هدف اجرای اتوماتیک قوانین پروژه خود، بر روی بستر بلاکچین توسعه میدهند. شرایط پیادهسازی قوانین یاد شدهاز قبل بر روی اسمارت کانترکت کد نوسیی شدهو توسط تکنولوژی بلاکچین اجرا میشوند.
اولین بلاکچینی که سیستم قرارداد هوشمند را در پلتفرم خود به اجرا درآورد، شبکه اتریوم بود. اما اتریوم چیست و چه نقشی در توسعه این حوزه غو پیکر داشتهاست؟
اتریوم چیست؟
با وجود فراگیری تکنولوژی بلاکچین، حتی افرادی که آشنایی کاملی با این فناوری ندارند نیز به احتمال زیاد نام اتریوم را شنیدهاند. اتریوم دومین رمزارز بزرگ پس از بیت کوین است و در سال های اخیر به یکی از پراستفاده ترین ارزهای دیجیتال تبدیل شدهاست.
اما اتریوم فقط یک رمزارز نیست، بلکه پلتفرمی است که سایر پروتکل های بلاکچینی میتوانند بر روی آن مسکن گزینند. ارز رایج و بومی بستر اتریوم، اتر نام دارد که به منظور پرداخت برای انجام تراکنشها در بلاکچین اتریوم مورد استفاده قرار میگیرد.
حال پیش ازشروع بررسی نحوه کارکرد قرارداد های هوشمند این نکته را به خاطر داشته باشید که قرارداد های هوشمند مهمترین محصولات بلاکچین اتریوم هستند.
بلاکچین چیست؟
پیش از بررسی مفهوم قرارداد هوشمند، ابتدا باید به سوال بلاکچین چیست پاسخ دهیم:
کلمه بلاکچین از دو بخش بلاک و چین (به معنی زنجیر) تشکیل شدهاست. این بدان معناست که یک بلاکچین از زنجیرهای از بلوکهای اطلاعات تشکیل میشود. هر بلوک یک بلاکچین اطلاعات تراکنشهای انجام شدهبین کاربران است.
نکته مهمی که در رابطه با بلاکچین باید در نظر داشت این است که هر بلاک حاوی اطلاعات جدید، خلاصهای از اطلاعات بلاک قبلی را نیز شامل میشود. این موضوع باعث میشود که در صورت تغییر اطلاعات هر بلاک، اطلاعات بلاکهای قبل نیز تغییر یابد که این امر غیرممکن است.
از این رو اطلاعات بلاکچین را به هیچ عنوان میتوان تغییر داد و این موضوع، بلاکچین را به یک سیستم بدون نیاز به اعتماد یا trustless تبدیل میکند.
تاریخچه قراردادهای هوشمند
در سال 1994، کد نویسی به نام نیک سابو، به این فکر افتاد که که قرارداد های حقوقی و مالی را به صورت کدهای ((اگر)) و ((پس)) در آورد. بدینشکل که در صورت تحققیافتن شرایطی خاص، قراردادها بهصورت خودکار فعالشوند. این ایده همچنین میتوانست نیاز به اشخاص ثالث، مانند بانک ها را از بین ببرد.
اما چرا اشخاص ثالث از بین بروند؟ پاسخ ساده است. زیرا در این حالت شما دیگر نیاز ندارید تا در هنگام معامله، به شخص ثالثی “اعتماد” کنید. بدین ترتیب در صورت انجام معاملات به وسیله قراردادهای هوشمند، قرارداد های مالی و حقوقی به صورت خودکار و در یک شبکه trustless یا بدون نیاز به اعتماد انجام میشوند.
اما با وجود اینکه ایده نیک سابو بسیار هوشمندانه و جالب بود، مشکلش این بود که در آن زمان بستری به نام بلاکچین وجود نداشت که قرارداد های هوشمند بر روی آن تعبیه شوند.
پس از گذشت سالها، بیت کوین در سال 2009 اولین بلاکچین را به دنیا معرفی کرد و در سال 2015 نیز اتریوم با ارائه بستری برای کارکرد قرارداد های هوشمند، در دسترس کاربران قرار گرفت.
قرارداد هوشمند چیست؟
بهمنظور رسیدن به جواب این سوال، بهنکات زیر توجه نمایید.
یک قرارداد هوشمند، درواقع توافقی است بین طرفین معامله، و در قالب کد های کامپیوتری. قراردادهای هوشمند بر روی بلاکچین اجراشده و در نتیجه قابل تغییر نیست.
تراکنش ها و معاملات در یک قرارداد هوشمند توسط تکنولوژی بلاکچین پردازش و تایید میشوند. این بدان معناست که افراد برای انجام معاملات لازم ندارند تا به کسی اعتماد کنند.
پرداختها و خرید ارز دیجیتال در قرارداد های هوشمند، تنها زمانی انجام میشوند که شرایط موجود در قرارداد، تحقق یابند.
کدام بلاکچینها قرارداد هوشمند ارائه میدهند؟
بلاکچینهای ارائه دهنده قراردادهای هومشند، شامل موارد زیر است:
- اتریوم
- بایننس اسمارت چین (BSC چیست)
- سولانا
- کاردانو
- اولنچ (AVAX)
- الگورند
- هارمونی
انواع قرارداد هوشمند در بلاکچین اتریوم
نوع قرارداد هوشمند | تاریخ توسعه | کاربرد توکن |
ERC20 | 2015-11-19 | انجام پرداختها |
ERC721 | 2018-01-24 | توسعه توکنهای NFT |
ERC777 | 2017-11-20 | کاهش هزینه گس فی برای توسعه قرارداد هوشمند |
ERC1155 | 2018-06-17 | توسعه چندین توکن مختلف با استفاده از یک قرارداد |
لازم به ذکر است که برای دریافت اطلاعات به روز شدهدر این مورد، میتوانید با مراجعه به سایت کوین مارکت کپ در بخش کتگوری، اسمارت کانترکت را انتخاب کرده و لیست بلاکچینها را دریافت کنید.
تفاوت قرارداد هوشمند با قرارداد معمولی چیست؟
در یک قرارداد سنتی، عموما علاوه بر طرفین معامله، شخص سومی نیز وجود دارد که پس از تنظیم قرارداد، مبلغی را از دو طرف معامله به عنوان کمیسیون دریافت میکند. در چنین قراردادهایی علاوه بر اینکه امکان تقلب وجود دارد، هرکدام از طرفین معامله میتوانند قوانین را دور زدهو از طریقی، این قرارداد را فسخ کنند.
این درحالی است که قرادادهای هوشمند بر روی بلاکچین پیادهسازی میشوند، و همانطور که گفته شد، در تکنولوژی بلاکچین بههیچ عنوان امکان تغییر و تصحیح وجودندارد. از طرفی برای عقد قرارداد بین کاربران و پروژهها، دیگر شخص ثالثی نیست که مبلغی را به عنوان کمیسیون دریافت کند. علاوه بر این، به دلیل پیاده سازی قرارداد هوشمند بر روی یک بستر خودکار، طرفین معامله برای عقد قرارداد نیازی ندارند که به یکدیگر اعتماد داشته باشند.
اسمارت کانترکت از چه بخشهایی تشکیل میشود؟
هر اسمارت کانترکت از پنج بخش اصلی تشکیل میشود:
- طرفین معامله: طرفین معامله در یک قرارداد هوشمند باید برای وضع قراداد، امضای دیجیتالی ارائه دهند که اعلام کنند این کانترکت را قبول دارند.
- موضوع: از آنجایی که کانترکتها باید به موضوع قراداد دسترسی داشته باشند، فایلها و اطلاعات کانترکت باید در اختیار بلاکچین قرار گیرند.
- شرایط معامله: برنامه نویسان قراردادها که با استفاده از زبان برنامهنویسی سالیدیتی نوشتهاند را توسعه داده و شرایط معامله را در آن درج میکنند. به این ترتیب شرایط معامله در بلاکچین کد نویسی شده و هیچ ارگانی قادر به تغییر آن نیست.
- اوراکل: اوراکلها سیستمهایی هستند که اطلاعات خارج زنجیرهای را در اختیار بلاکچین قرار میدهند. به عنوان مثال اگر قرارداد به منظور معاملات سهامی خاص توسعهیافته، اوراکل اطلاعات لازم درباره آن سهام را در اختیار اسمارت کانترکت قرار میدهد.
- بلاکچین: بدیهی است که به منظور عقد یک اسمارت کانترکت، نیاز به یک بلاکچین است. در ادامه بلاکچینهایی که امکان توسعه قراردادهای هوشمند را ارائه میدهند را مورد بررسی قرار خواهیم داد.
نحوه کارکرد قراردادهای هوشمند
برای متوجه شدن نحوه کارکرد قراردادهای هوشمند فرض کنید که باب قصد دارد تا خانه آلیس را خریداری کند و این توافق به صورت یک قرارداد هوشمند در اتریوم شکل گرفته است. قرارداد یاد شده به صورت کد، نشانگر این عبارت ساده است : “اگر باب 300 اتر برای آلیس ارسال کند، پس خانه به باب تعلق میگیرد.” در زمانی که این قرارداد بر روی بلاکچین اتریوم کد شود، دیگر قابل تغییر نبوده و در نتیجه باب میتواند با خیال راحت و بدون نیاز به اعتماد به کسی، 300 اتر برای آلیس ارسال نماید.
در صورت عدم استفاده از قراردادهای هوشمند، پروسه هایی که باید طی شوند شامل این است که باب و آلیس به کمپانی های واسطه از جمله بانکها، وکلا و مشاورین املاک پول پرداخت کنند و زمان زیادی را برای این کارها صرف کنند.
حال ممکن است این سوال پیش بیاید که در صورت هک شدن سیستم بلاکچینی اتریوم، بر سر پولهای ارسال شده چه میاید؟ جواب ساده است.
به طور خلاصه، بلاکچین اتریوم، یک بستر توزیع شده و غیر متمرکز است. یعنی هیچ سازمان و نهادی آن را کنترل نمیکند. بنابراین برای هک کردن این سیستم که در دست هزاران هزار کاربر میباشد، هکر ها باید بیش از نیمی از گره ها را در دست بگیرند که این کار بسیار هزینه بر تر از هک نکردن سیستم است. به زبان ساده تر، بلاکچین هایی مانند اتریوم و بیتکوین به گونه ای طراحی شده اند که کاربران تنها در صورت “صداقت” داشتن میتوانند با آنها کار کنند. پروتکلی که این امر را تحقق میبخشد BFT نام دارد.
چگونه قرارداد هوشمند بسازیم؟
برای ساخت و توسعه یک قرارداد هوشمند به زبان سالیدیتی در شبکه آزمایشی بلاکچین اتریوم، در ابتدا نیاز به یک کیف پول ارز دیجیتال دارید. در این بخش، ساخت قرارداد هوشمند با استفاده از کیف پول متامسک را آموزش خواهیم داد:
برای کسب اطلاعات بیشتر در این باره به مقاله کیف پول ارز دیجیتال چیست مراجعه کنید.
اول: ساخت کیف پول با استفاده از گزینه Create a new wallet
دوم: انتخاب یکی از شبکههای آزمایشی:
- Robsten test network
- Goerli test network
- Koven test network
- Rinkeby test network
سوم: واریز اتر به شبکهآزمایشی
- انتخاب گزینه deposit
- گزینه test faucet
- انتخاب گزینه get ether
- بر روی گزینه request one ether from the faucet را انتخاب کنید. در این حالت یک اتر به حساب شما واریز میشود. (اترهای واریزی به شبکه آزمایشی ارزش مادی ندارد)
- پس از ارسال اتر به شبکه آزمایشی شما قادرید تا با استفاده از زبان سالیدیتی یک قرارداد هوشمند توسعه دهید.
مراحل راه اندازی سمارت کانترکت در بلاکچین اتریوم
- با استفاده از متامسک به بلاکچین اتریوم متصل شوید.
- مقداری اتر به والت خود ارسال کنید
- حال درست مانند شبکه آزمایشی که در بالا ذکر کردیم، با استفاده از برنامههایی مانند remix، قرارداد را به بلاکچین ارسال کنید.
- پس از ارسال قرارداد به بلاکچین، به وبسایت etherscan.io مراجعه کنید تا آدرس کتنترکت را دریافت کنید.
- سپس با مراجعه به قرارداد هوشمند و کلیک بر روی گزینه verify the contract، آن را تایید کنید.
- کد قرارداد را کپی کرده و کد را کامپایل کنید.
- در صورتی که در برنامه ریمیکس، گزینه optimization را انتخاب کردهاید گزینه yes را انتخاب کنید.
- روی verify کلیک کنید.
- پس از گذشت چند دقیقه، قرارداد شما در بلاکچین اتریوم به اجرا درخواهد آمد.
موارد استفاده از قراردادهای هوشمند
مثال باب و آلیس تنها استفاده از قرارداد های هوشمند به شمار نمیرود. در حال حاضر از قرارداد های هوشمند به منظور تجارت، خدمات مالی، بیمه، اعطای مجوز، فرایند های قانونی و حتی توافق نامه برای ICO ها استفاده میشود.
قرارداد هوشمند و بیمه:
دو اداره بیمه با نام های اطلس در کشور مالت و AXA در کشور فرانسه در سال 2017 شروع به آزمایش قراردادهای هوشمند بر پلت فرم خود کردند. در این آزمایش این شرکت ها تصمیم گرفتند که در صورت تاخیر در پرواز هواپیما، از طریق قراردادهای هوشمند به مشتریان خود پول جبرانی پرداخت کنند. برای بهتر متوجه شدن این امر به مثال زیر توجه کنید:
باب قصد دارد تا از نیویورک به سانفرانسیسکو سفر کند. او مبلغ 5 دلار اتر را به بیمه AXA پرداخت میکند. بیمه AXA نیز 95دلار اتر را به قرارداد هوشمند تزریق میکند. پس در حال حاضر 100 دلار اتر در قرارداد وجود دارد. اگر پرواز باب به موقع انجام شود، کمپانی AXA مبلغ 100 دلار را از قرارداد هوشمند پس گرفته و اگر پرواز باب تاخیرداشته باشد، مبلغ 100 دلار از قرارداد هوشمند برای باب ارسال میشود.
دراین سناریو علاوه بر صرفه جویی در وقت و هزینه های تراکنش بانک ها، باب دیگر نیاز ندارد تا به کمپانی AXA اعتماد کند، چراکه پول او در صورت تاخیر، توسط کدها و به صورت خودکار برایش واریز خواهد شد.
قرارداد هوشمند و خدمات بهداشتی و پزشکی
یکی از نمونه های استفاده خدمات پزشکی از قراردادهای هوشمند، پروژه Encrypgen میباشد. در این پروژه اطلاعات پزشکی بیماران به صورت کاملا امن ذخیرهشده و محققان به منظور دسترسی به این اطلاعات باید برای بیماران پول ارسال نمایند.
قرارداد هوشمند و دولت ها
یکی از استفاده های جالب دولت ها از قراردادهای هوشمند، رای گیری میباشد. در صورت استفاده از قرارداد های هوشمند به منظور رای گیری، میتوان مطمئن بود که خطایی در شمارش رای ها رخ نخواهد داد.
سخن آخر
همانطور که مطالعه نمودید، قرارداد های هوشمند در حال فراگیری بسیاری از مشاغل و صنایع بوده و به تبع اشخاص ثالث زیادی در حال حذف شدن میباشند. امید است که با پیشرفت این تکنولوژی تمام اشخاص ثالث در امور مختلف از بین بروند.
پاسخ به سوالات متداول درباره قراردادهای هوشمند
آدرس کانترکت چیست؟
دیفای چیست؟
daap چیست؟