مقدمه‌ای بر ماشین مجازی اتریوم (EVM): موتوری که هر قرارداد هوشمند را اجرا می‌کند

مقدمه‌ای بر ماشین مجازی اتریوم (EVM): موتوری که هر قرارداد هوشمند را اجرا می‌کند

اولین باری که کارمزد گس نصف تراکنش من را خورد را به یاد دارم. سال ۲۰۲۱ بود، داشتم سعی می‌کردم چیزی را در OpenSea استخراج کنم و شبکه فقط برای پردازش آن ۸۷ دلار می‌خواست. در آن لحظه متوجه شدم که هیچ درک واقعی از آنچه در پشت پرده اتفاق می‌افتاد، ندارم. چرا اینقدر هزینه داشت؟ پول کجا رفت؟ چه چیزی واقعاً تراکنش من را انجام می‌داد؟ پاسخ هر سه سوال یک چیز بود: ماشین مجازی اتریوم.

بیشتر افراد فعال در حوزه کریپتو، نام «EVM» را شنیده‌اند. تعداد بسیار کمتری می‌توانند بگویند که چه کاری انجام می‌دهد. این موضوع مهم است، زیرا EVM تقریباً همه چیز را در اتریوم و بیش از ۳۹۰ زنجیره‌ای که طراحی آن را وام گرفته‌اند، شکل می‌دهد. در حال حاضر بیش از ۱۹۰ میلیارد دلار ارزش DeFi در شبکه‌های EVM قرار دارد. اگر تا به حال از MetaMask استفاده کرده باشید، توکن‌ها را مبادله کرده باشید یا روی دکمه‌ای در یک dapp (برنامه‌های غیرمتمرکز یا به اختصار dapps) کلیک کرده باشید، EVM کار را در پشت صفحه انجام می‌داد. گره‌ها قراردادهای هوشمند را روی تمام آن زنجیره‌ها اجرا می‌کنند و EVM همان چیزی است که باعث می‌شود هر یک از این فراخوانی‌ها واقعاً اجرا شوند.

پس بیایید واقعاً آن را باز کنیم. نه نسخه کتابی، نسخه واقعی.

ماشین مجازی اتریوم چیست و چرا مهم است؟

خب، اول ساده‌ترین نسخه. برنامه‌های ماشین حساب را می‌شناسید؟ ۲ + ۲ را تایپ کنید، ۴ می‌شود. خسته‌کننده است. حالا تصور کنید که آن ماشین حساب به طور همزمان روی ۱۰،۰۰۰ تلفن اجرا شود. همه تلفن‌ها جواب یکسانی دریافت می‌کنند. اگر یک تلفن سعی کند بگوید «۲ + ۲ = ۵»، ۹۹۹۹ تلفن دیگر فوراً آن را رد می‌کنند. هیچ کس ماشین حساب را کنترل نمی‌کند، هیچ کس نمی‌تواند آن را خاموش کند و هیچ کس نمی‌تواند آن را دستکاری کند. اساساً این کاری است که EVM انجام می‌دهد، با این تفاوت که به جای تکالیف ریاضی، قراردادهای هوشمندی را اجرا می‌کند که پول واقعی را جابجا می‌کنند.

اهل کامپیوتر به این می‌گویند ماشین وضعیت. اتریوم حجم زیادی از داده‌ها را پیگیری می‌کند: چه کسی مالک چه کوین‌هایی است، کدام قراردادهای هوشمند وجود دارند، در هر آدرس چقدر اتر وجود دارد، هر قرارداد چه اطلاعاتی را ذخیره می‌کند. همه اینها «وضعیت» است. شما یک تراکنش ارسال می‌کنید. ماشین مجازی اتریوم آن را با وضعیت فعلی مقایسه می‌کند. یک وضعیت جدید ظاهر می‌شود. وضعیت قدیمی به علاوه تراکنش برابر است با وضعیت جدید. فرمول روی کاغذ: Y(S, T) = S'. انجام شد.

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

