Skip to main content

EVM چیست

توجه: این سند ترجمه خودکار نسخه اصلی انگلیسی است.

EVM چیست

EVM (ماشین مجازی Ethereum) موتور محاسباتی‌ای است که Ethereum و شمار زیادی از بلاکچین‌های دیگر را به کار می‌اندازد. این محیط نرم‌افزاری‌ای است که قراردادهای هوشمند — برنامه‌های خوداجرای ذخیره‌شده روی بلاکچین — را اجرا می‌کند. وقتی توسعه‌دهنده قرارداد هوشمندی به زبان Solidity (یا زبان دیگری سازگار با EVM) می‌نویسد، کامپایل می‌کند و روی زنجیره مستقر می‌کند، آنچه واقعاً آن کد را اجرا می‌کند EVM است.

هر گره در شبکهٔ سازگار با EVM همان ماشین مجازی را با همان قواعد اجرا می‌کند. همین است که قراردادهای هوشمند را قطعی (deterministic) می‌کند: با ورودی و وضعیت یکسان، هر گره خروجی یکسانی تولید می‌کند. هیچ ابهامی و هیچ مشکل «روی دستگاه من کار می‌کند» وجود ندارد. EVM تضمین می‌کند که همهٔ شرکت‌کنندگان شبکه بر نتیجهٔ هر محاسبه توافق دارند.

به‌طور خلاصه: EVM موتور اجرای استانداردشدهٔ قراردادهای هوشمند روی Ethereum و زنجیره‌های سازگار با EVM است. تعریف می‌کند کد چگونه اجرا شود، وضعیت چگونه ذخیره شود و گس چگونه مصرف شود — و زمان اجرای مشترکی می‌سازد که روی همهٔ گره‌ها یکسان کار می‌کند.

EVM چگونه کار می‌کند

اجرای بایت‌کد

قراردادهای هوشمند به‌صورت کد منبع خوانا برای انسان روی زنجیره ذخیره نمی‌شوند. پیش از استقرار، کد منبع (که معمولاً به Solidity نوشته می‌شود) به بایت‌کد کامپایل می‌شود — مجموعه‌ای سطح‌پایین از دستورها که EVM می‌فهمد. هر دستور یک opcode است: عملیاتی پایه مانند «جمع دو عدد»، «ذخیرهٔ یک مقدار در حافظه»، «بارگذاری داده از حافظهٔ ماندگار» یا «انتقال توکن».

وقتی تراکنشی یک قرارداد هوشمند را راه می‌اندازد، هر گرهٔ اعتبارسنج در شبکه:

  1. بایت‌کد قرارداد را از وضعیت بلاکچین بارگذاری می‌کند.
  2. opcodeها را به‌ترتیب و طبق مشخصات EVM اجرا می‌کند.
  3. وضعیت بلاکچین را بر اساس نتیجهٔ اجرا به‌روزرسانی می‌کند.
  4. برای هر opcode اجراشده گس دریافت می‌کند.

چون هر گره همان بایت‌کد را با همان قواعد اجرا می‌کند، همه به نتیجهٔ یکسان می‌رسند. این اجرای قطعی، بنیان محاسبات بی‌نیاز از اعتماد روی زنجیره است.

گس

هر opcode یک هزینهٔ گس دارد — واحد اندازه‌گیری‌ای که تلاش محاسباتی لازم برای اجرای آن دستور را نشان می‌دهد. گس دو هدف دارد:

  • سنجش منابع — گس جلوی حلقه‌های بی‌پایان را می‌گیرد و تضمین می‌کند هر محاسبه مقدار محدودی از منابع شبکه را مصرف کند. قراردادی که تلاش کند برای همیشه اجرا شود، سقف گس خود را تمام می‌کند و برگشت می‌خورد.
  • سازوکار کارمزد — کاربران کارمزد گس (به توکن بومی زنجیره) می‌پردازند تا زحمت اعتبارسنج‌ها برای اجرای تراکنش‌هایشان جبران شود. عملیات پیچیده‌تر گس بیشتری هزینه دارد.

