احتمالا تا حالا از دستگاه های فروش خودکار استفاده کرده اید. کالای مورد نظرتان را انتخاب کرده مقدار پول مورد نیاز را به دستگاه میدهید، دستگاه تایید می کند که مقدار صحیح پول وارد شده سپس کالای شما را تحویل می دهد. در صورتی که مقدار پول مورد نیاز را به درستی درون دستگاه قرار دهید کالای مورد نظر را دریافت خواهید کرد قرارداد های هوشمند تفاوت چندانی با این قضیه ندارند.
قرارداد هوشمند چیست؟
قرارداد هوشمند برنامه ای کامپیوتری است که به طور خودکار بر اساس تفاوقی که بین دو طرف قرار داد نوشته شده و بر روی بلاک چین قرار گرفته است اجرا خواهد شد. به دلیل اینکه قرارداد هوشمند فرآیند انجام تراکنش ها را به صورت بهینه، شفاف و ناشناس انجام می دهد به کسب و کارها کمک شایانی خواهد کرد. آنها بخشی از حرکت به سمت اقتصاد غیر متمرکز - دیفای (DeFi) و غیر تجاری نمودن داده های اقتصادی افراد هستند.
قرارداد هوشمند، مجموعه ای از روشهای انجام معاملات تجاری هستند که بر بستر بلاک چین، اسناد دیجیتالی (که به وسیله آنها NTF ها ساخته می شون)د، داد و ستد ارزهای دیجیتال و دیگر مواردی که با استفاده از وب 3 قابل انجام می باشد استوار هستند. در ظاهر به سادگی دستگاه های فروش خودکار نوشیدنی میباشند اما در باطن بسیار پیچیده تر هستندد. برای مثال کد نویسی پیچیده ای برای توسعه آنها مورد نیاز است. قرارداد های هوشمند منافع زیادی مانند شفافیت و غیر قابل تغییر بودن دارند اما چالش های اساسی نیز مانند شفافیت و غیر قابل تغییر بودن دارند!
قرارداد هوشمند در بلاک چین چیست؟
قرارداد هوشمند برنامهای است که بر روی بستر بلاک چین قرار میگیرد و اجرا میشود و امکان تبدیل قرارداد سنتی به همتای دیجیتالی آن را فراهم میکند. مانند کیف پول رمز ارزها، قراردادهای هوشمند دارای موجودی حساب هستند و می توانند تراکنش ها را از طریق شبکه انجام دهند تفاوت آنها با نوع سنتی در این است که پس از استقرار، قراردادهای هوشمند به صورت برنامه ای کامپیوتری اجرا می شوند. مانند یک قرارداد رایج، قراردادهای هوشمند می توانند قوانینی را شامل شوند که سیستم به طور خودکار آن قوانین را اجرا می کند. فعل و انفعالات قراردادهای هوشمند به طور پیش فرض غیرقابل برگشت و غیر قابل فسخ هستند.
آدام آدلر یکی از بنیانگذاران و رئیس بخش خلاقیت در Myntr، که در زمینه NFT و دیجیتال مارکتینگ فعالیت می کند و در نیویورک مستقر است درباره توصیف دستگاه فروش خودکار با قرارداد هوشمند گفت: "هم در یک ماشین فروش خودکار و هم در قراردادهای هوشمند، در صورت دادن یک ورودی خاص انتظار می رود خروجی مشخصی تولید شود." آدلر گفت که اصطلاح "قرارداد هوشمند" توسط دانشمند کامپیوتر به نام نیک سابو بیان شده است.
واژه های قرارداد هوشمند که باید بدانید
- EVM (Ethereum Virtual Machine) - ماشین مجازی اتریوم یا پلتفرمی که امکان اجرای تراکنش ها مانند قرارداد هوشمند را فراهم می آورد
- IDE (Integrated Development Environment) – ابزاری مانند Truffle که برای استقرار قرارداد هوشمند ضروری است
- Fungible token - توکن قابل تعویض یا تغییرپذیر متصل به بلاک چین. ارز دیجیتال یک توکن قابل تعویض است
- Gas - کارمزد (gas معمولاً با اتریوم مرتبط است) که برای اجرای تراکنشهای یک بلاک چین دریافت میشود. هزینه های gas در قالب توکن بومی آن بلاک چین قابل پرداخت است
- Nft - توکن غیر قابل تعویض، معمولاً یک قطعه هنری منحصر به فرد است که از طریق یک قرارداد هوشمند ساخته و مدیریت می شود
- Node - کامپیوترهای هستند که زیر ساخت بلاکچین را تشکیل می دهند، بلاک چین از هزاران کامپیوتر یا گره تشکیل شده است
- Solidity - زبان برنامه نویسی مشابه جاوا اسکریپت که برای نوشتن قراردادهای هوشمند استفاده می شود
موارد استفاده از قرارداد هوشمند
قراردادهای هوشمند معمولاً با NFT ها یا توکنهای غیرقابل تعویض مرتبط هستند. اما این تنها کاربرد آنها نیست. برای مثال، هر نوع معامله ای که از طریق یک قرارداد کاغذی انجام می شود، می تواند از طریق یک قرارداد هوشمند نیز انجام شود به گفته الکس ویکوف، مدیر محصول در Wursta "موارد استفاده از قرارداد هوشمند تقریباً بیشمار هستند." در زیر به چند نمونه از کاربرد قراردادهای هوشمند اشاره می کنیم
وام و رهن برای خرید خانه یا وسیله نقلیه: مفاد این نوع از قرارداده ها بسیار واضح و محکم هستند به این معنی که هیچ کدام از طرفین قرارداد نمی توانند زیر قرارداد زده یا دستکاری در قیمت ها انجام دهد. در حالی که قراردادهای هوشمند مستلزم پرداخت هزینه هستند (هزینه نیروی پردازش کامپیوتری مورد استفاده برای انجام تراکنش) اجرای آنها ممکن است هزینه کمتری نسبت به قرارداد عادی داشته باشد زیرا هیچ شخص واسطی در آن معامله وجود ندارد (به عنوان مثال وکیل یا مشاور املاک)
بیمه: قراردادهای هوشمند را می توان طوری تنظیم کرد تا بلافاصله پس از وقوع حادثه، فرآیند رسیدگی به درخواست جبران خسارت آغاز شود تا کارهای اداری و تشریفات بیهوده ای که در پرونده های بیمه وجود دارد و وقت زیادی از طرفین تلف می کند به حداقل خود برسد
بازی: NFT های مرتبط با بازی های ویدئویی به عنوان راهی برای خرید، خریدهای درون بازی، فروش آنها به بازیکنان دیگر، یا حتی انتقال آنها به بازی های پشتیبانی شده دیگر محبوبیت بیشتری پیدا کرده اند. این که ان اف تی ها را بشود میان بازیهای مختلف جابجا کرد پتانسیل های زیادی برای تجربه ویژگی های جدید به صنعت بازی های ویدئویی اضافه خواهد کردچ
خرده فروشی: فروشگاه هوم دیپوت (Home Depot) از سال 2018 از قرارداد های هوشمند برای حل و فصل اختلافات میان فروشنده ها استفاده می کند آدلر می گوید شفافیت قراردادهای هوشمند به خرده فروشان و تامین کنندگان این اجازه را می دهد تا اختلافات به وجود آمده را در سریع ترین زمان ممکن حل و فصل کنند.
فروش بلیط: قراردادهای هوشمند می تواند صنعت فروش بلیط رویدادهای زنده را متحول کند. معاون شرکت Ticketmaster از علاقه این شرکت برای به کار گیری فناوری قراردادهای هوشمند برای روانتر و ایمن تر کردن فرآیند فروش بلیت خبر داد.
قرارداد های هوشمند چگونه کار می کنند
قراردادهای هوشمند به طور خودکار اجرا می شوند. آنها بر خلاف قرارداد های کاغذی نیازی به رسیدگی توسط انسان ندارند. در فرآیند اجرای مفاد قرارداد نیاز به هیچ واسطی وجود ندارد همچین لازم نیست طرفین به یکدیگر اعتماد داشته باشند زیرا بلاک چین بهطور خودکار مفاد قرارداد را پس از برآورده شدن شرایط اجرا میکند. در یک قرارداد غیرهوشمند، حتی در صورت برآورده شدن شرایط قرارداد، باز هم طرفین باید برای پایبند بودن به مفاد قرارداد به یکدیگر اعتماد کنند.
شرایط قراردادهای هوشمند به صورت اگر-در نتیجه (if-then) که با کد های کامپیوتری نوشته می شوند اجرا خواهد شد.شبکهای از کامپیوتر ها به طور مداوم بر روند اجرای قرارداد و انجام شرایط آن نظارت کرده و در صورت لزوم اقدامات از پیش تعیینشده ای را اتخاذ میکنند برای مثال یک دارایی دیجیتال را خریده یا تراکنشی را انجام می دهند
چگونه قرارداد هوشمند بسازیم
فرآیند نوشتن و ایجاد قراردادهای هوشمند را می توان به هفت مرحله تقسیم کرد
پیش نیاز
پیش از آن که وارد دنیای قرارداد های هوشمند شوید لازم است اطلاعات پایه ای از اینکه بلاک چین چطور کار می کند داشته باشید همچنین لازم است بدانید که چرا برای حل کردن مشکل خاصی از بلاک چین استفاده می شود
یادگیری سالیدیتی
Solidity محبوب ترین زبان برنامه نویسی برای نوشتن قراردادهای هوشمند بر بستر بلاک چین های مختلف است که به ویژه در اتریوم که خود از مهمترین تکنولوژی های بلاکچین است مورد استفاده قرار می گیرد. سینتکس آن شبیه جاوا اسکریپت است بنابراین برای اکثر برنامه نویسان آشنا به نظر می رسد. برای اینکه قرارداد هوشمندی در ماشین مجازی اتریم اجرا شود لازم است آن قرارداد هوشمند با زبان برنامه نویسی سالیدیتی نوشته شود. ماشین مجازی اتریوم یک محیط مجازیست که مانند یک کامپیوتر درون شبکه اتریوم فعالیت می کند.
قطعه کد ساده ای بنویسید
با استفاده از زبان قدرتمند سالیدیتی تقریبا هر ایده ای که برنامه نویسان در سر داشته باشند می توان اجرا کرد در نتیجه ممکن است یک قرارداد هوشمند بسیار پیچیده باشد مثلا برای هر تابعی در سیستم کاربران، نقش ها و دسترسی به طور مجزا تعریف شوند پس لازم است شروع کار برنامه نویسی قرارداد هوشمند با برنامه نویسی های ساده انجام گیرد.
بلاک چینی را انتخاب کنید
اتریوم تنها زنجیره بلوکی نیست که میتوان قرارداد هوشمند را روی آن اجرا کرد بلکه پلتفرم های دیگری مانند Avalanche، Polygon، Wanchain و غیره برای اجرای قرارداد های هوشمند نوشته شده با Solidity وجود دارند. درباره هرکدام و نقاط ضعف و قدرت آنها تحقیق کنید تا بتوانید تصمیم بگیرید که کدام بلاک چبن برای استقرار قرارداد هوشمند شما، مناسب می باشد
توکن دریافت کنید
اجرای قرارداد هوشمند بر روی بلاک چین رایگان نیست. هر بلاک چینی مبلغی را تحت عنوان گس (gas) دریافت کرده و باید به وسیله توکن خود همان بلاک چین پرداخت گردد برای مثال گس در شبکه اتریوم با ETH پرداخت می گردد و در شبکه Wanchain به وسیله توکن WAN باید مبلغ گس را پرداخت کرد و به طور کلی هر چقدر قرارداد هوشمند پیچیده تر باشد هزینه اجرای آن یا همان مبلغ گس بالاتر خواهد بود
قرارداد هوشمند خود را مستقر کنید
دو IDE محبوب به نام های Truffle و Remix ابزارهای هستند که به وسیله آنها امکان استقرار (Deploy) قرارداد های هوشمند وجود دارد. آنها تمام ابزار ها و ویژگی هایی که برای ساختن و انتشار قرارداد های هوشمند مورد نیاز هستند را به صورت رابط کاربری گرافیکی در اختیار کاربر قرار می دهند
آدرس را ذخیره کنید
هر قرارداد هوشمند آدرسی منحصر به فرد دارد که هنگامی که قرارداد روی شبکه قرار می گیرد ساخته می شود آن را پیدا کرده و ذخیره کنید و برای طرفین قرارداد ارسال نمایید تا بتوانند به مفاد قرارداد دسترسی داشته باشند. اگر توکن های خود را به آدرس اشتباهی ارسال کنید دارایی و پول خود را از دست خواهید داد و راه باز گشی وجود نخواهد داشت پس ذخیره کردن آدرس قرارداد هوشمند بسیار اهمیت دارد همچین بدون داشتن آدرس نمی توانید به مفاد قرارداد و توابع آن دسترسی داشته باشید
نمونه ای از قرارداد هوشمند
هنگام یادگیری سالیدیی بهتر است از قرارداد های ساده شروع کنید. مثال زیر نونه کد معروف سلام دنیا (Hello World) به زبان سالیدیی می باشد
چند خط ابتدایی این قرارداد کامنتی است که درباره قرارداد هوشمند توضیحاتی را ارائه میدهد سپس دو تابع ساده داریم که اولی به نام justHelloWorld فقط عبارت "Hello World" را نمایش میدهد و دیگری به نام showHelloWorld رشته ای را از ورودی گرفته و به صورت “HelloWorld from [me]” در خروجی چاپ می کند. همین قطعه کد ساده را می توان کامپایل کرد، روی شبکه قرار داد و اجرا نمود
مزایای قرارداد هوشمند
قرارداد های هوشمند دارای مزایای متعددی از جمله تغییر ناپذیری (غیر قابل دستکاری) و شفافیت هستند که هر دو آنها ممکن است نقطه ضعف نیز به حساب بیایند یکی از نقاط قوت بزرگ آنها امنیت است
امنیت در قرارداد هوشمند
مزیت اصلی قراردادهای هوشمند، ظرفیت آنها برای اجرای الگوریتمی که با برنامهای که به صورت واضح و به دور از ابهام نوشته شده می باشد و احتمال دستکاری آن توسط طرفین قرارداد بسیار کم است به گونه ای که اگر قرارداد روی شبکه اتریوم / ماشین مجازی اتریوم استقرار یابد هیچ راهی برای تغییر و دستکاری آن وجود نخواهد داشت
سرعت قرارداد هوشمند
تا حالا چند بار شنیده اید که می گویند برای آماده سازی یک سند تجاری باید چند روز کاری منتظر بمانید چنین چیزی در مورد قرارداد های هوشمند صادق نیست آنها به محض استقرار به صورت زنده در آمده و اصلا چیزی به نام روز کاری برای آنها وجود نخواهد داشت
شفافیت در قرارداد هوشمند
قرارداد های هوشمند بر روی دفترکل غیر متمرکز به نام بلاک چین قرار دارند و هر کسی که به شبکه آن زنجیره بلوکی یا بلاکچین دسترسی داشته باشد قادر خواهد بود آنها را مشاهده کند بنابراین بسیار دشوار خواهد بود تا قراردادی به صورت خصوصی باشد و از نظر ها پنهان بماند
غیر قابل دستکاری بودن قراردادهای هوشمند
به محض اینکه مفاد یک قرارداد هوشمند نوشته شد و بر روی شبکه قرار گرفت دیگر امکان دستکاری در هیچ جای آن قرارداد وجود نخواهد داشت برای مثال معامله یک خودرو را در نظر بگیرید به محض استقرار قرارداد لازم نیست نگران موجودی حساب بانکی خریدار باشید یا نگران این بود که یکی از طرفین زیر قرارداد بزند
چالش های قرارداد هوشمند
از آنجایی که قرارداد های هوشمند غیر قابل دستکاری و تغییر هستند کوچکترین ایرادی در کد نوشته شده می تواند عواقب سنگینی به بار آورد. بنابراین لازم است برنامه نویسان تازه کار تا وقتی که با پیچ و خم مسائل مربوط به قرارداد هوشمند آشنا نشده اند کدهای خود را در شبکه تست، آزمایش کرده و پس از اینکه از توانایی های خود اطمینان حاصل کردند دست به انتشار قرارداد هوشمند روی شبکه واقعی نمایید. به عنوان یک عادت خوب بهتر است کلیدها و رمز های دسترسی را در یک کیف پول سخت افزاری ذخیره کنید تا امنیت قرارداد هوشمند تان بالاتر رفته و امکان دزدیده شدن اطلاعات حساس به حداقل برسد
قرارداد های هوشمند جهانی هستند اما قوانین و دستورالعمل ها همچنین به صورت محلی باقی مانده اند
به قوانین و مقررات محلی که خود یا کاربران تان در آن زندگی می کنند آگاه باشید تا مشکل حقوقی برایتان به وجود نیاید
در زیر به چند مورد از چالش های قرارداد هوشمند اشاره میکنیم
تغییر ناپذیری قرارداد های هوشمند
اگر برنامه نویسی قرارداد هوشمند به نحو احسن انجام شود تغییر ناپذیری آن مشکلی ایجاد نخواهد کرد اما اگر خطا یا سهل انگاری در نوشتن کدهای آن وجود داشته باشد شاید راه برای خرابکاری و هک کردن آن قرارداد هوشمند هموار شود و تمام منابع و دارایی های دخیل در آن قرارداد هوشمند را از بین رود
شفافیت
قرارداد هوشمند برای همه ی افرادی که در شبکه وجود دارند قابل مشاهده ست، باگ ها، نقاط ضعف، سوراخ های امنیتی به راحتی برای هکر ها قابل شناسایی هستند. عدم وجود حریم شخصی آنها را از حالت ایده آل برای معاملاتی که نیاز به پنهان سازی دارند خارج می سازد
نامفهوم بودن برای وکلا
برای نوشتن و خواندن قرارداد های هوشمند نیاز به دانش بالایی در زمینه برنامه نویسی وجود دارد بنابراین وکلا و متخصصان حقوقی قادر به خواندن و درک آنها نیستند و قرارداد های هوشمند نیز مانند قرارداد های سنتی باید از قوانین محلی تبعیت کنند و از آنجا که قوانین از محلی به محل دیگر متفاوت است در نوشتن قرارداد هوشمند باید دقت ویژه ای به خرج داد و از مقررات محلی آگاهی پیدا کرد اما محافظت از طرفین قرارداد به این دلیل که همه چیز شفاف و واضح است بسیار آسان می باشد
یکبار مصرف بودن قراردادهای هوشمند
قراردادهای هوشمند قرار است یک بار نوشته و اجرا شوند به همین دلیل در مورد قرارداد های پیچیده که شرایط ممکن است دستخوش تغییرات شوند یا به صورت مداوم مفاد قرارداد مورد بحث قرار بگیرند چالش های بزرگی ممکن است به وجود آید و بهتر است از قرارداد های سنتی استفاده شود
هزینه بالا قرارداد هوشمند
درست مانند قراردادهای سنتی که باید به یک وکیل یا شخص سومی برای تنظیم آن پول پرداخت کنید، نوشتن و اجرای قرارداد های هوشمند نیز نیاز به پرداخت هزینه است. هزینه ها (مثل گس در اتریوم ) ممکن بالا باشند مخصوصا اگر مقدار توکن موجود در قرارداد زیاد باشد
کلام آخر
با توجه به مدرن بودن بلاکچین، قرارداد های هوشمند به شدت با ثبات هستند. در هر تکنولوژی جدید ریسک هایی وجود دارد و افراد دخیل در توسعه زیرساخت های قرارداد هوشمند به این قضیه آگاهی دارند و سعی میکنند با دقت زیاد به توسعه شبکه کمک کنند. بزرگترین چالش و مسئله در قرارداد های هوشمند زبان برنامه نویسی، شبکه، ماشین مجازی و یا بلاکچین نیست بلکه افرادی هستند که قراردادهای هوشمند را می نویسند. یک باگ یا اشکال کوچک در جایی از کد نوشته شده ممکن است میلیون ها دلار خسارت وارد آورد.قرارداد های هوشمند پیچیده، ممکن است شامل چند صد خط کد باشند در صورتی که قراردادهای هوشمند ساده مانند آنهایی که در زمینه NFT ها استفاده می شوند شامل چند ده خط کد می شوند
در پایان قرارداد های هوشمند مانند همه چیزهایی که در بحث وب 3 وجود دارند همچنان در حال بهبود و تکامل هستند
Powered by Froala Editor