دستگاه مجازی Ethereum چگونه کار می کند؟ - کرکی
- گاز
- قراردادهای هوشمند
- معاملات
فراتر از فعال کردن تبادل ارزش ، اتریوم همچنین ایجاد "قراردادهای هوشمند" را تسهیل می کند. قراردادهای هوشمند برنامه هایی هستند که برنامه های مختلفی را اجرا می کنند که برنامه های مختلفی را که امروزه در Blockchain Ethereum اجرا می شوند ، قدرت می دهند.
توکن های غیرقانونی (NFTS) ، سیستم عامل های غیرمتمرکز مالی (DEFI) ، بازی های blockchain-همه اینها برای کار به قراردادهای هوشمند متکی هستند. با این حال ، خود قراردادهای هوشمند فقط می توانند اجرا شوند زیرا دستگاه مجازی Ethereum (EVM) وجود دارد.
EVM یک موتور محاسباتی است که استقرار و بهره برداری از قراردادهای هوشمند را تسهیل می کند. بدون EVM ، اجرای برنامه های نرم افزاری در پروتکل Ethereum غیرممکن است. بنابراین ، EVM بخش مهمی از معماری اصلی اتریوم است.
در این مقاله مقدمه ای برای دستگاه مجازی Ethereum (EVM) ارائه شده است. ما اصول اولیه EVM را پوشش می دهیم ، از جمله مؤلفه های ساختار آن مانند Opcodes و قراردادهای هوشمند.
دستگاه مجازی Ethereum (EVM) چیست؟
برای درک ماشین مجازی Ethereum ، ابتدا باید دو مفهوم را کشف کنیم: "ماشین های مجازی" و "کامل بودن توری".
ماشین های مجازی
ماشین های مجازی برنامه هایی هستند که رفتار یک رایانه فیزیکی را شبیه سازی می کنند. یک ماشین مجازی دارای واحد ذخیره و پردازش خود است و به عنوان یک فرآیند در رایانه شخصی شما اجرا می شود. کمی شبیه به داشتن رایانه در رایانه دیگر است.
VM شبیه به نرم افزار متوسط ویندوز یا MACOS شماست. تفاوت در اینجا این است که VM ها برای انجام عملکردهای سطح بالا طراحی شده اند. علاوه بر این ، یک VM - مانند یک سیستم عامل معمولی - دسترسی به سایر قسمت های رایانه شما ، مانند ذخیره سازی یا پهنای باند ندارد.
اگر با استفاده از یک شبیه ساز ، بازی های اندرویدی را بر روی رایانه شخصی انجام داده اید ، ممکن است یک ماشین مجازی آشنا باشد. در حالی که شبیه سازها و VM ها به طور قابل توجهی متفاوت هستند ، هر دو قدرت سخت افزار تقریبی هستند و می توانند کد را در یک محیط "ماسهبازی" اجرا کنند.
تورینگ کامل بودن
آلن تورینگ ، ریاضیدان انگلیس ، اولین دستگاه تورینگ را - پیشرو رایانه امروز - توسعه داد. یک دستگاه تورینگ کامل می تواند هر محاسباتی را هر چقدر هم که پیچیده باشد ، پردازش کند ، به شرط آنکه زمان و منابع کافی داشته باشد.
حال ، بیایید این ایده ها را به هم گره بزنیم و دستگاه مجازی Ethereum را تعریف کنیم:
دستگاه مجازی Ethereum (EVM) یک ماشین مجازی غول پیکر است که امکان استقرار و اجرای کد را فراهم می کند. شما فقط برای دسترسی به EVM و استفاده از آن برای اجرای برنامه ها در Ethereum ، فقط باید نرم افزار مشتری لازم را نصب کنید. در اصل ، EVM به عنوان "رایانه جهانی" برای انجام عملیات نرم افزاری در یک محیط غیرمتمرکز عمل می کند.
عاری از کنترل متمرکز ، EVM توسط چندین فرد/شرکتی که در ازای ایجاد مشوق ها قدرت محاسبات را به سیستم وام می دهند ، پایدار است. بنابراین ، برای ایجاد برنامه های مقاوم در برابر سانسور مفید است که نمی توانند به طور یک جانبه توسط هر طرف تعطیل شوند.
EVM کاملاً مناسب است ، زیرا می توان از آن برای انجام محاسبات از پیچیدگی های مختلف استفاده کرد. این همان چیزی است که اتریوم را از بیت کوین جدا می کند ، زیرا دومی آن را به طور کامل ناکافی می کند و عملکرد آن را محدود می کند.
بیت کوین در درجه اول به عنوان "دفترچه توزیع شده" عمل می کند ، که قوانینی را برای انتقال ارزش مشخص می کند. علاوه بر رسیدگی به انتقال ارزش ، اتریوم (از طریق EVM) استقرار قراردادهای هوشمند را امکان پذیر می کند. در نتیجه ، اتریوم به عنوان "دستگاه دولتی توزیع شده" توصیف می شود.
"دولت" به اطلاعات مربوط به یک سیستم در هر مقطع زمانی اشاره دارد. در اتریوم ، ایالت به آدرس ها ، مانده حساب و کد قرارداد هوشمند موجود در یک لحظه خاص اشاره دارد. هر معامله باعث تغییر در حالت اتریوم (انتقال دولت) می شود که در کل شبکه منعکس می شود.

