با ما همراه باشید

آموزش

ماشین مجازی اتریوم (Ethereum Virtual Machine)؛ EVM چیست؟

ماشین مجازی اتریوم (Ethereum Virtual Machine)، یکی از اصلی ترین المان ها در ساختار شبکه اتریوم بوده و بخشی است که اسمارت کانترکت ها را پیاده سازی و اجرا می کند. ماشین مجازی اتریوم (EVM) عملکردی شبیه به یک پردازنده جهانی یا کامپیوتری را دارد که قدرت محاسباتی کلی خود را در اختیار توسعه دهندگان قرار می دهد.

منتشر شده

در

ماشین مجازی اتریوم (Ethereum Virtual Machine)؛ EVM چیست؟

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

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

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

ماشین مجازی اتریوم، یکی از اصلی ترین المان ها در ساختار شبکه اتریوم بوده و بخشی است که اسمارت کانترکت ها را پیاده سازی و اجرا می کند.

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

What is EVM? Ethereum Virtual Machine
What is EVM? Ethereum Virtual Machine

ماشین های مجازی در واقع ماشین هایی هستند که سطح بالاتری از دریافت مفهوم را در مقایسه با سیستم عامل های رایج دارند.

ماشین های مجازی (Virtual Machines) یا VM‌ ها به صورت مبتنی بر سیستم های عامل ساخته شده اند، تا عملکرد مشابهی نسبت به یک ماشین محاسباتی فیزیکی (CPU) داشته باشند. به عبارت دیگر‌ ماشین های مجازی به صورت تقریبی، قدرت محاسباتی ماشین های فیزیکی را با استفاده از معماری مجازی شبیه سازی می کنند. این ماشین ها در بسیاری از سیستم عامل ها و سخت افزار‌های گوناگون قابل اجرا هستند و همین امر آن ها را به یک موتور کامل متناسب برای اکوسیستم غیرمتمرکز تبدیل می کند.

ماشین های مجازی به خاطر نحوه توسعه شان برای وظایف مختلف، دارای قابلیت های متفاوتی هستند. مثلا، ماشین های مجازی نظیر Virtual Box به طور کامل سخت افزارهای کامپیوتری را شبیه سازی کرده و اجازه اجرای هر سیستم عاملی را به شما می دهند. یا مثلا دیگر ماشین های مجازی مانند Java Virtual Machine فقط عملکرد پردازنده و برخی از موارد مربوط به حافظه را شبیه سازی می کنند.

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

از این نقطه نظر‌، ماشین مجازی اتریوم (Ethereum Virtual Machine) عملکردی شبیه به یک پردازنده جهانی یا کامپیوتری را دارد که قدرت محاسباتی کلی خود را در اختیار توسعه دهندگان قرار می دهد. توسعه دهندگان نیز در مقابل، از این منبع برای نوشتن قرارداد‌های هوشمند (Smart contracts) و برنامه های غیرمتمرکز (DApp‌s) استفاده می کنند.

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

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

فرض کنید که یک توسعه دهنده Dapp هستید و یک برنامه روی یک بلاکچین (Blockchain) عمومی راه اندازی کرده اید و اکنون می خواهید Dapp خود را به دیگر شبکه ها نیز گسترش دهید تا فرصت های بیشتری برای جذب کاربران بیابید؛ اینجاست که ماشین های مجازی وارد می شوند. VM ها به توسعه دهندگان کمک می کنند تا به سرعت برنامه های غیرمتمرکز خود را روی شبکه های مختلف توسعه دهند.

EVM architecture

برای درک بهتر مفهوم ماشین مجازی اتریوم، بهتر است درباره نحوه کار برنامه های کامپیوتری صحبت کنیم. تمام این برنامه ها به یک زبان برنامه نویسی نظیر جاوا یا ++C نوشته می شوند. با این حال، از آنجایی که CPU ها قادر به خواندن زبان جاوا یا ++C نیستند، این کدها کامپایل و به بایت کد (Bytecode) ترجمه می شوند.

اتریوم یک ماشین فیزیکی نیست، اما یک شبکه جهانی توزیع شده به همراه چندین ماشین های فیزیکی (CPU) است که به صورت همزمان کار می کنند. با این حال، EVM به عنوان یک CPU مجازی یا ماشین مجازی در حال اجرا داخل برنامه GO Ethereum یا “Geth” عمل می کند.

مشابه دیگر برنامه های نرم افزاری، توسعه دهندگان اتریوم نیز با استفاده از یک زبان برنامه نویسی خاص به ساخت دی اپ (DApps) یا قرارداد هوشمند می پردازند. فقط اینکه همانطور که گفتیم به جای جاوا یا ++C، زبان برنامه نویسی اتریوم سالیدیتی نام دارد. با اجرای یک اسمارت کانترکت، هر نود یک کپی از آن را دریافت، بایت کد آن را اجرا و این کد را به هرکسی که استقرار قرارداد آن را فرا خوانده است، می دهد که در نهایت، باعث تغییر وضعیت می شود. این یعنی وضعیت فعلی بلاکچین تغییر می یابد، که البته تنها در صورت اجماع تمام نودها قابل دستیابی است. به همین خاطر، معمولا به EVM ماشین وضعیت توزیع شده نیز می گویند. این ماشین با تغییر هر تراکنش وضعیت بلاکچین را ردیابی می کند.

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

