بعد از کارشناسی به فلسفه علاقمند شدم. در مورد زنان و تکنولوژی و هوش مصنوعی و موارد مرتبط شاید بیشتر علاقمند باشم بنویسم. زندگی ام نیز چمن فوتبالی بود که تگلی خطرناک قوزک پایم را شکست. ادامه بده
ماشین مجازی اتریوم چیست؟
شرح EVM
بلاکچین از یک فناوری ویژه به جریانی اصلی تبدیل شده است. شما در مورد بلاکچین ها در خبر ها می شنوید یا در پست های اینترنتی می خوانید. می بینید که حوزه توانائی و نفوذ آن فقط به موارد مالی و یا فناوری محدود نمی شود. بلاکچین ها با توانائی دگرگونی صنایع اهمیت جهانی پیدا کرده اند. اگر به تازگی با بلاکچین ها آشنا شده اید، یادگیری مطالبی در مورد اتریوم و ماشین مجازی اتریوم، شروع خوبی است.
اگر تازه واردید و یا برنامه نویسی هستید که تازه با بلاکچین آشنا شده اید، احتمالا با اصطلاح ماشین مجازی اتریوم(EVM) و چیستی آن و چگونگی شکل گیری این ایده برخورد می کنید و در ذهنتان سوال ایجاد می شود.
سازندگان اتریوم از روز اول دیدگاهی شفاف داشتند و می خواستند ایده ای را خلق کنند که شبیه "کامپیوتری جهانی" یا اینترنتی باشد؛ اما چگونه این ایده بلند پروازانه را به اجراء در آوردند؟
بخشی از این پاسخ در ماشین مجازی اتریوم (EVM) پنهان است. علاوه بر این مورالیس(Moralis) به عنوان میان افزار برتر بلاکچین از پشتیبانی وسیعی از(EVM) برخورداراست. این (EVM) ها چیستند را توضیح می دهیم و اینکه وقتی dApps ها را به عنوان اپلیکیشن های غیر متمرکز می سازید؛ پشتیبانی (Moralis) تا چه اندازه کار را آسان می کند.
پیش نیاز مطالعه در مورد ماشین های مجازی اتریوم یا (EVM)، دانستن سابقه مفاهیمی مانند ماشین های کامل تورینگ و ماشین های مجازی است و اینکه اکوسیستم های غیر متمرکز چگونه کار می کند. بیتکوین اولین باراکوسیستم غیر متمرکز را معرفی کرد و بعد از چند سال از راه اندازی بیتکوین، توسعه دهندگان با ایده کامپیوتر ها یا ماشین های مجازی کنترل کننده جهان آشنا شدند. ایده بلاکچین های قدرتمند تر و پیچیده تر بیشتر ذهنشان را به خود مشغول کرد که به طور مستقیم به Web3 و وب غیر متمرکز مربوط می شود؛ بنابراین بهتر است به خصوصیات (EVM)ها بپردازیم.
ماشین مجازی اتریوم چیست؟
هنگام خواندن مطلبی زرد در مورد اتریوم یا توضیحات مختلف در مورد اتریوم در اینترنت شاید از خود بپرسید "ماشین مجازی اتریوم چیست؟" درک و فهم (EVM) ها به عنوان اکوسیستمی کامل لازم است؛ اما قبل از پاسخ به این سوال باید روش یادگیری خود را بخش بندی کنید. اتریوم دارای بخش های زیادی است و شما باید بدانید چگونه همه با هم هماهنگ عمل می کنند.
ماشين مجازی
ماشین های مجازی چیستند؛ ماشین های مجازی در سطحی بالاتر از سیستم عامل های معمولی یا OS فعالند و مفاهیم را انتزاع می کنند و بر خلاف ویندوز یا OIS در بالای سیستم عامل های معمولی ایجاد می شوند تا بتوانند عملکرد مشابهی با ماشین های محاسباتی فیزیکی داشته باشند.
در حقیقت ماشین های مجازی یا VMها با شبیه سازی نوعی معماری مجازی امکان عملکرد ماشین های محاسباتی فیزیکی را بر روی هر سیستم عامل یا سخت افزاری ایجاد می کنند و آنها را به موتوری عالی برای اکوسیستمی غیر متمرکز تبدیل می کنند.