[منبع تصویر]
دستگاه مجازی Ethereum چگونه کار می کند؟
در اینجا ، ما بلوک های اصلی ساختمانی دستگاه مجازی Ethereum را کشف خواهیم کرد. این برای ارائه یک مرور کلی از سیستم است ، بنابراین ممکن است برخی از جزئیات فنی سنگین از آن خارج شود.
کرکی
EVM از یک سری دستورالعمل ها به نام "opcodes" برای انجام کارهای مختلف استفاده می کند. 140+ Opcode وجود دارد که امکان اجرای فرآیندهای مختلف در EVM را دارند-از این رو ، توضیحات اتریوم به عنوان تورینگ کاملاً مناسب است.
ما به Opcodes احتیاج داریم زیرا EVM نمی تواند دستورالعمل های نوشته شده در استحکام را تفسیر کند ، زبانی که برای کدگذاری قراردادهای هوشمند استفاده می شود. ERGO ، کد قرارداد هوشمند به Opcodes تبدیل می شود ، بنابراین می توان آنها را در محیط EVM اجرا کرد.
به عنوان مثال ، می توانید با استفاده از ایجاد Opcode یک قرارداد هوشمند ایجاد کنید یا یک قرارداد در حال اجرا را با Stop Opcode متوقف کنید. می توانید برای بررسی دقیق Opcodes در Ethereum در اینجا بررسی کنید.
گاز
گاز منبعی است که امکان اجرای کد در محیط EVM را فراهم می کند ، که در WEI (واحد اتر) اندازه گیری می شود. درست مانند شما برای تأمین نیروی اتومبیل خود در زندگی واقعی به گاز نیاز دارید ، EVM برای اجرای عملیات به گاز نیاز دارد.
پیش از این ، ما به "Opcodes" اشاره کردیم - دستورالعمل های خاص که می توانند برای انجام عملیات مختلف در EVM استفاده شوند. گاز به سادگی میزان منابع محاسباتی مورد نیاز برای انجام یک عملیات خاص است.
هر اجرای کد هزینه بنزین را دارد که بسته به عوامل بسیاری از جمله پیچیدگی عملکرد و تقاضای شبکه متفاوت است. هزینه های گاز باعث می شود تا افراد به قدرت محاسبات خود به اتریوم وام دهند. بدون هزینه گاز ، EVM به عنوان یک رایانه غیر متمرکز عمل نمی کند.
GAS هدف دیگری را ارائه می دهد: جلوگیری از انجام اقدامات مخرب ، مانند حملات توزیع خدمات (DDOS) توزیع شده. در حالی که EVM می تواند تقریباً هر محاسباتی را اجرا کند ، پیش بینی زمان اجرا برای هر عملیاتی دشوار است.
یک عملیات مخرب به خوبی طراحی شده می تواند بی نهایت اجرا شود و باعث می شود شبکه قدرت محاسباتی کمیاب را از دست بدهد و در نهایت سقوط کند. هزینه گاز با مجبور کردن بازیگران مخرب برای پرداخت هر مرحله انجام شده در فرآیند محاسباتی ، این مشکل را از این مشکل جلوگیری می کند.
قبل از شروع یک عملیات ، باید "حد گاز" را مشخص کنید - حداکثر مقدار گاز که مایل به صرف یک محاسبه هستید. پس از بیش از حد گاز ، محاسبه بلافاصله متوقف می شود. مجدداً ، این باعث می شود هر کسی از محاسبات "حلقه نامحدود" استفاده کند که می تواند سلامت اتریوم را تهدید کند.

