آموزش
ماشین مجازی اتریوم (Ethereum Virtual Machine)؛ EVM چیست؟
ماشین مجازی اتریوم (Ethereum Virtual Machine)، یکی از اصلی ترین المان ها در ساختار شبکه اتریوم بوده و بخشی است که اسمارت کانترکت ها را پیاده سازی و اجرا می کند. ماشین مجازی اتریوم (EVM) عملکردی شبیه به یک پردازنده جهانی یا کامپیوتری را دارد که قدرت محاسباتی کلی خود را در اختیار توسعه دهندگان قرار می دهد.
منتشر شده
2 سال پیشدر
توسط
روکو (Rocco)
ماشین مجازی اتریوم (Ethereum Virtual Machine) یا به طور خلاصه EVM “قلب تپنده اتریوم” لقب دارد. همانگونه که قلب با پمپاژ خون، اکسیژن و مواد مغذی را در بدن به حرکت درمی آورد، EVM نیز توانایی ساخت قرارداد هوشمند و برنامه های غیر متمرکز را برای توسعه دهندگان زبان برنامه نویسی سالیدیتی (Solidity) فراهم می کند. این ماشین مجازی مسئول ساخت اکثر اپلیکیشن های غیرمتمرکز امروزی است که تمایز آن از بیت کوین و دیگر دفترهای کل توزیع شده را به دنبال داشته است.
خالقان اتریوم از روز اول انتشار پروتکل خود همه چیز را به صورت واضح در اینباره توضیح داده اند؛ آن ها قصد داشتند به یک “کامپیوتر جهانی” تبدیل شوند. اما چگونه می توان به چنین اهدافی جامه عمل پوشاند؟ بخشی از پاسخ این سوال در بطن مفهوم EVM نهفته است.
در طول سال های اخیر، اتریوم به میزان زیادی مورد توجه مردم قرار گرفته است. دلیل این امر، این است که در طول این سال ها ثابت شده که اتریوم یک عامل بزرگ در پیشرفت بلاکچین و خلق شبکه های غیرمتمرکز بوده و کاری فراتر از پردازش تراکنش های ساده را به انجام می رساند. EVM یک ماشین محاسباتی است که مانند یک کامپیوتر غیرمتمرکز عمل می کند و چند هزار پروژه قابل اجرا دارد.
ماشین مجازی اتریوم، یکی از اصلی ترین المان ها در ساختار شبکه اتریوم بوده و بخشی است که اسمارت کانترکت ها را پیاده سازی و اجرا می کند.
تمام نودهای اتریوم روی EVM اجرا می شوند، تا در کل شبکه به اجماع برسند. این ماشین مجازی کاملا جدا یا ایزوله است؛ بدین معنی که کدهای نوشته شده در داخل EVM، هیچگونه دسترسی به شبکه، سیستم فایل ها یا دیگر فرآیندها ندارند.

ماشین های مجازی در واقع ماشین هایی هستند که سطح بالاتری از دریافت مفهوم را در مقایسه با سیستم عامل های رایج دارند.
ماشین های مجازی (Virtual Machines) یا VM ها به صورت مبتنی بر سیستم های عامل ساخته شده اند، تا عملکرد مشابهی نسبت به یک ماشین محاسباتی فیزیکی (CPU) داشته باشند. به عبارت دیگر ماشین های مجازی به صورت تقریبی، قدرت محاسباتی ماشین های فیزیکی را با استفاده از معماری مجازی شبیه سازی می کنند. این ماشین ها در بسیاری از سیستم عامل ها و سخت افزارهای گوناگون قابل اجرا هستند و همین امر آن ها را به یک موتور کامل متناسب برای اکوسیستم غیرمتمرکز تبدیل می کند.
ماشین های مجازی به خاطر نحوه توسعه شان برای وظایف مختلف، دارای قابلیت های متفاوتی هستند. مثلا، ماشین های مجازی نظیر Virtual Box به طور کامل سخت افزارهای کامپیوتری را شبیه سازی کرده و اجازه اجرای هر سیستم عاملی را به شما می دهند. یا مثلا دیگر ماشین های مجازی مانند Java Virtual Machine فقط عملکرد پردازنده و برخی از موارد مربوط به حافظه را شبیه سازی می کنند.
ما می توانیم به واسطه یک ماشین مجازی، از منابع مشارکت کنندگان درون شبکه استفاده کنیم و این موضوع، فارغ از موقعیت مکانی یا جغرافیایی آن هاست و بهره برداری ما در راستای ساخت، پردازش و اجرای کاری که قصد پیاده سازی آن را داریم، شکل خواهد گرفت.
از این نقطه نظر، ماشین مجازی اتریوم (Ethereum Virtual Machine) عملکردی شبیه به یک پردازنده جهانی یا کامپیوتری را دارد که قدرت محاسباتی کلی خود را در اختیار توسعه دهندگان قرار می دهد. توسعه دهندگان نیز در مقابل، از این منبع برای نوشتن قراردادهای هوشمند (Smart contracts) و برنامه های غیرمتمرکز (DApps) استفاده می کنند.
دسترسی به یک VM توسط نودهای شبکه اتریوم (Ethereum)، از سراسر دنیا امکانپذیر است. در اختیار قرار دادن قدرت محاسباتی به شبکه، به صورت داوطلبانه بوده و نظارت روی این فرآیند، به واسطه عوامل انگیزشی مختلف صورت می گیرد.
یک ماشین مجازی، کامپیوتری است که روی بلاکچین اجرا می شود و به چندین اسمارت کانترکت اجازه می دهد که با یکدیگر تعامل داشته باشند. به بیانی ساده، قرارداد هوشمند یک توافقنامه است که توسط کدها نوشته شده و زبان برنامه نویسی آن نیز مطابق شبکه این قرارداد است. برای این که بتوانیم قراردادهای هوشمند را روی بلاکچین های مختلف اجرا کنیم، ماشین های مجازی باید قراردادهایی که با یک زبان برنامه نویسی واحد نوشته شده اند را اجرا کنند.
فرض کنید که یک توسعه دهنده Dapp هستید و یک برنامه روی یک بلاکچین (Blockchain) عمومی راه اندازی کرده اید و اکنون می خواهید Dapp خود را به دیگر شبکه ها نیز گسترش دهید تا فرصت های بیشتری برای جذب کاربران بیابید؛ اینجاست که ماشین های مجازی وارد می شوند. VM ها به توسعه دهندگان کمک می کنند تا به سرعت برنامه های غیرمتمرکز خود را روی شبکه های مختلف توسعه دهند.

برای درک بهتر مفهوم ماشین مجازی اتریوم، بهتر است درباره نحوه کار برنامه های کامپیوتری صحبت کنیم. تمام این برنامه ها به یک زبان برنامه نویسی نظیر جاوا یا ++C نوشته می شوند. با این حال، از آنجایی که CPU ها قادر به خواندن زبان جاوا یا ++C نیستند، این کدها کامپایل و به بایت کد (Bytecode) ترجمه می شوند.
اتریوم یک ماشین فیزیکی نیست، اما یک شبکه جهانی توزیع شده به همراه چندین ماشین های فیزیکی (CPU) است که به صورت همزمان کار می کنند. با این حال، EVM به عنوان یک CPU مجازی یا ماشین مجازی در حال اجرا داخل برنامه GO Ethereum یا “Geth” عمل می کند.
مشابه دیگر برنامه های نرم افزاری، توسعه دهندگان اتریوم نیز با استفاده از یک زبان برنامه نویسی خاص به ساخت دی اپ (DApps) یا قرارداد هوشمند می پردازند. فقط اینکه همانطور که گفتیم به جای جاوا یا ++C، زبان برنامه نویسی اتریوم سالیدیتی نام دارد. با اجرای یک اسمارت کانترکت، هر نود یک کپی از آن را دریافت، بایت کد آن را اجرا و این کد را به هرکسی که استقرار قرارداد آن را فرا خوانده است، می دهد که در نهایت، باعث تغییر وضعیت می شود. این یعنی وضعیت فعلی بلاکچین تغییر می یابد، که البته تنها در صورت اجماع تمام نودها قابل دستیابی است. به همین خاطر، معمولا به EVM ماشین وضعیت توزیع شده نیز می گویند. این ماشین با تغییر هر تراکنش وضعیت بلاکچین را ردیابی می کند.
بیت تورنت (BitTorrent) اولین اپلیکیشن غیرمتمرکز در دنیاست. برم کوهن (Bram Cohen) اولین پروتکل به اشتراک گذاری فایل را در سال ۲۰۰۱ طراحی کرد و علی رغم تلاش های فراوان برای نابودی آن، بیت تورنت هنوز به کار خود ادامه می دهد. برای از کار انداختن واقعی بیت تورنت، هر کامپیوتر در هر کجای جهان باید خاموش شود. در واقع بیت تورنت یک ماشین مجازی بدون محدودیت های فیزیکی است. همین امر برای ماشین مجازی اتریوم نیز صادق است. EVM نیاز به سخت افزارهای فوق قدرتمند را از بین برده و پلتفرمی ایده آل برای آغاز برنامه نویسی است. با این حال، داشتن دانش درباره مفاهیم بایت، استک و بلاکچین نظیر تابع هش، گواه اثبات کار (PoW) و گواه اثبات سهام (PoS) به درک عمیق تر کدهای سازگار با EVM کمک می کند.

اگر تجربه استفاده از بیت تورنت را داشته باشید و یک آهنگ، فیلم یا نرم افزار را دانلود کرده باشید، حتما می دانید که یک شبکه غیر متمرکز چگونه کار می کند. حتی قدرتمندترین مقامات جهان هم قادر به حذف آن نیستند، چراکه چنین کاری به قطع تمام کامپیوترهای متصل به شبکه نیاز دارد.
یکی از بهترین راه های مقیاس پذیری یک شبکه غیرمتمرکز، استفاده از ماشین های مجازی (EV) است. این ماشین های مجازی با فعالیت به عنوان یک لایه واصل بین ماشین های کدهای اجراکننده شان، قادر به اجرا روی سخت افزارها و سیستم عامل های مختلف از هر جای جهان هستند.
ماشین های مجازی نظیر EVM، مشابه ماشین های فیزیکی دارای CPU، حافظه و انبار ذخیره سازی عمل می کنند، اما هیچ عملکرد دیگری به جز اجرای کد ندارند. از نظر تئوری، هر کسی قادر به اجرای یک ماشین مجازی است که انعطاف و قابلیت حمل لازم برای شبکه های غیر متمرکز را به آن می دهد. ماشین مجازی اتریوم نیز از شبکه ای از نودهای غیرمتمرکز برای اجرای اسمارت کانترکت ها استفاده می کند. ماشین مجازی اتریوم (Ethereum Virtual Machine) یک استک مجازی پویا و سندباکس شده درون هر نود اتریوم برای اجرای بایت کد قرارداد هوشمند سازگار با EVM است.