و این چیزی است که آن را از نرم‌افزارهای معمولی متمایز می‌کند. هیچ‌کس EVM را اداره نمی‌کند. هیچ شرکتی پشت آن نیست. هیچ میز پشتیبانی وجود ندارد. هیچ مدیری وجود ندارد که بتواند ساعت ۲ بامداد بی‌سروصدا یک معامله را لغو کند. کد متن‌باز است، روی هر گره به طور یکسان اجرا می‌شود و اعتماد از آن حجم عظیم توافق ناشی می‌شود، نه از یک مقام مسئول که می‌گوید "به من اعتماد کن".

ای وی ام

ماشین مجازی اتریوم (EVM) چگونه کار می‌کند: از سالیدیتی تا اجرا

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

مرحله اول: شما کد می‌نویسید. سالیدیتی زبان برنامه‌نویسی است که تقریباً ۹۰٪ توسعه‌دهندگان EVM آن را انتخاب می‌کنند. این زبان، سینتکس خود را از جاوا اسکریپت قرض گرفته است: آکولاد، توابع، متغیرها و موارد معمول. وایپر هم وجود دارد (که به پایتون نزدیک‌تر است، عمداً ساده‌تر است)، اما سالیدیتی حرف اول را می‌زند. نکته‌ای که تازه‌واردها را به اشتباه می‌اندازد این است: اجرای هر خط کد هزینه واقعی دارد. هیچ سندباکسی وجود ندارد. هیچ بازگشتی وجود ندارد. شما قراردادی را با یک باگ در آن مستقر می‌کنید و آن باگ دائمی است، مگر اینکه از قبل یک مکانیزم ارتقا ایجاد کرده باشید. من این را با سختی و تماشای دوست توسعه‌دهنده‌ای که به خاطر یک اعشار اشتباه خوابش را از دست داده بود، یاد گرفتم.

مرحله دوم: سالیدیتی شما به بایت‌کد کامپایل می‌شود. بایت‌کد را به عنوان زبان ماشین EVM در نظر بگیرید. شما کدی می‌نویسید که یک انسان می‌تواند آن را بخواند. کامپایلر آن را به سوپ هگز تبدیل می‌کند که EVM واقعاً آن را می‌فهمد. درون آن هگز، کدهای عملیاتی وجود دارد، تقریباً ۱۵۰ عدد از آنها. ADD جمع را انجام می‌دهد. SSTORE داده‌ها را برای همیشه ذخیره می‌کند. CALL به یک قرارداد اجازه می‌دهد تا با قرارداد دیگر ارتباط برقرار کند. یک کد عملیاتی، یک کار کوچک. قرارداد شما هزاران از این کارها را به هم متصل می‌کند.

مرحله سوم جایی است که جالب می‌شود. کسی قرارداد شما را فراخوانی می‌کند. هر گره در شبکه تراکنش را دریافت می‌کند، بایت‌کد شما را بارگذاری می‌کند و شروع به پردازش متوالی کدهای عملیاتی می‌کند. پردازنده مبتنی بر پشته است: به یک پشته از صفحات فکر کنید که فقط می‌توانید روی بالایی را لمس کنید. یک عدد وارد کنید. عدد دیگری را وارد کنید. ADD را اجرا کنید. هر دو عدد از بالا برداشته می‌شوند، جمع می‌شوند و نتیجه دوباره به عقب برمی‌گردد. حداکثر عمق ۱۰۲۴ آیتم، هر کدام ۲۵۶ بیت عرض.

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

معماری EVM: پشته، حافظه و ذخیره‌سازی

ماشین مجازی اتریوم (EVM) داده‌ها را در سه لایه مدیریت می‌کند. این بخش اهمیت دارد زیرا مستقیماً بر هزینه تراکنش‌های شما تأثیر می‌گذارد.

پشته (stack) نیروی محرکه است. تمام محاسبات اینجا اتفاق می‌افتد. فشار دهید، اجرا کنید، عملیات را انجام دهید، تکرار کنید. سریع و ارزان است (حدود ۳ واحد سوخت برای هر عملیات) و پس از اتمام اجرا ناپدید می‌شود. اکثر کدهای عملیاتی مستقیماً با پشته کار می‌کنند.

