اتریوم یک محیط مجازی ایجاد کرده است که به قراردادهای هوشمند اجازه می دهد تا با یکدیگر تعامل داشته باشند که این محیط، ماشین مجازی اتریوم نامیده می شود. این ویژگی به قراردادهای هوشمند اجازه می دهد تا بدون نیاز به پیچیده شدن بیش از حد، عملکرد بیشتری داشته باشند. در واقع EVM یک ماشین مجازی کامل تورینگ که اجرای کد را دقیقاً همانطور که در نظر گرفته شده امکان پذیر می کند. این محیط، محیطی اجرایی و تعاملی برای هر قرارداد هوشمند است. در این مطلب در مورد این که ماشین مجازی اتریوم چیست صحبت خواهیم کرد.
ماشین مجازی اتریوم (EVM)
یک ابر کامپیوتر جهانی! ماشین مجازی اتریوم (Ethereum Virtual Machine) اینگونه توصیف شده است و تمام تراکنش هایی که رایانه شما می تواند انجام دهد را شامل می شود: (ارسال و دریافت چیزهایی مانند پول نقد، اسناد و قراردادها و تبدیل آنها در مقیاس جهانی). این ماشین مجازی (EVM) یک موتور محاسباتی است و مانند یک کامپیوتر غیرمتمرکز عمل می کند که میلیون ها پروژه قابل اجرا دارد.
کمی به عقب برگردیم: بیت کوین مانند یک نسخه اولیه از کاری است که یک بلاک چین می تواند انجام دهد. شما یک واحد ارزش دارید (یک بیت کوین) و می توانید بیت هایی (واحدهای کوچکی) از آن ارزش را بین خود و افراد دیگر ارسال و دریافت کنید. سپس اتریوم آمد و به مردم اجازه داد تا با استفاده از فناوری بلاک چین قراردادهای هوشمند و Dapp بسازند.
هنگامی که اتریوم اجازه ایجاد قراردادهای هوشمند را داد، گام بعدی ایجاد محیطی بود که همه آن قراردادهای هوشمند با یکدیگر تعامل داشته باشند. اینجاست که EVM وارد می شود. ماشین مجازی اتریوم به عنوان یک کامپیوتر مجازی روی بلاک چین در نظر گرفته می شود که ایده های شما را به کد تبدیل می کند و آن را در شبکه جهانی اتریوم اجرا می کند. به صورت خلاصه این ماشین مجازی به عنوان بخشی از اتریوم در نظر گرفته می شود که اجرا و استقرار قرارداد هوشمند را اجرا می کند.
نقش EVM این است که تعدادی قابلیت اضافی را در بلاک چین به کار گیرد تا اطمینان حاصل شود که کاربران با مشکلات محدودی در دفتر کل توزیع شده مواجه می شوند. هر گره اتریوم روی EVM اجرا می شود اجماع در سراسر بلاک چین حفظ شود. اتریوم چیزی به نام قراردادهای هوشمند را تسهیل می کند، قطعه کدی که روی اتریوم اجرا می شود. EVM کاملاً ایزوله است به این معنی که کد داخل EVM به شبکه، سیستم فایل یا سایر فرآیندها دسترسی ندارد.
اتریوم دارای دو نوع حساب است: حسابهای تحت مالکیت خارجی (EOA) و حسابهای قراردادی که هر دو به طور مساوی تحت نظر EVM رفتار می کنند.
EOA ها توسط کلیدهای خصوصی کنترل می شوند، در عین حال حساب های قراردادی در قراردادهای هوشمند ذخیره می شوند که به عنوان کیف پول هوشمند نیز شناخته می شوند. قراردادی که در کدگذاری قرارداد هوشمند نوشته شده است به چیزی به نام بایت کد (bytecode) تبدیل می شود. بیشتر کدهای منبع برای استفاده از قراردادهای هوشمند با استفاده از زبان برنامه نویسی Solidity انجام می شود و بعد به کدهای عملیاتی برای تفسیر EVM تبدیل می شود. سپس EVM از کدهای عملیاتی برای تکمیل وظایف خاص استفاده می کند. بنابراین، EVM مانند یک کامپیوتر بزرگ غیرمتمرکز یا اصلی کار می کند تا انواع وظایف را در بلاک چین انجام دهد. ماشین مجازی یکی از بزرگترین پروژه ها در دنیای ارزهای دیجیتال است.
یک مثال در مورد ماشین مجازی اتریوم
فرض کنید می خواهید راهی برای خود و سه هم اتاقی خود ایجاد کنید تا برای خانه ای که در آن زندگی می کنید چیزهایی بخرید. شما اساساً در حال ساخت قرارداد هوشمند خود هستید و مواردی وجود دارد که می خواهید قرارداد هوشمند شما آن ها را پوشش دهد.
شما و سه دوستتان باید حساب های شخصی ایجاد کنید. همه شما موافقت می کنید که هر ماه مقداری از آن پول را از حساب های فردی خود بردارید و به حساب هلدینگ واریز کنید. همه شما موافقید که هیچ فردی نمی تواند از آن حساب پول خارج کند مگر اینکه همه موافق باشند. این پول تنها در صورتی می تواند از آن حساب خارج شود که هر چهار نفر امضای دیجیتال ارائه دهید. اکنون همه چیز آماده است اما فرض کنید می خواهید هر هفته مقادیر مشخصی پول را برای لوازم خانه اختصاص دهید. شما یک قرارداد هوشمند جداگانه ایجاد می کنید که می گوید:
- فقط 10 دلار در هفته برای لوازم منزل خرج کنید.
- لوازم منزل را فقط از همین فروشگاه بخرید.
- اطمینان حاصل کنید که لوازم منزل از این فروشگاه به این آدرس تحویل داده شود.
سپس فرض کنید میخواهید تلویزیون بخرید، اما برخی از شما فقط می خواهید مبلغ مشخصی برای آن خرج کنید. در اینجا قرارداد دیگری می آید. آن قرارداد می گوید:
- شخص A فقط می خواهد 20 دلار خرج کند.
- نفر B قصد دارد که 40 دلار خرج می کند.
- نفر C فقط می تواند 10 دلار خرج کند.
- شخص D مجاز به جبران تفاوت و خرید تلویزیون در صورت رعایت شرایط فوق است.
این مثال در واقع کارکرد ماشین مجازی اتریوم است. محیطی که همه این قراردادها در آن قرار دارند و بر یکدیگر تأثیر می گذارند. این ماشین مانند یک سرویس پیام رسان برای قراردادهای هوشمند است.
چرا ماشین مجازی اتریوم جذاب است؟
موارد زیادی وجود دارد که EVM می تواند به انجام آنها کمک کند و موجب جذابیت ماشین مجازی اتریوم باشد. از جمله:
شما می توانید قراردادهایی ایجاد کنید که نیازمند شرایط متعددی هستند: به عنوان مثال، قراردادهای بیمه ای که قبل از پرداخت یک بیمه نامه نیاز به ارائه اطلاعاتی دارند.
می توانید به افراد مختلف اجازه دهید تا قراردادهای کوچک خود را در قراردادهای بزرگتر مشخص کنند. تصور کنید یک سازنده، برای ساخت خانه پیمانکارانی استخدام می کند. او می تواند قراردادهای کوچکی را بین لوله کش ها، گچ کارها و برق کارانش تنظیم کند که فقط در صورت رعایت شرایط خاص، به هر فرد حقوق می دهد.
می توانید قراردادهایی ایجاد کنید که به طور خودکار چیزهایی را بخرید یا بفروشید: فرض کنید در تجارت تهویه مطبوع هستید. شما فقط زمانی می خواهید کولر گازی بخرید که دما از یک نقطه خاص بالاتر رود. می توانید یک قرارداد هوشمند بسازید که می تواند آب و هوا را در نظر بگیرد و در صورت نیاز به طور خودکار خرید کند.
زبان ماشین مجازی اتریوم
دقیقاً مانند وب سایت هایی که روزانه در آن ها سرچ کرده و به دنبال مطالب موردنظر خود می گردید، EVM براساس یک زبان برنامه نویسی ساخته شده است. زبان های برنامه نویسی معروفی که در حال حاضر وجود دارند عبارتند از جاوا، پایتون و روبی. این ماشین مجازی زبان خود را دارد که Solidity نام دارد. این زبان، زبانی است که به افراد اجازه می دهد قراردادهای هوشمندی بسازند که به راحتی با سایر قراردادهای هوشمند تعامل و ارتباط داشته باشند.
آینده ماشین مجازی اتریوم
این ماشین مجازی در ابتدای راه خود قرار دارد. در آینده، پیچیدگی، سرعت و توانایی ماشین مجازی افزایش خواهد یافت، درست مانند کامپیوترهایی که از ابتدای عصر PC سریعتر و هوشمندتر شده و قادر به انجام کارهای پیچیده تر هستند و هر روز نیز پیشرفته تر می شوند.
جمع بندی
یک ماشین مجازی معمولاً نمایشی از یک رایانه واقعی است که یک مفهوم انتزاعی نرم افزاری از سخت افزار واقعی، تماس های سیستمی و سایر عملکردهای هسته را ارائه می دهد. ماشین مجازی اتریوم (EVM) جزء شبکه اتریوم است که استقرار و اجرای قراردادهای هوشمند را مدیریت می کند.
مجموعه دستورات ماشین مجازی اتریوم به صورت تورینگ کامل (به سیستمی از قوانین دستکاری شده گفته می شود) است و به قراردادهای مستقر در شبکه اجازه می دهد تا هر کاری را که یک برنامه کامپیوتری معمولی می تواند انجام دهد، انجام دهند.ماشین مجازی اتریوم یا در اصطلاح EVM به عنوان قلب شبکه اتریوم شناخته می شود که امکان تعامل قراردادهای هوشمند با یکدیگر را فراهم می کند. البته اتریوم 2.0 با eWASM جایگزین EVM می شود که به شبکه اجازه می دهد هر کدی را که در WebAssembly کامپایل شده (اجرا شدن کد نوشته شده)است، مستقر کند و سیستم را بسیار سریع تر و کارآمدتر کند.