هزینه‌های گس در مشخصات EVM تعریف شده‌اند و در همهٔ زنجیره‌های سازگار با EVM یکسان‌اند (هرچند قیمت گس به توکن بومی، از شبکه‌ای به شبکهٔ دیگر متفاوت است).

وضعیت و حافظهٔ ماندگار

EVM یک وضعیت سراسری نگه می‌دارد — نگاشتی از آدرس‌ها (هم حساب‌های کاربری و هم حساب‌های قراردادی) به موجودی، کد و حافظهٔ فعلی‌شان. حافظهٔ قرارداد هوشمند به‌صورت انبارهٔ کلید-مقدار سازمان یافته است: هر قرارداد فضای آدرس ۲۵۶ بیتی خودش را دارد که می‌تواند در آن دادهٔ ماندگار بخواند و بنویسد.

عملیات حافظهٔ ماندگار (نوشتن و خواندن وضعیت پایدار) از پرهزینه‌ترین عملیات EVM از نظر گس‌اند، زیرا بر داده‌ای اثر می‌گذارند که هر گره باید برای همیشه ذخیره کند.

معماری مبتنی بر پشته

EVM یک ماشین پشته‌ای است: برای نگه‌داری مقادیر میانی در حین محاسبه، به‌جای ثبات‌های نام‌دار از پشتهٔ «آخرین ورودی، اولین خروجی» استفاده می‌کند. opcodeها مقادیر را روی پشته می‌گذارند، روی عناصر بالایی عمل می‌کنند و نتایج را برمی‌گردانند. این طراحی ساده و خوش‌تعریف است اما با معماری‌های مبتنی بر ثبات که بیشتر CPUهای سنتی و برخی ماشین‌های مجازی بلاکچینی جدیدتر (مانند SBF/eBPF در Solana) استفاده می‌کنند، تفاوت دارد.

چرا EVM اهمیت دارد

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

اهمیت EVM بسیار فراتر از خود Ethereum است. چون مشخصات EVM باز و خوش‌مستند است، بسیاری از بلاکچین‌های دیگر آن را پذیرفته‌اند — یا با اجرای بومی EVM یا با پیاده‌سازی لایهٔ اجرایی سازگار با EVM. این یک اکوسیستم مشترک ساخته است:

چه چیزی مشترک است در عمل چه معنایی دارد
زبان قرارداد هوشمند توسعه‌دهندگان یک بار Solidity می‌نویسند و روی هر زنجیرهٔ EVM مستقر می‌کنند
ابزارهای توسعه Hardhat، Foundry، Remix و ابزارهای دیگر روی همهٔ زنجیره‌های EVM کار می‌کنند
سازگاری کیف پول MetaMask و دیگر کیف پول‌های EVM با صرفِ افزودن یک شبکهٔ جدید کار می‌کنند
استانداردهای توکن ERC-20 (توکن‌های مثلی)، ERC-721 (NFTها) و استانداردهای دیگر میان زنجیره‌ها قابل حمل‌اند
حسابرسی و امنیت حسابرسان امنیتی، ابزارهای وارسی صوری و بهترین رویه‌ها میان زنجیره‌های EVM منتقل می‌شوند
دانش توسعه‌دهندگان توسعه‌دهنده‌ای که Solidity و EVM بلد است می‌تواند روی Ethereum، Polygon، Avalanche، BNB Chain، Arbitrum، Base و ده‌ها شبکهٔ دیگر کار کند

همین قابلیت حمل است که سازگاری با EVM را به انتخاب پیش‌فرض بلاکچین‌های جدیدی تبدیل کرده که می‌خواهند سریع توسعه‌دهنده و برنامه جذب کنند. پیوستن به اکوسیستم موجود ارزان‌تر و سریع‌تر از ساختن اکوسیستم از صفر است.

استقرار چندزنجیره‌ای