مروری بر برخی از هزینه های گاز در اتریوم.[منبع تصویر]
قراردادهای هوشمند
قراردادهای هوشمند قطعاتی از کد هستند که پس از برآورده شدن مجموعه ای از پیش تعریف شده از پارامترها ، اجرا می شوند. یک قرارداد هوشمند برای انجام عملیات از برنامه نویسی مشروط (در صورت y ، سپس x) استفاده می کند.
قراردادهای هوشمند تغییر ناپذیر ، خودمختار و شفاف هستند. این ویژگی ها ترکیبی قراردادهای هوشمند را به ویژه جذاب می کند ، اگرچه بدون نقص نیستند.
"تغییر ناپذیری" به این معنی است که کد قرارداد هوشمند پس از استقرار در blockchain قابل تغییر نیست. قراردادهای هوشمند خودمختار هستند زیرا می توانند بدون کنترل خارجی از خود جدا شوند. و آنها شفاف هستند زیرا قوانین حاکم بر عملکرد آنها با کد در دسترس عموم نوشته شده است.
برخی از قراردادهای هوشمند برای ایجاد و تبادل نشانه های موجود در blockchain استفاده می شود. به عنوان مثال ، نشانه های ERC-20 دارای یک قرارداد هوشمند هستند که نامگذاری ، ایجاد ، مبادله ، عرضه کل و سایر ویژگی های خود را تعریف می کنند.

[منبع تصویر]
معاملات
معامله یک دستورالعمل از یک حساب Ethereum است. یک معامله مثال ارسال اتر به آدرس کیف پول شما است. در اینجا ، شما به EVM دستور می دهید که مقدار را از کیف پول خود به مکان دیگری در blockchain منتقل کند.
هر معامله در اتریوم شامل انتقال ارزش نیست. برخی ممکن است داده های دلخواه را منتقل کنند. نتیجه معامله بیشتر به گیرنده بستگی دارد.
یک حساب کاربری معمولی و خارجی (EOA) به سادگی اتر ارسال شده را دریافت می کند. با این حال ، یک حساب قرارداد ممکن است پس از موفقیت در معامله ، کد را اجرا کند. و ، همانطور که قبلاً توضیح داده شد ، معاملات منجر به "عملکرد انتقال دولت" ، یعنی تغییر در وضعیت اتریوم می شود.

