قرارداد هوشمند چیست؟
چکیده: در زمان حاضر که یادآور فضای رمان های علمیتخیلی همچون آثار نیل استفنسون یا رمانهایی نظیر فارنهایت۴۵۱ است، عصر دیجیتالی را به عینه لمس می کنیم. از جملهی این فناوریهای نوظهور در زمینه شیوه و نحوه انعقاد قراردادها است. قراردادها از شکل سنتی خود خارج شده و تحت مفهمومی با نام قرارداد هوشمند (Smart Contract) قرار گرفته اند که در واقع یک پروتکل رایانهای تحت شبکه برای بهبود و سرعت بخشی به روند قراردادها بوده و امکان ایجاد معاملات معتبر و بسیار امن را بدون واسطه فراهم می سازد.
بشر از وقتی به دادوستد پرداخت، کمکم شالودهی اولیه “قرارداد” نیز شکل گرفت. از قراردادهای شفاهی گرفته تا قراردادهای منقوش بر روی پوست حیوانات و یا مکتوب بر روی کاغذ؛ تا از این طریق بتوانند تعهدات طرفین را به یکدیگر و ضمانت انجام معامله را فراهم سازند. با گذشت چندین قرن از این روند، در ده های اخیر مفهومی به نام قرارداد هوشمند بوجود آمده است. قراردادهای هوشمند بصورت دیجیتالی امضا می شوند ، همانطور که یک معامله ارز رمزنگاری شده نیز امضا می شود. کلیدهای امضا در کیف پول رمزنگاری شده نگهداری می گردد.
بیشتر بخوانید: طراحی سایت صرافی
در ادامه پیرامون قراردادهای هوشمند، تاریخچه آن، کاربردها و مزایای قرارداد هوشمند می پردازیم:
تفاوت قرارداد معمولی و قرارداد هوشمند
تمامی افراد در هر موقعیتی که قرار بگیرند هم تعهداتی را می پذیرند و هم تعهداتی را می دهند. در این میان، قراردادهای حقوقی در واقع تعهداتی هستند که میان دو طرف یا طرفین قرارداد، مشخص شده و منتقل می گردند، با این تفاوت که در قالب خاص و ویژهای در میآید و این امر آنرا از سایر توافقات روزمره متمایز می سازد.
بطور کلی قرارداد به معنای توافق دو یا چند نفر برای برقراری رابطهی تجاری یا غیر تجاری است. در یک طرف قرارداد شخصی قرار دارد که قصد به وجود آوردن قرارداد را دارد که به عمل او ایجاب میگویند و در طرف دیگر قرارداد شخصی واقع است که ایجاب طرف مقابل را قبول می نماید.
در این راستا ماده ۱۸۳ قانون مدنی بیان می کند:
“عقد قرارداد عبارت است از این که یک یا چند فرد در مقابل یک یا چند فرد دیگر تعهد بر امری نمایند و مورد قبول آنها باشد”.
در عقد قرارداد، ارکان اصلی وجود دارد؛ مانند مشخصات طرفین قرارداد، موضوع قرارداد، تعهدات طرفین، ضمانت اجرا و …
انواع مختلف قرارداد معمولی وجود دارد مثل: قرارداد اجاره مغازه، مبایعنامه خرید و فروش خودرو یا مسکن، قرارداد کار، قراردادهای همکاری و تجاری و امثالهم.
از آنچه در فوق بیان گردید چنین نتیجه می گردد که: بطور سنتی یک قرارداد معمولی، توافقی بین دو یا چند شخص است که آنها را به انجام امری یا معاله ای متعهد می کند.
کدهای کامپیوتری نیز نوعی قرارداد هستند. بعنوان مثال وقتی از یک سایت اینترنتی یک فایل خریداری می کنید، در پشت صحنه، کدهایی وجود دارند که برای آنها تعریف شده است: اگر کاربر هزینه را پرداخت کرد و تراکنش با موفقیت انجام گردید، لینک دانلود فایل را به او نمایش بده، در غیر اینصورت پیغام خطا نشان بده.
ما برای اجرای قراردادهای عادی یا معمولی نیاز به واسطه هایی داریم که مجبور هستیم به آنها اعتماد کنیم. این واسطه ها میتوانند نهادهای دولتی، اتحادیه های صنفی، بانکها و غیره باشند.
در عصر حاضر با گسترش و بکار گیری فناوریهای نوین انجام معاملات نسبت به قبل آسان تر شده و تکنولوژی ها در این حوزه یاری رسان شده اند. یکی از آنها قراردادهای هوشمند است.
تاریخچه قرارداد هوشمند
قرارد هوشمند توسط نیک سابو (nick szabo) در سال ۱۹۹۳ به دنیا معرفی شد. این فناوری با آمدن بلاکچین، کاربردها و مزایای خود را بیش از پیش به رخ کشید.
نیک زابو ، پدید آور قرادا هوشمند
نیک زابو دانشمند و محقق علوم کامپیوتر و رمز نگار معروف آمریکایی است. وی در سال ۱۹۸۹ از دانشگاه واشنگتن در رشتهی کامپیوتر فارغ التحصیل شد, همچنین مدرک حقوق خود را از دانشکدهی جورج واشنگتن اخذ نمود و دارای استادی افتخاری در دانشگاه “فرانسیسکو ماروکین” می باشد. وی از دهه ۹۰ در حوزه ارزهای دیجیتالی مشارکت داشته است. از جمله مهمترین فعالیت های وی ، میتوان به پیریزی قراردادهای هوشمند و طراحی بیت گلد (BitGold) اشاره نمود. همچنین بسیاری از فعالان بازار رمزارز، این شخص را بعنوان ساتوشی ناکاموتو خالق بیت کوین می شناسند .
قراردادهای هوشمندچیست؟
قرارداد هوشمند که در انگلیسی Smart Contract خوانده می شود؛ یک شیوهنامه رایانهای تحت شبکه برای ایجاد یا بهبود و سرعت بخشی به روند قراردادها است. قرارداد هوشمند امکان ایجاد تراکنش های معتبر بدون واسط را فراهم می سازد. این تراکنشها قابل پیگیری و غیرقابل برگشت هستند.
با قرارداد هوشمند میتوانیم شخص ثالث را از معامله حذف کنیم و مستقیم با طرف مورد نظر به تجارت بپردازیم. مهمترین ویژگی قراردادهای هوشمند امنیت آن است. چرا که این تکنولوژی بر بستر بلاکچین اجرا می گردد و اطلاعاتش محرمانه خواهند ماند. دیتاها با فرمول های ریاضی رمزنگاری می شوند و کسی جز شما اجازه دسترسی به آن را ندارد. البته باید در نظر گرفت که بعد از اجرای آنها امکان ویرایش وجود ندارد و کسی قادر نخواهد بود بندهایش را تغییر دهد.
قراردادهای هوشمند به شما کمک میکنند پول، اموال، سهام و یا هر چیز دیگری که دارای ارزش است را در یک فرایند شفاف و بدون تضاد به سادگی و در نهایت امنیت مبادله نمایید.
قرارداد هوشمند در یک نگاه
قرارداد هوشمند به زبان مجازی نوشته شده است و می تواند بر اساس مجموعه ای از پارامترهای برنامه ریزی شده، بطور خودکار اجرا شود. با استفاده از فناوری بلاک چین، ارزش اصلی آن در جلوگیری از جعل یا تغییر ، تقویت امنیت ، شفافیت و اعتماد بین امضاکنندگان ، اجتناب از سوء تفاهم و رد واسطه ها است.
قراد هوشمند روندی برای حذف واسطه ها
بطور مثال هنگام خرید خانه، باید قرارداد فروش را با فروشنده امضا کنیم ، اما این یک فرآیند ساده ای نیست؛ ما به بانک ، دفتر اسناد رسمی ، دفتر ثبت اسناد و املاک و اسناد زیادی نیاز داریم. قراردادهای هوشمند ، که از فناوری بلاک چین پدید آمده اند ، وعده می دهند که این نوع فرایندها را تا آنجا که ممکن است ساده کنند.
قرارداد هوشمند توافق نامه ای بین دو شخص یا نهاد در قالب کد رایانه ای است که برای اجرای خودکار برنامهریزی شده است.. پروتکل بیت کوین ، که اساسا اثبات پرداخت را ثبت می کند ، می تواند بعنوان نسخه اولیه یک قرارداد هوشمند در نظر گرفته شود.
قراردادهای هوشمند بر روی بلاک چین اجرا می شوند ، به این معنی که شرایط در یک پایگاه داده توزیع شده ذخیره می شوند و قابل تغییر نیستند. تراکنش ها نیز بر روی بلاک چین پردازش می شوند که پرداخت های طرفین مقابل را بصورت خودکار انجام می دهد. از زمان ظهور ارز دیجیتال اتریوم ، ایجاد و اجرای قراردادهای هوشمند ساده شده است ، زیرا تراکنش های پیچیده را می توان در پروتکل اتریوم برنامه ریزی کرد.
یک قرارداد هوشمند چگونه کار می کند؟
عملکرد یک قرارداد هوشمند مشابه سایر انتقال های بلاک چین است. که این مراحل لازم است:
۱- یک کاربر از کیف پول بلاک چین خود یک تراکنش را آغاز می کند.
۲- معامله به پایگاه داده توزیع شده می رسد ، جایی که هویت تایید می شود.
۳- معامله ، که ممکن است انتقال وجوه باشد ، تایید می گردد.
۴- تراکنش شامل کدی است که مشخص می سازد چه نوع معامله ای باید اجرا شود.
۵- معاملات بعنوان یک بلاک در بلاک چین اضافه می شوند.
۶- هرگونه تغییر در وضعیت قرارداد از همان روشی پیروی می کند که باید به روز شود.
پلتفرم های پرکاربرد توسعه و اجرای قراردادهای هوشمند
در ادامه ، برخی از پلتفرم های پرکاربرد برای توسعه و اجرای قراردادهای هوشمند در بلاک چین را مرور می کنیم:
• سالیدیتی (Solidity) :
قراردادهای هوشمند به زبان برنامه نویسی به نام Solidity نوشته می شوند و توسط ماشین مجازی اتریوم اجرا می گردند و در حال حاضر محبوب ترین است.
• کانترپارتی (Counterparty) :
این پلتفرم داده ها را در معاملات بیت کوین قرار می دهد ، یعنی از بلاک چین ارزهای رمزنگاری شده استفاده می کند و اجازه می دهد قراردادهایی روی آن ایجاد شود.
• هایپرلجر (Hyperledger) :
یک سیستم منبع باز توسعه یافته توسط بنیاد لینوکس که نه یک ارز رمزنگاری شده ، بلکه یک بستر انعطاف پذیر است که می توان قراردادهای هوشمند را بر اساس آن توسعه داد.
• پولکادات (Polkadot) :
این یک جایگزین برای بلاک چین است و به دلیل توانایی خود در میزبانی از پاراچین ها ، زنجیره های درون زنجیره ای که بیشتر از حد معمول امکان تراکنش دارد مشهور است.
پولکادات نسل جدید پروتکلهای بلاک چین است. این پروژه سعی دارد شبکهای واحد از بلاک چینهای هدفمند و یکپارچه ایجاد کرده و از این طریق بر مشکلات مقیاسپذیری (کندی و پُرهزینه بودن تراکنش ها) و تعاملپذیری در فضای ارزهای دیجیتال غلبه کند.
نمونه های کاربردی قرارداد هوشمند
قراردادهای هوشمند در همه زمینههایی که قراردادهای سنتی یا قرارداد معمولی در آن کاربرد دارند، می توانند مورد استفاده قرار گیرند. برخی عبارتند از:
– سوابق
قراردادهای هوشمند ذخیره و نگهداری سوابق را تسهیل می کند. بعنوان مثال ، میلیون ها پرونده محرمانه بیماران که باید بطور ایمن ذخیره و به روز شوند.
– زنجیره تامین
دستگاههای اینترنت اشیاء را می توان در سراسر زنجیره تامین برای ثبت هر مرحله از محصول و بهبود قابلیت ردیابی آن استفاده کرد . به این ترتیب می توان خطاها ، سرقت و خسارت را از بین برد.
– تجارت
بیشتر فعالیت های تجاری به میزان بودجه آنها بستگی دارد ، که یک فرآیند زمان بر و زمان بر است. به لطف قراردادهای هوشمند ، می توان این زمان را بطور چشمگیری کاهش داد.
– وام مسکن
معاملات وام مسکن بر اساس قراردادهای هوشمند ارزان تر ، سریعتر و ایمن تر خواهد بود. این به خریداران اجازه می دهد زودتر به ملک دسترسی پیدا کرده و سوابق را بطور خودکار به روز نمایند.
– منابع انسانی
با استفاده از قراردادهای هوشمند می توان مدارک تحصیلی ، گواهینامه ها و تجربه فرد را ثبت نمود، می توان از تقلب جلوگیری کرد و بنابراین جذب نیروی کار برای سازمانها و شرکت ها و ارائه خدمات را تسهیل می کند.
– مالکیت معنوی
بسیاری از شرکت ها سالها درگیر اختلافات حقوقی بر سر استفاده از ثبت اختراع در توسعه پروژه هستند. قراردادهای هوشمند می توانند پیگیری کنند که کدام قسمت پروژه متعلق به کدام شرکت است.
– پزشکی و سلامت
علاوه بر ثبت داده های بهداشتی ، کاربرد آن در این بخش می تواند از قابلیت ردیابی داروها تا مدیریت زنجیره سرما ، دفترچه بیمه یا تحقیقات بالینی متغییر باشد.
– بازار املاک
از قراردادهای هوشمند می توان برای ثبت کارآمدتر مالکیت املاک استفاده کرد. علاوه بر این ، استفاده از آنها می تواند فراتر از آپارتمان ها ، ساختمان ها یا زمین باشد و انواع دارایی ها را ثبت کند.
– بیمه
صنعت بیمه سالانه میلیونها دلار صرف رسیدگی به مطالبات و رسیدگی به مطالبات می کند. قراردادهای هوشمند اجازه می دهد تا میزان پرداخت ها بطور خودکار بر اساس نوع بیمه نامه تعیین شود.
– انتخابات
تقلب در انتخابات یک خطر واقعی در برخی از کشورها است و به عنوان یک سلاح سیاسی برای ایجاد بی ثباتی در سایر کشورها مورد استفاده قرار گرفته است. قراردادهای هوشمند امکان تایید هویت رأی دهندگان و ثبت قابل اعتماد رای آنها را فراهم می آورد.
مزایای قرارداد هوشمند
قراردادهای هوشمند مزایای متعددی را برای طرف های درگیر ارایه می دهد:
• استقلال:
شرکت کنندگان خودشان مقدمات را فراهم می کنند ، یعنی ن از دخالت واسطه ها چشم پوشی می شود.
• درجه اطمینان:
قرارداد هوشمند بطور ایمن در یک شبکه توزیع شده ذخیره می شود و تغییر یا جعل آن عملا غیرممکن است.
• امنیت:
در یک شبکه توزیع شده ، قرارداد هوشمند در همه گره های شبکه کپی می شود و نمی توان آن را از دست داد.
• صرفه جویی:
با قطع واسطه ها و حق کمیسیون ها، هزینه ها برای همه طرف های درگیر کاهش می یابد.
• دقت:
قرارداد هوشمند احتمال خطا در شرایط زمانی مختلف یا هنگام پردازش را به صفر می رساند.
• کمک به محیط زیست:
قراردادهای هوشمند استفاده از کاغذ را در سازمانها ، دفاتر اسناد رسمی و دفاتر ثبت حذف می کنند و در نتیجه به محیط زیست کمک شایانی شده و همچنین از رفت و آمدهای خضوری کاسته شده و آلودگی های محیطی کاهش می یابد.
برای ایجاد یک قرارداد هوشمند به چه چیزهایی نیاز است؟
برای اجرای قراردادهای هوشمند در شبکه وسیعتر ارزهای دیحیتال، قراردادهای هوشمند اتریوم به وجود آمده اند. اتریوم به دلیل استفاده ماشین جازی تورینگ در یک بلاک چین برای اولین، موفق به ایجاد یک فرایند بسیار خاص شده است. این یعنی قراردادهای هوشمند اتریوم از لحاظ تئوری میتوانند از پس تمامی عملیات های محاسباتی بر آیند. بعبارتدیگر، هر برنامهای را میتوان بر پایه اتریوم اجرا نمود.
بدین منظور موارد زیر لازم است تا آنها را نصب و اجرا نمایید:
۱- نرم افزار Ganache را روی رایانه خود نصب کنید.
با استفاده از این نرمافزار قادر خواهید بود تا یک بلاک چین شخصی را بر روی دستگاه خود ایجاد نمایید.
۲- تنظیمات ویندوز
پس از دانلود فایل نصبی Ganache در قسمت search ویندوز ۱۰ جمله for developers settings را سرچ کنید و بروی نتیجه نمایش داده شده کلیک کنید.
پنجره settings بخش For developers باز می شود. هم اکنون گزینه Winsdows Store apps بصورت پیش فرض انتخاب شده ولی شما باید گزینه Sideload apps را انتخاب کنید.
پس از انتخاب گزینه Sideload apps پنجره ای به شما نمایش داده می شود. گزینه Yes را بزنید و کار تنظیمات ویندوز برای نصب Ganache تمام است.
حالا فایل نصبی Ganache اجرا نموده و نصب کنید.
پس از نصب این نرمافزارها، وارد سایت remix.ethereum.org شوید تا صفحه Remix برای شما نمایش داده شود.
صفحه Remix یک برنامه مترجم برای زبان برنامه نویسی سالیدیتی است. به این وسیله میتوانیم کدهای قراردادهای هوشمند خود را تدوین نماییم. در اولین بازدید این صفحه کدهایی از پیش برای شما نوشته شده است. اما به آنها نیازی نداریم، پس آنها را پاک کرده و با کدهای زیر جایگزین می سازیم:
pragma solidity ^۰.۴.۰;
contract Counter {
int private count = ۰;
function incrementCounter() public {
count += ۱;
}
function decrementCounter() public {
count -= ۱;
}
function getCount() public constant returns (int) {
return count;
}
}
همانطور که میبینید کد فوق شامل یک متغیر و سه عملکرد است. متغیر «Count» یک عدد صحیح بوده و شخصی است؛ یعنی از بیرون از قرارداد امکان دسترسی به آن وجود ندارد. اولین عملکرد که با عنوان «incrementCounter» مشخصشده، با افزایش آن باعث تغییر مقدار count می شود.
از طرفی نیز با کاهش آن میزان count با جهش (mutation) مواجه خواهد شد. عملکرد سوم نیز getCount است که با استفاده از آن میتوان به count دسترسی پیدا کرد و میزان آن را به هر چیز و هرکسی که از دستور استفاده کند بازخواهد گرداند.
پس از جایگذاری دستورها در Remix ، حالا وقت آن رسیده که Ganache را بازکنیم.
بر روی صفحه میتوانید نوشته «RPC SERVER» را مشاهده کنید. مکان آن را به خاطر بسپارید که بعدا لازم خواهد شد.
حالا مای اتر ولت را از حالت فشرده خارج کنید و سپس پوشه موردنظر را باز کنید. با باز کردن فایل index.html بوسیله مرورگر خود، مراحل زیر را ادامه دهید.
۳- اتصال MyEtherWallet به Ganache
در گوشه سمت راست صفحه میتوانید بخشی را ببینید که به شما میگوید به شبکه از اتریوم متصل هستید. بصورت پیشفرض شما به شبکه اصلی اتریوم یا ETH(Ethereum) متصل خواهید بود. با باز کردن ادامه لیست آن را تغییر میدهیم.
بر روی Add Custom Node کلیک کنید.
حالا اطلاعاتی را که قبلا از Ganache و بخش RPC Server بهدست آورده بودیم را در این کادر وارد میکنیم. توجه داشته باشید که نام نود را هر چیزی که دوست داشته باشید میتوانید بگذارید.
خلاصه مطلب
استفاده از بامتیازات قراردادهای هوشمند تنها محدود به توافقنامههای کوچک نیست, , و دولت ها و شرکت های بزرگ نیز می تواند تا حد زیادی از این بهره مند. این نوع قراردادها به معامله گران و خریداران اجازه می دهد تا خرید خود را در زنجیره تامین پیگیری کنند و این امر اعتماد به چرخه کار را افزایش می دهد. علاوه بر این ، قراردادهای هوشمند صرفه جویی در پول و زمان ، از بین بردن نیاز به واسطه ها و ساده سازی معاملات با خودکار سازی روند.