برای درک ماشین های مجازی اتریوم و وظیفه شان در حوزه هایی مانند وام دهی دیفای، باید به یاد داشته باشید که قرارداد هوشمند به زبان سالیدیتی و دیگر زبان های سطح بالا نوشته شده و سپس به بایت کد ترجمه و نهایتا در EVM کامپایل می شوند. این یعنی کدهای ماشین از فایل سیستم، پردازش ها و شبکه کامپیوتر میزبان مجزاست.
در این حالت، هر نود در شبکه اتریوم باید برای اجرای دستورالعمل های مشابه با نود بعدی به توافق برسد. این امر ماشین مجازی اتریوم را به یک تورینگ کامل (Turing Complete) تبدیل می کند که قابلیت اجرای گام های منطقی برای عملکردهای محاسباتی را برای آن فراهم می سازد. حالا برای هر دستورالعمل پیاده سازی شده توسط ماشین مجازی اتریوم، هزینه ای به آن تخصیص داده می شود که اجازه پیگیری هزینه های اجرا را به این سیستم می دهد. هزینه انجام تراکنش های رمز ارزی در EVM و اجرای دیگر دستورالعمل ها، به صورت واحدهای سازگار با این ماشین مجازی به نام گس (Gas) اندازه گیری می شود.
بنابراین، با فراهم آوری یک اقتصاد مبتنی بر هزینه های دستورالعمل های اجرا شده به جای تراکنش های مالی اجرایی، مشابه بیت کوین، یک کامل بودن تورینگ (Turing Completeness) حاصل می شود. این مفهوم یعنی ماشین مجازی اتریوم (Ethereum Virtual Machine) یک کامپیوتر بزرگ همتا به همتای متصل از کامپیوترها در سراسر جهان است که می تواند قراردادهای هوشمند، رویدادهای جمع آوری سرمایه جمعی P2P، به اشتراک گذاری فایل و موارد بسیار دیگر را بسازد.
هنگام پاسخ دادن به سوال ماشین مجازی اتریوم چیست، با عبارتی تحت عنوان تورینگ کامل (Turing Complete) مواجه می شویم. ماشین مجازی اتریوم نیز یک تورینگ کامل است.
تورینگ کامل به ماشینی اشاره دارد که با داشتن زمان و حافظه کافی همراه با دستورالعمل های لازم، می تواند هر مشکل محاسباتی را (صرف نظر از اینکه چقدر پیچیده باشد) حل کند. حتی ماشین حساب های مهندسی که قابلیت برنامه ریزی دارند نیز نوعی ماشین تورینگ محسوب می شوند.
فرض کنید برنامه ای وجود دارد که ۱۰ عدد را بر می دارد و آن ها را با هم جمع می کند. یک ماشین تورینگ کامل به راحتی می تواند این برنامه را اجرا کند؛ اما فرض کنید که به هر دلیلی، این ماشین نتواند برنامه را اجرا کند یا به صورت چرخه (Loop) محاسبات را انجام دهد. به این ماشین ها تورینگ ناقص (Turing Incomplete) می گویند.
زبان های برنامه نویسی نیز نوعی سیستم تورینگ هستند و بیشتر زبان های مدرن مثل جاوا، جاوا اسکریپت، Perl، پایتون، سالیدیتی و غیره تورینگ کامل هستند؛ زیرا می توان با آن ها برنامه هایی نوشت که محاسبات مختلفی را انجام دهند. حتی این سیستم ها می توانند داده ها را در حافظه خود ذخیره کنند و درباره نحوه محاسبه تصمیم بگیرند.