برای پروژه‌ها — از جمله پروژه‌های کریپتویی مرتبط با AI — سازگاری با EVM یعنی قرارداد هوشمند مستقرشده روی Ethereum را می‌توان با کمترین تغییر روی Polygon، زنجیرهٔ C در Avalanche، Arbitrum، Base یا BNB Smart Chain مستقر کرد. این امکان می‌دهد:

  • حضور چندزنجیره‌ای — پروژه می‌تواند همان قرارداد توکن و منطق اصلی را روی چند زنجیره مستقر کند تا به پایگاه‌های کاربری متفاوت برسد.
  • مهاجرت زنجیره — اگر پروژه نیاز داشته باشد به زنجیره‌ای با کارمزد کمتر یا توان عملیاتی بالاتر برود، سازگاری با EVM هزینهٔ مهاجرت را کاهش می‌دهد.
  • ترکیب‌پذیری — روی هر زنجیرهٔ EVM، قراردادها می‌توانند با رابط‌ها و استانداردهای یکسان با هم تعامل کنند و ترکیب‌پذیری DeFi، ادغام‌های توکنی و زیرساخت مشترک را ممکن سازند.

محدودیت‌ها

EVM برای اجرای همه‌منظورهٔ قراردادهای هوشمند طراحی شده، نه برای بارهای کاری محاسبه‌بر. محدودیت‌های کلیدی عبارت‌اند از:

  • نبود اعشار شناور بومی — EVM فقط از اعداد صحیح ۲۵۶ بیتی استفاده می‌کند. حساب اعشار شناور (ضروری برای بیشتر محاسبات AI/ML) باید شبیه‌سازی شود که از نظر گس بی‌نهایت پرهزینه است.
  • محدودیت‌های گس — سقف گس بلوک، کل محاسبات هر بلوک را محدود می‌کند. عملیات پیچیده (مانند ضرب ماتریس برای استنتاج AI) در اجرای EVM به‌شدت پرهزینه است.
  • اجرای ترتیبی — EVM تراکنش‌ها را درون بلوک به‌ترتیب پردازش می‌کند. اجرای موازی، که CPUهای مدرن برای کارایی به کار می‌گیرند، به‌صورت بومی پشتیبانی نمی‌شود (هرچند برخی زنجیره‌های جدیدتر سازگار با EVM اجرای موازی EVM را آزمایش می‌کنند).
  • هزینهٔ ذخیره‌سازی — ذخیرهٔ حجم زیادی داده روی زنجیره گران است. مدل‌های AI، مجموعه‌داده‌ها و محاسبات میانی برای ذخیره‌سازی on-chain بسیار بزرگ‌اند.

این محدودیت‌ها توضیح می‌دهد چرا پروژه‌های کریپتویی مرتبط با AI معمولاً بارهای کاری AI را خارج از زنجیره اجرا می‌کنند و از قراردادهای EVM روی زنجیره فقط برای هماهنگی، پرداخت، حاکمیت و ثبت نتایج استفاده می‌کنند.

این مورد کجای کارت‌های پروژهٔ DecAIHub دیده می‌شود

در کارت‌های پروژهٔ DecAIHub، EVM در این‌ها ظاهر می‌شود:

  • Type — مقدار EVM نشان می‌دهد پروژه روی زنجیرهٔ سازگار با EVM کار می‌کند. این به خواننده می‌گوید پروژه از قراردادهای هوشمند مبتنی بر Solidity و ابزارهای استاندارد Ethereum استفاده می‌کند.
  • Main chain — زنجیرهٔ مشخص سازگار با EVM ذکر می‌شود (Ethereum، Polygon، Avalanche، Arbitrum، Base، BNB Smart Chain و غیره). همهٔ این‌ها در اجرای EVM مشترک‌اند.
  • Token standard — زنجیره‌های سازگار با EVM از استانداردهای توکن Ethereum استفاده می‌کنند. ERC-20 (توکن‌های مثلی)، ERC-721 (NFTها) و ERC-1155 (چندتوکنی) رایج‌ترین‌اند. این استانداردها مختص اکوسیستم EVM هستند.
  • قراردادهای هوشمند — اگر قراردادهای هوشمند پروژه روی کاوشگر بلوک تأیید شده باشند، خواننده می‌تواند آن‌ها را بررسی کند. قراردادهای EVM به Solidity (یا Vyper) نوشته و به بایت‌کد EVM کامپایل می‌شوند.