حافظه مانند یک دفترچه یادداشت است. می‌توانید در هر موقعیتی از آن بخوانید و بنویسید، که این امر آن را برای مواردی مانند رشته‌ها یا آرایه‌های بزرگ، انعطاف‌پذیرتر از پشته می‌کند. اما حافظه نیز پس از تراکنش ناپدید می‌شود. از نظر هزینه، در وسط قرار می‌گیرد: گران‌تر از پشته، بسیار ارزان‌تر از فضای ذخیره‌سازی. در صورت نیاز رشد می‌کند و هزینه سوخت (gas) با اختصاص حافظه بیشتر، به صورت درجه دوم افزایش می‌یابد.

و اما بحث ذخیره‌سازی . این مورد گران‌ترین مورد است و دلیل خوبی هم دارد. ذخیره‌سازی دائمی است. وقتی قرارداد هوشمند شما ثبت می‌کند که آلیس ۵۰۰ توکن دارد، آن داده‌ها در trie وضعیت اتریوم نوشته می‌شوند و آنجا می‌مانند. هر گره در شبکه آن را برای همیشه ذخیره می‌کند. نوشتن جدید در ذخیره‌سازی ۲۰،۰۰۰ گس هزینه دارد. یک به‌روزرسانی ۵،۰۰۰ گس هزینه دارد. برای درک بهتر، یک انتقال ساده اتر در مجموع ۲۱،۰۰۰ گس هزینه دارد. بنابراین یک نوشتن در ذخیره‌سازی تقریباً به اندازه کل یک تراکنش پایه هزینه دارد.

لایه داده چقدر طول می‌کشد؟ هزینه گاز برای چیست؟
پشته بعد از اعدام رفته تقریباً ۳ گاز در هر عملیات ریاضی، منطق، مقایسه
حافظه پس از معامله رفته است ۳ واحد بنزین + هزینه انبساط داده‌های موقت، آرگومان‌های تابع
ذخیره‌سازی دائمی ۵۰۰۰ تا ۲۰۰۰۰ گس به ازای هر نوشتن موجودی توکن، سوابق مالکیت، تنظیمات

اگر تا به حال از خود پرسیده‌اید که چرا استقرار یک قرارداد هوشمند اینقدر هزینه دارد، دلیلش این است. استقرار، تمام بایت‌کد و داده‌های اولیه قرارداد را در حافظه می‌نویسد. این تعداد زیادی عملیات با ۲۰،۰۰۰ گس روی هم انباشته شده است.

اگر این موضوع برایتان آشنا به نظر می‌رسد، باید هم آشنا باشد. کامپیوترهای معمولی هم به همین روش کار می‌کنند. رجیسترهای CPU سریع اما کوچک هستند، مانند پشته. RAM بزرگتر و کندتر است، مانند حافظه. هارد دیسک‌ها همه چیز را ذخیره می‌کنند اما بیشترین زمان را برای نوشتن صرف می‌کنند، مانند فضای ذخیره‌سازی. سازندگان اتریوم عمداً آن را به این شکل تنظیم کرده‌اند. آنها می‌خواهند شما برای همیشه درد مالی قرار دادن چیزها روی زنجیره را احساس کنید، بنابراین فقط آنچه را که واقعاً لازم است آنجا باشد، ذخیره می‌کنید.

هزینه‌های گس در EVM: نحوه محاسبه قیمت‌های اتریوم

باید در مورد بنزین صحبت کنم، چون هم هوشمندانه‌ترین و هم خسته‌کننده‌ترین بخش EVM است.

ماشین مجازی اتریوم (EVM) از نظر تورینگ کامل است. به زبان ساده: می‌تواند هر محاسباتی را که به آن محول کنید، اجرا کند. از جمله حلقه‌های بی‌نهایت. تصور کنید کسی قراردادی را با while(true) و بدون هیچ هزینه‌ای برای اجرای آن، پیاده‌سازی می‌کند. هر گره گیر می‌کند. بلاکچین از کار می‌افتد. بازی تمام است.