Ethereum Virtual Machine -P2P

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

یکی از بهترین راه های مقیاس پذیری یک شبکه غیرمتمرکز، استفاده از ماشین های مجازی (EV) است. این ماشین های مجازی با فعالیت به عنوان یک لایه واصل بین ماشین های کدهای اجراکننده شان، قادر به اجرا روی سخت افزارها و سیستم عامل های مختلف از هر جای جهان هستند.

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

Ethereum Virtual Machine (EVM)

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

در این حالت، هر نود در شبکه اتریوم باید برای اجرای دستورالعمل های مشابه با نود بعدی به توافق برسد. این امر ماشین مجازی اتریوم را به یک تورینگ کامل (Turing Complete) تبدیل می کند که قابلیت اجرای گام های منطقی برای عملکردهای محاسباتی را برای آن فراهم می سازد. حالا برای هر دستورالعمل پیاده سازی شده توسط ماشین مجازی اتریوم، هزینه ای به آن تخصیص داده می شود که اجازه پیگیری هزینه های اجرا را به این سیستم می دهد. هزینه انجام تراکنش های رمز ارزی در EVM و اجرای دیگر دستورالعمل ها، به صورت واحدهای سازگار با این ماشین مجازی به نام گس (Gas) اندازه گیری می شود.

بنابراین، با فراهم آوری یک اقتصاد مبتنی بر هزینه های دستورالعمل های اجرا شده به جای تراکنش های مالی اجرایی، مشابه بیت کوین، یک کامل بودن تورینگ (Turing Completeness) حاصل می شود. این مفهوم یعنی ماشین مجازی اتریوم (Ethereum Virtual Machine) یک کامپیوتر بزرگ همتا به همتای متصل از کامپیوترها در سراسر جهان است که می تواند قراردادهای هوشمند، رویدادهای جمع آوری سرمایه جمعی P2P، به اشتراک گذاری فایل و موارد بسیار دیگر را بسازد.

هنگام پاسخ دادن به سوال ماشین مجازی اتریوم چیست، با عبارتی تحت عنوان تورینگ کامل (Turing Complete) مواجه می شویم. ماشین مجازی اتریوم نیز یک تورینگ کامل است.

تورینگ کامل به ماشینی اشاره دارد که با داشتن زمان و حافظه کافی همراه با دستورالعمل های لازم، می تواند هر مشکل محاسباتی را (صرف نظر از اینکه چقدر پیچیده باشد) حل کند. حتی ماشین حساب های مهندسی که قابلیت برنامه ریزی دارند نیز نوعی ماشین تورینگ محسوب می شوند.

فرض کنید برنامه ای وجود دارد که ۱۰ عدد را بر می دارد و آن ها را با هم جمع می کند. یک ماشین تورینگ کامل به راحتی می تواند این برنامه را اجرا کند؛ اما فرض کنید که به هر دلیلی، این ماشین نتواند برنامه را اجرا کند یا به صورت چرخه (Loop) محاسبات را انجام دهد. به این ماشین ها تورینگ ناقص (Turing Incomplete) می گویند.

زبان های برنامه نویسی نیز نوعی سیستم تورینگ هستند و بیشتر زبان های مدرن مثل جاوا، جاوا اسکریپت، Perl، پایتون، سالیدیتی و غیره تورینگ کامل هستند؛ زیرا می توان با آن ها برنامه هایی نوشت که محاسبات مختلفی را انجام دهند. حتی این سیستم ها می توانند داده ها را در حافظه خود ذخیره کنند و درباره نحوه محاسبه تصمیم بگیرند.

Universal Turing Machine
Universal Turing Machine

طرح کلی این مفهوم توسط دانشمند کامپیوتری به نام آلن تورینگ (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 نیز دسترسی کامل دارند.

قرارداد هوشمند (Smart Contract)

این اسمارت کانترکت ها در بستر بلاکچین کار می کنند و غیرقابل تغییر و شفاف هستند. با توجه به اینکه قراردادهای هوشمند غیرقابل تغییر هستند و به واسطه چندین نود و بدون هیچگونه دستکاری اجرا می شوند‌، ماشین مجازی اتریوم (Ethereum Virtual Machine) از ویژگی های زیر برخوردار است.

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

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

  • ماشین های مجازی (VM)
  • محفظه های داکر (Docker)

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

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

در بستر اتریوم، مفهومی به نام گس (Gas) وجود دارد که برای تراکم شبکه مورد استفاده قرار می گیرد (هرچه مقدار گس بیشتر باشد، یعنی شبکه شلوغ تر است). همچنین گس یکی از مکانیزم های انگیزشی مورد استفاده در این شبکه نیز محسوب می شود و برای ایجاد اولویت در انجام تراکنش ها کاربرد دارد (هرچه مقدار گس بالاتر باشد، تراکنش زودتر تایید می شود).

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

برنامه غیرمتمرکز (DApp) چیست؟

برنامه غیر متمرکز (Decentralized Application) یا دی اپ (DApp) رابط های کاربری هستند که اجازه تعامل با قراردادهای هوشمند در شبکه اتریوم را به شما می دهند. این اپلیکیشن ها در واقع مشابه برنامه های نصب شده روی گوشی هوشمند یا اپ های تحت وب باز روی مرورگر شما هستند، با این تفاوت که به جای یک سرور مرکزی، داده ها را با یک شبکه بلاکچینی تبادل کرده و از اسمارت کانترکت ها برای پردازش داده و مدیریت عملیات استفاده می کنند.

Apps VS DApps

اپلیکیشن ها یا همان برنامه های غیرمتمرکز می توانند عملکردی مشابه برنامه های مرسوم داشته و در عین حال، از مزایای تمرکززدایی نظیر شفافیت، دسترسی آزاد، آپ تایم دائمی و مقاومت در برابر سانسور نیز بهره مند شوند.

با این وجود، شایان ذکر است که با وجود بلوغ و پیشرفته بودن خود فناوری بلاکچین اتریوم و ماشین مجازی 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) هستند تا کاربران از مزیت کارمزدهای پایین و سرعت بالای تراکنش ها بهره مند شوند.

