خانه » دانشنامه » بلاکچین » قرارداد هوشمند چیست؟ 2زبان برنامه نویسی مهم
قرارداد هوشمند

قرارداد هوشمند چیست؟ 2زبان برنامه نویسی مهم

 

قرارداد هوشمند چیست؟

 

قرارداد هوشمند یک قرارداد خوداجرا است که شرایط توافق بین خریدار و فروشنده مستقیماً در خطوط کد نوشته می شود.

کد و توافق نامه های موجود در آن در سراسر یک شبکه بلاک چین غیرمتمرکز توزیع شده وجود دارد.

کد اجرا را کنترل می کند و تراکنش ها قابل پیگیری و برگشت ناپذیر هستند.

قراردادهای هوشمند اجازه می دهد تا معاملات و توافقات قابل اعتماد بین طرف های ناهمگون و ناشناس بدون نیاز به یک مرجع مرکزی، سیستم قانونی یا مکانیزم اجرایی خارجی انجام شود.

 

در حالی که فناوری بلاک چین اساساً به عنوان پایه ای برای بیت کوین در نظر گرفته شده است، اما بسیار فراتر از زیربنای ارز مجازی تکامل یافته است.

مفاهیم کلیدی

 

قراردادهای هوشمند قراردادهایی هستند که خوداجرایی می شوند و شرایط توافق بین خریدار و فروشنده مستقیماً در خطوط کد نوشته می شود.

نیک سابو، دانشمند کامپیوتر آمریکایی که در سال 1998 ارز مجازی به نام بیت گلد را اختراع کرد، قراردادهای هوشمند را به عنوان پروتکل های تراکنش کامپیوتری تعریف کرد که شرایط یک قرارداد را اجرا می کنند.

قراردادهای هوشمند تراکنش ها را قابل ردیابی، شفاف و غیر قابل برگشت می کند.

 

 

قراردادهای هوشمند چگونه کار می کنند

 

 

قراردادهای هوشمند برای اولین بار در سال 1994 توسط نیک سابو( Szabo )، دانشمند کامپیوتر مجارستانی الاصل  آمریکایی که یک ارز مجازی به نام “بیت گلد” را در سال 1998 اختراع کرد، 10 سال قبل از اختراع بیت کوین، پیشنهاد شد.

در واقع، اغلب شایعه می شود که سابو ساتوشی ناکاموتوی واقعی، مخترع ناشناس بیت کوین است، که او آن را رد کرده است.

 

 

 

Szabo قراردادهای هوشمند را به عنوان پروتکل های تراکنش رایانه ای تعریف کرد که شرایط یک قرارداد را اجرا می کند.

او می خواست کارکرد روش های تراکنش الکترونیکی مانند POS (نقطه فروش) را به حوزه دیجیتال گسترش دهد.

trad-cont

مقایسه قرارداد هوشمند و قرارداد معمولی

قرارداد هوشمند

سابو در مقاله خود همچنین اجرای قراردادی را برای دارایی های مصنوعی مانند مشتقات و اوراق قرضه پیشنهاد کرد.

سابو نوشت: “این اوراق بهادار جدید با ترکیب اوراق بهادار (مانند اوراق قرضه) و مشتقات (اختیارات و قراردادهای آتی) به روش‌های مختلف شکل می‌گیرند. ساختارهای مدت بسیار پیچیده‌ای برای پرداخت‌ها اکنون می‌توانند در قراردادهای استاندارد ساخته شده و با هزینه‌های مبادله کم معامله شوند.

به دلیل تجزیه و تحلیل کامپیوتری این ساختارهای اصطلاحی پیچیده.”

به عبارت ساده، منظور او خرید و فروش مشتقات با شرایط پیچیده بود.

بسیاری از پیش‌بینی‌های سابو در این مقاله به روش‌هایی که پیش از فناوری بلاک چین بودند، به حقیقت پیوستند.

به عنوان مثال، تجارت مشتقات در حال حاضر بیشتر از طریق شبکه های کامپیوتری با استفاده از ساختارهای اصطلاح پیچیده انجام می شود.

اتریوم و قرارداد هوشمند

قرارداد های هوشمند میتوانند روی شبکه بیتکوین نیز اجرا شوند.

این قرارداد ها پس از شکل گیری شبکه اتریوم و توسعه زبان سالیدیتی به وسیله گاوین وود بسیار فرا گیر شدند.

بسیاری از پروژه های بزرگ بلاک چین مانند ترون، ایاس، پولکادات که خود وود ایجاد کرده است ابتدا با قرارداد های هوشمند روی شبکه اتریوم بوجود آمدند.

امروز شبکه های بلاک چین زیادی از قرارداد های هوشمند پشتیبانی میکنند.