بنزین جلوی این اتفاق را می‌گیرد. هر کد عملیاتی یک برچسب قیمت دارد. ADD معادل ۳ بنزین هزینه دارد. SSTORE معادل ۵۰۰۰ یا ۲۰۰۰۰ بنزین هزینه دارد. وقتی تراکنشی ارسال می‌کنید، یک بودجه بنزین تعیین می‌کنید. آیا محاسبه کمتر از بودجه تمام می‌شود؟ آیا برای آنچه استفاده نکرده‌اید، بازپرداخت دریافت می‌کنید. آیا به حد مجاز رسیده‌اید؟ همه چیز به عقب برمی‌گردد، اما شما هنوز هزینه بنزینی را که سوزانده‌اید، پرداخت می‌کنید. حلقه‌های بی‌نهایت بودجه را تمام می‌کنند و از بین می‌روند.

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

و اینجاست که داستان جالب می‌شود. یادتان هست 87 دلار ضرابخانه من در سال 2021 چقدر بود؟ گس آن زمان معمولاً 100 تا 200 جی‌وی بود. تابستان دیفای و تب NFT باعث شد شبکه با ظرفیت کامل کار کند. با نگاهی به اوایل سال 2026، میانگین قیمت گس حدود 3 جی‌وی است. یک انتقال ساده اتریوم تقریباً 0.30 تا 0.67 دلار هزینه دارد. این یعنی 96 درصد کاهش نسبت به سال 2021.

سال میانگین کارمزد تراکنش محدوده قیمت گاز چه چیزی باعث شد؟
۲۰۲۱ حدود ۲۴ دلار ۱۰۰-۲۰۰ گوئی تب NFT، ییلد فارمینگ دیفای
۲۰۲۲ ۵ تا ۱۵ دلار ۳۰-۸۰ گوئی سقوط بازار، کاهش فعالیت
۲۰۲۳ ۲ تا ۸ دلار ۱۵-۴۰ گوئی تثبیت بازار نزولی
۲۰۲۴ ۰.۵۰ تا ۲ دلار ۵-۱۵ گوئی ارتقاء دنکون، EIP-4844
سه‌ماهه اول ۲۰۲۶ ۰.۳۰ تا ۰.۶۷ دلار ~3 گی مهاجرت لایه ۲، تراکنش‌های حبابی

چه چیزی تغییر کرد؟ دو چیز. اول، ارتقاء Dencun در مارس 2024، EIP-4844 را معرفی کرد که فضای ذخیره‌سازی "blob" را برای rollupها ایجاد کرد. قبل از blobها، شبکه‌های لایه 2 مجبور بودند داده‌های خود را به عنوان calldata در شبکه اصلی اتریوم ارسال کنند که گران بود. blobها موقتی و بسیار ارزان‌تر هستند و هزینه‌های ارسال L2 را حدود 95٪ کاهش می‌دهند. دوم، بیشتر فعالیت‌ها به سادگی به شبکه‌های لایه 2 منتقل شدند. وقتی مبادله Uniswap شما به جای شبکه اصلی روی Arbitrum اجرا می‌شود، لایه پایه خالی می‌ماند.

در آن شبکه‌های لایه ۲، یک مبادله می‌تواند کمتر از یک پنی هزینه داشته باشد. آربیتروم، بیس و آپتیمیسم همگی ماشین مجازی اتریوم را اجرا می‌کنند، بنابراین کد سالیدیتی شما به یک شکل کار می‌کند. شما فقط کسری از گس را پرداخت می‌کنید.

ای وی ام

سازگاری با ماشین مجازی اتریوم: چرا بیش از ۳۹۰ بلاکچین از طرح اتریوم کپی‌برداری کرده‌اند؟

اینجاست که داستان EVM از جالب به واقعاً مهم برای کل صنعت تبدیل می‌شود.

وقتی BNB Chain عرضه شد، بایننس ماشین مجازی جدیدی اختراع نکرد. آنها EVM را گرفتند و آن را اصلاح کردند. Polygon هم همین کار را کرد. Avalanche، Fantom، Cronos، Harmony، Gnosis Chain: داستان همین است. حتی Rollup های لایه ۲ هدفمند مانند Arbitrum و Optimism نیز EVM را به صورت بومی اجرا می‌کنند. نتیجه، اکوسیستمی متشکل از بیش از ۳۹۰ زنجیره سازگار با EVM است، اگرچه فقط حدود ۴۰ تا ۵۰ زنجیره فعالیت روزانه معناداری دارند.