Ewasm - Where We Are and Where We Are Going

ماژول SSVM یک ماشین مجازی تحت استاندارد Ethereum-flavored WebAssembly یا به طور خلاصه EWASM، یک جزء کلیدی زیرساخت برای بلاکچین های عمومی است. تمامی اپلیکیشن ها فعلی و آتی اتریوم نیز قادر به اجرا روی ماشین مجازی Ewasm پارا استیت هستند. به عبارت دیگر، توسعه دهندگان  ی‌توانند اسمارت کانترکت های سازگار با اتریوم را نوشته و آن ها را روی یک سیستم ساب استریت هم تعاملی پرسرعت و مقیاس پذیر اجرا کنند.

بنابراین توسعه دهندگان با پیاده سازی WebAssembly به عنوان راه حل محوری فناوری خود، قادر به نگارش کدها به بیش از ۲۰ زبان برنامه نویسی از جمله پراستفاده ترین زبان ها برای پیاده سازی نسل سوم وب (Web 3.0) هستند.

روت استاک (Rootstock) یا به طور خلاصه RSK که روی بلاکچین بیت کوین ساخته شده است، به توسعه دهندگان اجازه می دهد تا کدهای قرارداد هوشمند خود برای دی اپ ها را روی اتریوم بنویسند.

ماشین مجازی RSK مسئول فعال سازی عملکرد اسمارت کانترکت هاست و سازگاری بالایی با EVM یعنی ماشین مجازی اتریوم دارد. این ماشین مجازی یک تورینگ کامل است و به طور متوسط تراکنش های قراردادهای هوشمند را زیر ۳۰ ثانیه تایید می کند.

RSK (Rootstock) – Smart Contracts on Bitcoin
RSK (Rootstock) – Smart Contracts on Bitcoin

به لطف سازگاری RSK با EVM، امکان انتقال قراردادهای هوشمند اتریوم به RSK با کمترین زحمت برای بهره مندی از قابلیت های فنی این ماشین مجازی (تا ۳۰۰ تراکنش در ثانیه) و امنیت شبکه بیت کوین وجود دارد.

در آینده، RSK به دنبال پشتیبانی از ماشین های مجازی بیشتر با عملکرد بهتر مبتنی بر بایت کدهای جاوا یا Wasm است. با حضور این بهبودها، و موازی سازی عملیات، این ماشین مجازی جدید قادر به اجرای وظایف به صورت موازی و قالب کد سریع تر و بهینه تر و در نتیجه، بهبود مقیاس پذیری و امنیت است.

این پروژه (NEO) از سال ۲۰۱۷ تا کنون بر پشتیبانی از قراردادهای هوشمند و دی اپ های مرتبط با انتقال دارایی های دیجیتال و اعتبارسنجی هویت دیجیتال متمرکز بوده است. نئو ۳.۰ Neo (N3) آخرین به روز رسانی این شبکه برای اتصال دیجیتال هویت ها، قراردادها و دارایی ها از طریق مدل قیمت گذاری به روز و اوراکل های داخلی دارای پشتیبانی اسمارت کانترکت های جدید از طریق ماشین مجازی نئو است.

این ماشین مجازی به بهبودهایی تجهیز شده که عملکرد، کاربرد و قابلیت های توسعه در شبکه نئو را افزایش داده و باعث ساده سازی هرچه بیشتر معماری فنی و برخی از ویژگی های نوآورانه نظیر NeoFS و NeoID شده است.

ماشین مجازی نئو برای پشتیبانی از تعامل متقابل و دیگر زنجیره ها برای حل چالش های دنیای واقعی طراحی مجدد شد. از طریق NeoVM، قراردادهای هوشمند پشتیبانی توسعه کافی را برای مهندسان سازنده برنامه های غیرمتمرکز در اکوسیستم نئو فراهم کرده اند.

NeoVM architecture
The NeoVM architecture is mainly composed of the execution engine, stack, and interoperation service layer