از مسیر VM می توان بدون در نظر گرفتن محل یا جغرافیای شرکت کنندگان از منابع آن ها برای ساخت و پردازش و اجرای خواسته هایشان بهره برد. از این نظر، EVM مانند یک پردازنده یا کامپیوتر جهانی عمل می کند که قدرت محاسباتی انباشته شده خود را به توسعه دهندگان می دهد. توسعه دهندگان نیز از این منبع برای ایجاد قراردادهای هوشمند و برنامه های غیرمتمرکز یا dApps استفاده می کنند.
هر مشارکت کننده از هر کجا و از راه "گره" های اتریوم امکان دسترسی به ماشینی مجازی را دارد . واگذاری امتیاز قدرت محاسباتی به شبکه، داوطلبانه است و توسط چندین انگیزه کنترل می شود. با توجه به تمام ویژگیهای ماشینهای مجازی و نیاز به پردازش همه دادهها از طریق یک شبکه داوطلبانه، انتخاب نوع معماری VM برای اتریوم منطقی است.
کامل بودن تورینگ چیست؟
زمان پاسخ به ماشین مجازی اتریوم چیست؟، با اصطلاحاتی مانند کامل بودن تورینگ مواجه خواهید شد. EVM تورینگ کامل است، دقیقا به چه معناست؟ این مفهوم از طریق ایده های دانشمند مشهور کامپیوتر آلن تورینگ ایجاد شده است. او ایده هایی را در مورد آنچه که یک کامپیوتر فرضی یا ماشین فکر می تواند انجام دهد، توسعه داد. او استدلال میکرد که رایانهها مانند انسانها فکر نمی کنند، بلکه برای حل مسائل از مجموعهای از قوانین پردازش داده پیروی می کنند.
ماشین های تورینگ چگونه فکر می کنند
ماشین تورینگ، که زمانی توسط تورینگ به عنوان یک ماشین (به معنای ماشین خودکار) از آن یاد میکرد، ماشینی فرضی است که مفهوم تفکر غیرانسانی یا ماشینی را مجسم می کند. فرآیند تفکر در چارچوب الگوریتم ها عینی می شود.
تورینگ در مقاله اش اشاره کرده که چنین ماشینی باید یک حلقه نوار را با خطی از نمادها یا توابع پردازش کند که می تواند به عقب و جلو حرکت کند. همچنین می توان یک هد خواندن/نوشتن را تصور کرد که بین این توابع حرکت می کند. بنابراین، دستگاه می تواند یک نماد را پردازش کند یا آن را تغییر دهد. چنین ماشینی فقط می تواند توجه خود را در یک زمان به یک "وضعیت" معطوف کند. (مفهوم "وضعیت" در درک EVMها مفید است).

به طور فرض، هیچ محدودیتی برای این نوار وجود ندارد مگر محدودیت های فیزیکی و اگر آنرا مشابه حافظه کامپیوتر در نظر بگیریم. با اضافه کردن به طول نوار، فضای حافظه کامپیوتر افزایش یافته است. پس وقتی کامپیوتر مجبور است مجموعه ای از دستورالعمل ها را دنبال کند، داده ها و پاسخ ها به چنین دستوراتی فقط با محدودیت های فیزیکی محدود می شود. این ایده ها برای درک ماشین مجازی اتریوم بنیادین است؛ چون مفاهیم بنیادین اولیه و معماری آن را شکل می دهند. از اصول بیشتر فیزیکی تورینگ، دیگرانی مشابه مجازی آن را با اصول بنیادین یکسانی ایجاد کردند.
جاوا اسکریپت در ETH
به طور خلاصه، سیستم تورینگ کامل می تواند هربخش منطقی از یک تابع محاسباتی را انجام دهد. زبان های برنامه نویسی، نه فقط ماشین ها، از کامل بودن تورینگ استفاده می کنند. یکی از این موارد جاوا اسکریپت است. جاوا اسکریپت یک زبان برنامه نویسی مهم است که برای کار با اتریوم و EVM و همچنین درک ترکیب و هماهنگی قسمت های مختلف زبان برنامه نویسی قراردادهای هوشمند اتریوم یعنی Solidity (زبان برنامه نویسی اتریوم)مورد نیاز است.

