خوش آمدید به جلسۀ دیگری از دوره آموزش ارزهای دیجیتال. در طول این ترم، بارها کلمۀ قرارداد هوشمند به گوشتان خورد، اما آیا از خود پرسیدید که قرارداد هوشمند چیست (و چه کاری انجام میدهد)؟ با آکادمی کالج پیپس، بزرگترین مرجع تخصصی آموزش و اخبار بازارهای مالی، همراه باشید.
[ez-toc]
اتریوم بهعنوان یک «پلتفرم قرارداد هوشمند» شناخته میشود. یک پلتفرم (یا پلتفرم محاسباتی)، محیطی اجرایی است که در آن یک قطعه نرمافزار مانند برنامهها میتوانند اجرا شوند.
قرارداد هوشمند چیست؟
قراردادهای هوشمند، برنامههای خودکار کامپیوتری هستند که بر روی بلاکچین، میزبانی و اجرا میشوند. علیرغم نامشان، قراردادهای هوشمند لزوماً هوشمند یا از نظر قانونی الزامآور نیستند.
نیک سابو، که این اصطلاح را در اواخر دهۀ ۹۰ ابداع کرد، قراردادهای هوشمند را با دستگاه فروش خودکار مقایسه کرد. کاربران سکهها را به دستگاه وارد میکنند و اگر مقدار وارد شده صحیح باشد، دستگاه بهطور خودکار اجرا میشود و کالاهای درخواستی را تحویل مشتریان میدهد. هیچ شخص دیگری بهجز شما و دستگاه فروش در این روند حضور ندارد. حتی به هیچ واسطهای نیاز نیست، حتی صاحب دستگاه فروش! در واقع، دستگاه فروش هیچ انتخابی ندارد، جز اینکه پس از دریافت پول، کالاها را تحویل دهد. حال تصور کنید که توافقنامههایی بنویسید که شرایطشان بهوضوح و قابل پیشبینی بودن دستگاه فروش باشد و سپس از فناوری بلاک چین برای اجرای خودکار شرایط توافق بین طرفین استفاده کنید. این کاری است که یک قرارداد هوشمند انجام میدهد.
بهطور دقیقتر، در اتریوم، قراردادهای هوشمند، مجموعهای از دستورالعملهای کدنویسی شده هستند که بر روی بلاکچین ارسال میشوند تا کاربران شبکه بتوانند این قراردادها را بهصورت امن و بدون نیاز به اعتماد، اجرا و ذخیره کنند.
بهطور تخصصیتر، یک قرارداد هوشمند مجموعهای از کد و داده است که در یک آدرس خاص بر روی بلاک چین اتریوم قرار دارد. قراردادهای هوشمند، قطعی هستند تا طرفهای معامله در قرارداد بدانند که در هنگام اجرای قرارداد، انتظار چه نتایجی را باید داشته باشند. به قرارداد هوشمند بهعنوان یک برنامۀ نرمافزاری بر روی بلاک چین فکر کنید که بهطور خودکار وقتی شرایط از پیش تعیین شده برآورده میشود، اجرا میشود. این شرایط از پیش تعیین شده که مستقیماً در خطوط کد نوشته میشوند، معادل «شرایط توافق» در یک قرارداد سنتی هستند.
حالا که میدانید قراردادهای هوشمند چه هستند، بگذارید شما را با چیزی که اتریوم را به یک پلتفرم قرارداد هوشمند تبدیل میکند آشنا کنیم.

EVM چیست؟
یک ماشین مجازی (EVM)، یک قطعه نرمافزار است که مانند یک کامپیوتر فیزیکی واقعی رفتار میکند که میتواند برنامهها را اجرا کند.
ماشین مجازی اتریوم، دستورالعملها را بر روی بلاکچین اتریوم اجرا میکند. EVM اساساً یک برنامۀ نرمافزاری بر روی یک کامپیوتر است که به گونهای عمل میکند که گویی یک کامپیوتر جداگانه در داخل کامپیوتر اصلی قرار دارد! چرا یک کامپیوتر جداگانه برای اجرای قراردادهای هوشمند (که فقط برنامههای کامپیوتری هستند) لازم است.
از آنجا که هر نود اتریوم (که فقط کامپیوترها هستند) از سختافزار، سیستم عامل (OS) و تنظیمات متفاوت استفاده میکند، شما به راهحلی نیاز دارید تا همۀ اینها را «انتزاع» کنید تا کد قرارداد هوشمند بتواند بدون نیاز به برخورد با همۀ انواع مختلف پیکربندیهای کامپیوتری و نیازهای خاص آنها، اجرا شود.
در غیر این صورت، شما مجبور بودید یک نسخۀ متفاوت از قرارداد هوشمند برای هر نوع پیکربندی کامپیوتری بنویسید! این جا است که EVM وارد عمل میشود. ماشین مجازی اتریوم، یک محیط اجرایی برای قراردادهای هوشمند فراهم میکند، به این معنی که یک قرارداد هوشمند میتواند در هر محیطی (هر کامپیوتر یا سیستم عاملی) اجرا شود.
توسعهدهندگان میتوانند یک قرارداد هوشمند بنویسند و مطمئن باشند که از روش استاندارد صنعت نرمافزار یعنی «یک بار بنویسید و در هر جا اجرا کنید» پیروی میکنند. اساساً، یک قرارداد هوشمند بر روی هر کامپیوتری با EVM اجرا میشود.
از آنجا که هدف EVM این است که موتور محاسباتی جاسازی شده در همۀ نودهای اتریوم باشد، یک «ماشین تورینگ کامل» است. در اصطلاح کامپیوتری، تورینگ کامل به این معنی است که EVM میتواند بهطور نظری، هر چیزی که فکرش را میکنید را محاسبه کند. بنابراین، بهطور نظری، هر برنامۀ کامپیوتری میتواند بر روی پلتفرم اتریوم برنامهنویسی و اجرا شود!
قراردادهای هوشمند با استفاده از زبانهای برنامهنویسی سطح بالا مانند Solidity، Vyper، یا Serpent نوشته میشوند. این کد به چیزی بهنام «بایتکد» توسط EVM کامپایل میشود که سپس بر روی بلاکچین اتریوم مستقر میشود. بهلطف EVM، بلاک چین اتریوم میتواند فراتر از قراردادهای هوشمند برود و برای ایجاد برنامههای غیرمتمرکز (dApps) استفاده شود.
در این جلسه بهطور مفصل آموختید که قرارداد هوشمند چیست. در درس بعدی، بهطور تخصصی دربارۀ برنامههای غیرمتمرکز (dApps) یاد خواهید گرفت. خداوند یار و نگهدارتان.