قرارداهای نئو به نام (NeoContract)، با استفاده از زبان های برنامه نویسی محبوب نظیر استانداردهای صنعت همچون پایتون، جاوا، ++C و جاوا اسکریپت، توانایی اجرا و مدیریت قراردادهای هوشمند را دارد. این یعنی تقریبا تمامی توسعه دهندگان قادر به استفاده از این سیستم هستند.

نئو وی ام (NeoVM) یک ماشین مجازی استک محور است. علاوه بر این، NeoVM اسمارت کانترکت ها را در فایل های بایت کد متحد الشکل NVM کامپایل می کند که سپس دی کد و توسط ماشین مجازی مربوطه اجرا می شوند. معماری ماشین مجازی نئو (NeoVM) را می توان در تصویر بالا مشاهده کرد.

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

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

TEAL Architecture Overview
TEAL Architecture Overview

نسخه پیشرفته AVM، یعنی آپدیت پروتکل لایه ۱ که جهت بهبود مقیاس پذیری برنامه های غیر متمرکز برای توسعه دهندگان و سازمان ها طراحی شده، اخیرا با هدف افزایش سرعت تراکنش ها عرضه شده است.

الگوراند امیدوار است تا با این ماشین مجازی جدید، توسعه دهندگان قادر به نگارش قراردادهای هوشمند به زبان پایتون یا ریچ (Reach)، زبانی ساده شبیه به جاوا اسکریپت، باشند.

از آنجایی که تعامل پذیری با ماشین مجازی اتریوم (Ethereum Virtual Machine) در اکوسیتم ماشین های مجازی امری ضروری است، ماشین مجازی الگوراند نیز امکان نگارش اسمارت کانترکت ها با زبان های تورینگ کامل را فراهم کرده است.

کدام شبکه ها با ماشین مجازی اتریوم (EVM) سازگار هستند؟

به بیانی بسیار ساده، شبکه هایی که در کیف پول متامسک (MetaMask) اضافه می شوند و آدرس آن ها با 0x شروع می شود، با ‌EVM سازگار هستند.

پروژه های بسیاری وجود دارند که کاملا روی ماشین مجازی اتریوم راه اندازی شده اند و به صورت لایه یک (Layer 1) فعالیت می کنند. می توان گفت که کدهای این بلاکچین ها فورکی از کدهای اتریوم است.  یکی از بهترین نمونه های این شبکه ها، زنجیره بی ان بی (BNB Chain) است. برخی دیگر از شبکه های سازگار با EVM نیز وجود دارند که به صورت لایه یک فعالیت می کنند و فورک اتریوم نیستند.

شبکه های لایه دو نیز وجود دارند که راهکارهایی برای افزایش مقیاس پذیری شبکه اتریوم هستند. یک نمونه از این بلاکچین ها، پالیگان (Polygon) است، که از سایدچین ها یا زنجیره های جانبی برای محاسبات آف چین استفاده می کند.

در کنار این شبکه ها، برخی بلاکچین ها با الگوریتم گواه اثبات سهام نیابتی (dPoS) فعالیت می کنند. همچنین شبکه هایی با الگوریتم گواه اثبات خودمختاری (Proof of Autonomy) که به آن زنجیره باثبات یا Stable Chain می گویند، کار می کنند و با ماشین مجازی اتریوم سازگاری دارند (مانند xDAI Chain).

تمام این شبکه های سازگار با ماشین مجازی اتریوم، کارمزد کمتر و سرعت بیشتری نسبت به اتریوم دارند. برخی از معروف ترین شبکه ها (صرف نظر از نوع الگوریتم اجماع و نحوه کارکرد) در زیر آورده شده اند.

Top 50 EVM compatible networks map

عبارت (EVM compatible) به معنای سازگاری با ماشین مجازی اتریوم است و به شبکه هایی اشاره دارد که از این ماشین مجازی استفاده می کنند. آدرس های این شبکه ها دقیقا مطابق با استانداردهای اتریوم است.

در انتها

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

آموزش

بروکر (Broker) چیست؟ انواع کارگزار معاملاتی و تفاوت آن ها با صرافی

بروکر که در زبان فارسی به آن کارگزاری می گویند، یک شخص یا شرکتی است که از طرف مشتریان خود مجاز به خرید و فروش سهام یا انجام سایر سرمایه گذاری های مالی باشد.

منتشر شده

در

بروکر (Broker) چیست؟ انواع کارگزار معاملاتی و تفاوت آن ها با صرافی

یکی از مشکلات اصلی کاربران ایرانی بازار فارکس (Forex)، به ویژه کسانی که به تازگی وارد این بازار مالی شده اند، انتخاب بروکر یا کارگزاری معتبر و مناسب است. به طور کلی بروکرها در انواع مختلف همچون کارگزاری های سرمایه گذاری، کارگزاری های املاک و مستغلات و کارگزاری های بیمه، خدمات متفاوتی را به مشتریان ارائه می دهند. صرف نظر از نوع بروکر و صنعت مرتبط با آن، به فرد یا شرکتی که به عنوان یک واسطه بین دو طرف معامله عمل کند، بروکر (Broker) می گویند. در این مطلب سعی کرده ایم به زبان ساده در پاسخ به سؤالات بروکر چیست؟ معیار انتخاب آن برای ایرانیان چیست و چه بروکرهایی برای ایرانیان مناسب است؟ توضیحاتی را ارائه دهیم؛ پس تا پایان همراه ما باشید.