کاردانو، سولانا، ترون، ایاس، چین لینک، پالیگان، باینانس نمونه هایی از این شبکه ها هستند که از قرارداد هوشمند پشتیبانی میکنند.

قرارداد های هوشمند می توانند ساخت یک توکن استاندارد ERC20 باشند یا ساخت ERC721 برای انتشار NFT.

همچنین میتوانند اکسچنج، والت و  یا برنامه کاربردی دیگری باشند.

در صورتی که هزینه سوخت یا گاز پرایس کاهش یابد بسیاری از برنامه های کاربردی می توانند به شکل قرارداد های هوشمند اجرا شوند.

اپلیکیشن های غیر متمرکز مالی (Defi)، بازی ها، و هر آنچه را به بتوان به صورت برنامه کامپیوتری نوشت، میتوان در یک دنیای غیر متمرکز پردازش با قرارداد هوشمند اجرا کرد.

زبان های برنامه نویسی قرارداد هوشمند

زبان سالیدیتی که از زبان های پرانتزی محسوب میشود ابتدا تحت تاثیر جاوا اسکریپت بوجود آمد.

این زبان به دلیل زیر ساخت های اتریوم و همچنین دسترسی عمومی به شبکه اتریوم به شرعت به محبوب ترین زبان برای نوشتن قرارداد هوشمندتبدیل شد.

زبان سالیدیتی از نسخه 4 به بعد عناصر زبان های پاییتون و ++C را بکار گرفت.

این عناصر توان زبان سالیدیتی را افزایش دادند و مخاطرات امنیتی آن را نیز کاهش دادند.

از ورژن 4 به بعد سالیدیتی قدرت نسبتا خوبی برای ایجاد اپلیکیشن هایی  مانند یونی سواپ، و سایر دیفای ها و همچنین بازی ها و اکسچنج ها بدست آورده است.

از زبان های دیگر نیز می توان برای نوشتن قرارداد هوشمند بهره گرفت.

از آنجایی که بلاک چین EOS از قراردادهای هوشمند از طریق ماشین مجازی WebAssembly خود پشتیبانی می کند، هر زبانی که بتواند در WebAssembly (WASM) کامپایل شود، می تواند قراردادهای هوشمند را برنامه ریزی کند.

با این حال، ++C زبان توصیه شده برای توسعه دهندگان برای استفاده در EOS است.

قرارداد هوشمند و امنیت

قرارداد های هوشمند بر روی ماشین های مختلف در شبکه بلاکچین وجود دارند و اجرا می شوند.

برخی از این قرارداد ها میلیارد ها دلار سرمایه جذب میکنند.

اجرا بر روی شبکه غیر متمرکز و حجم دارایی موضوع امنیت را در این نوع قرار داد ها بیش از پیش حائز اهمیت میکند.

دائو(DAO) نمونه ای از یکی از بزرگترین هک های شبکه اتریوم بود که علت ضعف امنیتی قرارداد هوشمند آن اعلام شده است.

حجم عظیمی از پول سرمایه گذاران خارج شد تا جایی که شبکه اتریوم ناچار شد تا با یک هارد فورک پول سرمایه گذاران را برگرداند. همین مسئله باعث انشعاب در شبکه اتریوم شد.

مشکل امنیتی قرارداد های هوشمند نیز مانند بلاک چین به تمثیل ژنرال های بیزانسی، تحمل خطای بیزانسی (BTF) باز میگردد.

در سولانا که از زبان برنامه نویسی راست استفاده می شود احتمال خطر کمتر است .

ساختار قرارداد هوشمند توکن در سالیدیتی

با توسعه اقتصاد رمز ارزها، استاندارد های قرارداد هوشمند برای انتشار توکن بوجود آمدند.

معروف ترین کتابخانه درمورد انتشار توکن در شبکه اتریوم و شبکه های شبیه به آن مانند باینانس ، کتابخانه اپن زپلین(OPENZEPPELIN) است.

این کتابخانه قراردادهای هوشمند را از نظر امنیتی بررسی کرده و اکثر توسعه دهندگان رمزارز و اپلیکیشن های غیر متمرکز از این کتابخانه استفاده می کنند.

استاندارد ERC20 برای انتشار توکن های همسان و استاندارد ERC721 برای انتشار توکن های بی مثال بکار می رود.

استاندارد ERC1155 برای انتشار انبوه  توکن های بیمثال بکار می رود. به عنوان مثال برای انتشار ان اف تی در یک فروشگاه یا انتشار بلیط.

استاندارد ERC20 را می توان با چند فانکشن ساخت ولی معمولا از قرارداد (CONTRACT) استفاده می کنند.

این کانتراکت ها یک کانستراکتور(constructor) دارند که فقط یک بار در زمان انتشار اولیه قرارداد اجرا می شوند و پس از آن قابل دسترس نیستند.

