اتریوم بدون حالت چیست؟ تمامی حساب های اتریوم، موجودی حساب های اتریوم، قراردادهای هوشمند و تمامی داده های مرتبط با آن، حالت کلی اتریوم را تشکیل می دهند. هنگامی که حساب ها و قراردادهای هوشمند جدید در شبکه قرار می گیرند، حجم داده ها  در حالت کلی اکوسیستم اتریوم افزایش می یابد. این مشکل توسط ویتالیک بوترین بنیان گذار اتریوم در سال ۲۰۱۷ مطرح شد و هم اکنون توسط متخصصان این اکوسیستم در حال بررسی و رفع شدن است. در این مقاله از تتر ایران قصد داریم به بررسی مشکل افزایش بیش از اندازه حالت اتریوم و افزایش هزینه های راه اندازی Full Node بپردازیم.

هر آنچه باید درباره ی اتریوم بدون حالت بدانید!

اتریوم بدون حالت چیست

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

شاهدهای (Witness) موجود در هر بلاک اتریوم

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

اشیا تعریف کننده حالت یا state اتریوم نیز شامل حالت حساب و حالت جهانی است که در ادامه به توضیح مختصری از آن‌ ها می پردازیم؛

حالت حساب:
به طور کلی دو نوع حساب وجود دارد؛ حساب های قرارداردی و حساب های دارای مالکیت خارجی.  حساب های قراردادی توسط یک کد قراردادی کنترل می شوند و حساب ‌های دارای مالکیت خارجی نیز توسط کلیدهای خصوصی کنترل می‌ شوند و هیچ کد مرتبطی با آن ها وجود ندارند. حالت حساب خود به مواردی از جمله nonce، موجودی، storageRoot و codeHash تقسیم بندی می شود.

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

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

حالت State در اتریوم

 State در اتریوم بدون حالت چیست؟  state یا حالت میزان مقادیر موجود در یک بلوک را در  زمان های معین تعریف می کند. وضعیت ماشین مجازی اتریوم نیز پس از پردازش یک مجموعه از تراکنش ها تغییر می کند. همچنین جریان تراکنش ها نیز موجب تغییر حالت در اتریوم می شود. به هنگام  راه اندازی یک Full Node، رشد حالت نامحدود خود را نشان می دهد چرا که مدت زمان زیادی برای استقرار یک نود کامل در شبکه اتریوم نیاز است. از این رو افزایش هزینه ها و تبدیل شدن به یک گره کامل، موجب می شود که دیگر جذابیتی برای کاربران نداشته باشد، از این رو کاهش هزینه با اتریوم می تواند روشی برای حل این مشکل باشد.
اصطلاح Stateless یا بدون حالت بدان معناست که کاربران به یکی از شرکت کنندگان در شبکه، مسئولیت تهیه و ذخیره حالت جهانی اتریوم را واگذار می کنند. همچنین مشتریان اتریوم بدون حالت نیز کاملا بدون حالت نیستند، بلکه بیانگر این موضوع است که حالتی  که قصد حفظ کردن آن را دارد، انتخاب می کند. در واقع می توان گفت اصطلاح Stateless به معنای نداشتن حالت نیست.

مشتری بدون تابعیت اتریوم

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

کاربردهای مشتریان بدون تابعیت در اتریوم چیست؟

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

مدل سازی اتریوم بدون حالت

مدل سازی اتریوم بدون حالت

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