چرا به جای ساختن اتریوم جدید، آن را کپی کنیم؟ سه دلیل که همه آنها کاربردی هستند.

اول، توسعه‌دهندگان. بیش از ۲۰،۰۰۰ توسعه‌دهنده‌ی سالیدیتی در جهان وجود دارد. یک زنجیره‌ی EVM راه‌اندازی کنید و هر یک از آنها می‌توانند بدون یادگیری زبان جدید، کد را در همان روز اول ارسال کنند. سولانا از Rust استفاده می‌کند. آپتوس و سویی از Move استفاده می‌کنند. این زنجیره‌ها مجبور بودند استخرهای توسعه‌ی خود را از ابتدا توسعه دهند. یک زنجیره‌ی EVM این مشکل را به طور کامل برطرف می‌کند.

دوم، ابزارهای رایگان. MetaMask، Hardhat، Foundry، Ethers.js، OpenZeppelin، Etherscan. کل جعبه ابزار اتریوم روی هر زنجیره EVM بدون هیچ تغییری کار می‌کند. همان کیف پول. همان چارچوب تست. همان مرورگر بلوک. این باعث صرفه‌جویی در سال‌ها کار می‌شود.

سوم، دیفای با EVM حرکت می‌کند. یونی‌سواپ، آوه، کرو، سوشی‌سواپ. همه آنها روی پنج یا تعداد بیشتری زنجیره EVM فعال هستند. قراردادها از اتریوم به پلی‌گان، آربیتروم و زنجیره BNB کپی-پیست می‌شوند. همان کد، همان حسابرسی، همان مدل امنیتی. پل‌ها نقدینگی را به هم متصل می‌کنند. EVM حکم چسب را دارد.

اما کپی کردن EVM به این معنی است که شما مشکلات آن را نیز کپی می‌کنید. یک تراکنش در هر زمان. کلمات ۲۵۶ بیتی روی پردازنده‌های ۶۴ بیتی، که سربار اضافه می‌کند. یک سیستم gas که کار می‌کند اما پیچیدگی‌هایی را اضافه می‌کند که ماشین‌های مجازی جدیدتر از آن صرف نظر می‌کنند. SVM سولانا تراکنش‌ها را به صورت موازی اجرا می‌کند. MoveVM یک مدل منبع دارد که کل دسته‌های باگ را از بین می‌برد. FuelVM ایده‌هایی را از طراحی CPU مدرن وام می‌گیرد.

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

وضعیت اتریوم و نحوه حفظ اجماع در EVM

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

اتریوم یک جدول جستجوی عظیم را نگه می‌دارد. هر آدرسی را به آن بدهید، موجودی اتر، نانس (تعداد تراکنش‌ها) و برای آدرس‌های قرارداد، کل بایت‌کد به علاوه تمام داده‌های ذخیره شده را برمی‌گرداند. میلیون‌ها آدرس. صدها گیگ. این وضعیت اتریوم است.

همه اینها در یک درخت مرکل پاتریشیا قرار دارد. توضیح مختصر: این درختی است که هر شاخه هش مخصوص به خود را دارد و همه هش‌ها در یک هش ریشه در بالا جمع می‌شوند. آن هش ریشه در هر سربرگ بلوک قرار دارد. اگر 0.001 ETH را بین دو کیف پول جابجا کنید، هش ریشه کاملاً تغییر می‌کند. اعتبارسنج‌ها با اجرای هر تراکنش، محاسبه هش ریشه حاصل و مقایسه، بلوک‌ها را بررسی می‌کنند. هش یکسان؟ بلوک خوب است. هش متفاوت؟ بلوک رد می‌شود.

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

پیاده‌سازی EVM: یک نمونه، چندین کلاینت