مفهوم بروکر (Broker)

بروکر که در زبان فارسی به آن کارگزاری می گویند، یک شخص یا شرکتی است که از طرف مشتریان خود مجاز به خرید و فروش سهام یا انجام سایر سرمایه گذاری های مالی باشد.

در واقع بروکرها به عنوان یک واسطه انجام معاملات مالی را میان فروشندگان، خریداران و انواع بازارهای مالی؛ مانند اوراق بهادار و فارکس تسهیل می کنند. بروکرها تضمین کننده درست انجام شدن معاملات هستند و اطلاعات لازم را در اختیار طرفین معامله قرار می دهند.

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

role broker seller-buyer

بروکر رگوله‌ شده (Regulated broker) چیست؟

اغلب بروکرها با دریافت مجوزهای لازم فعالیت قانونی داشته و تحت نظر نهادهای دولتی فعالیت می کنند. به این گروه از بروکرهای قانون گذاری شده و تحت نظارت بروکرهای رگوله (Regulated broker) گفته می شود. از آنجایی که بروکرهای رگوله از مقررات خاصی پیروی کرده و قانونمند هستند، کاربران آن ها می توانند با خیال آسوده به انجام معاملات بپردازند.

بروکرها چگونه کسب درآمد می ‌کنند؟

بروکرها برای انجام هر معامله خرید یا فروش، مقداری پول به عنوان کمیسیون (Commission) و یا اسپرد (Spread) اخذ می کنند. درآمد بروکرهای فارکس از این طریق بدست می آید.

معامله گران با ثبت هر سفارش خرید یا فروش، مبلغی را به عنوان کارمزد معامله به بروکر پرداخت می کنند. در واقع این روش درآمدزایی اغلب در شرکت های کارگزاری که سرویس های کاملی را ارائه می دهند (Full-service brokerage firm) دیده می شود.

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

  • کسب سود از طریق مبالغ نقدی موجود در حساب کاربران

بسیاری از سرمایه گذاران مبالغ اندکی را در حساب های بروکر خود نگهداری می کنند. بروکرها این مبالغ را به یک حساب سپرده انتقال می دهند. بخش کوچکی از این سود به حساب کاربران واریز شده و بخش اعظم آن را بروکرها برداشت می کنند.

  • فروش معاملات به مارکت میکرها (Market Makers)

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

  • هزینه های مشاوره

برخی از بروکرهایی که دارای مجوزهای لازم مشاوره مالی هستند؛ در ازای ارائه مشاوره های حرفه ای مبالغی را از مشتریان دریافت می کنند. به عنوان مثال، کاربران می توانند در مورد خرید و فروش یک سهام خاص از مشاوران مالی راهنمایی بگیرند.

  • هزینه های مربوط به اسپردها

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

معرفی انواع بروکرها

بسیاری از افراد بروکرها را تنها به بازار سرمایه و بورس مرتبط می دانند، اما جالب است بدانید که بسیاری از صنایع دیگر نیز جهت تسهیل و تضمین معاملات خود، به کارگزاری ها متکی هستند. در ادامه لیستی از انواع بروکرها آورده شده است.

  • بروکرهای حوزه سرمایه گذاری
  • بروکرهای حوزه بورس
  • بروکرهای فارکس
  • Broker-dealer
  • Prime Broker
  • برورکرهای حوزه املاک و مستغلات
  • Options Broker
  • بروکرهای حوزه کالا
  • بروکرهای حوزه بیمه
  • Information (data) broker
  • Ship broker
  • Mortagage broker

بروکر در بازار فارکس (Forex Broker)

بروکر فارکس بستری برای خرید و فروش انواع ارزها و کالاهای موجود در بازار فارکس است. بروکر فارکس نیز درست مانند موارد قبلی، واسطه ای میان خریداران و فروشندگان بازار است. به این ترتیب خریداران و فروشندگان ارزها و کالاهای ارائه شده در بازار فارکس، برای انجام معاملات از طریق یک بروکر تأیید شده اقدام می کنند. در نهایت لازم به ذکر است که تنها راه ورود به بازار فارکس عضویت در یک بروکر معتبر است.

درست مانند سایر بازارهای مالی همچون رمز ارزها (Cryptocurrencies) و بورس اوراق بهادار ورود و فعالیت در بازار فارکس نیز نیازمند استفاده از یک بستر شخص ثالث است. در نتیجه بدون ثبت نام در یک کارگزاری تأیید شده و معتبر امکان معامله در بازار فارکس وجود نخواهد داشت. در واقع با نمایش قیمت ها و سفارشات خرید و فروش در بروکرهای فارکس معامله گران تنها از طریق بروکرها می توانند به این اطاعات دسترسی پیدا کنند.

ویژگی های یک بروکر مناسب

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

چگونه می توان یک بروکر مناسب انتخاب کرد؟

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

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

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

بررسی تفاوت بروکر (Broker) و صرافی (Exchange)