طرح کلی این مفهوم توسط دانشمند کامپیوتری به نام آلن تورینگ (Alan Turing) ارائه شد. او ایده هایی حول محور شیوه تفکر و عملکرد یک کامپیوتر فرضی یا “ماشین فکر” را توسعه داد. آلن اینگونه استدلال می کرد که رایانه ها همانند انسان ها افکار را پردازش نمی کنند؛ بلکه برای حل مشکلات، از مجموعه ای از قوانین و دستورالعمل هایی که برای آن ها تعریف شده، استفاده می کنند.
زبان برنامه نویسی بیت کوین تورینگ ناقص است و افزایش پیچیدگی به طور بالقوه مشکلاتی را برای این شبکه ایجاد می کند. البته این موضوع به نفع این شبکه است؛ زیرا با ساده نگه داشتن آن، توسعه دهندگان می توانند با دقت بالایی نحوه واکنش بیت کوین را پیش بینی کنند (منظور محاسباتی است که برای یافتن عدد نانس (Nounce) انجام می شود.
شبکه اتریوم یک سیستم تورینگ کامل است؛ زیرا می تواند قراردادهای هوشمند را اجرا کند. این شبکه می تواند توافق نامه هایی که در آینده نیز ممکن است انجام شوند را درک و اجرا کند؛ حتی آن هایی که تاکنون اجرا نشده اند.
به بیانی دیگر، تورینگ کامل بودن اتریوم، بدین معنی است که این شبکه می تواند از کدبیس (منبع کدها) خود استفاده کند و هرگونه وظیفه ای را (در صورتی که زمان، قدرت محاسباتی و دستورالعمل های صحیح را داشته باشد) انجام دهد.
مفاهیم ماشین مجازی و تورینگ کامل برای درک EVM بسیار بنیادین هستند؛ زیرا اصول اولیه مفهوم و معماری آن را تشکیل می دهند. جالب است بدانید که سایر فعالان این حوزه توانستند از ایده کلی “فیزیکی” تورینگ در مورد پردازش ماشین، به یک همتای “مجازی” از این ماشین دست پیدا کنند که اصول عملیاتی یکسانی را به همراه دارد.
در حال حاضر، ماشین مجازی EVM قادر به اجرای تقریبا ۱۵۰ اپی کد (Operation Code) مختلف است. اما اپی کد (Opcode) دقیقا چیست و چرا در درک ماشین های مجازی اتریوم اهمیت دارد؟
علت تورینگ کامل نامیدن EVM بیشتر به خاطر توانایی آن در اجرای دستورالعمل های سطح ماشین معروف به اپی کد (Opcode) است. هر کد دستور سازگار با EVM در تکمیل وظایف خاص مربوط به قراردادهای هوشمند یا تراکنش های رمز ارزی آن به این ماشین مجازی کمک می کند. با این حال، از اپی کدها برای طیف متنوعی از عملیات، از ثبت داده و وظایف محاسباتی گرفته تا حافظه و بازیابی اطلاعات بلاک، استفاده می شود.
با این وجود، کدهای دستور مستقیما درون خود ماشین مجازی اتریوم نوشته نمی شوند، بلکه به خاطر توانایی شان در فراهم آوری قابلیت ساخت و تعامل آسان با قراردادهای هوشمند، از زبان سالیدیتی برای نگارش آن ها استفاده می شود. با این حال، این زبان اختصاصی برای فهم EVM باید به اپی کدها (Opcode) تبدیل شود. نهایتا به هر کد دستور یک بایت تخصیص داده می شود. این یعنی حداکثر می توان از ۲۵۶ اپی کد (Opcode) استفاده کرد.
اتریوم ۲ نوع اکانت دارد: حساب های تحت مالکیت خارجی (Externally Owned Accounts یا به اختصار EOA) و حساب های قرارداد (Contract Accounts). هر دوی این حساب ها به طور مساوی و همانند یکدیگر، تحت پوشش EVM رفتار و عمل می کنند.
EOA ها ترکیبی از کلیدهای خصوصی و کلیدهای عمومی هستند و برای ارسال و دریافت کوین های اتر (ETH) از/ به یک اکانت دیگر و ارسال تراکنش ها به قراردادهای هوشمند استفاده می شوند.
حساب های قرارداد کلید خصوصی متناظر با خود را ندارند. این حساب ها زمانی ایجاد می شوند که شما قرارداد خود را روی بلاکچین سوار کنید. برخی از اصلی ترین ویژگی های این اکانت ها این موارد هستند.
- می توانید درست مانند حساب های EOA ارسال و دریافت اتر داشته باشید.
- این حساب ها بر خلاف EOA ها کد مخصوص به خود را دارند.
- تراکنش ها توسط یک قرارداد دیگر یا EOA انجام می شوند.
قراردادی که در کدهای قرارداد هوشمند نوشته شده، به بایت کد (ByteCode) تبدیل می شود. بیشتر کدهای منبع این قراردادها با زبان برنامه نویسی سالیدیتی نوشته می شوند. سپس این کدها به اپی کدهایی (OpCode) برای ماشین مجازی ترجمه می شوند، تا بتواند آن ها را اجرا کند.
اتریوم در ابعاد بزرگتری نسبت به تصور ما به فعالیت خود ادامه می دهد. این پروتکل به یک دفتر کل توزیع شده (DLT) محدود نمی شود و رویدادهای بسیار پیچیده تری در این بستر انجام می شوند. وب سایت اصلی اتریوم این شبکه را تحت عنوان یک ماشین حالت توزیع شده (Distributed State Machine) وصف می کند. شبکه اتریوم تنها داده های حساب های کاربری یا وجوه نقد را نگهداری نمی کند؛ بلکه حالت کلی یک ماشین را نگهداری کرده و وضعیت آن لحظه ماشین را ذخیره سازی می کند.
حالت ماشین این شبکه در هر یک از بلاک ها متفاوت است؛ زیرا این ماشین به واسطه هر یک از مجموعه برنامه هایی که بر اساس قوانین معین و خاصی تنظیم شده اند، تغییر حالت پیدا می کند. چه چیزی تعیین کننده این تغییرات حالت مبتنی بر قوانین خاص است؟ پاسخ این سوال ماشین مجازی اتریوم (Ethereum Virtual Machine) است.
بلاکچین اتریوم همچنین از قراردادهای هوشمندی استفاده می کند، تا بتوانیم با ماشین مجازی اتریوم (EVM) تعامل داشته باشیم. این اسمارت کانترکت ها در واقع برنامه هایی هستند که انواع متنوع توافقات بین انسان ها را پوشش داده و یا حداقل آن ها را شبیه سازی می کنند. تمامی این موضوعات، از دلایل اصلی پیچیدگی بالای اتریوم در مقایسه با بیت کوین (Bitcoin) هستند.
به زبان ساده تر، ماشین مجازی اتریوم (EVM) یک موتور پردازش و پلتفرم نرم افزاری است که مشابه یک کامپیوتر غیر متمرکز کار می کند. از دیفای و برنامه های کریپتویی EVM گرفته تا بازی ها و بازارچه هایی نظیر اوپن سی (OpenSea)، توسعه دهندگان از ماشین مجازی اتریوم برای ساخت اپلیکیشن های غیر متمرکز مبتنی بر اتریوم و زبان برنامه نویسی مخصوص آن یعنی سالیدیتی استفاده می کنند.
مهمتر اینکه EVM بخشی از شبکه اتریوم مسئول در اجرا و استقرار قراردادهای هوشمند است. اینجا همان جایی است که اسمارت کانترکت ها و میلیون ها دی اپ مبتنی بر اتریوم زندگی می کنند. بلاکچین اتریوم را شبیه به یک ساختار همتا به همتا از نودهای مجزای مختلف در نظر بگیرید. در اینجا، هر نود به نود بعدی متصل می شود که وظیفه تامین امنیت و ثبات کل اکوسیستم را برای آن ها به بار می آورد. بنابراین هر نود برای این اتصال و حفظ اجماع در کل بلاکچین اتریوم، از ماشین مجازی EVM استفاده می کند.
با وجود اینکه اتریوم از ساختار پیچیده ای استفاده می کند، زبان برنامه نویسی آن پیچیده نیست. تیم سازنده این پروژه برای جذب مشارکت کنندگان بیشتر به این بستر، تصمیم گرفتند تا زبان برنامه نویسی سازگارتر و کاربرپسندتری را مورد استفاده قرار دهند، که یادگیری آن آسان باشد. زبان برنامه نویسی سالیدیتی (Solidity) که قراردادهای هوشمند و برنامه های غیرمتمرکز اتریوم توسط آن نوشته شده اند، به صورتی طراحی شده که کار با آن راحت باشد.
در واقع سالیدیتی الگوی ارتباطات بین انسان ها را شبیه سازی می کند. بنابراین، شما می توانید با استفاده از این زبان کدنویسی، دستورات خود را به ماشین مجازی انتقال (EVM) دهید.
قرارداد هوشمند (Smart Contract) چیست؟
برای شناخت ماشین مجازی اتریوم، نیاز داریم که مفهوم قراردادهای هوشمند را نیز بشناسیم. به بیان ساده، قراردادهای هوشمند توافق نامه هایی بین طرفین هستند که به صورت کد نوشته شده اند. این قراردادها به صورت خودکار اجرا می شوند و بنابر همین امر نیز نیازی به شخص ثالث مورد اعتماد برای اجرا شدن آن ها وجود ندارد.
قرارداد هوشمند به افراد این امکان را می دهد که به صورت ناشناس و در یک بستر مطمئن با یکدیگر تعامل داشته باشند. در طول این فرایند، به هیچ مرجعی برای تایید تراکنش های بین این طرفین نیازی نداریم. اجرای چنین تراکنش هایی به هیچ یک از سیستم های قانونی و یا مکانیزم های اِعمال قانون وابسته نیست. امکان بهره برداری از اسمارت کانترکت ها به واسطه شیوه طراحی شبکه اتریوم مهیا شده است. این قراردادها به ماشین مجازی اتریوم یا EVM نیز دسترسی کامل دارند.

این اسمارت کانترکت ها در بستر بلاکچین کار می کنند و غیرقابل تغییر و شفاف هستند. با توجه به اینکه قراردادهای هوشمند غیرقابل تغییر هستند و به واسطه چندین نود و بدون هیچگونه دستکاری اجرا می شوند، ماشین مجازی اتریوم (Ethereum Virtual Machine) از ویژگی های زیر برخوردار است.
هنگامی می توان گفت یک برنامه قطعی است، که خروجی یکسانی (در صورت ارائه مجموعه ورودی یکسان) داشته باشد، یعنی هر بار که ورودی یکسان به آن داده می شود، خروجی نیز یکسان باشد. مهم نیست چند بار این کد اجرا شود؛ همواره نتایج یکسانی از اجرای این کد حاصل خواهد شد. این امر از اهمیت بالایی برخوردار است، زیرا ممکن است برنامه های غیرمتمرکز (DApps) بستر اتریوم، تراکنش های امور مالی ای را مدیریت کنند که شامل مقادیر زیادی پول باشند. بنابراین، دانستن شیوه عملکرد این کد در هر مرحله اجرا بسیار مهم است.
یکی دیگر از خصوصیات مهم قراردادهای هوشمند، این است که در محیط های ایزوله و مجزا اجرا می شوند. دستیابی به این سطح از ایزوله بودن به واسطه دو سیستم حاصل می شود.
- ماشین های مجازی (VM)
- محفظه های داکر (Docker)
از آنجایی که طراحی قرارداد بر بستر داکر از قابلیت قطعی بودن برخوردار نیست، اتریوم ماشین های مجازی را برای فراهم سازی این قابلیت مورد استفاده قرار داده است. ایزوله بودن به این دلیل بسیار مهم است، که سیستم ها بتوانند بحران های هک و باگ های موجود در قرارداد هوشمند را پوشش دهند و جلوی این اتفاقات ناگوار را بگیرند.
همانطور که پیش از این گفتیم، ماشین مجازی اتریوم (Ethereum Virtual Machine) یک تورینگ کامل (Turing Complete) است و این بدان معناست که قراردادهای هوشمند این بستر می توانند هرگونه مشکلی را (حداقل به صورت تئوری) حل کنند. با این حال، هیچ راهی وجود ندارد تا مطمئن شویم که آیا چنین قراردادهای هوشمندی می توانند عملیات مورد نظر را در بازه زمانی معین به پایان برسانند یا خیر؛ بنابراین لازم است که مکانیزم نهایی سازی یا پایان دهنده ای را برای ایجاد چنین محدودیت هایی مورد استفاده قرار دهیم.
در بستر اتریوم، مفهومی به نام گس (Gas) وجود دارد که برای تراکم شبکه مورد استفاده قرار می گیرد (هرچه مقدار گس بیشتر باشد، یعنی شبکه شلوغ تر است). همچنین گس یکی از مکانیزم های انگیزشی مورد استفاده در این شبکه نیز محسوب می شود و برای ایجاد اولویت در انجام تراکنش ها کاربرد دارد (هرچه مقدار گس بالاتر باشد، تراکنش زودتر تایید می شود).
محدوده گس قبل از ارسال تراکنش تعیین می شود. این محدودیت ها به عنوان دستورالعمل برای ماشین مجازی اتریوم تعیین می شوند و EVM به راحتی می تواند تصمیم بگیرد که عملیات را متوقف کند و یا روند پردازش را پایان دهد.
برنامه غیرمتمرکز (DApp) چیست؟
برنامه غیر متمرکز (Decentralized Application) یا دی اپ (DApp) رابط های کاربری هستند که اجازه تعامل با قراردادهای هوشمند در شبکه اتریوم را به شما می دهند. این اپلیکیشن ها در واقع مشابه برنامه های نصب شده روی گوشی هوشمند یا اپ های تحت وب باز روی مرورگر شما هستند، با این تفاوت که به جای یک سرور مرکزی، داده ها را با یک شبکه بلاکچینی تبادل کرده و از اسمارت کانترکت ها برای پردازش داده و مدیریت عملیات استفاده می کنند.

اپلیکیشن ها یا همان برنامه های غیرمتمرکز می توانند عملکردی مشابه برنامه های مرسوم داشته و در عین حال، از مزایای تمرکززدایی نظیر شفافیت، دسترسی آزاد، آپ تایم دائمی و مقاومت در برابر سانسور نیز بهره مند شوند.
با این وجود، شایان ذکر است که با وجود بلوغ و پیشرفته بودن خود فناوری بلاکچین اتریوم و ماشین مجازی EVM، دی اپ ها ساختارهایی پیچیده تر و سطح بالاتر هستند که محبوبیت گسترده ای ندارند. این یعنی این تکنولوژی هنوز کامل نیست و با وجود برتری آن نسبت به برنامه های استاندارد، کمبود پذیرش جمعی از محدودیت های آن محسوب می شود.
اقتصاد اکوسیستم ماشین مجازی اتریوم (Ethereum Virtual Machine)
ماشین مجازی اتریوم (EVM) توانسته به اقتصاد مختص اکوسیستم خود نیز دست یابد. این ماشین مجازی با بهره گیری از مکانیزم انگیزشی گس (Gas)، از منابع دنیای واقعی نیز برای اجرای برنامه ها بهره می گیرد. به همین واسطه، اتریوم به هدف خود در راستای تبدیل شدن به “کامپیوتر جهانی” دست پیدا می کند. ماشین مجازی اتریوم از چه جهت برای این پروتکل اهمیت دارد؟
این ماشین به افرادی که به این شبکه ملحق می شوند، اجازه می دهد که کدهای خود را به شیوه ای پیاده سازی کنند، که نیازی به وجود فضای اعتماد نداشته باشیم. بنابراین، نتیجه هر اجرا از طریق قراردادهای هوشمند به صورت قطعی تضمین می شود.
با در اختیار داشتن شیوه ای برای محاسبه هزینه گس یک قرارداد هوشمند، یک پروتکل می تواند تضمین کند که فی مورد نظر، پیش از اجرای برنامه دریافت خواهد شد. بدین ترتیب، از تمامی عوامل مشوق و اولویت ها نیز محفاظت می شود.
اتریوم اعتبارسنج ها یا ولیدیتورهایی (Validator) دارد که از تایید اعتبار تمامی اطلاعات در هر یک از تراکنش های شبکه، اطمینان حاصل می کنند. علاوه بر این، ولیدیتورها فرایند پردازش یک تابع توسط ماشین مجازی اتریوم را نیز مورد بررسی قرار می دهند، تا این ماشین وارد حالت های پیش بینی نشده و استثنایی نشود.
ارتباط گس با روند اجرای EVM چیست؟
هرگونه اقدامی که در بستر شبکه اتریوم (Ethereum) صورت می گیرد، نشان دهنده یک تراکنش است. تراکنش ها برای انجام شدن به فی یا کارمزد نیاز دارند. همانطور که اشاره کردیم، در بستر این شبکه، تمامی هزینه های مورد نیاز تحت عنوان گس (Gas) شناخته می شوند.
در زمان هایی که میزان فعالیت درون این شبکه بسیار بالا بوده و تراکنش های زیادی در حال انجام هستند، میزان گس فی افزایش پیدا می کند. برخی اوقات میزان گس فی مورد نیاز برای انجام تراکنش های ساده به ۱۰ یا ۲۰ دلار از ارزش اتر نیز می رسد.
شیوه ذخیره سازی داده در شبکه اتریوم
داده ها به صورت درختی و به واسطه ساختار داده درخت مانند مدیریت می شوند. دیتاهایی مثل میزان موجودی حساب کاربری، به صورت مستقیم در بلاک های بلاکچین اتریوم ذخیره سازی نمی شوند و تنها نودهای روت هش (Root Hash) یا هش ریشه ای می توانند تراکنش ها، حالات ماشین و دریافتی های درون این زنجیره را نگهداری کنند.
دو نوع داده متمایز در بستر اتریوم وجود دارد: داده های دائمی و داده های موقت.
تراکنش ها نمونه ای از داده های دائمی محسوب می شوند. به محض اینکه یک تراکنش به حالت تایید برسد، در درون ساختار داده درختی ذخیره سازی می شود و هیچگاه تغییر نمی کند.
میزان موجودی آدرس حساب کاربری نمونه ای از داده موقت است. میزان موجودی نگهداری شده در یک آدرس حساب کاربری، در بخش حالت درختی ذخیره سازی می شود و هنگامی که تراکنش ها توسط فرستنده ارسال می شوند و یا تراکنشی را دریافت می کنند، دچار تغییر می شوند. داده های دائمی و موقت به صورت جداگانه ذخیره سازی می شوند.
شیوه ثبت سوابق اتریوم شباهت زیادی با بانک دارد؛ ممکن است فردی به صورت آنالوگ و به دور از دنیای دیجیتال، از یک کارت اعتباری استفاده کند. بانک ها میزان موجودی هر کارت را در زمان درخواست برای خرج کردن پول را ردیابی می کنند. بانک سوابق خود را مورد بررسی قرار می دهد، تا از این موضوع اطمینان حاصل کند که حساب کاربر مورد نظر پیش از تایید تراکنش از میزان موجودی کافی برخوردار باشد.
شبکه اتریوم نیز به همین شکل عمل می کند؛ قبل از ارسال تراکنش، موجودی آدرس بررسی می شود و اگر موجودی کافی نباشد، اجازه ارسال داده نمی شود.
- EVM به همه افراد اجازه می دهد تا بتوانند برنامه غیرمتمرکز مورد نظر خود را بسازند. موارد کاربردی بی شماری برای این نوع نرم افزار وجود دارد و این تکنولوژی به گروه خاصی از مردم و یا افراد ثروتمندی که روابط و ارتباطات خاص دارند، محدود نمی شود.
- مزایا و دستاوردهای زیادی از قراردادهای هوشمند حاصل می شوند. به عنوان نمونه ای از کاربردهای این کانترکت ها، می توان به توکن های غیر مثلی (NFT) اشاره کرد. همه افراد می توانند به واسطه ساخت توکن NFT، به خلق آثار هنری دیجیتال و فروش آن ها در بازار غیرمتمرکز بپردازند.
- شبکه EVM به صورت کامل غیرمتمرکز نیست و اکثریت نودهای اتریوم روی سرورهای ابری متمرکز مانند آمازون و خدمات مبتنی بر وب میزبانی می شوند. اگر صاحبان چنین خدماتی به این نتیجه برسند که به هر دلیلی به اتریوم علاقه ای ندارند، این نودها به راحتی از کار می افتند و این امر به آسیب دیدن و یا از بین رفتن شبکه منجر می شود. این امر در گذشته و در رابطه با برخی از برنامه های رسانه اجتماعی اتفاق افتاده است.
- استفاده از ماشین مجازی اتریوم نیازمند دانش فنی است. افرادی که با زبان برنامه نویسی سالیدیتی آشنایی ندارند، نمی توانند از EVM بهره زیادی ببرند. البته رابط های کاربری سازگارتر با این کاربران وجود دارند، که هنوز در دست توسعه هستند. به عنوان مثال می توان دوباره به NFT ها اشاره کرد. لازم به ذکر است که برنامه هایی وجود دارند، که دارای رابط های کاربری گرافیکی (GUI) هستند که به صورت تقریبی به تمامی کاربران این امکان را می دهند که NFT بسازند و از بازارهای مربوط به آن استفاده کنند.
- در زمان ازدحام شبکه اتریوم، میزان گس فی تا میزان زیادی افزایش پیدا می کند. این امر می تواند به منزله نقطه ضعف بزرگی برای کاربران این شبکه محسوب شود. ممکن است در زمان ازدحام شبکه، آسیب زیادی به افرادی که تراکنش های بزرگ انجام می دهند نرسد؛ اما این امکان وجود دارد که سایر افرادی که تراکنش های کوچک را به انجام می رسانند (یعنی اکثریت کاربران)، برای مدتی نتوانند از شبکه استفاده کنند. این رویداد به صورت ویژه ای برنامه های غیرمتمرکز را تحت تاثیر قرار می دهد. از آنجایی که کاربران در هنگام استفاده از Dapp ها از قراردادهای هوشمند استفاده می کنند و تراکنش های زیادی را به انجام می رسانند، در طول بازه زمانی ازدحام شبکه، این امکان وجود دارد که کل فرایند استفاده از دپ دچار اختلال و کند شده یا حتی متوقف شود.
کاربردهای ماشین مجازی اتریوم (Ethereum Virtual Machine)
اکنون که با EVM و نحوه کار آن آشنا شدید، بهتر است به کاربردهای آن در پروژه های اتریومی نگاهی بیندازیم.
این پروتکل در سال های اخیر نقش اساسی در صنعت بلاکچین و رمز ارزها داشته است و کمک کرده تا هزاران برنامه غیر متمرکز (DApps) در یک پلتفرم به صورت استاندارد توسعه یابند. استاندارد ERC-20 به توسعه دهندگان و شرکت ها اجازه می دهد تا پروژه های خود را توکنیزه کرده و از طریق عرضه اولیه کوین (ICO) یا عرضه اولیه صرافی (IEO) جذب سرمایه کنند.
توکن های ERC-20 به محض ساخت، به صورت خودکار با سرویس ها و نرم فزارهای پشتیبان استاندارد ERC-20 (مانند والت های نرم افزاری، سخت افزاری، صرافی ها و دیگر موارد) قابل برقراری تعامل هستند. توکن ها در بستر بلاکچین اتریوم، دارایی هایی هستند که ارزش دارند. آن ها همانند بیت کوین (BTC)، لایت کوین (LTC) و اتریوم (ETH) ارسال و دریافت می شوند.
تفاوت این توکن ها با رمز ارزهایی که مانند بیت کوین، بلاکچین جداگانه دارند، این است که این توکن ها از آدرس های اتریوم استفاده می کنند و تراکنش های خود را روی بلاکچین اتریوم می فرستند؛ در حالی که کوینی مثل بیت کوین، بلاکچین مخصوص به خودش را دارد و تراکنش های آن روی بلاکچین بیت کوین ثبت می شوند.
بسیاری از پروژه های اتریومی و برنامه های غیر متمرکز به کاربران خود توکن ERC-20 می دهند که منحصرا برای انتقال راحت بین آدرس ها و حفظ ارزش یکسان در کل شبکه طراحی شده اند. توکن های با استاندارد ERC-20 توسط قراردادهای هوشمند مطیع ساختارهای داده تعریف شده، ساخته می شوند. این ساختار داده مسئول نام گذاری، توزیع و نظارت بر توکن مربوطه است.
البته این ارزها کاربردی بیشتر از صرفا ماشین مجازی اتریوم دارند. مثلا، Nexus Mutual که ارائه دهنده بیمه برای اسمارت کانترکت هاست، برای فراهم آوری توانایی ادعای خسارت و پوشش خرید، از توکن NXM مبتنی بر استاندارد ERC-20 استفاده می کند.
نمونه دیگر، پروژه لایوپیر (Livepeer) است. با اینکه لایوپیر شناخته شده ترین پروژه در مبحث EVM ها نیست، اما این شبکه استریم ویدیو غیر متمرکز از توکن ERC-20 خود به نام LPT برای پاداش دهی به کاربران تامین کننده منابع شبکه بهره می برد. این ها تنها نمونه های کوچکی از طیف گسترده اپلیکیشن های غیرمتمرکز هستند که به مدیریت توکن های ERC-20 می پردازند.
صرافی غیر متمرکز (Decentralized Exchange) نیز از طریق قراردادهای هوشمند امکان تبادل توکن های ERC-20 را فراهم می کنند. این اسمارت کانترکت ها به کاربران اجازه می دهند تا با ورود به استخرهای نقدینگی، بدون دخالت اشخاص ثالث به مبادله رمز ارزها بپردازند که در واقع آن ها را به یک بازارساز خودکار (AMM) تبدیل می کند. یونی سواپ (UniSwap)، سوشی سواپ (SushiSwap) و بسیاری دیگر از صرافی های غیرمتمرکز در واقع برنامه هایی هستند که از مدل بازارساز خودکار (AMM) برای مبادلات استفاده می کند. کاربران می توانند در این دکس (DEX) به معامله کوین اتر (ETH) و توکن های ERC-20 بپردازند و همچنین از تامین نقدینگی در استخر های آن، به کسب درآمد بپردازند.
یکی دیگر از استانداردهای محبوب، ERC-721 است. از قراردادهای هوشمند اینگونه رمز ارزها برای مینت توکن غیر مثلی یا همان ان اف تی (NFT) استفاده می شود که دارای ارزش منحصر به فرد هستند.
امروزه، یک کد توانایی دموکراتیک کردن دسترسی مجازی به بازارهای هنری را دارد. پروژه های گیمینگ نظیر گادز آنچیند (Gods Unchained) و اکسی اینفینیتی (Axie Infinity) نیز از این توکن ها برای آیتم ها و کالکتیبل های درون بازی خود استفاده می کنند.
آداسواپ (AdaSwap) یک صرافی غیرمتمرکز مبتنی بر شبکه کاردانو (CARDANO) به همراه یک بازار ساز خودکار است. اخیرا، این پروژه از همکاری خود به میلکومدا (Milkomeda) خبر داده بود.
میلکومدا با استفاده از راهکار لایه دو (Layer 2) برای ساخت یک زنجیره جانبی یا همان سایدچین (SideChain)، به بلاک چینی های ناسازگار با ماشین مجازی اتریوم (EVM) نظیر کاردانو اجازه می دهد تا با آن سازگار شوند. با استفاده از این ساید چین، کاربران نیز قادر به انتقال دارایی ها و استفاده از دی اپ های کاردانو روی اتریوم و بالعکس هستند. آداسواپ و میلکومدا هر دو از این همکاری برای ادغام و یکپارچگی ماشین مجازی اتریوم (Ethereum Virtual Machine) درون اکوسیستم کاردانو بهره می برند.
ماشین مجازی EVM توسط یک سازمان خودمختار غیر متمرکز (Decentralized Autonomous Organization) دائو (DAO) مدیریت می شود. دائو یک نهاد با محوریت عمومی است، که مانند شبکه بیت کوین (Bitcoin) توسط یک گروه متمرکز مدیریت نمی شود. این سازمان ها به صورت کاملا خود مختار و شفاف فعالیت می کنند؛ به عبارت ساده تر قوانین در آن ها بر اساس قراردادهای هوشمند (Smart Contracts) و طبق توافقات صورت گرفته اجرایی می شود و کدهای برنامه نویسی شده آن ها توسط تمامی افراد قابل مشاهده و اصلاح است.
DAO ها به دلیل متن باز و غیرمتمرکز بودن و همچنین توانایی آن ها در کار با قراردادهای هوشمند، محبوب هستند.
نهایتا، دائوها کاملا توسط اعضای منفردی مدیریت می شوند که به صورت جمعی به تصمیم گیری روی پروژه می پردازند. از آنجایی که قوانین دارای شفافیت، قابلیت اعتبارسنجی و در دسترس عموم هستند، هر عضو نیز قادر به درک نحوه عملکرد پروتکل است.
انواع ماشین های مجازی اتریوم (EVM) کدامند؟
ماشین مجازی اتریوم (Ethereum Virtual Machine) یک نرم افزار متن بسته خاص نیست، بلکه مجموعه ای از مشخصات و چارچوب ها برای ساخت ابزارهای بلاکچین اتریوم است.
بنابراین، قابلیت نوشتن EVM به هر زبانی وجود دارد. البته تنها نیازمندی این است که باید تمام پیاده سازی های EVM منطبق بر مشخصات توصیف شده در وایت پیپر اتریوم باشند.
تا به امروز، چندین پیاده سازی از ماشین های مجازی اتریوم به زبان های برنامه نویسی مختلف ارائه شده است. هیچ لیست کاملی در حال حاضر وجود ندارد و هر روزه علاقه مندان به این حوزه در حال توسعه و طراحی مدل خود هستند که شاید در آینده بازار را تغییر خواهد دارد. از جمله محبوب ترین مدل های EVM شامل موارد زیر هستند.
- go-EVM: نوشته شده کاملا به زبان Golang
- SputnikEVM: نوشته شده کاملا به زبان Rust
- Py-EVM: نوشته شده کاملا به زبان Rust
- evmone: اکثر آن به زبان ++C و قسمتی به زبان CMake
- ethereumjs-VM: برخلاف نام آن، تقریبا کاملا به زبان TypeScript و کمی به زبان جاوا اسکریپت است.
- eEVM: تقریبا کاملا به زبان ++C و قسمت کمی به زبان CMake
- Hyperledger Burrow: بیشتر به زبان GO، اما همچنین TypeScript، سالیدیتی و دیگر زبان ها
- hevm: نوشته شده به زبان Haskel
اما چرا این تعداد مدل و پیاده سازی مختلف از ماشین مجازی اتریوم وجود دارد؟ علت آن است که هر زبان برنامه نویسی مزایای مختص به خود را دارد. علاوه بر این، برخی از شرکت های بزرگ (نظیر eEVM با پشتیبانی مایکروسافت)، مایل به استفاده از منابع عظیم و تخصص بلند بالای خود برای توسعه EVM هستند.
مقایسه EVM با سایر ماشین های مجازی
ماشین های مجازی نقش بنیادینی را در اجرای صحیح قراردادهای هوشمند فعال روی هزاران برنامه غیر متمرکز در اکوسیستم داخل و خارج از اتریوم ایفا می کنند. با توجه به عملکرد حیاتی این ابزارها، در آینده نه چندان دور، منتظر تکامل VM ها از یک بازار نوپا به سوی راه حل اصلی در مسیر مقیاس پذیری اپلیکیشن ها هستیم.
ماشین مجازی پارا استیت برای مقیاس پذیری دی اپ ها در اتریوم از مشکل ریشه ای آن یعنی “اجرای اسمارت کانترکت ها” کار را آغاز کرده و با بهبود زمان اجرای این جزء کلیدی در هر برنامه غیر متمرکزی، مشکلات ذاتی EVM را از بین می برد.
ماژولی به نام SSVM-Ewasm Substrate در این ماشین مجازی به توسعه دهندگان اجازه می دهد تا اپلیکیشن های غیرمتمرکزی را بسازند که قادر به پیاده سازی و اجرای قراردادهای هوشمند اتریوم در اکوسیستم پولکادات (Polkadot) هستند تا کاربران از مزیت کارمزدهای پایین و سرعت بالای تراکنش ها بهره مند شوند.

ماژول SSVM یک ماشین مجازی تحت استاندارد Ethereum-flavored WebAssembly یا به طور خلاصه EWASM، یک جزء کلیدی زیرساخت برای بلاکچین های عمومی است. تمامی اپلیکیشن ها فعلی و آتی اتریوم نیز قادر به اجرا روی ماشین مجازی Ewasm پارا استیت هستند. به عبارت دیگر، توسعه دهندگان یتوانند اسمارت کانترکت های سازگار با اتریوم را نوشته و آن ها را روی یک سیستم ساب استریت هم تعاملی پرسرعت و مقیاس پذیر اجرا کنند.
بنابراین توسعه دهندگان با پیاده سازی WebAssembly به عنوان راه حل محوری فناوری خود، قادر به نگارش کدها به بیش از ۲۰ زبان برنامه نویسی از جمله پراستفاده ترین زبان ها برای پیاده سازی نسل سوم وب (Web 3.0) هستند.
روت استاک (Rootstock) یا به طور خلاصه RSK که روی بلاکچین بیت کوین ساخته شده است، به توسعه دهندگان اجازه می دهد تا کدهای قرارداد هوشمند خود برای دی اپ ها را روی اتریوم بنویسند.
ماشین مجازی RSK مسئول فعال سازی عملکرد اسمارت کانترکت هاست و سازگاری بالایی با EVM یعنی ماشین مجازی اتریوم دارد. این ماشین مجازی یک تورینگ کامل است و به طور متوسط تراکنش های قراردادهای هوشمند را زیر ۳۰ ثانیه تایید می کند.

به لطف سازگاری RSK با EVM، امکان انتقال قراردادهای هوشمند اتریوم به RSK با کمترین زحمت برای بهره مندی از قابلیت های فنی این ماشین مجازی (تا ۳۰۰ تراکنش در ثانیه) و امنیت شبکه بیت کوین وجود دارد.
در آینده، RSK به دنبال پشتیبانی از ماشین های مجازی بیشتر با عملکرد بهتر مبتنی بر بایت کدهای جاوا یا Wasm است. با حضور این بهبودها، و موازی سازی عملیات، این ماشین مجازی جدید قادر به اجرای وظایف به صورت موازی و قالب کد سریع تر و بهینه تر و در نتیجه، بهبود مقیاس پذیری و امنیت است.
این پروژه (NEO) از سال ۲۰۱۷ تا کنون بر پشتیبانی از قراردادهای هوشمند و دی اپ های مرتبط با انتقال دارایی های دیجیتال و اعتبارسنجی هویت دیجیتال متمرکز بوده است. نئو ۳.۰ Neo (N3) آخرین به روز رسانی این شبکه برای اتصال دیجیتال هویت ها، قراردادها و دارایی ها از طریق مدل قیمت گذاری به روز و اوراکل های داخلی دارای پشتیبانی اسمارت کانترکت های جدید از طریق ماشین مجازی نئو است.
این ماشین مجازی به بهبودهایی تجهیز شده که عملکرد، کاربرد و قابلیت های توسعه در شبکه نئو را افزایش داده و باعث ساده سازی هرچه بیشتر معماری فنی و برخی از ویژگی های نوآورانه نظیر NeoFS و NeoID شده است.
ماشین مجازی نئو برای پشتیبانی از تعامل متقابل و دیگر زنجیره ها برای حل چالش های دنیای واقعی طراحی مجدد شد. از طریق NeoVM، قراردادهای هوشمند پشتیبانی توسعه کافی را برای مهندسان سازنده برنامه های غیرمتمرکز در اکوسیستم نئو فراهم کرده اند.

قرارداهای نئو به نام (NeoContract)، با استفاده از زبان های برنامه نویسی محبوب نظیر استانداردهای صنعت همچون پایتون، جاوا، ++C و جاوا اسکریپت، توانایی اجرا و مدیریت قراردادهای هوشمند را دارد. این یعنی تقریبا تمامی توسعه دهندگان قادر به استفاده از این سیستم هستند.
نئو وی ام (NeoVM) یک ماشین مجازی استک محور است. علاوه بر این، NeoVM اسمارت کانترکت ها را در فایل های بایت کد متحد الشکل NVM کامپایل می کند که سپس دی کد و توسط ماشین مجازی مربوطه اجرا می شوند. معماری ماشین مجازی نئو (NeoVM) را می توان در تصویر بالا مشاهده کرد.
در ماشین مجازی الگورند (Algorand)، قراردادهای هوشمند با عنوان “Stateful” شناخته می شوند. این قراردادها حاوی منطقی هستند که قابلیت پیاده سازی و سپس فراخوانی از راه دور آن ها از هر نودی در بلاک چین الگوراند وجود دارد. Algorand virtual machine (AVM) سپس یک زبان مشترک به نام (Transaction Execution Approval Language) یا به طور خلاصه TEAL را ترجمه می کند. زبان TEAL را می توانید مشابه شکر مصنوعی برای بایت کدهای AVM در نظر بگیرید.
قراردادهای هوشمند نیز به زبان سطح بالاتری نوشته و برای اجرا توسط لایه ۱ ماشین مجازی الگوراند، درون بایت کدها کامپایل می شوند. فریم ورک آسان برای این کار اتریوم است که در آن اسمارت کانترکت ها به زبان سالیدیتی نوشته و برای اجرا توسط ماشین مجازی EVM درون بایت کدها کامپایل می شوند.

نسخه پیشرفته AVM، یعنی آپدیت پروتکل لایه ۱ که جهت بهبود مقیاس پذیری برنامه های غیر متمرکز برای توسعه دهندگان و سازمان ها طراحی شده، اخیرا با هدف افزایش سرعت تراکنش ها عرضه شده است.
الگوراند امیدوار است تا با این ماشین مجازی جدید، توسعه دهندگان قادر به نگارش قراردادهای هوشمند به زبان پایتون یا ریچ (Reach)، زبانی ساده شبیه به جاوا اسکریپت، باشند.
از آنجایی که تعامل پذیری با ماشین مجازی اتریوم (Ethereum Virtual Machine) در اکوسیتم ماشین های مجازی امری ضروری است، ماشین مجازی الگوراند نیز امکان نگارش اسمارت کانترکت ها با زبان های تورینگ کامل را فراهم کرده است.
کدام شبکه ها با ماشین مجازی اتریوم (EVM) سازگار هستند؟
به بیانی بسیار ساده، شبکه هایی که در کیف پول متامسک (MetaMask) اضافه می شوند و آدرس آن ها با 0x شروع می شود، با EVM سازگار هستند.
پروژه های بسیاری وجود دارند که کاملا روی ماشین مجازی اتریوم راه اندازی شده اند و به صورت لایه یک (Layer 1) فعالیت می کنند. می توان گفت که کدهای این بلاکچین ها فورکی از کدهای اتریوم است. یکی از بهترین نمونه های این شبکه ها، زنجیره بی ان بی (BNB Chain) است. برخی دیگر از شبکه های سازگار با EVM نیز وجود دارند که به صورت لایه یک فعالیت می کنند و فورک اتریوم نیستند.
شبکه های لایه دو نیز وجود دارند که راهکارهایی برای افزایش مقیاس پذیری شبکه اتریوم هستند. یک نمونه از این بلاکچین ها، پالیگان (Polygon) است، که از سایدچین ها یا زنجیره های جانبی برای محاسبات آف چین استفاده می کند.
در کنار این شبکه ها، برخی بلاکچین ها با الگوریتم گواه اثبات سهام نیابتی (dPoS) فعالیت می کنند. همچنین شبکه هایی با الگوریتم گواه اثبات خودمختاری (Proof of Autonomy) که به آن زنجیره باثبات یا Stable Chain می گویند، کار می کنند و با ماشین مجازی اتریوم سازگاری دارند (مانند xDAI Chain).
تمام این شبکه های سازگار با ماشین مجازی اتریوم، کارمزد کمتر و سرعت بیشتری نسبت به اتریوم دارند. برخی از معروف ترین شبکه ها (صرف نظر از نوع الگوریتم اجماع و نحوه کارکرد) در زیر آورده شده اند.
| بی ان بی چین (BNB Chain) | هارمونی (Harmony) |
| پالیگان (Polygon) | مون بیم (Moonbeam) |
| آوالانچ (Avalanche) | سولانا (SOLANA) |
| xDAI | آنتولوژی (Ontology) |
| اپی مین نت (OP Mainnet) | آربیتروم (Arbitrum) |
| فانتوم (Fantom) | آرورا (Aurora) |
| کرونوس (Cronos) | KCC |

عبارت (EVM compatible) به معنای سازگاری با ماشین مجازی اتریوم است و به شبکه هایی اشاره دارد که از این ماشین مجازی استفاده می کنند. آدرس های این شبکه ها دقیقا مطابق با استانداردهای اتریوم است.
در انتها
ماشین مجازی اتریوم (Ethereum Virtual Machine) مسبب اجرای برنامه های غیرمتمرکز شبکه اتریوم است. EVM قراردادهای هوشمندی که روی این شبکه بارگزاری یا دیپلوی شده اند را اجرا می کند. همچنین EVM ماشینی است که به کاربران اجازه می دهد که بر بستر اتریوم، به ایجاد برنامه های غیرمتمرکز بپردازند. زبان برنامه نویسی سالیدیتی برای کدنویسی این برنامه مورد استفاده قرار گرفته است و یادگیری این زبان نیز نسبتا ساده است. گس فی، هزینه مورد نیاز برای انجام تراکنش های این شبکه بوده و برای ایجاد انگیزه در ولیدیتورها و اولویت بندی انجام عملیات گوناگون درون سازمانی مورد استفاده قرار می گیرد.

شاید دوست داشته باشید

استارک ور (StarkWare) تأیید کل تاریخچه بلاکچین با ۱ مگابایت حجم ممکن ساخت!

تقویم اقتصادی (Economic Calendar) چیست و چگونه از آن استفاده کنیم؟

ارتقای آلپنگلو (Alpenglow) در سولانا تأیید شد؛ تراکنشها بزودی با سرعت اینترنت نهایی میشوند

تراست ولت امکان معامله سهام های توکنیزه (RWA) را برای کاربران فعال کرد

اندیکاتور ATR چیست و چه کاربردی در تحلیل تکنیکال دارد؟

۹ عادت مالی که افراد منظم را به ثبات و آزادی مالی میرساند
آموزش
تقویم اقتصادی (Economic Calendar) چیست و چگونه از آن استفاده کنیم؟
تقویم اقتصادی مثل یک “برنامهریزی خبری” برای بازار است. اگر به آن توجه نکنید، ممکن است در لحظه انتشار اخبار مهم با حرکتهای ناگهانی و شدید قیمت غافلگیر شوید. استفاده درست از آن کمک میکند ریسک معاملات را مدیریت کنید و حتی فرصتهای سودآور پیدا کنید.
منتشر شده
5 ماه پیشدر
شهریور 21, 1404توسط
روکو (Rocco)
اگر معاملهگر یا فعال بازارهای مالی باشید، حتما تجربه کردهاید که یک خبر اقتصادی میتواند ظرف چند دقیقه بازار را زیر و رو کند. مثلا اعلام نرخ بیکاری آمریکا یا تصمیم فدرال رزرو درباره نرخ بهره کافی است تا قیمت دلار، طلا یا حتی بیت کوین نوسان شدیدی پیدا کند. در چنین شرایطی، دانستن زمان دقیق این رویدادها میتواند مرز میان یک معامله سودآور یا پشیمانکننده باشد.
اینجاست که تقویم اقتصادی به عنوان یک ابزار به کمک شما میآید. ابزاری که تمام اتفاقات مهم اقتصادی و مالی جهان را در یک جدول زمانی مشخص نمایش میدهد و به شما کمک میکند همیشه چند قدم جلوتر از بازار باشید. اگر میخواهید بدانید تقویم اقتصادی دقیقا چیست، چه اجزایی دارد و چطور باید از آن استفاده کنید، این مطلب را از دست ندهید.
تقویم اقتصادی (Economic Calendar) چیست؟
یک لیست زمانبندیشده از اعلامیههای اقتصادی، دادههای کلان، سخنرانیهای مقامات مالی و انتشار شاخصهای اقتصادی مثل نرخ بهره، تورم، بیکاری، تولید ناخالص داخلی و … است. علاوه بر این معمولاً زمان بیانیه های بانک مرکزی، سخنرانی های سیاست گذاران پولی و انتخابات را فهرست می کند.
بیشتر تقویم های اقتصادی منتشر شده شامل نوع داده مثل نرخ بیکاری، نتیجه قبلی که منتشر شده بود و انتظارات اجماع بازار برای نتیجه آتی می شوند. باید توجه داشت که نوع انتشار به طور کلی بسته به اینکه چه تاثیری می تواند داشته باشد؛ بصورت زیاد، متوسط، کم یا بدون تاثیر، کد گذاری می شود.
برای مثال، تصور کنید بانک مرکزی اروپا (ECB) قرار است درباره نرخ بهره (Interest Rate) جلسه برگزار کند. این تصمیم میتواند ارزش یورو را به شدت تحت تاثیر قرار دهد. اگر شما معاملهگر بازار فارکس باشید و این تاریخ را ندانید، ممکن است در میانه یک معامله ناگهان با نوسانی شدید روبهرو شوید و فرصت مدیریت آن را از دست بدهید. اما وقتی به تقویم اقتصادی نگاه میکنید، میبینید که این رویداد دقیقا چه روز و ساعتی اتفاق میافتد و میتوانید از قبل برایش برنامهریزی کنید.
تقویم اقتصادی نه فقط برای معاملهگران حرفهای، بلکه برای هر فردی که در بازارهای مالی فعالیت میکند (از بورس و فارکس گرفته تا ارزهای دیجیتال) یک ابزار ضروری است. حتی سرمایهگذاران بلندمدت هم با نگاه به این تقویم میتوانند تصمیمهای دقیقتری برای مدیریت پرتفوی خود بگیرند.
اگر انتشار داده اقتصادی تأثیر کمی داشته باشد، آنگاه جفت ارز حرکتی نداشته و یا واکنشی جزیی نسبت به نتیجه از خود نشان خواهد داد. اما اگر در رویدادی با تأثیر متوسط، نتیجه نهایی با چیزی که انتظار می رفت خیلی تفاوت داشته باشد، باعث می شود جفت ارز به میزان بیشتری تغییر کند. زمانی که انتشار داده ها به طور قابل توجهی بیشتر یا کمتر از نتیجه مورد انتظار بازار باشند، به خصوص زمانی که صحبت از داده هایی با تأثیر بالا باشد، جفت ارز مرتبط تمایل بیشتری به حرکت دارد و بازار نوسانات قابل توجهی را در این فرآیند تجربه می کند.
چرا تقویم اقتصادی مهم است؟
- تقویم اقتصادی مانند یک نقشه راه است که مسیر حرکت بازارها را روشنتر میکند و شما را از غافلگیریهای ناگهانی نجات میدهد. به این ترتیب شما میتوانید تصمیمات معاملاتی خودتان را بر پایه اطلاعات موثق بگیرید.
- انتشار دادههای اقتصادی میتواند باعث نوسانات شدید در بازارهای مالی شود. برای مثال، اگر نرخ تورم بالاتر از حد انتظار اعلام شود، سرمایهگذاران انتظار افزایش نرخ بهره خواهند داشت و همین موضوع میتواند بازار سهام یا ارزهای دیجیتال را تحت تاثیر قرار دهد.
- بدون تقویم اقتصادی، بسیاری از تصمیمها بر اساس حدس و گمان گرفته میشود. معاملهگرانی که فقط با تحلیل تکنیکال کار میکنند، ممکن است در لحظه انتشار یک خبر بزرگ، گرفتار نوسانات غیرمنتظره بازار شوند. در حالیکه کسی که تقویم اقتصادی را دنبال میکند، میداند چه زمانی باید محتاطتر باشد یا حتی برای شکار فرصتهای جدید آماده شود.
- یکی از مهمترین مزیتهای تقویم اقتصادی، مدیریت ریسک است. اگر قبل از انتشار یک داده مهم پوزیشن باز دارید، میتوانید حجم معاملات خود را کاهش دهید، حد ضرر تنظیم کنید یا حتی معامله را ببندید تا از ضررهای سنگین جلوگیری شود.
- استفاده از تقویم اقتصادی به شما امکان میدهد استراتژیهای کوتاهمدت و بلندمدت خود را بر اساس دادههای واقعی طراحی کنید. به این ترتیب، معاملات شما نظم بیشتری پیدا میکند و احتمال موفقیت بالاتر میرود.
- بسیاری از ضررها به دلیل تصمیمات عجولانه و احساسی اتفاق میافتد. وقتی بدانید چه چیزی در راه است، آرامش بیشتری خواهید داشت و کمتر اسیر ترس یا طمع میشوید.
اجزای اصلی یک تقویم اقتصادی
وقتی وارد یک تقویم اقتصادی مثل Trading Economics یا Investing.com میشوید، در نگاه اول ممکن است جدول شلوغی ببینید که پر از عدد و کلمه است. اما اگر بدانید هر ستون چه معنایی دارد، کار با آن بسیار ساده خواهد شد. در ادامه تکتک اجزای اصلی این جدول که از وبسایت تریدینگ اکونومیکس آورده شده را توضیح میدهیم.

در قسمت بالای جدول بخشی برای فیلتر کردن نتایج آورده شده است. گزینه «Recent» فیلتری برای نشان دادن رویدادهای اخیر است و فقط موارد نزدیک به زمان فعلی را نشان میدهد. اگر میخواهید مثلا رویدادهای اقتصادی چند ماه دیگر را ببینید کافی است این فیلتر را تغییر دهید.
با استفاده از گزینه «Impact» شما میتوانید این رویدادهای اقتصادی را بر اساس سطح اهمیت آن ها دستهبندی کنید. تریدینگ اکونومیکس سه دستهبندی دارد. رویدادهای یک ستاره، دو ستاره و سه ستاره که طبیعتا اهمیت آن ها بر اساس تعداد ستاره افزایش مییابد.
قسمت «Countries» امکان فیلتر کردن بر اساس کشور یا اقتصاد موردنظر را فراهم میکند. مثلا اگر قصد دارید فقط شاخصهای اقصتادی کلان آمریکا را ببینید، کافی است روی این گزینه کلیک کرده و «United States» را انتخاب کنید.
فیلتر «Category» دستهبندی رویدادها را نمایش میدهد. مثلا شما میتوانید در این فیلتر گزینه «Prices & Inflation» را انتخاب کرده و فقط دادههای تورمی را مشاهده کنید.
بخش «UTC +3:30» نیز برای تعیین منطقه زمانی است. شما میتوانید منطقه زمانی خودتان (تهران-ایران) را تنظیم کنید تا ببینید دقیقا رویداد موردنظرتان در چه ساعتی به وقت ایران رخ میدهد.
- تاریخ و ساعت
اولین چیزی که در تقویم اقتصادی به چشم میآید، ستون زمان انتشار است. در این بخش دقیقا مشخص میشود که هر رویداد چه روز و ساعتی منتشر خواهد شد. اهمیت این قسمت بسیار بالاست، چون بازارها معمولا درست در همان لحظه انتشار خبر واکنش نشان میدهند. مثلا اگر در ساعت ۴:۰۰ صبح «شاخص اعتماد مصرفکننده استرالیا» منتشر شود، معاملهگران بازار فارکس در همان دقیقه باید آماده واکنش باشند.
همانطور که گفتیم، ساعت تقویم معمولا بر اساس منطقه زمانی قابل تغییر است. مثلا شما میتوانید آن را روی «تهران (UTC+3:30)» تنظیم کنید تا دقیقاً با ساعت محلی خودتان هماهنگ باشد.
- کشور
در ستون بعدی، پرچم و کد کشور (مثلاً GB = بریتانیا، AU = استرالیا، MX = مکزیک) قرار دارد که نشان میدهد داده متعلق به کدام اقتصاد است. گاهی اوقات هم رویدادها مربوط به یک بلوک منطقهای خاص مثلا اروپا (EA = Euro Area) هستند. در این صورت آن داده را باید به عنوان یک شاخص منطقهای و نه مربوط به یک کشور واحد تفسیر کرد.
- عنوان رویداد
این ستون عنوان خبر یا شاخص اقتصادی را نشان میدهد. گاهی هم کنار این عنوان، مخفف ماه میلادی (مثل AUG، SEP) دیده میشود که نشان میدهد داده مربوط به کدام ماه است. شناخت هر شاخص اهمیت زیادی دارد، چون هرکدام اثر متفاوتی روی بازار میگذارند.
اما نکته مهم اینجاست که همه رویدادها عددی و آماری نیستند. بعضی از آن ها بیشتر کیفی هستند و باید با توجه به ماهیتشان تفسیر شوند. برای درک بهتر، به چند نمونه نگاه کنیم:
- شاخصهای آماری (عددمحور)
مثل نرخ بیکاری (Unemployment Rate)، شاخص قیمت مصرف کننده (CPI)، یا تولید ناخالص داخلی (GDP). اینها همیشه یک عدد مشخص دارند که میتوان آن را با مقدار قبلی و پیشبینی بازار مقایسه کرد.
- سخنرانیها (Speech)
مثلا «سخنرانی رئیس فدرال رزرو». این نوع رویداد عدد ندارد، بلکه مهم محتوای صحبتهاست. اگر لحن سخنران به سمت سیاست انقباضی (افزایش نرخ بهره) باشد، بازار واکنش منفی به داراییهای پرریسک نشان میدهد. اگر لحن انبساطی باشد، میتواند باعث رشد بازار سهام یا ارزهای دیجیتال شود.
- حراج اوراق (Auction)
مثل «حراج اوراق ۱۰ ساله آمریکا» یا «حراج اوراق خزانه ژاپن». اینجا اعداد مربوط به بازده (Yield) یا حجم اوراق فروختهشده اهمیت دارند. بالا رفتن بازده معمولا نشانه افزایش هزینه استقراض دولت و احتمال بالا رفتن نرخ بهره است.
- شاخصهای نظرسنجی و اعتماد (Survey/Confidence Index)
مثل «شاخص اعتماد مصرفکننده» یا «شاخص مدیران خرید (PMI)». اینها با پرسشنامه از فعالان اقتصادی یا مصرفکنندگان تهیه میشوند و بازتابدهنده چشمانداز آینده هستند.
ستون Previous نشاندهنده نتیجه گزارش قبلی است. مثلا اگر شاخص بیکاری ماه گذشته ۸٪ بوده، این عدد در ستون Previous نمایش داده میشود. این بخش برای مقایسه روند بسیار مهم است، چون بازار همیشه تغییرات نسبت به گذشته را در نظر میگیرد.
در قسمت (Consensus / Forecast) دو ستون پیشبینی تحلیلگران و اقتصاددانان درباره آن شاخص یا داده اقتصادی آورده میشود. اما چه تفاوتی با هم دارند؟
Consensus یا اجماع در واقع میانگین پیشبینی جمعی تحلیلگران، اقتصاددانها و موسسات مالی است. یعنی چندین منبع معتبر پیشبینی خود را درباره یک شاخص اعلام میکنند و تقویم اقتصادی میانگین یا اجماع آنها را نمایش میدهد.
Forecast گاهی به همان معنی Consensus به کار میرود، اما در بعضی تقویمها (مثل Trading Economics) یک تفاوت کوچک دارد:
- Forecast معمولاً پیشبینی اختصاصی خود سایت یا موسسه منتشرکننده تقویم است.
- در حالی که Consensus نماینده پیشبینی کلی بازار و تحلیلگران مختلف است.
در ستون (Actual) مقدار واقعی در لحظه انتشار خبر بهروزرسانی میشود و عدد واقعی گزارش را نشان میدهد. در حقیقت، مهمترین بخش برای معاملهگران همین ستون است، چون مستقیما رفتار بازار را شکل میدهد.
بعضی تقویمها مثل Trading Economics در کنار هر شاخص نمودارهای کوچکی نمایش میدهند. این نمودار روند تاریخی آن شاخص را نشان میدهد (مثلا تغییرات نرخ بیکاری در چند ماه گذشته). با نگاه سریع به این بخش میتوانید متوجه شوید وضعیت در حال بهبود یا بدتر شدن است.

طبق ستون اول متوجه میشویم که شاخص قیمت تولیدکننده (PPI) آمریکا ساعت ۴ بعد از ظهر به وقت محلی منتشر میشود. به طور کلی، شاخصهای اقتصادی را میتوان در بازه زمانیهای مختلفی ارزیابی کرد. منظور از MoM بازه زمانی ماهانه است و YoY تغییرات کل یک سال نسبت به سال قبل را نشان میدهد.
در سطر اول که مربوط به شاخص PPI اصلی در بازه ماهانه است، میبینیم که مقدار قبلی ۰.۹٪ ثبت شده است. این یعنی در ماه گذشته قیمت تولیدکنندهها نسبت به ماه ماقبلش ۰.۹٪ افزایش داشته است. در ستون Forecast پیشبینی تریدینگ اکونومیکس برای این ماه ۰.۳٪ است و Consensus که میانگین پیشبینی اقتصاددانان و تحلیلگران مختلف را نشان میدهد ۰.۴٪ ثبت شده است. مقدار Actual یا واقعی هم هنوز منتشر نشده و به همین دلیل این ستون خالی مانده و در لحظه انتشار شاخص پر میشود.
چطور از تقویم اقتصادی استفاده کنیم؟
این بخش مهمترین قسمت مقاله است، چون فقط دانستن اینکه رویدادها چه زمانی هستند کافی نیست؛ باید بدانید چطور از این اطلاعات استفاده کنید.
- برنامهریزی هفتگی: در ابتدای هفته به تقویم اقتصادی نگاه کنید و رویدادهای مهم (مثل NFP یا تصمیم نرخ بهره) را علامت بزنید. این کار به شما کمک میکند از قبل آماده باشید.
- ترکیب با تحلیل تکنیکال: اگر میبینید یک خبر مهم نزدیک است، سطوح حمایت و مقاومت نمودار را بررسی کنید. مثلا اگر خبر منفی بیاید و بازار به حمایت نزدیک باشد، احتمال شکستن حمایت بیشتر میشود.
- استراتژی معاملاتی متناسب با خبر: بعضی معاملهگران قبل از انتشار خبر، از بازار خارج میشوند تا ریسک نکنند. برخی دیگر ترجیح میدهند منتظر بمانند و پس از انتشار داده و مشخص شدن جهت بازار وارد معامله شوند.
- مدیریت حجم و حد ضرر: در زمانهایی که احتمال نوسان شدید وجود دارد، بهتر است حجم معامله کمتر شود یا حد ضرر نزدیکتر قرار بگیرد.
- ثبت تجربهها: بهترین راه برای یادگیری استفاده از تقویم اقتصادی، تجربه شخصی است. بعد از هر رویداد مهم یادداشت کنید بازار چگونه واکنش نشان داد و استراتژی شما چقدر موفق بود.
تقویم اقتصادی را از کجا ببینیم؟
امروزه دهها وبسایت معتبر وجود دارد که تقویم اقتصادی رایگان و بهروزی ارائه میدهند. برخی از بهترین منابع عبارتاند از:
- Trading Economics: همه رویدادها، نرخ بهره، قیمتها و تورم، بازار کار، رشد تولید ناخالص داخلی، تجارت خارجی، دولت، اعتماد تجاری، احساسات مصرفکننده، بازار مسکن.
- Investing.com: تقویم اقتصادی همزمان با اعلام رویدادهای اقتصادی، شاخصها را دریافت کنید و تأثیر فوری آنها بر بازار جهانی را مشاهده کنید – از جمله رویدادهای قبلی، …
- Forex Factory: با تقویم اقتصادی فارکس محور، رویدادهای تأثیرگذار بر بازار را خیلی قبل از وقوع پیشبینی کنید.
- TradingView: تقویم اقتصادی آخرین و رویدادهای اقتصادی آینده را نشان میدهد که میتوانند بر داراییها، مناطق و بازارهای جهانی خاصی تأثیر بگذارند.
- FXStreet: تقویم اقتصادی لحظهای، رویدادها و شاخصهای اقتصادی سراسر جهان را پوشش میدهد.
- MyFxBook: تقویم اقتصادی به صورت آنی که تمام رویدادها و اطلاعیههای اقتصادی را پوشش میدهد. مقادیر تاریخی، قبلی، اجماعی و واقعی هر شاخص را مشاهده کنید.
همچنین بروکرهای فارکس هم معمولاً تقویم اقتصادی روی سایت خود دارند.
در انتها
تقویم اقتصادی مثل یک “برنامهریزی خبری” برای بازار است. اگر به آن توجه نکنید، ممکن است در لحظه انتشار اخبار مهم با حرکتهای ناگهانی و شدید قیمت غافلگیر شوید. استفاده درست از آن کمک میکند ریسک معاملات را مدیریت کنید و حتی فرصتهای سودآور پیدا کنید. در دنیایی که ثانیهها حرف اول را میزنند، اطلاع از آنچه در راه است، برگ برنده شماست. با استفاده منظم از این ابزار، دیگر از نوسانات ناگهانی غافلگیر نخواهید شد و میتوانید با اطمینان بیشتری برای آینده سرمایهگذاری خود برنامهریزی کنید.
به یاد داشته باشید، موفقیت در بازارهای مالی تنها به تحلیل نمودارها محدود نمیشود. تسلط بر اطلاعات و درک وقایع کلان اقتصادی، مکمل تحلیل تکنیکال است و شما را در مسیری قرار میدهد که به جای دنبال کردن بازار، آن را پیشبینی کنید. به همین خاطر توصیه میکنیم که از همین امروز، استفاده از تقویم اقتصادی را به یکی از عادتهای معاملاتی خود تبدیل کنید.
سودآوری و معامله گری بصورت مداوم در بازار می تواند بسیار چالش برانگیز باشد، و واقعیت مسلم این است که اکثر معامله گران خرد معمولا پول خود را در این بازار از دست می دهند. با این وجود، با یک برنامه معاملاتی جامع، ابزارهای مناسب و دانش کافی از بازار ارز، شانس موفقیت شما به عنوان یک معامله گر به میزان قابل توجهی افزایش می یابد.
آموزش
اندیکاتور ATR چیست و چه کاربردی در تحلیل تکنیکال دارد؟
منتشر شده
5 ماه پیشدر
شهریور 1, 1404توسط
روکو (Rocco)
بررسی دامنه تغییرات قیمت سهام یکی از موثرترین روشها برای اندازهگیری میزان نوسان قیمت است. برای تعیین دامنه تغییرات، کافی است بالاترین و پایینترین قیمت را در یک بازه زمانی معین مقایسه کنیم. در ادامه، به بررسی جزئیات بیشتری درباره اندیکاتور ATR، از جمله نحوه محاسبه آن، کاربردهای مختلف در معاملات و نکاتی برای استفاده بهینه در تحلیل تکنیکال میپردازیم. با اینوستورنت همراه باشید.
اندیکاتور ATR چیست؟
اندیکاتور ATR، مختصر کلمه (Average True Range) یا میانگین دامنه واقعی است. این اندیکاتور یکی از ابزارهای تحلیل تکنیکال است که برای اندازهگیری نوسانات بازار استفاده میشود. این اندیکاتور توسط ولز وایلدر (Welles Wilder) سال ۱۹۷۸ در کتابی با عنوان “مفاهیم جدید در سیستمهای معاملاتی تکنیکال” معرفی شد. ATR به معاملهگران کمک میکند تا نوسانات بازار را بهتر درک کنند و تصمیمات معاملاتی بهتری بگیرند.
اندیکاتور ATR نوسانات را به صورت مطلق اندازهگیری میکند و مقادیر حاصل از آن درصدی از قیمتهای فعلی نیستند. به عبارتی دیگر، ATR سهام با قیمت بالا، بیشتر از ATR سهام با قیمت پایین خواهد بود. به عنوان مثال، سهامی که قیمت آن در بازه ۵۰۰ تا ۶۰۰ هزار معامله میشود، ATR بالاتری نسبت به سهامی با بازه قیمتی ۵۰ تا ۶۰ هزار خواهد داشت. بنابراین، نمیتوان مقادیر ATR سهام مختلف را با یکدیگر مقایسه کرد.
نحوه محاسبه اندیکاتور ATR
محاسبه ATR شامل مراحلی است که به ترتیب زیر انجام میشود:
۱. محاسبه دامنه واقعی (True Range)
TR بزرگترین مقدار بین سه دسته زیر است:
اختلاف بین بالاترین (High) و پایینترین قیمت (Low) در دوره فعلی
تفاوت بین بالاترین قیمت دوره فعلی (High) و قیمت بسته شدن دوره قبلی (Previous Close)
تفاوت بین پایینترین قیمت دوره فعلی (Low) و قیمت بسته شدن دوره قبلی (Previous Close)
۲. میانگینگیری دامنه واقعی:
ATR با میانگینگیری دامنه واقعی (TR) در یک دوره مشخص محاسبه میشود. معمولاً این دوره ۱۴ روزه است، اما میتوان آن را بر اساس نیازهای خاص تنظیم کرد.

دوره های استاندارد برای محاسبه ATR
ولز وایلدر مخترع اندیکاتور ATR، محاسبه این اندیکاتور را با یک دوره زمانی ۱۴ روزه پیشنهاد کرده است. استفاده از این دوره استاندارد ۱۴ روزه باعث میشود که ATR نه بیش از حد حساس باشد و نه تغییرات مهم را از دست بدهد. اگرچه دوره ۱۴ روزه به عنوان یک استاندارد عمومی پذیرفته شده است، اما استفاده از دورههای کوتاهتر یا بلندتر نیز میتواند با توجه به عوامل مختلفی از جمله استراتژی معاملاتی، افق زمانی افراد و نوع بازار مفید باشد. مقدار ATR به دوره زمانی انتخابی حساس است و ممکن است در دورههای مختلف نتایج متفاوتی ارائه دهد.
کاربردهای ATR
اندیکاتور ATR کاربردهای متنوعی دارد که در ادامه به برخی از مهمترین آنها اشاره میشود:
۱. اندازهگیری نوسانات بازار
ATR به تحلیلگران کمک میکند تا نوسانات بازار را اندازهگیری کنند. مقادیر بالای ATR نشاندهنده نوسانات زیاد سهام و مقادیر پایین نشاندهنده نوسانات کم است. این اطلاعات میتوانند در تصمیمگیریهای معاملاتی کمک کنند.
۲. تعیین حد ضرر (Stop Loss)
یکی از کاربردهای مهم ATR تعیین حد سود و حد ضرر است. معاملهگران میتوانند از ATR برای تعیین فاصله مناسب حد ضرر استفاده کنند. زمانی که اندیکاتور ATR مقادیر بالاتری را نمایش میدهد، معاملهگران نوسانات قیمتی بیشتری را پیشبینی میکنند. در نتیجه، آنها معمولاً حد ضرر خود را با فاصله بیشتری از قیمت فعلی قرار میدهند تا از نوسانات شدید بازار در امان بمانند. برعکس، زمانی که ATR نشاندهنده نوسانات کمتری باشد، معاملهگران حد ضرر را نزدیکتر به قیمت فعلی تعیین میکنند تا از حرکات قیمتی کوچک نیز بهرهبرداری کنند.
«خروج شاندلیر» (Chandelier Exit) یکی از تکنیکهای مشهور است که توسط «چاک لبو» (Chuck LeBeau) ابداع شده است. این روش یک تکنیک مبتنی بر ATR است که محدوده حد ضرر را برای موقعیتهای معاملاتی خرید و فروش تعیین میکند.
محدودیتهای اندیکاتور ATR
دو محدودیت اصلی برای استفاده از اندیکاتور ATR وجود دارد که معاملهگران باید به آنها توجه داشته باشند.
۱. محدودیت اول، متفاوت بودن تفسیر نتایج ATR است. هر معاملهگری ممکن است برداشت متفاوتی از نتایج این اندیکاتور داشته باشد.
۲. محدودیت دوم این است که اندیکاتور ATR جهت قیمت را مورد بررسی قرار نمیدهد و تنها به اندازهگیری نوسانات میپردازد. به همین دلیل، ممکن است معاملهگر حرکتهای متفاوتی را از بازار دریافت کند، به خصوص زمانی که پیوتها در حال شکلگیری هستند یا روندها معکوس میشوند.
برای مثال، اگر قیمت حرکت چشمگیری برخلاف روند قبلی داشته باشد و اندیکاتور ATR نیز به میزان قابلتوجهی افزایش یابد، برخی معاملهگران ممکن است تصور کنند که ATR روند قبلی را تأیید میکند، در حالی که این برداشت ممکن است نادرست باشد.
اندیکاتور ATR یکی از ابزارهای مهم و کاربردی در تحلیل تکنیکال است که به معاملهگران کمک میکند تا نوسانات بازار را بهتر درک کنند و تصمیمات معاملاتی بهتری بگیرند. با توجه به مزایا و کاربردهای متعدد ATR، این اندیکاتور میتواند نقش مهمی در استراتژیهای معاملاتی ایفا کند. با این حال، معاملهگران باید به محدودیتهای آن نیز توجه کنند و از ATR در کنار سایر ابزارهای تحلیل تکنیکال استفاده کنند تا به نتایج دقیقتری دست یابند.

استارک ور (StarkWare) تأیید کل تاریخچه بلاکچین با ۱ مگابایت حجم ممکن ساخت!

تقویم اقتصادی (Economic Calendar) چیست و چگونه از آن استفاده کنیم؟

ارتقای آلپنگلو (Alpenglow) در سولانا تأیید شد؛ تراکنشها بزودی با سرعت اینترنت نهایی میشوند

تراست ولت امکان معامله سهام های توکنیزه (RWA) را برای کاربران فعال کرد

اندیکاتور ATR چیست و چه کاربردی در تحلیل تکنیکال دارد؟

۹ عادت مالی که افراد منظم را به ثبات و آزادی مالی میرساند

کاناری کپیتال برای ETF اینجکتیو (INJ) ثبتنام کرد

کاردینال؛ اولین پروتکل دیفای بیت کوین بر بستر کاردانو

هر اونس چند گرم طلای ۱۸ عیار است؟ تبدیل ساده انس به گرم طلا

آیا تحلیل تکنیکال بهتنهایی در بازار رمز ارزها سودآور است؟

کوینبیس توکن اتنا (ENA) را به رودمپ خود اضافه کرد

در ۲ ماه اخیر بیش از ۱۰٪ پروژهها ناپدید شدهاند!

سریال پول به زبان ساده (Money, Explained) قسمت پنجم (آخر)

سریال پول به زبان ساده (Money, Explained) قسمت چهارم

سریال پول به زبان ساده (Money, Explained) قسمت سوم

سریال پول به زبان ساده (Money, Explained) قسمت دوم

سریال پول به زبان ساده (Money, Explained) قسمت اول

مستند دیپ وب (Deep Web) 2015

مستند شغل داخلی (Inside Job) بحران مالی

مارجین کال (Margin Call)

فیلم بازیکن شماره یک آماده (Ready Player One)

فیلم مرد آزاد (Free Guy)
![مستند کریپتوپیا [Cryptopia]، بیت کوین، بلاکچین و آینده اینترنت](https://investorent.xyz/wp-content/uploads/مستند-کریپتوپیا-Cryptopia-80x80.webp)
مستند کریپتوپیا (Cryptopia)


برای ارسال نظر باید وارد شوید ورود