در پست های گذشته، به جزییات اولیه ی ارز اتریوم، و نحوه ی استخراج آن پرداخته ایم. پیشنهاد میکنم پیش از ادامه ی خواندن این مقاله که به جزییات تخصصی تر در رابطه با اتریوم میپردازد، مقالات پیش را مطالعه کنید.
در ادامه در مورد ماشین تایید اعتبار تراکنش های اتریوم بیشتر شرح داده میشود. ماشین مجازی اتریوم، محیطی بدون محدودیت زمان و حافظه را برای اجرای قراردادهای هوشمند در بلاک چین با استفاده از شبکهی بینالمللی گره های عمومی اجرا میکند. در واقع یک تیورینگ کامل است که بخش اصلی پلتفرم اتریوم را تشکیل میدهد و می توان روی آن، پلتفرم ها و برنامه های را بصورت غیر متمرکز اجرا کرد .هر گره یا نود اتریوم در شبکه یک تراکنش ماشین یا دستورات مشابه را اجرا می کند.
ماشین مجازی اتریوم دربرنامه های C++ ،Go ،java ،Haskell، جاوا اسکریپت، پایتون، روبی، روستا و به تازگی در برنامه WebAssembly اجرا شده است. در واقع این ماشین مجازی یک دستگاه کدنویسی شده است که میتواند قراردادهای هوشمندی که به زبان Solidity نوشته شدهاند را، روی شبکه بلاک چین اجرا کند.
ماشین مجازی اتریوم وظیفه تایید اعتبار تراکنشهای انجام شده در بلاک چین اتریوم را از طریق کنترل وضعیت حساب، وضعیت جهانی، وضعیت ذخیرهسازی، اطلاعات بلاک و اطلاعات فضای رانتایم به عهده دارد.
ماشین مجازی یکی از موارد ضروری شبکهی اتریوم محسوب میشود که برای رسیدن به اجماع در سیستم اتریوم قابل استفاده است. وجود ماشین مجازی به کاربران اجازه میدهد تا با اعتماد کامل، کدهای مورد نظر خود را در یک سیستم بسته اجرا کنند. در این حالت خروجی کدها تضمین شده و قطعی خواهد بود؛ و میتوان گفت مانند اجرای قراردادهای هوشمند عمل میکند.
گفته شد که ماشین مجازی اتریوم شبیه تورینگ کامل عمل میکند. این بدان معناست که دستگاه از لحاظ ریاضی قادر به حل هر مسالهای است که در برابر آن قرار داده شود. چرا که محاسبات انجام شده توسط ماشین محدود میباشند و فقط با gas انجام گیرد.
هر معاملهای که در شبکه اتریوم انجام میشود، نیاز به کارمزد دارد که به صورت gas پرداخت می شود. مفهوم gas اتریوم را میتوان به دو قسمت تقسیم کرد: قیمت gas، gas
Gas
gas، ابزاری است که به وسیله آن کارمزدهای اجرای محاسباتی خاص را محاسبه میکنند.
قیمت gas ، در اغلب موارد با «Wei» اندازهگیری میشود . Wei کوچکترین واحد اتر بوده که در آن یک اتر معادل ۱۰ به توان ۱۸ Wei است.
جهت انجام معامله در شبکه اتریوم، فرستنده باید حد مجاز gas و قیمت gas در معامله را تعیین کند. اگر فرستنده gas لازم برای انجام یک معامله را نداشته باشد، گفته میشود که gas وی تمام شده است و نامعتبر است.
نام واحد | ارزش |
Wei | 1 |
Kwei(babbage) | 1.000 |
Mwei(lovelace) | 1.000.000 |
Gwei(shannon) | 1.000.000.000 |
Microether(szabp) | 1.000.000.000.000 |
Miliether(finney) | 1.000.000.000.000.000 |
ether | 1.000.000.000.000.000.000 |
ماشین مجازی اتریوم برای فعالیت موثر باید یک سری از اجزا را پیگیری کند. این اجزا عبارتند از:
۱- وضعیت حساب
۲- وضعیت جهانی
۳- وضعیت ذخیرهسازی
۴- اطلاعات بلاک
۵- اطلاعات فضای رانتایم (Runtime).
۱- وضعیت حساب:
حسابها در اتریوم را میتوان به موارد زیر تقسیم کرد:
حسابهای متعلق به عناصر خارجی: یک حساب کاربری متعلق به عناصر خارجی قادر به ارسال پیام به دیگر حسابهای متعلق به آن و دیگر حسابهای قرارداد میباشد. این حسابها توسط کلید خصوصی که به نوعی امضای دیجیتال آن است، کنترل میشوند و هیچ کدی به آنها نسبت داده نشده است. ارتباط بین دو حساب متعلق به عناصر خارجی صرفا به عنوان یک انتقال ارزش در نظر گرفته می شود.
حسابهای قرارداد: این گونه حسابها با کد قرارداد خود کنترل میشوند و کد به آنها نسبت داده شده است. بر خلاف حساب متعلق به عناصر خارجی حسابهای قرارداد به تنهایی قادر به ایجاد یک معامله جدید نیستند.
حسابهای قرارداد فقط میتوانند در تراکنشهایی شرکت کنند که به عنوان پاسخی به سایر تراکنشهایی که انجام دادهاند،باشند، یعنی میتوانند از یک حساب متعلق به عناصر خارجی یا یک حساب قرارداد دیگر باشند.
سه عنصرمهم در وضعیت حساب اهمیت ویژه دارند :
نانس (Nonce): اگر حسابی متعلق به عناصر خارجی باشد، این مقدار نشاندهنده تعداد تراکنشهای ارسال شده از آدرس حساب است. اما اگر این یک حساب قرارداد باشد، نشاندهنده تعداد قراردادهای ایجاد شده توسط حساب میباشد.
بالانس Balance: تعداد Weiهای متعلق به آدرس حساب است.
CodeHash: مقدار هش تغییرناپذیر ماشین مجازی اتریوم برای حساب متناظر است.
۲- وضعیت جهان
وضعیت جهانی اتریوم به طور موثر بستگی به شناسههای آدرس ۱۶۰ بیتی و وضعیت حساب دارد.
۳- وضعیت ذخیره
در ماشین مجازی اتریوم اطلاعات مربوط به وضعیت حساب نگهداری میشود.
۴- اطلاعات بلاک:
اطلاعات بلاک شامل موارد زیر است:
Blockhash : هش آخرین بلاکی که تکمیل شده است.
Gaslmit : سقف gas که به بلاک کنونی متصل است.
Coinbase : آدرس گیرنده
Timestamp : برچسب زمان فعلی بلاک
Number : شماره بلاک کنونی
Difficulty : دشواری بلاک کنونی
۵- اطلاعات فضای رانتایم
برای اجرای یک تراکنش باید موارد زیر رعایت شود:
قیمت gas: قیمت فعلی gas که توسط شخص شروع کننده تراکنش مشخص شده است.
Codesize : اندازه تراکنش
Caller : نشانی حسابی که تراکنش را اجرا میکند.
Origin : آدرس فرستنده اصلی تراکنش
ماشین مجازی اتریوم اساسا بین «کدهای اجرایی» و «دستگاه اجرا کننده» تمایز ایجاد میکند. این لایهی جداکنندهی جهت توسعهی نرمافزار، جدا بودن نرمافزارها از یکدیگر و همچنین اطمینان از جدا بودن از هاست مورد استفاده قرار میگیرد.
این تمایز کدهای اجرایی از دستگاه جدا کننده نشان میدهد که کدهای ماشین، فایلهای سیستم و یا هر فرایند دیگری که مربوط به رایانهی میزبان باشد، کاملا از شبکه مجزا بوده و برای بررسی مشکلات احتمالی و آزمایشات مختلف، به صورت ایزوله کار میکند. تمام گرههای شبکهی اتریوم یک نمونه ازماشین مجازی اتریوم را اجرا میکنند؛ که به آنها کمک می کند در مورد اجرای دستورالعملها با یکدیگر به توافق برسند.
کدهای عملکردی
این کدها هستند که به ماشین های مجازی اتریوم اجازه میدهند که تورینگ کامل داشته باشند. یعنی ماشین مجازی اتریوم در صورت داشتن منابع کافی میتواند هر چیزی را محاسبه کند. کدهای عملکردی یک بایتی هستند و این یعنی که حداکثر مقدار کدهای عملکردی ۲۵۶ است. کدها عبارتند از:
- کدهای عملکردی دستکاری پشته
- کدهای عملکردی مقایسهای
- کدهای عملکردی محیطی
- کدهای عملکردی دستکاری حافظه
- کدهای عملکردی دستکاری انبارش
- کدهای عملکردی مرتبط در جهت معکوس
- کدهای عملکردی توقفی
بایت کدها (Bytecodes)
بایت کدها اساسا کدهای عملکردی هستند که به این صورت کدگذاری شدهاند. به هر یک از این کدهای عملکردی یک بایت اختصاص داده میشود.
اگر میخواهید وارد بازار ارزهای دیجیتال شوید و به راحتی خرید و فروش انجام دهید. از همه مهمتر سود خوبی از خرید و فروش خود داشته باشید باید آگاهانه وارد بازار ارزها شوید. به شما پیشنهاد میکنیم از طریق بلاگ سایت ثبت نام دات کام با انواع ارزها و دیگر موارد ضروری آن آشنا شوید.همچنین شناخت ماشین مجازی اتریوم مؤلفه مهمی برای توسعه قراردادهای هوشمند است. درک آن برای افرادی که میخواهند در حوزه اتریوم و قرارداد هوشمند فعالیت داشته باشند، ضروری است. ساخت و توسعه قرارداد هوشمند نیازمند درک کامل و درست ماشین مجازی اتریوم است. با ما همراه باشید تا با مشکلات ماشین مجازی اتریوم آشنا شویم.
یکی از مشکلات اصلی ماشین مجازی فعلی این است که تراکنشها را به صورت پیدرپی و دنبالهای بررسی میکند. اما با تغییراتی مانند اثبات سهام لازم است تراکنشها به صورت موازی بررسی شوند ولی متاسفانه ماشین مجازی فعلی برای این امر مناسب نیست.
ماشین مجازی جدید
Ethereum WebAssembly
ماشین مجازی جدید که eWASM نامیده میشود، وب اسمبلی یک استاندارد باز است که قالب پرتابل را برای برنامههای اجرایی تعریف میکند. با تغییرات اعمال شده انتظار میرود که ماشین مجازی عملکرد بهتری داشته باشد و امکان پشتیبانی از قراردادهای هوشمند، حسابها، حالتها و موارد بیشتری را روی بلاک چین جدید فراهم کند. ماشین eWASM در مراحل اولیه قرار دارد میباشد و سضه آن برای سال ۲۰۲۱ برنامهریزی شده است. هنوز پژوهشها و برنامهریزیهای بیشتری باید درباره این فاز انجام شود. برای خرید ارز های دیجیتال، ثبت نام دات کام طبق معمول، آماده ی کمک به شما عزیزان میباشد.
0 دیدگاه