ممکن است درک تفاوت بروکر و صرافی برای برخی افراد گیج کننده باشد. به ویژه از زمانی که صرافی ها و بروکرها ویژگی های یکدیگر را به لیست خدمات خود اضافه کردند. به عنوان مثال معاملات مارجین (Margin Trading) یکی از خدمات اصلی بروکرها است که امروزه توسط صرافی های رمز ارزی (Crypto Exchanges) نیز ارائه می شود.

صرافی های معاملاتی نیز مانند بروکرها به عنوان یک پلتفرم شخص ثالث قابل اعتماد؛ خریداران و فروشندگان دارایی ها را به یکدیگر متصل می کنند. صرافی ها در انواع مختلف پلتفرم های متمرکز (CEX) و غیرمتمرکز (DEX) فعالیت کرده و اغلب شاهد حضور آن ها در حوزه رمز ارزها هستیم.

broker exchange

تفاوتی که میان بروکرها و صرافی ها وجود دارد این است که در صرافی ها دارایی A با دارایی B مبادله می شود. معمولاً سفارشات خرید و فروش کاربران صرافی، در یک لیست تحت عنوان دفتر سفارشات (Order Book) ثبت و نگهداری می شود. در نهایت سفارشات خرید و فروشی که با یکدیگر مطابقت داشته باشند، نهایی و اجرا می شوند.

بررسی تفاوت بروکر (Broker) و بروکریج (Brokerage)

در زبان فارسی دو عبارت بروکر (Broker) و بروکریج (Brokerage) به کارگزاری معنا می شوند. اما این دو عبارت در زبان انگلیسی با یکدیگر تفاوت دارند، اما سؤالی که مطرح می شود آن است که تفاوت این دو در چیست؟

  • بروکر (Broker): به کارگزاری گفته می شود که کاربران در بستر آن، تنها امکان اجرای معاملات و مدیریت سبدهای سرمایه گذاری خود را دارند.
  • بروکریج (Brokerage): اما این نوع کارگزاری علاوه بر ارائه خدمات معمول، خدماتی با ارزش افزوده همچون تحقیقات بازار، مشاوره سرمایه گذاری و توصیه های معاملاتی را نیز در اختیار کاربران خود قرار می دهند. همچنین ممکن است برخی از بروکریج ها دارای خدمات متنوع تری همچون سرویس های نقدینگی، یک واحد کارگزاری اصلی (Prime brokerage unit) و یک تیم داخلی توسعه فناوری نیز باشند.

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

  • بسیاری از بروکرهای امروزی از انواع بروکرهای تخفیفی بوده و به دنبال کاهش هزینه ها، ارائه ابزارهای معاملاتی و منابع آموزشی هستند.
  • Robo-Advisor ها از بروکرهای تخفیفی یا شرکت های فین تک هستند که خدماتی همچون مشاوره های معاملاتی الگوریتمی و مدیریت پورتفولیو را به کاربران خود ارائه می دهند.
  • بروکرهای Full Service نیز از انواع بروکرهای سنتی و قدیمی هستند. این نوع بروکرها خدماتی همچون مدیریت و نظارت بر حساب های مالی را از طریق نیروی انسانی انجام داده و نسبت به انواع دیگر بروکرها پرهزینه هستند.

تفاوت بروکر Discount و Full-service

  • بروکرهای تخفیفی (Discount): این نوع از بروکرها، می توانند از طرف مشتریان خود انواع معاملات را اجرا و ثبت کنند. بروکرهای تخفیفی، نسبت به بروکرهای فول سرویس، در ازای هر معامله کارمزد کمتری را دریافت می کنند. همچنین در مواردی این بروکرها به جای دریافت کمیسیون حقوق ثابت دریافت می کنند. اکثر بروکرهای تخفیفی به صورت آنلاین از طریق پلتفرم های معاملاتی خدمات خود را ارائه می دهند. در این بروکرها مشاوره های مالی ارائه نشده و از سرمایه گذاران خودگردان (Self-directed investors) نیز هیچگونه کمسیونی دریافت نمی شود.
  • بروکرهای فول سرویس (Full-Service): همانطور که از نامش مشخص است، در این گروه از بروکرها خدمات کاملی به مشتریان ارائه می شود. این خدمات شامل تحقیقات بازار، مشاوره های سرمایه گذاری، برنامه ریزی بازنشستگی، طیف وسیعی از محصولات سرمایه گذاری و… می شود. طبیعتاً کاربرانی که بخواهند به این خدمات دسترسی داشته باشند باید در ازای آن کمسیون بالاتری پرداخت کنند.

مراحل شروع معامله گری در بازار فارکس

۱. انتخاب بروکر

شما در مرحله اول باید بروکر مورد نظر خودتان را در مقایسه با معیارهای ذکرشده در قسمت بالا انتخاب کنید.

۲. ثبت نام و احراز هویت

 مرحله بعد از انتخاب بروکر (Broker)، ثبت نام و احراز هویت در آن است. هنگامی که تمامی مراحل افتتاح حساب را گذراندید، نوبت به ارسال مدارک برای وریفای شدن حسابتان می رسد. بر.کر ها برای مقابله با پول شویی تنها در صورتی به شما خدمات خواهند داد که تصویر مدارک واقعی خود را ارسال کنید و این مدارک با مشخصاتی که زمان ثبت نام وارد کرده اید همخوانی داشته باشند.