دسته‌بندی Type: EVM بافتار مفیدی دربارهٔ ابزارها و اکوسیستم پروژه می‌دهد، اما به‌خودی‌خود چیزی دربارهٔ کیفیت AI پروژه یا ضرورت توکن آن نمی‌گوید.

سازگاری با EVM به‌تنهایی چه چیزی را ثابت نمی‌کند

  • سازگاری با EVM قابلیت AI را ثابت نمی‌کند. EVM قراردادهای هوشمند را اجرا می‌کند؛ مدل‌های AI روی GPU اجرا می‌شوند. بودن پروژه روی زنجیرهٔ EVM چیزی دربارهٔ داشتن AI component واقعی نمی‌گوید.
  • استقرار روی زنجیرهٔ EVM پروژه را یکتا نمی‌کند. همان قرارداد را می‌توان روی ده‌ها زنجیرهٔ سازگار با EVM مستقر کرد. انتخاب محل استقرار تصمیمی زیرساختی است، نه عامل تمایز.
  • قراردادهای هوشمند تأییدشده ثابت نمی‌کنند جزء off-chain کار می‌کند. پروژه می‌تواند کد on-chain تمیز و حسابرسی‌شده داشته باشد و همچنان هیچ خط لولهٔ AI کارآمدی پشت آن نباشد. اجزای on-chain و off-chain باید جداگانه ارزیابی شوند.
  • ابزارهای اکوسیستم EVM نیاز به شواهد را کم نمی‌کنند. پشتیبانی MetaMask، حضور در کاوشگر بلوک و توکن‌های ERC-20 زیرساخت استانداردند — نه شاهدی بر فناوری، نوآوری یا کیفیت.
  • اجرای EVM اجرای AI نیست. اجرای یک شبکهٔ عصبی درون EVM برای هر مدل غیربدیهی به‌شدت پرهزینه است. وقتی پروژه‌ای روی زنجیرهٔ EVM از «AI روی زنجیره» می‌گوید، دقیقاً بررسی کنید چه چیزی on-chain و چه چیزی off-chain اجرا می‌شود.

اشتباه نگیرید با

  • Ethereum — Ethereum یک شبکهٔ بلاکچین مشخص است. EVM ماشین مجازی‌ای است که Ethereum (و بسیاری زنجیره‌های دیگر) استفاده می‌کنند. «EVM» به موتور اجرا اشاره دارد؛ «Ethereum» به شبکه، اعتبارسنج‌ها و وضعیت آن.
  • بلاکچین غیر-EVM — بلاکچین‌هایی مانند Solana، زنجیره‌های Cosmos و Bittensor از ماشین‌های مجازی متفاوت (SVM، CosmWasm، زمان‌های اجرای سفارشی) استفاده می‌کنند. آن‌ها سازگار با EVM نیستند، یعنی قراردادهای Solidity و ابزارهای EVM به‌طور بومی روی آن‌ها کار نمی‌کنند.
  • قرارداد هوشمند — قرارداد هوشمند برنامه‌ای است که روی EVM اجرا می‌شود. EVM موتور است؛ قرارداد هوشمند کدی است که اجرا می‌کند. قراردادهای هوشمند روی زنجیره‌های غیر-EVM هم با زبان‌ها و زمان‌های اجرای متفاوت وجود دارند.
  • Solidity — Solidity محبوب‌ترین زبان برنامه‌نویسی قراردادهای هوشمند EVM است، اما خودِ EVM نیست. Vyper زبان دیگری سازگار با EVM است. EVM بایت‌کد کامپایل‌شده را اجرا می‌کند، فارغ از اینکه کدام زبان منبع آن را تولید کرده است.

پرسش‌های متداول

«سازگار با EVM» یعنی چه؟