برای کسب اطلاعات بیشتر در مورد جاوا اسکریپت و روش اتصال آن با اتریوم، می توانید مقدمه ما را در مورد JavaScript و Web3.js را مطالعه کنید.. اگر به Solidity علاقه دارید و نیاز به مقدمات دارید؛ می توانید برای درک جامع تر از قراردادهای هوشمند، پست Solidity ما را مطالعه کنید. Ivan on Tech Academy یک دوره عالی در مورد جاوا اسکریپت و ارتباط آن با بلاکچین دارد، توصیه می کنیم آن را مد نظر قرار دهید.
ماشین مجازی اتریوم یا EVM چیست؟
حالا شما ایده ای اولیه از ماهیت ماشین تورینگ کامل و مروری کلی از روش کار ماشینهای مجازی دارید و به درک ماشین مجازی اتریوم و به خصوص EVM نزدیکتر شدهایم. در سالهای اخیر، اتریوم مورد توجه قرار گرفته است، زیرا ثابت شده است که اتریوم پیشرفتی مفهومی در بلاکچین و ایجاد شبکههای غیرمتمرکز داشته که بیش از پردازش تراکنشهای نقدی پایه انجام میدهند. اگر توسعهدهنده پیشرفتهتری هستید و میدانید که اتریوم چگونه کار میکند واین انتقال شبکه به اتریوم 2.0 را مهم میدانید، خوب است این دانش را از ماشین مجازی اتریوم (EVM) به e WASM در اتریوم 2.0 منتقل و به اشتراک بگذارید.
کاربرانی که علاقه مند به آموزش های پیشرفته تر در مورد قراردادهای هوشمند اتریوم و EVM هستند، می توانند در کلاس های Ivan on Tech Academy's Ethereum Contract Programming 201 ثبت نام کنند. این دوره ها دانش عمیقی را در مورد چگونگی موفقیت در این فضا به شما ارائه می دهند و کمک می کند تا سرتیفیکیت دریافت کنید تا با به کارگیری مهارت های خود در پروژه های متعدد، به فرصت های کاری بهتری با مهارت های به دست آورده دست یابید.

ماشین حالت توزیع شده
تلاش اتریوم برای چیزی بالاتر از طرح نهائی است. این فقط یک دفتر کل توزیع نیست، بلکه چیزی بسیار پیچیده تر است. وب سایت اصلی اتریوم آن را به عنوان یک «ماشین موقعیت توزیع» توصیف می کند. اتریوم نه تنها دادههای حسابها یا موجودیها را نگه میدارد، بلکه کل وضعیت ماشین را حفاظت می کند. ماشین در حالت توزیع با هر بلوک دیگری متفاوت است، زیرا ماشین با هر مجموعه ای از برنامه هایی که اجرا می کند طبق قوانین ثابت خاصی جابجا می شود. چه چیزی این تغییر حالات مبتنی بر قوانین خاص را تعیین می کند؟ این کار ماشین مجازی اتریوم است. پروتکل اتریوم همچنین از قراردادهای هوشمندی استفاده می کند که دستورالعمل های کدگذاری شده ای هستند که با ماشین مجازی اتریوم یا EVM تعامل دارند.
این قراردادهای هوشمند برنامه هایی هستند که بسیاری از جنبه های مختلف رفتار انسانی را پوشش می دهند یا حداقل آنها را شبیه سازی می کنند. از این طریق می توانید ببینید که چرا طراحی اساسی اتریوم باید بسیار پیچیده تر از بیتکوین باشد.
در حالی که اتریوم منطبق برساختار پیچیده ای است، زبان برنامه نویسی رو به توسعه آن چنین نیست. برای جذب بیشتر مشارکت کنندگان در اکوسیستم اش، موسسین زبان برنامه نویسی کاربر پسندتری را انتخاب کردند تا یادگیری آن نسبتاً آسان باشد. Solidity، زبانی است که قراردادهای هوشمند اتریوم و dApps با آن نوشته میشود و نسبتاً ساده طراحی شده است. الگوهای رفتاری و ارتباطی انسان را شبیه سازی می کند و تلاش می کند در ترکیب بندی پیکره خود گویاتر و کاربرپسندتر باشد. شما این زبان کاربرپسند و قوی را دارید که به دستگاه می گوید چه کاری انجام دهد.