بعضی بروکرها بلافاصله بعد از افتتاح حساب به شما اجازه معامله کردن می دهند؛ حتی اگر مدارک خود را ارسال نکرده باشید، اما زمان برداشت اصل پول یا سودتان حتماً باید مدارک خود را ارسال کنید و حسابتان تأیید و فعال شود. کارگزاری ها معمولاً روش های مشابهی دارند و اگر یکبار در یک کارگزار حساب افتتاح کنید، این روند را به صورت کامل یاد خواهید گرفت.

معمولاً بروکرهایی که با ایران کار می کنند تصویر کارت ملی و شناسنامه یا گذرنامه را برای احراز هویت می پذیرند. به ندرت بروکرها ترجمه مدارک را از شما می خواهند، اما در صورت نیاز می توانید از بخش انگلیسی پاسپورت خود استفاده کنید. بخش دیگر احراز هویت، تصویر مدرکی برای احراز آدرس شماست.

معمولاً یک قبض خدماتی مثل آب یا گاز یا برق یا غیره برای این امر کفایت می کند؛ قبضی که آدرس شما در آن درج شده و نباید بیش از ۶ ماه از صدور آن گذشته باشد. اگر قبض خدماتی در دسترستان نیست، می توانید از بانک پرینت حساب خود را که آدرستان در آن درج شده بگیرید و تصویر آن را برای کارگزار بفرستید، اما به صورت کلی بروکرها سخت گیری چندانی روی این امر ندارند.

۳. دریافت نرم افزار معاملات

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

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

۴. شارژ حساب برای انجام معاملات

برای شروع معامله شما باید سرمایه مورد نظر خود را به حساب بروکر واریز کنید. امکان واریز وجه در شرایط مختلفی وجود دارد که مهترین آن ها پرداخت ریالی، تتری (USDT)، مستر/ ویزا کارت است.

۵. برداشت سود

بسیاری از ایرانیان فکر می کنند به دلیل اینکه فارکس بازاری بین المللی است و ایران هم تحت تحریم های بانکی قرار دارد، نمی توان به راحتی در آن معامله کرد؛ درحالیکه این تصور غلط است و معامله گری در فارکس انجام می شود و افراد هم به راحتی می توانند از حساب خود در فارکس پول برداشت کنند. پرکاربردترین این فرایندها، انتقال بانکی، انتقال به کیف پول و برداشت از طریق تاپ چنج (TC-PAY) هستند.

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

در انتها

سعی کردیم شما را با مفهوم بروکر (Broker) و فعالیتی که کارگزاری ها انجام می دهند، آشنا کنیم. همانطور که اشاره کردیم، بروکر یا کارگزاری واسطه ای برای انجام معاملات است که نرخ بازارهای مختلف را به مشتریان خود نمایش می دهد و سفارش های آن ها را اعم از خرید یا فروش انجام می دهد.

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

در میان بروکرهای معتبر بروکرهای آلپاری، لایت فارکس و روبوفارکس می توانند گزینه مناسبی برای ایرانیان باشند.

ادامه مطلب

آموزش

اندیکاتور جریان نقدینگی چایکین (Chaikin Money Flow)

اندیکاتور جریان نقدینگی چایکین (Chaikin Money Flow) در دسته اندیکاتورهای مومنتومی قرار می گیرد و از همین رو در بازارهای دارای روند (Trend) برای تشخیص قدرت و جهت روند، کارکرد بهتری دارد.

منتشر شده

در

اندیکاتور جریان نقدینگی چایکین (Chaikin Money Flow)

در دنیای معامله گری، موج های بزرگ عموما توسط صندوق های سرمایه گذاری، صندوق های پوشش ریسک (Hedge Funds)، صندوق های بازنشستگی، کارگزاران و سایر موسسات مالی ایجاد می شوند. این موسسات برخلاف معامله گران خرد اکثریت حجم را در اختیار دارند.

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

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

اندیکاتور جریان نقدینگی چایکین (Chaikin Money Flow) چیست؟

این اندیکاتور در دهه ۱۹۸۰ توسط تحلیلگر مشهور بازار سهام، مارک چایکین (Marc Chaikin) ابداع شد. این اندیکاتور بر این اساس بنا شده که اگر قیمت بسته شدن در نزدیکی کف باشد در فاز توزیع (Distribution) و اگر قیمت بسته شدن در نزدیکی سقف باشد در فاز انباشت (Accumulation) هستیم.

اندیکاتور CMF از یک خط قرمز یا سبز رنگ که حول خط ۰ به میزان ۱۰۰- تا ۱۰۰+ نوسان می کند، تشکیل شده است. نواحی قرمز و سبز به ترتیب بیانگر فشار فروش و خرید هستند. زمانی که در محدوده منفی باشیم فشار فروش و زمانی که در محدوده مثبت باشیم فشار خرید بیشتر است.

CMF Indicator – Chaikin Money Flow
CMF Indicator – Chaikin Money Flow

فرمول محاسبه جریان نقدینگی چایکین (CMF calculation and formula)

فرمول این اندیکاتور بسیار ساده است (برای این مثال از دوره ۲۱ روزه استفاده می کنیم).

