قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) چیست؟
21 اردیبهشت 1401 1401-03-24 12:55قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) چیست؟
قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) چیست؟
قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) به مجموعه ای از قوائد و قوانین کدنویسی شده گفته می شود که با دریافت ورودی مشخص، دستورهایی را اجرا می کند و هدف و خروجی را در بر می گیرند. قرارداد هوشمند با هدف حذف واسطه و عدم نیاز به وجود اعتماد در انواع معاملات، بسیاری از معادله های پیچیده در انجام معامله را برطرف می کند و می تواند راهی برای کاهش کلاه برداری و سواستفاده های مالی از افراد، در جریان معاملات باشد.قراردادهوشمند از جمله قراردادهایی است که پس از نوشته شدن در شبکه بلاک چین، امکان متوقف کردن روند کار آن از طرف هیچ کس، حتی نویسنده آن، وجود ندارد.
تعریف قرارداد هوشمند در سایت ویکی پدیا:قرارداد هوشمند امکان ایجاد تراکنشهای معتبر بدون واسط را فراهم میکند. این تراکنشها قابل پیگیری و غیرقابل برگشت هستند.قراردادهای هوشمند شامل تمام اطلاعات مربوط به شرایط قرارداد و اجرای تمام اقدامات هدف گذاری شده به طور خودکار میشوند. اصطلاح قرارداد هوشمند اولین بار در سال ۱۹۹۴ توسط Nick Szabo استفاده شد.
فرقی نمی کند که شما بخواهید از یک قرارداد هوشمند برای انجام پروسه خرید خدمات بیمه استفاده کنید و یا نقل و انتقالات ارز دیجیتال و حتی مدیریت یک انتخابات سالم و بدون تقلب؛ ساختار قراردادهای هوشمند به نحوی است که انعطاف پذیری لازم برای برمَدار ساختن انواع قرارها را دارد!
فرض کنید قصد فروش یک خانه را دارید. این کار یک فرآیند نسبتا پیچیده و طاقت فرساست که به کاغذبازیهای زیاد و ارتباط با شرکتها و افراد مختلف نیاز دارد و ریسکهای آن نیز زیاد است. به همین دلیل است که اکثر فروشندگان خانه تصمیم میگیرند کار را به یک نماینده املاک بسپارند تا تمام اقدامات لازم را انجام داده و از زمان آغاز مذاکرات تا پایان آن، بر معامله نظارت داشته باشد.
در چنین موقعیتهایی، قرارداد هوشمند (Smart Contract) میتواند بسیار مفید واقع شود و تحول مثبتی در صنعت ایجاد کند. اسمارت کانترکت ها مشکل اعتماد را حل کرده و بر اساس اصل “If-Then” کار میکنند. این بدین معنی است که تنها پس از ارسال مبلغ موافقتشده برای سیستم مالکیت خانه به خریدار واگذار میشود.
قرارداد هوشمند و بلاک چین
وقتی که توانایی بستر بلاک چین برای نقل و انتقال ارزهای دیجیتالی به خوبی نشان داده شد، به این قضیه فکر شد که می توان از پتانسیل بلاک چین برای ایجاد Smart Contract استفاده کرد. بلاک چین ها درواقع مجموعه ای از داده های زنجیروار هستند که با دستورات کدهای برنامه نویسی شکل گرفته اند و این بلاک ها میان اعضای شبکه که نود نامیده می شوند، قابل بررسی و اشتراک گذاری است.
اسمارت کانترکت ها برنامههایی هستند که روی بلاکچین ذخیره میشوند و در صورت برآورده شدن شرایط از پیش تعیین شده، اجرا میشوند. آنها بهطور معمول برای خودکارسازی اجرای توافق شده مورد استفاده قرار میگیرند تا همه شرکتکنندگان بتوانند فورا و بدون دخالت واسطه یا اتلاف زمانی از نتیجه مطمئن شوند. همچنین میتوانند یک گردش کار را به صورت خودکار انجام دهند و در صورت برآورده شدن شرایط، اقدام بعدی را آغاز کنند.
از خاصیت زنجیروار بودن ساختار بلاک چین برای انجام اتوماتیک وار مفاد قرارداد استفاده می شود؛ همچنین با غیر متمرکز، شفاف و قابل بررسی بودن روند یک پروژه در این بستر، می توان احتمال شیادی و کلاه برداری توسط هر یک از طرفین یک قرارداد را از بین برده و واسطه ها را نیز حذف کرد.
مخاطبین هوشمند از طریق فناوری بلاک چین با یکدیگر همکاری میکنند و این به طور خودکار، باعث میشود که به حداکثر پتانسیل خود دست پیدا کنند. بیت کوین به عنوان پایهای برای مخاطبین هوشمند عمل میکند و بلاک چین یک برنامه نرمافزاری است که داراییهای دیجیتالی را کنترل میکند. این شامل کدهای منطقی است که داراییهای الکترونیکی را در فواصل زمانی جابجا میکند. بلاک چین همیشه این کار را به شیوه غیر متمرکز ارائه میدهد و همیشه بسیار بیشتر از بیت کوین نشان داده میشود. مخاطبین هوشمند به عنوان اجزای بستر بلاک چین نسل بعدی معرفی می شوند.
قراردادهای هوشمند چگونه کار میکنند؟
شاید در صحنه هایی از فیلم ها و یا کارتون ها دیده باشید که دو نفر پشت یک میز رو به روی هم نشسته اند و قرار است معامله ی کالا به کالا یا پول با کالا داشته باشند. مثلا یک طرف پولی بدهد و طرف دیگر یک شی باارزش و این دو چون به هم اعتماد ندارند، هر دوشان دستشان را روی پول و شی ارزشمند می گذارند و همزمان آنچه باید به طرف مقابل بدهند را به سمت او هُل می دهند؛ و بعد سریع هر کس پول و یا مورد معامله که برای خودش است را چنگ میزند و بر میدارد و در جیبش می گذارد. این یعنی یک معامله که در عین بی اعتمادی بدون واسطه صورت گرفت و همزمان بها و مورد معامله بین دو طرف رد و بدل شد.
این مثال شاید به خوبی بیان کننده چطور کار کردن یک قرارداد هوشمند باشند. این قراردادها به نحوی تنظیم شده اند که ثانیه ای میان پرداخت بها از یک سو و انجام اتوماتیک وار مورد معامله فاصله نباشد و در عین حال واسطه ای هم در میان نداشته باشیم. مثلا شما همان لحظه که بهای چیزی را با استفاده ارز دیجیتال پرداخت می کنید، به شکل اتوماتیک صاحب آن امتیاز و یا خدمت می شوید.
قرارداد هوشمند به نحوی زنجیروار کدنویسی می شود که امکان اجرایی نشدن مفاد قرار وجود ندارد و امکان تقلب در معامله هم نیست.در یک قرارداد هوشمند نیاز به دسترسی به داده های خارجی هم وجود دارد. این داده های خارجی که شرایط، مقدار و ماهیتشان در روند قرار داد تاثیرگذار است اوراکل نام دارند.
مثلا اگر قرار است در ازای پرداخت مقدار مشخصی ارز دیجیتال شما یک بلیط برای سفر خود تهیه کنید (و این بلیط همزمان با خرید برای شما ایمیل شود)، سایت شرکت هواپیمایی که قیمت به روز بلیط شهرها در آن وجود دارد اوراکل است و اطلاعات آن باید در اختیار قرارداد هوشمند باشد.
قراردادهای هوشمند به زبانهای برنامه نویسی مختلفی (از جمله سالیدیتی، وب اسمبلی و میکلسون) نوشته میشوند. در شبکه اتریوم، هر کد قرارداد هوشمند بر روی بلاکچین ذخیره میشود و به هر شخص علاقه مند اجازه میدهد تا کد قرارداد و وضعیت فعلی را بررسی کند تا عملکرد آن را تایید کند.
برای اجرای یک قرارداد هوشمند در شبکه اتریوم، شما به طور کلی ملزم به پرداخت مبلغی به نام گس (GAS) خواهید بود. هنگامی که قراردادهای هوشمند بر روی یک بلاکچین گسترش یابند، به طور کلی دیگر نمیتوان آنها را حتی توسط سازنده آنها تغییر داد.
پیاده سازی قرارداد هوشمند با سالیدیتی
کد قرارداد هوشمند پس از نوشته شدن توسط برنامهنویس از طریق یک کلاینت (نرم افزار رسمی که شما را مستقیم به بلاک چین متصل میکند) به صورت یک تراکنش بر روی بلاک چین ثبت میشود. قراردادهای هوشمند توسط یک یا چند زبان برنامهنویسی نوشته میشوند. مثلا زبان برنامه نویسی قراردادهای هوشمند اتریوم، سالیدیتی (Solidity) است. پس برای یادگیری نوشتن یک قرارداد هوشمند برای بلاک چین اتریوم نیاز است تا زبان برنامهنویسی سالیدیتی را یاد بگیرید.
زبان برنامهنویسی سالیدیتی (Solidity)
زبان سالیدیتی در سال ۲۰۱۴ توسط گوین وود (Gavin Wood)، یوئیچی هیرای (Yuichi Hirai)، کریستین ریتویسنر (Christian Reitwiessner) و الکساندر برگساسی (Alex Beregszasz) معرفی شد. سالیدیتی یک زبان برنامهنویسی شیگرا و سطح بالا است که از زبانهای برنامهنویسی JavaScript ,Python و ++C الهام گرفته شده است. حروف این زبان، مشابه حروفی است که در زبان برنامهنویسی جاوا استفاده میشود. سالیدتی متغیرها، کلاسها و عملکردهای خود را نیز از جاوا برداشت کرده است.
یک قرارداد هوشمند در زبان برنامهنویسی سالیدیتی توسط مجموعهای از دادهها و یک قطعه کد تعریف میشود که داخل یک آدرس در شبکه اتریوم قرار گرفته است. تراکنشهای داخل بلاک در بلاک چین توسط این قرارداد مدیریت میشوند.
دریافت اطلاعات بیشتر در مورد دوره آموزشی برنامه نویسی سالیدیتی
ملزومات اسمارت کانترکت (Smart Contract)
از ملزومات قرار داد هوشمند دسترسی به سرمایه دیجیتال است. ارز دیجیتال پول شما است که برای استفاده در یک قرارداد هوشمند باید آن را خرج کنید. پس شما حتما باید در بستر یکی از ارزهای دیجیتال حساب داشته باشید تا بتوانید از امتیاز قراردادهای هوشمند استفاده کنید.
چرا اصلا قراداد هوشمند ببندیم؟ امتیازات قرارداد هوشمند
از آن جایی که سعی شد همه چیز ساده بیان شود احتمالا تا اینجای کار خودتان برخی امتیازات قرارداد هوشمند را به خوبی درک کرده باشید. اما بهتر است دقیق ترمزایای استفاده از قرارداد هوشمند را بررسی کنیم.
در قرارداد هوشمند نیازی به واسطه ندارید
بیایید فرض کنیم که قوانین و شرایط به سمتی رفته که اسناد مربوط به املاک، اتومبیل و … کاملا دیجیتالی باشند. همچنین برای انتقال اسناد از نامی به نام دیگر نیازی به رفتن به دفترخانه و … نباشد. این عالی است اما عالی تر این است که واسطه هایی به نام مشاوران املاک و مشاوران فروش اتومبیل هم دیگر به کار نخواهند آمد. شما یک خانه را به علاوه تمامی مشخصات، شرایط و قیمتش مشاهده می کنید، به اندازه بهای خانه ارز دیجیتال می پردازید؛ بعد به طور خودکار اسناد این خانه بدون آن که حتی شما صاحب خانه را دیده باشید به نام شما می شوند و روز و ساعت انتقال شما به خانه تان نیز کاملا مشخص است. دیگر خبری از یک املاکی خوش سر و زبان که سعی می کند خانه را به شما چندین میلیون گرانتر بفروشد تا بخشی به جیب خودش برود و در آخر هم یک کمیسیون چاق و چله از دو طرف دریافت کند نیست.قراردادهای هوشمند، نیاز به واسطه را از بین میبرد و در اصل کنترل کامل توافقنامه را به شما میدهد.
در اسمارت کانترکت نیازی به اعتماد ندارید
در قرارداد هوشمند دیگر نیازی نیست در چشمان طرف معامله تان عمیق تر نگاه کنید تا بفهمید که او در حرف هایش صادق است و گران فروشی نمی کند؛ و یا در انجام وظایف و خدماتی که قولش را داده خلف وعده خواهد داشت یا خیر. شما نیازی به اعتماد ندارید و این را شاید بتوان اصلی ترین ویژگی یک قرارداد هوشمند دانست. همه چیز سلسله وار اتفاق می افتد. دغدغه ها حداقل خواهند شد.هیچ کس نمیتواند اسناد شما را بدزدد و یا گم کند، زیرا آنها رمزگذاری شدهاند و به طور ایمن در یک دفتر کل عمومی ذخیره شدهاند. زیرا سیستم قراردادهای هوشمند مشکل “اعتماد” را به راحتی حل کرده است.
در Smart Contract نیازی به هزینه زمان زیاد برای انجام معاملات ندارید
به لطف قراردادهای هوشمند دیگر نیازی به دفترخانههای رسمی، مشاوران، نمایندگان املاک و بسیاری از واسطههای دیگر نیست و با تمدید قرارداد، بسیاری از هزینههای مربوط به خدمات آنها نیز حذف میشود.خیلی روشن است که وقتی با تن دادن به یک قرارداد هوشمند، پس از حذف واسطه و بدون نیاز به صرف زمان برای بررسی راست و دروغ آن طرف ماجرا، شما بتوانید معامله تان را انجام دهید، در زمانتان صرفه جویی خواهد شد و دیگر نیازی به ثبت انبوهی از اسناد کاغذی، ارسال یا انتقال آنها به مکانهای خاص ندارید.
معایب قرارداد هوشمند یا اسمارت کانترکت
معایب قرارداد هوشمند چیزی نیست که بتوانیم چشم ببندیم و نبینیم. هر حرکتی هرچند انقلابی، کم اشتباه و عالی باز هم معایبی به همراه خواهد داشت.
عدم کارایی قرارداد هوشمند برای معاملات فیزیکی
وقتی که نقل و انتقال اسناد املاک و دیگر موارد فیزیکی در حال حاضر بدون حضور در دفترخانه های رسمی امکان پذیر نیست، عملا نمی توان در شرایط کنونی به استفاده در قراردادهای هوشمند در همه معاملات دل بست. در حال حاضر برای خدماتی مثل خرید فروش ارزهای دیجیتال، بیمه، انتخابات، خدمات بهداشتی و درمانی و … به خوبی می توان از این بستر استفاده کرد.
عدم وجود قانون گذاری در خصوص Smart Contract
تا امروز کار ساختار بلاک چین ها توسط دولت های مرکزی به رسمیت شناخته نشده است. در نتیجه هر مساله ای این میان پیش بیاید دست خودتان را می بوسد و نمی توانیداز قوه قضاییه انتظار داشته باشید بیاد و مسائل و مشکلات احتمالی را قضاوت کند و از حقوقتان که ممکن است جایی زیر سوال برود و در طی یک خطای انسانی از بین برود دفاع کند بنابراین اگر نهادهای دولتی تصمیم بگیرند چارچوبی قانونی برای قراردادهای هوشمند ایجاد کنند، این مسئله مشکل ساز خواهد شد.
احتمال باگ و حمله هکری
بله خب، کد های کامپیوتری قراردادهای هوشمند را انسان های می نویسند و احتمال خطای انسانی وجود دارد. قبلا هم هکرهایی با سو استفاده از باگ های موجود در کدنویسی بلاک چین ها به آن ها حمله کرده اند و باز هم امکان آن وجود دارد.این کدها توسط افراد نوشته میشوند و در نتیجه این امکان وجود دارد که اشتباهی رخ دهد. اگر هم قرارداد هوشمند با وجود این اشتباهات در بلاک چین ثبت شود، دیگر نمیتوان آن را تغییر داد.
هزینه بالای برنامه نویسی اسمارت کانترکت
قراردادهای هوشمند بدون برنامهنویسی قابل اجرا نیستند. باید یک یا چند برنامه نویس ماهر داشته باشید تا قراردادهای هوشمند به خوبی تنظیم شوند.اگر بخواهید برای نوشتن مفاد یک قرارداد هوشمند خودتان اقدام کنید احتمالا باید هزینه برای آموزش بدهید و اگر بخواهید این کار را به یک برنامه نویس بسپارید باز هم باید هزینه زیاد مربوط به آن را بپردازید.در حال حاضر به خاطر اینکه عده کمی در این زمینه تخصص دارند طبیعی است که تخصصشان در نوشتن کد های یک قرارداد هوشمندِ خوب و بدون باگ، حکم کیمیا را داشته باشد.
پیشنهاد ما دوره های آموزشی سالیدیتی آکادمی ماکان می باشد چون در کنار این که شما آموزش برنامه نویسی قرارداد های هوشمند را یادمیگرید به کسب درآمد در این زمینه آماده خواهید شد.
جمع بندی در مورد قراردادهای هوشمند
قراردادهای هوشمند، برنامههایی هستند که روی بلاک چین ذخیره میشوند و در شرایط از پیش تعیین شده فعال میشوند.با استفاده از قراردادهای هوشمند، وجود و حضور واسطه و فرد سوم از بین میرود و کارها بدون مشکل اجرا میشوند.با تمام توضیحات داده شده در خصوص قرارداد هوشمند، حرف هایی تخصصی تر درباره چگونگی کارکرد این قرارداد ها از لحاظ فنی و همچنین خوب و بد و سیاه و سفیدشان باقی می ماند که می توان در مقالاتی کامل تر به آن ها پرداخت. در هر حال حرکت به سوی هرچه هوشمندتر شدن و اتوماتیک تر شدن کارهایی که هزینه و وقت زیادی برای انجامشان طلبیده می شود می تواند شیرین و امیدوارکننده باشد و با یادگیری برنامه نویسی قراردادهای هوشمند آینده ای بهتر و مدرن را تجربه خواهید نمود.