اکثر مردم این را درک نمی‌کنند: «ماشین مجازی اتریوم» یک مشخصات است، نه یک برنامه. این سندی است که می‌گوید «با توجه به این ورودی‌ها، این خروجی‌ها را تولید کن». هر کسی می‌تواند نسخه خودش را به هر زبانی که می‌خواهد بسازد، البته تا زمانی که از مشخصات پیروی کند.

گث (Geth) یکی از بزرگترین آنهاست. با زبان گو (Go) نوشته شده است. روی اکثر گره‌های اتریوم اجرا می‌شود. اما موارد دیگری نیز وجود دارند: ندر مایند (C#)، بسو (Java، ساخته شده برای شرکت‌ها)، اریگون (Go، بهینه شده برای دیسک) و رث (Rust، ساخته شده توسط پارادایم). توسعه‌دهندگان اصلی واقعاً این تنوع را می‌خواهند. چرا؟ اگر ۹۵٪ گره‌ها گث را اجرا کنند و گث یک اشکال بحرانی ایجاد کند، کل شبکه دچار مشکل می‌شود. در پنج کلاینت پخش می‌شود و یک اشکال فقط ۲۰٪ گره‌ها را تحت تأثیر قرار می‌دهد. بقیه همچنان کار می‌کنند.

شبکه‌های لایه ۲ پیچیدگی‌های خاص خود را دارند. آربیتروم یک نسخه اصلاح‌شده به نام آربیتروم ماشین مجازی (Arbitrum VM) ساخته است. خوش‌بینی (Optimism) به دنبال «هم‌ارزی EVM» است، یعنی رفتار یکسان بایت به بایت. عصر zkSync پا را فراتر می‌گذارد. این عصر، بایت‌کد EVM را به فرمتی کامپایل می‌کند که با اثبات دانش صفر (zero-knowledge proofs) کار می‌کند. مسیر اجرای کاملاً متفاوتی در پشت صحنه دارد. اما برای یک توسعه‌دهنده سالیدیتی (Solidity)؟ هنوز هم یکسان به نظر می‌رسد. این واقعیت که معماری‌های کاملاً متفاوت، همگی چهره یکسانی را برای توسعه‌دهندگان ارائه می‌دهند، صادقانه یکی از دست‌کم گرفته‌شده‌ترین نکات در مورد EVM است.

به عنوان یک توسعه‌دهنده، شما اغلب اهمیتی نمی‌دهید که کدام کلاینت قرارداد شما را پردازش می‌کند. شما سالیدیتی را می‌نویسید، به بایت‌کد کامپایل می‌کنید، مستقر می‌کنید. این مشخصات تضمین می‌کند که در همه جا نتیجه یکسانی حاصل شود.

توسعه قرارداد هوشمند در EVM: توسعه‌دهندگان واقعاً با چه چیزی سر و کار دارند

توسعه‌دهندگان وبی که سعی در ساخت EVM دارند، با یک هشدار ناگهانی مواجه می‌شوند. باگ‌ها هزینه زیادی دارند. نمی‌توانید محصول را اصلاح کنید. اگر یک قرارداد خراب ارسال کنید، آن قرارداد خراب می‌ماند، مگر اینکه از قبل برنامه‌ریزی کرده باشید.

سالیدیتی بیش از ۹۰٪ قراردادهای EVM را پشتیبانی می‌کند. ابزارها خوب شده‌اند. هاردهت جاوااسکریپت/تایپ‌اسکریپت را به همراه افزونه‌ها در اختیار شما قرار می‌دهد. فاندری از Rust استفاده می‌کند، سریع‌تر اجرا می‌شود و به شما امکان می‌دهد تست‌ها را در خود سالیدیتی بنویسید. هر دو یک EVM محلی ایجاد می‌کنند تا بتوانید بدون پرداخت گس تست کنید. من برای هر پروژه جدیدی فاندری را انتخاب می‌کنم. وقتی مجموعه تست شما از صد تست عبور کند، شکاف سرعت آشکار می‌شود.

استانداردهای توکن، اکوسیستم را سازماندهی می‌کنند. ERC-20 توکن‌های قابل تعویض مانند USDT، LINK و UNI را پوشش می‌دهد. ERC-721 برای NFTها است. ERC-1155 قراردادهای چند توکنی را مدیریت می‌کند. ERC-4626 خزانه‌ها را ایجاد می‌کند. همه آنها در هر زنجیره EVM به طور یکسان کار می‌کنند. قرارداد خود را یک بار بنویسید، آن را روی اتریوم، آربیتروم، بیس، پلی‌گان مستقر کنید. همان کد، همان رفتار.

امنیت؟ افتضاح. حملات بازگشت سرمایه در طول سال‌ها صدها میلیون دلار را از بین برده است. هک DAO در سال ۲۰۱۶ به دلیل یک اشکال بازگشت سرمایه که به مهاجم اجازه می‌داد برداشت‌ها را حلقه‌ای انجام دهد و ۶۰ میلیون دلار را از بین ببرد، اتریوم را به دو قسمت تقسیم کرد. سرریز اعداد صحیح تا زمانی که Solidity 0.8 در سال ۲۰۲۱ بررسی‌های پیش‌فرض را اضافه کرد، یک بلا بود. اشتباهات کنترل دسترسی هنوز در کد حسابرسی شده توسط تیم‌های حرفه‌ای ظاهر می‌شوند. ابزارهایی مانند Slither، Mythril و Certora برخی از اشکالات را شناسایی می‌کنند، اما هیچ چیز جایگزین یک حسابرسی مناسب نمی‌شود. و حتی حسابرسی‌ها هم چیزهایی را از قلم می‌اندازند. اوضاع همین است.

استقرار امروز: یک توکن پایه ERC-20 در شبکه اصلی ۵ تا ۲۰ دلار قیمت دارد. یک پروتکل کامل DeFi؟ شاید چند صد دلار. در شبکه‌های L2؟ پنی. جای تعجب نیست که ۶۵٪ از قراردادهای جدید در سال ۲۰۲۵ در لایه ۲ ایجاد شده‌اند.

اکوسیستم ماشین مجازی اتریوم در سال ۲۰۲۶: تسلط لایه دوم و آنچه در آینده رخ خواهد داد

سه سال پیش، شبکه‌های لایه ۲، ۴ میلیارد دلار TVL در اختیار داشتند. اکنون این رقم بیش از ۵۰ میلیارد دلار است. آربیتروم به تنهایی ۱۶.۶ میلیارد دلار دارد. بیس به ۱۰ میلیارد دلار رسیده است. خوش‌بینانه‌ترین حالت ۶ میلیارد دلار است. این تغییر به این دلیل رخ داد که کارمزدهای لایه ۲ تقریباً به صفر رسید. سوآپ‌های زیر پنی در اکثر رول‌آپ‌ها. حتی کارمزدهای شبکه اصلی به زیر یک دلار رسید. مردم قبلاً می‌گفتند اتریوم خیلی گران است و همه باید از سولانا استفاده کنند. این حرف دیگر مثل قبل جواب نمی‌دهد.

انتزاع حساب (ERC-4337) بی‌سروصدا بازی را در سال‌های ۲۰۲۵ و ۲۰۲۶ تغییر داده است. کیف پول‌های هوشمند به کاربران اجازه می‌دهند تا گس را با استیبل کوین‌ها پرداخت کنند، چندین اقدام را در یک تراکنش قرار دهند و حساب‌ها را بدون عبارات بازیابی بازیابی کنند. اگر تا به حال دوستی را دیده باشید که به دلیل اینکه متامسک او را مجبور به تأیید دو پنجره پاپ‌آپ برای یک مبادله کرده بود، از کریپتو خارج شده است، متوجه می‌شوید که چرا این موضوع مهم است. شکاف بین یک کیف پول کریپتو و یک برنامه بانکی معمولی در حال کاهش است.

قدم بعدی چیست؟ من چند چیز را زیر نظر دارم. EOF (قالب شیء EVM) بایت‌کد را پاک‌سازی می‌کند، بنابراین اعتبارسنجی ارزان‌تر است و ابزارها بهتر کار می‌کنند. تحقیقات اجرای موازی می‌تواند به EVM اجازه دهد تراکنش‌های مستقل را به جای تک تک، همزمان مدیریت کند. هنوز زود است، اما اگر کار کند، توان عملیاتی بدون تغییر چیزی برای توسعه‌دهندگان، جهش می‌کند. و درخت‌های Verkle به عرضه نزدیک‌تر می‌شوند.

با این حال، رقابت واقعی است. SVM سولانا، توان عملیاتی بالاتری را ارائه می‌دهد. MoveVM الگوهایی را معرفی کرد که از انواع مختلف باگ‌ها جلوگیری می‌کند. اما به اعداد نگاه کنید. اکوسیستم EVM بیش از ۱۹۰ میلیارد دلار ارزش کل دارایی‌های از دست رفته DeFi را در اختیار دارد. حجم ماهانه DEX از ۴۰۰ میلیارد دلار فراتر می‌رود. بیش از ۲۰،۰۰۰ توسعه‌دهنده بر روی آن کار می‌کنند. تقریباً ۱۱ سال آزمایش نبرد. VMهای جدیدتر در معیارها پیروز می‌شوند. EVM در هر چیزی که واقعاً مهم باشد، وقتی پول واقعی در خطر باشد، پیروز می‌شود.

هر سوالی دارید؟

اتریوم در جولای ۲۰۱۵ با قیمت حدود ۰.۳۰ دلار برای هر اتر راه‌اندازی شد. با هزار دلار تقریباً ۳۳۳۳ اتر به دست می‌آورید. با قیمت ۱۸۰۰ دلار برای هر اتر در اوایل سال ۲۰۲۶، حدود ۶ میلیون دلار خواهید داشت. البته، این بهترین سناریو است؛ همچنین به شجاعت لازم برای تحمل چندین سقوط ۸۰ درصدی یا بیشتر نیاز داشتید. بازده‌های گذشته ارزهای دیجیتال، پیش‌بینی‌کننده‌های ضعیفی برای بازده‌های آینده هستند.

خیر. ERC-20 مجموعه‌ای از قوانین است که به توکن‌های قابل تعویض (USDT، LINK، UNI) می‌گوید چگونه رفتار کنند. EVM دستگاهی است که این قوانین را اجرا می‌کند. وقتی USDT ارسال می‌کنید یا LINK را در یک DEX مبادله می‌کنید، EVM چیزی است که کد قرارداد ERC-20 را می‌خواند و انتقال را انجام می‌دهد.

نه، دو چیز متفاوت. ETH سکه‌ای است که شما می‌خرید و می‌فروشید. EVM موتوری است که قراردادهای هوشمند را اجرا می‌کند. اگر اتریوم یک ماشین بود، ETH بنزین آن و EVM چیزی بود که زیر کاپوت آن قرار داشت. شما ETH را برای پرداخت بنزین می‌سوزانید و آن بنزین باعث می‌شود EVM کار کند. اما ETH و EVM اصلاً یکسان نیستند.

بله. اتریوم EVM را اختراع کرد، بنابراین «سازگار» نامیدن آن مانند این است که بپرسیم آیا زبان انگلیسی با فرهنگ لغت انگلیسی سازگار است یا خیر. وقتی مردم در مورد سازگاری EVM صحبت می‌کنند، منظورشان زنجیره‌های دیگری مانند BNB Chain، Polygon یا Avalanche است که ماشین مجازی اتریوم را کپی کرده‌اند تا توسعه‌دهندگان بتوانند کد Solidity خود را بدون بازنویسی حتی یک خط به آن منتقل کنند.

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

آن را به عنوان موتور زیر کاپوت اتریوم در نظر بگیرید. هر رایانه‌ای در شبکه یک کپی را اجرا می‌کند. همه آنها یک تراکنش را پردازش می‌کنند و یک پاسخ مشابه دریافت می‌کنند. هیچ دستگاه واحدی مسئول نیست. هیچ کس نمی‌تواند آن را دستکاری کند. هزاران گره که همگی به طور همزمان موافق هستند، تنها چیزی است که آن را صادق نگه می‌دارد.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.