اتریوم یک پلتفرم قرارداد هوشمند است.
پلتفرم (یا پلتفرم محاسباتی) محیطی عملیاتی است که در آن یک نرمافزار مثلا اپلیکیشن، میتواند اجرا شود.
اما یک قرارداد هوشمند چیست؟
قراردادهای هوشمند (Smart contract) برنامههای خودکار رایانهای هستند که بر روی یک بلاکچین میزبانی و اجرا میشوند.
قراردادهای هوشمند برخلاف اسمش، لزوما هوشمند نیستند.
اگر به جای «هوشمند»، میگفتیم «اتوماتیک» و به جای «قرارداد» میگفتیم «برنامه»، اسمش دقیقتر میشد. اما متأسفانه من اون نابغهای نبودم که اولین بار این اصطلاح را مطرح کرد.
نیک سابو (Nick Szabo) در قیاس با ماشینهای فروش، مفهوم قراردادهای هوشمند را مطرح کرد.
در ماشینهای فروش، کاربران سکهها را وارد دستگاه میکنند و اگر مقدار سکهها درست باشد، دستگاه به طور خودکار عملیات را انجام میدهد و کالای درخواستی را تحویل میدهد. هیچ کس دیگری جز شما و ماشین فروش درگیر عملیات خرید کالا نمیشود و نیازی به شخص دیگری برای حساب کردن و تحویل کالا نیست. حتی صاحب ماشین فروش هم لازم نیست حضور داشته باشد.
برای این تعامل نیازی نیست بین دو طرف اعتماد وجود داشته باشد: ماشین فروش بعد از دریافت پول، گزینهای جز تحویل کالا ندارد.
حالا تصور کنید بتوانید قراردادهایی بنویسید که شرایطش مثل یک ماشین فروشْ روشن و قابل پیشبینی باشد و از این بعدْ از فناوری بلاکچین برای اجرای خودکار شرایط توافق بین طرفین استفاده کنید.
این دقیقا کاری است که قراردادهای هوشمند انجام میدهند.
قراردادهای هوشمند اتریوم شامل بیتهایی از دستورالعملهای کدگذاریشده هستند که بر روی بلاکچین ارسال میشوند تا اعضای شبکه بتوانند این قراردادها را به شیوهای امن و به طوری که نیازی به اعتماد بین طرفین نباشد، اجرا و ذخیره کنند.
اگر بخواهیم فنیتر تعریف کنیم، باید بگوییم قرارداد هوشمند مجموعهای از کد و داده است که در یک آدرس خاص در بلاکچین اتریوم قرار دارد.
قراردادهای هوشمند فاکتور قطعیت را نیز دارند و این باعث میشود کسانی که در قرارداد شرکت دارند، بدانند در صورت اجرای قرارداد چه نتایجی در انتظارشان است.
قرارداد هوشمند را یک برنامه نرمافزاری روی بلاکچین در نظر بگیرید که در صورت تحقق شرایط از پیش تعیینشده، به طور خودکار اجرا میشود.
این شرایط از پیش تعیینشده که مستقیما روی خطوط کد نوشته میشود، مثل «مفاد قرارداد» یک قرارداد سنتی است.
حالا که متوجه شدید قراردادهای هوشمند چیست، در مورد این صحبت کنیم که چگونه اتریوم به یک پلتفرم قرارداد هوشمند تبدیل میشود.
EVM یا ماشین مجازی اتریوم چیست؟
EVM (ای وی ام) نوع جدیدی از موسیقی الکترونیک نیست.
گفتیم که قراردادهای هوشمند دستورالعملهایی هستند که با کد نوشته شدهاند، ماشین مجازی اتریوم یا Ethereum Virtual Machine (EVM) هم این دستورالعملها را در بلاکچین اتریوم اجرا میکند.
ماشین مجازی یک نرمافزار است که مثل یک کامپیوتر واقعی فیزیکی عمل میکند و میتواند برنامهها و اپلیکیشنها را اجرا کند.
ماشین مجازی یک برنامه نرمافزاری روی یک کامپیوتر فیزیکی است که مثل یک کامپیوتر جداگانه در داخل کامپیوتر اصلی کار میکند.
چرا برای اجرای قراردادهای هوشمند (که یک سری برنامههای کامپیوتری هستند) به یک کامپیوتر مجزا نیاز است؟
از آنجایی که نودهای اتریوم (که فقط کامپیوترها هستند) از سختافزار، سیستم عامل (OS) و پیکربندیهای اختصاصی استفاده نمیکنند، به روشی نیاز دارید برای بهرهمندی از همه این موارد تا کد قرارداد هوشمند بدون آنکه نیاز باشد با انواع مختلف پیکربندیهای کامپیوتری سروکار داشته باشد، با الزامات خاص خودش اجرا شود.
در غیر این صورت، باید نسخه متفاوتی از قرارداد هوشمند را برای هر نوع پیکربندی کامپیوتری بنویسید.👎
قراردادهای هوشمند نمیخواهند این همه دردسر داشته باشند و میخواهند بر روی تمامی دستگاهها و سیستم عاملها قابل اجرا باشند.
اینجاست که EVM وارد میشود.💪
EVM یک محیط اجرایی برای قراردادهای هوشمند فراهم میکند و این به معنای آن است که یک قرارداد هوشمند میتواند در هر محیطی (هر کامپیوتر یا سیستم عاملی) اجرا شود.
توسعهدهندگان میتوانند یک قرارداد هوشمند بنویسند و مطمئن باشند که از رویه استاندارد صنعت نرمافزار یعنی «یک بار بنویس، همه جا اجرا کن» تبعیت میکند.
اساسا یک قرارداد هوشمند (اسمارت کانترکت) روی هر کامپیوتری با EVM اجرا میشود، جالب است، نه؟
اما تنها نکته جالب این نیست.
از آنجایی که هدف EVM این است که موتور محاسباتی تعبیهشده در تمام نودهای اتریوم باشد، تورینگ کامل یا Turing-complete است.
در زبان کامپیوتری، تورینگ کامل یا Turing-complete به معنای آن است که EVM میتواند هرچیزی را که قابلمحاسبه است، محاسبه کند.
بنابراین به طور کلی هر اپلیکیشن کامپیوتری را میتوان بر روی پلتفرم اتریوم نوشت و اجرا کرد.
قراردادهای هوشمند با استفاده از زبانهای برنامهنویسی سطح بالا مثل Vyper، Solidity یا Serpent به صورت کد نوشته میشوند.
EVM این کد را به چیزی به نام «بایتکد» تنظیم میکند و بعد در بلاکچین اتریوم مستقر میشود.
به خاطر EVM، بلاکچین اتریوم میتواند چیزی فراتر از قراردادهای هوشمند باشد و میتوان از آن برای ایجاد اپلیکیشنهای غیرمتمرکز (dApps) بهره گرفت.
در درس بعدی در مورد اپلیکیشنهای غیرمتمرکز (dApps) بیشتر صحبت خواهیم کرد.