ماشین مجازی اتریوم قطعی(متعین)است
برنامه زمانی قطعی که خروجی یکسانی را برای مجموعه ورودی های یکسانی ارائه می دهد. این که کد چند بار اجرا شده مهم نیست چون برنامه های غیرمتمرکز یا dApps در اتریوم ممکن است تراکنش های مالی شامل مقادیر زیادی پول را در هر زمان انجام دهند. بنابراین، بسیار مهم است که بدانید کد در هر مرحله از اجرا چه واکنشی نشان خواهد داد.تعین گرا بودن و قطعیت برای ماشین مجازی اتریوم ضروری است.
ماشین های مجازی اتریوم حفاظت شده است
یکی دیگر از ویژگی های قرارداد هوشمند جداسازی برای حفاظت آن است. جداسازی و حفاظت نیز با استفاده از کانتینر های داکر و ماشین مجازی اتریوم تسهیل و عملی می شوند و چون کانتینر های داکر قطعی نیستند ، اتریوم با کمک ماشین مجازی خود این امکان را تکمیل می کند.
جدا سازی به دلیل مواردی مانند هک ها و باگ هایی که ممکن است در قرارداد هوشمند باشند مهم اند و این ایزوله کردن باعث می شود که چنین حوادثی تاثیری در پروتکل اصلی نداشته باشند.
ماشن مجازی اتریوم پایان پذیر است
همانطور که در بخش های بالا در مورد کامل بودن تورینگ ذکر شد، EVM یک تورینگ کامل است، به این معنی که قراردادهای هوشمند آن می تواند هر نوع مشکلی را، حداقل به صورت فرضی، حل کند. اما هیچ راهی برای تشخیص اینکه آیا چنین قراردادهای هوشمندی می توانند تمام عملیات داده شده را در یک چارچوب زمانی خاص به پایان برسانند وجود ندارد.
بنابراین، قرار دادن یک مکانیسم" فسخ "برای ایجاد محدودیت های دقیق ضروری است. در اتریوم از مفهوم "گس"برای تسهیل ترافیک استفاده می شود. گس بخشی از مکانیسم تشویقی شبکه نیز هست که بر مبنای هزینه های گس(فی گس) در تعیین انتخابی عملکرد ها برای اجرا و اولویت بندی ها استفاده می شود. محدودیت های گس در ابتدا تعیین شده و در زمان اتمام محدودیت ها ، ماشین به سادگی عملیات یا پردازش خود را متوقف می کند.
اقتصاد EVM
EVM یک اقتصاد ایجاد می کند. بامشوق های "گس" نظیر به نظیر دستگاه تورینگ کامل خود را تقویت می کند و از منابع جهان برای ساختن اقتصاد خود بهره می برد و به این ترتیب به دیدگاه"کامپیوتر جهانی"عمل می کند.
چگونهEVM به پروتکل ملتزم است؟
ماشین مجازی هوشمند این امکان را ایجاد می کند که هر کسی از هر جایی به شبکه متصل شود و بدون نیاز به اعتماد سازی طرفینی کد خود را بسازد که این نتیجه گارانتی قراردادهای هوشمند کاملا قطعی است.(در بالا و ذیل مزیت های EVM توضیح داده شده است)
با راهی برای محاسبه هزینه های "گس" برای یک قرارداد هوشمند، پروتکل، دریافت هزینه قبل از اجرای برنامه را ضمانت می کند و سیستم حق تقدم و مشوق ها را پشتیبانی می کند. اتریوم دارای اعتبارسنجی هائی است که اطلاعات همه تراکنش ها در شبکه را ضمانت می کند.(گارانتی همه تراکنش ها در اتریوم) تا از کافی بودن دارایی های فرستنده برای تامین اعتبار قرارداد هوشمند مطمئن شود و EVM در فرایند عملکرد خود با استثناء روبرو نشده است.

مطلبی دیگر از این انتشارات
تقابل مفاهیم SOLID روی کدمون ؟؟
مطلبی دیگر از این انتشارات
۱۰ ساختار دادهی متداول که به شکل روزانه از آنها استفاده میکنیم ...
مطلبی دیگر از این انتشارات
پردرآمدترین زبان های برنامه نویسی در ایران و جهان چیست؟