[منبع تصویر]
این عناصر هسته زیرساخت EVM را تشکیل می دهند.
ویژگی های دستگاه مجازی Ethereum
قطعی
در برنامه نویسی ، تعیین کننده توانایی یک برنامه برای تولید همان خروجی برای یک ورودی خاص در هر نمونه است. جبرگرایی تضمین می کند که توسعه دهندگان می توانند برنامه هایی را برای انجام عملیات خاص و تولید نتایج مورد نیاز ، به طور مستقل طراحی کنند.
EVM قطعی است ، بنابراین Opcodes بدون توجه به چند بار محاسبات ، نتایج مشابهی را ارائه می دهد. این مهم است زیرا DAPP های دارای قرارداد هوشمند Ethereum دارای معاملات با ارزش بالا هستند و باید با اطمینان انجام دهند. وگرنه ، کاربران اطمینان ندارند که بدون انتظار خرابی از آنها استفاده کنند.
جدا شده
EVM جدا شده است ، به این معنی که کد دسترسی به فرآیندهای موجود در رایانه شما ندارد. شما می توانید ضمن محافظت از سخت افزار/نرم افزار خود در برابر مشکلات احتمالی ، با خیال راحت برنامه ها را در EVM مستقر کنید.
علاوه بر این ، قراردادهای هوشمند در محیط های جدا شده در EVM فعالیت می کنند. بنابراین ، اشکالات یا هک هایی که بر یک قرارداد هوشمند خاص تأثیر می گذارد ، از آسیب رساندن به پروتکل اساسی جلوگیری می شود.
خاتمه پذیر
EVM کاملاً مناسب است ، بنابراین از نظر تئوریک می تواند در صورت داشتن منابع و دستورالعمل های مناسب ، هر محاسباتی را انجام دهد. با این حال ، هر محاسبه به گاز اختصاص داده شده به آن متکی است. اگر گاز تمام شود ، این عملیات متوقف می شود.
در این زمینه ، شما می توانید Ethereum را "شبه كامل كامل" یا "خاتمه" مشاهده كنید زیرا اجرای كد می تواند در زمان های خاص خاتمه یابد. با این حال ، این ویژگی برای اطمینان از اجرای برنامه ها برای همیشه (به طور تصادفی یا مخرب) و متوقف کردن شبکه مهم است.
چرا دستگاه مجازی Ethereum (EVM) مهم است؟
ماشین مجازی اتریوم چیزی است که اجرای قراردادهای هوشمند بر روی پروتکل اتریوم را ممکن می کند. این قراردادهای هوشمند زیربنای برنامه های غیرمتمرکز، توکن ها و بسیاری از پروژه هایی هستند که روی بلاک چین اتریوم اجرا می شوند.
در اینجا یک نمای کلی از عملکردهای EVM آورده شده است:
1. ارائه یک محیط زمان اجرا برای قراردادهای هوشمند
بدون EVM، استقرار یک قرارداد هوشمند بیهوده خواهد بود. EVM محیطی امن و جعبه شناختی برای اجرای کد قرارداد هوشمند فراهم می کند.
2. عملکرد به عنوان یک واحد پردازش غیر متمرکز
EVM پروتکل اتریوم را نیرو می دهد و به آن برنامه ریزی لازم برای ایجاد برنامه های غیرمتمرکز (dApps) می دهد. هر تراکنش یا اجرای قرارداد هوشمند در EVM انجام می شود.
3. پیگیری تغییرات حالت
EVM تغییرات در وضعیت جهانی اتریوم را رصد می کند. همانطور که قبلا در این مقاله توضیح داده شد، state در Ethereum-speak به شرح پروتکل اتریوم در هر نقطه از زمان اشاره دارد. وضعیت اتریوم شامل موجودی حساب، کد قرارداد، ذخیره قرارداد و موارد دیگر است.
عملیات، مانند ارسال اتر، اجرای کد، یا ایجاد یک قرارداد، از تغییرات در حالت استفاده می کند. و وظیفه EVM این است که وضعیت شبکه اتریوم را به روز کند تا این تغییرات را منعکس کند.
افکار نهایی
ماشین مجازی اتریوم در قلب عملیات اتریوم قرار دارد. بدون EVM، اتریوم نمی تواند به یک «کامپیوتر اینترنتی» تبدیل شود که برنامه های غیرمتمرکز را در دسترس کاربران سراسر جهان قرار دهد.
با این حال، EVM هنوز با مشکلات زیادی مانند مقیاس پذیری ضعیف مواجه است که عملکرد آن را محدود می کند. اما ارتقاهای برنامه ریزی شده به اتریوم، از جمله شاردینگ، نویدبخش بهبود EVM و گسترش استفاده از آن است.
عکس روی جلد توسط Choong Deng Xiang در Unsplash.