ابتدا با استفاده از فرمول (۱) ضریب جریان نقدینگی را محاسبه می کنیم و سپس با استفاده از فرمول (۲) حجم جریان نقدینگی را به دست می آوریم و در نهایت با استفاده از رابطه (۳) اندیکاتور CMF به دست می آید:

 

(مینیمم قیمت_ ماکزیمم قیمت) / [(قیمت بسته شدن _ ماکزیمم قیمت) _ (مینیمم قیمت _ قیمت بسته شدن)] = ضریب جریان نقدینگی

Money Flow Multiplier = [(Close  –  Low) – (High – Close)] /(High – Low)

حجم کل دوره زمانی × ضریب جریان پول = حجم جریان نقدینگی

Money Flow Volume = Money Flow Multiplier x Volume for the Period

مجموع حجم دوره ۲۱ روزه / حجم جریان نقدینگی دوره ۲۱ روزه = مقدار اندیکاتور CMF در دوره ۲۱ روزه

۲۱ Period CMF = 21 Period Sum of Money Flow Volume / 21 Period Sum of Volume

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

نحوه معامله با اندیکاتور CMF

اندیکاتور جریان نقدینگی چایکین (Chaikin Money Flow) در دسته اندیکاتورهای مومنتومی قرار می گیرد و از همین رو در بازارهای دارای روند (Trend) برای تشخیص قدرت و جهت روند، کارکرد بهتری دارد.

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

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

دوره ۲۱ روزه نیز به دلیل اینکه بیانگر تعداد روزهای معاملاتی یک ماه است در فرمول محاسبه اندیکاتور معمولا استفاده می شود. هرچند سایر ضرایب این عدد، یعنی ۴۲، ۶۳، ۸۴، ۱۲۶ یا ۲۵۲ نیز مورد استفاده قرار می گیرند.

برای معاملات روزانه و سایر استراتژی های کوتاه مدت، دوره های زمانی کوچکتر به دلیل واکنش سریع به تغییر روندها کاربرد بیشتری دارند. اما معامله گران بلند مدت، دوره های زمانی بزرگتر را ترجیح می دهند.

برای استفاده از اندیکاتور CMF ابتدا باید نموداری را پیدا کنید که در حالت رنج (Range) قرار نداشته باشد. حالت رنج معمولا زمانی رخ می دهد که قیمت برای یافتن مسیرش، در سطح مشخصی فشرده می شود. سپس باید دوره زمانی مورد نظرتان را تنظیم کنید. می توانید برای شروع از دوره ۱۲ روزه شروع کنید و در نهایت اندیکاتور را روی چارت اعمال کنید. به حرکات گذشته توجه کنید. هنگامی‌ که اندیکاتور رو به بالا حرکت کند، زمان خرید است. برعکس، اگر اندیکاتور زیر صفر باشد و یا به سمت پایین حرکت کند، زمان فروش است.

در ادامه به سایر روش های استفاده از این اندیکاتور می پردازیم.

  • شکست ها (Breakouts)

برای تایید شکست های قیمتی می توان از اندیکاتور CMF استفاده کرد. ناحیه مقاومتی یا حمایتی که قیمت چندین بار از آنجا برگشته را مشخص کنید.

اگر قیمت بتواند از مقاومت عبور کند و CMF هم بالای صفر باشد، روند جدید می تواند مورد تایید باشد، در غیر این صورت احتمال برگشت قیمت وجود دارد. همچنین اگر قیمت حمایت خود را بشکند و CMF زیر صفر باشد، روند جدید مورد تایید است، در غیر این صورت احتمال برگشت وجود دارد.

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

  • تایید روند (Trend confirmation)

برای تایید روندها نیز می توان از این اندیکاتور استفاده نمود. برای مثال اگر روند صعودی باشد، قدرت خرید منعکس شده در اندیکاتور می تواند موجب اطمینان شما از ادامه روند شود. عکس این مورد یعنی در زمانیکه روند نزولی است، صادق است.

مزایای استفاده از اندیکاتور CMF

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

محدودیت های اندیکاتور CMF

این اندیکاتور به دلیل دنبال کردن قیمت، همواره به گذشته توجه دارد. همچنین اگر روند مشخص نباشد و بازار بی ثبات باشد این اندیکاتور می تواند سیگنال های اشتباه بسیاری بدهد.

در انتها

در این مطلب به تنظیمات و نحوه استفاده از اندیکاتور CMF پرداختیم. این اندیکاتور می تواند در تعیین روندهایی که هنگام ورود صندوق های پوشش ریسک یا سایر معامله گران بزرگ وال استریت تشکیل می شوند، کاربردی باشد. اما همانند تمامی اندیکاتورها، این ابزار تکنیکال نیز سیگنال های اشتباهات زیادی دارد. پس در استفاده از آن احتیاط کرده و آن را با ابزارهایی نظیر خطوط روند (Trendline) یا میانگین متحرک (Moving Average) ترکیب کنید.

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

این مطلب به هیچ عنوان توصیه به خرید یا فروش نیست

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

ادامه مطلب

عضویت در خبرنامه

تبلیغات

برترین ها