نام توکن (name)و نشانه(symbol) و عرضه کل(totalsupply) را یکبار از کانستراکتور عبور می دهند و بدین شکل اپلیکیشن غیر متمرکز می شود.

باآشنایی با ساختار قرارداد هوشمند که یک برنامه متن باز است می توانیدریسک های سرمایه گذاری در توکن های نو ظهور را کم کنید.

قراردادهای هوشمند و آینده تجارت

یکی از ملزومات شکل گیری تجارت موفق ایجاد اعتماد بین طرف های تجاری است.

در دادگاه های سراسر جهان سالانه میلیون ها شکایت بین شریک های تجاری سابق ثبت می شود.

در قرارداد هوشمند نیازی به اعتماد نیست. این قرارداد ها به اصطلاح (trustless) هستند.

با رشد اقتصاد اینترنتی و ظهور پدیدهای جدید دنیای فیزیکی در جهان اینترنتی استفاده از این نوع قرارداد ها می تواند بهره  وری تجاری را به شدت افزایش دهد.

جهانی را تصور کنید که در آن همه اشیاء فیزیکی مجهز به یک تراشه هستند و این تراشه حامل یک توکن بی مثال (NFT) است که هویت آن اشیاء را و همچنین تکلیف مالکیت آن را روشن می کند.

در این جهان معاملات می توانند بدون نیاز به اعتماد بین طرفین یا وجود شخص ثالث به سرعت انجام شوند.

همچنین اعطای وام و اعتبار دهی با استفاده از دارایی های غیر منقول به سهولت می تواند انجام شود.

نو آوری های اخیر

اثبات سابقه(تاریخ) در شبکه سولانا عملا توانسته است به سرعت های تراکنش بسیار بالاتر از گذشته و همچنین هزینه تراکنش بسیار پایین دست یابد.

اجرای موازی قرارداد هشمند در سولانا امکانات بسیار زیادی را در اختیار توسعه دهندگان اپلیکیشن های غیر متمرکز(Dapp) قرار می دهد.

امروز استفاده از دیفای ها روی شبکه اتریوم به دلیل مصرف بالای گاز آنها برای همه امکان پذیر نیست.

مبالغ کمتر از 1000 دلار برای کار با دیفای ها اصلا مقرون به صرفه نیستند.

خدمات دیفای ها نیز به دلیل ماهیت بلاکچین مبتنی بر اثبات کار یا اثبات سهام که در آنها بلوک ها باید یکی پس از دیگری

اجرا شوند بشدت محدود باقی مانده است.

سولانا می تواند تحول بزرگی را در این زمینه بوجود آورده و اپلیکیشن های کاربردی بهینه تری ایجاد کند.

نتیجه گیری

قرارداد هوشمند نوعی برنامه کامپیوتری است که بر روی شبکه و بویژه بلاک چین اجرا می شود و هدف آن از بین بردن نیاز به اعتماد در معامله است.

قرارداد های هوشمند در دهه 90 معرفی شدند اما اجرای عمومی آنها در شبکه اتریوم اتفاق افتاد.

زبان سالیدیتی برای نوشتن و اجرای قرارداد هوشمند توسط گاوین وود توسعه یافت

سایر زبتن های برنامه نویسی نیز می توانند برای قرارداد های هوشمند استفاده شوند.

 

درباره فرهاد قناعتگر

فرهاد قناعتگر دانش آموخته دانشگاه تهران و علم و صنعت   علاقه مندی ها: اقتصاد، سیاست و برنامه نویسی کامپیوتر   عاشق مطالعه و یادگیری هستم زبان: انگلیسی، آشنایی با فرانسه زبان برنامه نویسی: جاوا اسکریپت، سالیدیتی، پایتون در حال مطالعه rust 'گیت هاب : https://github.com/Farhadgh کارهای انجام شده در زمینه بلاکچین قرارداد هوشمند توکن دریک با نام daricpay ، سال 1396 روی شبکه اتریوم، متن باز https://cn.etherscan.com/address/0x20b504802dbce474b4dc59c9474f9270c85b94d8 - قرارداد هوشمند توکن لیکوئیدیتی جنریتور کریپویار روی شبکه پالیگان به آدرس https://polygonscan.com/address/0x1ae75C0241696dF2C65e8Af0c9677aDEF6420a65 اپلیکیشن غیر متمرکز(Dapp) : https://nft.cryptos.help

پاسخ دهید

ایمیل شما منتشر نخواهد شد. شاخه های ضروری نشانه گذاری شده اند *

*

x

همچنین نگاه کنید به

بلوک چیست؟

بلوک (بلوک بیت کوین) چیست؟   بلوک ها فایل هایی هستند که داده های مربوط ...