بلاکچینی سازگار با EVM است که بتواند بایت‌کد EVM — شکل کامپایل‌شدهٔ قراردادهای هوشمند Solidity — را با همان مجموعهٔ opcode و قواعد اجرای Ethereum اجرا کند. در عمل، این یعنی توسعه‌دهندگان می‌توانند همان قراردادها را روی چند زنجیرهٔ سازگار با EVM مستقر کنند، از همان ابزارها (Hardhat، Foundry، MetaMask) استفاده کنند و به همان استانداردهای توکن (ERC-20، ERC-721) اتکا کنند. نمونه‌های زنجیره‌های سازگار با EVM عبارت‌اند از Polygon، زنجیرهٔ C در Avalanche، BNB Smart Chain، Arbitrum و Base.

آیا مدل‌های AI می‌توانند درون EVM اجرا شوند؟

در نظریه، هر محاسبه‌ای را می‌توان با opcodeهای EVM بیان کرد. در عمل، اجرای مدل‌های غیربدیهی AI درون EVM به‌شدت پرهزینه است. EVM پشتیبانی بومی اعشار شناور ندارد، سقف‌های سخت گس در هر بلوک دارد و برای عملیات پیچیده گس زیادی می‌گیرد. یک گذر رو به جلو حتی در یک شبکهٔ عصبی کوچک، از نظر گس مرتبه‌ها بیشتر از آن هزینه دارد که هیچ کاربرد عملی توجیهش کند. به همین دلیل پروژه‌های کریپتویی مرتبط با AI مدل‌ها را خارج از زنجیره اجرا می‌کنند و از EVM فقط برای منطق هماهنگی، پرداخت و تأیید استفاده می‌کنند.

چرا این‌همه بلاکچین EVM را می‌پذیرند؟

اثرات شبکه‌ای. Ethereum نخستین پلتفرم بزرگ قرارداد هوشمند بود و اکوسیستم توسعه‌دهندگانش — دانش Solidity، ابزارها، تخصص حسابرسی، پشتیبانی کیف پول و استانداردهای توکن — در طول سال‌ها رشد کرد. بلاکچین جدیدی که EVM را بپذیرد، بلافاصله به کل این اکوسیستم دسترسی پیدا می‌کند. توسعه‌دهندگان لازم نیست زبان جدیدی بیاموزند، پروژه‌ها می‌توانند قراردادهای موجود را مستقر کنند و کاربران می‌توانند با کیف پول‌های آشنا متصل شوند. ساختن اکوسیستم رقیب از صفر بسیار گران‌تر و نامطمئن‌تر است. سازگاری با EVM میان‌بری عمل‌گرایانه به‌سوی پذیرش است.

تفاوت «سازگار با EVM» و «هم‌ارز با EVM» چیست؟

سازگار با EVM یعنی زنجیره می‌تواند بایت‌کد EVM را اجرا کند و همان opcodeها را پشتیبانی می‌کند، اما ممکن است تفاوت‌های جزئی در رفتار داشته باشد (مثلاً هزینه‌های گس، precompileها یا رفتار opcode در موارد مرزی). هم‌ارز با EVM یعنی زنجیره رفتار EVM اتریوم را در سطح opcode بازتولید می‌کند — هر عملیات همان نتیجه‌ای را می‌دهد که روی Ethereum می‌داد. هم‌ارزی با EVM ادعای قوی‌تری است: یعنی حتی قراردادهای پیچیده و ابزارهایی که به رفتار دقیق EVM وابسته‌اند باید بدون تغییر کار کنند. مثلاً Polygon zkEVM هم‌ارزی با EVM را هدف گرفته است.

منابع خارجی

  • Ethereum.org — Ethereum Virtual Machine — مستندات رسمی بنیاد Ethereum دربارهٔ معماری EVM، opcodeها و مدل اجرا.
  • Ethereum Yellow Paper — مشخصات صوری پروتکل Ethereum، شامل مجموعهٔ کامل opcodeهای EVM و معناشناسی اجرا.
  • EVM Codes — مرجع تعاملی opcodeهای EVM با هزینه‌های گس، توضیحات و محیط آزمایش اجرای بایت‌کد.

همچنین ببینید