تمام حساب های اتریوم و موجودی آنها و همچنین قراردادهای هوشمند و داده های مربوط به آنها حالت کلی و سراسری اتریوم را تشکیل می دهند. زمانی که اکانت ها و قراردادهای جدید در شبکه مستقر می شوند، حجم داده های موجود در حالت سراسری این اکوسیستم نیز افزایش می یابد. در این مقاله در مورد مشکل افزایش بیش از اندازه حالت اتریوم و افزایش مداوم هزینه راه اندازی Full Node صحبت می کنیم. این مشکل در سال 2017 توسط ویتالیک بوترین بنیان گذار اتریوم مطرح شد و اکنون توسط متخصصان این حوزه در حال رفع شدن است. هدف اصلی اتریوم بدون حالت، ایجاد مقیاس اتریوم، با کاهش رشد وضعیت نامحدود است. در ادامه به بررسی کامل اتریوم بدون حالت می پردازیم.
داستان از کجا شروع شد؟
ویتالیک بوترین از بنیانگذاران اتریوم در اوایل سال 2017 درباره «اتریوم بدون حالت» صحبت کرد اما این اصطلاح با توجه به محدودیتهای دسترسی اخیر و راهاندازی کامل آتی لایه اجماع در سه ماهه دوم سال 2022 اهمیت پیدا کرده است. این اصطلاح به اندازه «حالت» اتریوم اشاره دارد که با اضافه شدن حسابهای جدید و قراردادهای هوشمند به رشد خود ادامه میدهد. ساندرا جانسون، محقق اتریوم، توضیح می دهد که این کار باعث می شود کاربران به ارائه دهندگان API متمرکز وابسته شوند.
CoinBase پیشنهاد میکند که برای کمک به «اتریوم بدون حالت» برای دستیابی به تمرکززدایی واقعی، باید با افزایش دسترسی و استفاده از ارائهدهندگان API غیرمتمرکز، تغییری در سطح صنعت صورت گیرد و در سطح پروتکل، به کاربران این امکان را می دهد تا با استفاده از رایانه های سطح ورودی خود، یک گره را اجرا کنند که به آنها امکان دسترسی محلی نامحدود به بلاک چین را می دهد.
همانطور که توسط توسعه دهنده اتریوم بن ادینگتون توضیح داده شده است، این امر با استفاده از ارائه دهندگان حالت امکان پذیر می شود. این ارائه دهندگان حالت در اصل تاریخچه اتریوم را حفظ می کنند و امکان معرفی مشتریان بدون حالت را فراهم می کنند. این کار به کاربران امکان میدهد تا گرههای خود را اجرا کنند و در نتیجه تمرکززدایی واقعی و شبکه انعطاف پذیرتر ایجاد میشود.
"اتریوم بدون حالت" یک گزینه قابل اجرا است زیرا ارائه دهندگان حالت توسط تیم ConsenSys Quilt در حال بررسی هستند و آنها سه گزینه را برای اجرای ارائه دهندگان حالت ذکر و تحلیل کرده اند.
حالت (State) چیست؟
State مقادیر موجود در یک بلوک را در هر زمان معین تعریف می کند. وضعیت ماشین مجازی اتریوم پس از پردازش هر مجموعه از تراکنش ها تغییر می کند. همچنین جریان تراکنش ها باعث تغییر حالت می شود.
در زمان راه اندازی یک فول نود، رشد حالت نامحدود خودش را نشان می دهد زیرا زمان بیشتری برای استقرار یک نود کامل در شبکه نیاز است. بنابراین افزایش هزینه ها و تبدیل به یک گره کامل، سبب می شود دیگر جذابیتی برای کاربران نداشته باشد.
اصطلاح Stateless به این معنی است که کاربران به یکی دیگر از شرکت کنندگان شبکه، مسئولیت تهیه و ذخیره حالت سراسری اتریوم را واگذار می کنند. همچنین کلاینت اتریوم بدون حالت نیز کاملا بدون حالت نمی باشد و فقط بیانگر این است که حالتی را که قصد حفظ کردن آن را دارد، انتخاب می کند. بنابراین اصطلاح Stateless واقعا به معنای نداشتن حالت نیست.
کلاینت اتریوم بدون حالت باید در عین حال که انتخاب می کند کدام وضعیت را به روز نگه دارد، بتواند از حالت هایی که فایده ای ندارند، چشم پوشی کند.
شاهدهای (Witness) موجود در بلاک اتریوم چیست؟
Witness یک بلوک همان مکانیسم کلیدی برای رسیدن به اتریوم بدون حالت می باشد. در اتریوم بدون حالت، کلاینت ها علاوه بر دریافت بلاک های تایید شده از ماینرها، Witness مربوط به آن را نیز دریافت می کنند. تمام داده هایی که برای اجرای تراکنش های موجود در بلاک مورد نیاز است، در Witness موجود در بلوک قرار دارد.
از آنجایی که با ارسال شاهدها در شبکه، تعداد داده های زیادتری در کل شبکه ارسال می شود، باید میزان تاثیری که بر روی شبکه دارد را ارزیابی کرد. به این ترتیب می توان از عملکرد ایمن و کارآمد اکوسیستم اتریوم در محیط تغییر یافته جدیدش، اطمینان حاصل کرد.
اشیاء تعریف کننده حالت
1- حالت حساب
"حالت مشترک" جهانی از اشیاء زیادی به نام حساب ها تشکیل شده است. دو نوع حساب وجود دارد، حساب های دارای مالکیت خارجی و حساب های قراردادی. حسابهای دارای مالکیت خارجی توسط کلیدهای خصوصی کنترل میشوند و هیچ کد مرتبطی با آنها ندارند. حساب های قرارداد توسط کد قرارداد خود کنترل می شوند و دارای کد مرتبط با آنها هستند.
حالت حساب به موارد زیر تقسیم می شوند:
nonce
برای حساب های دارای مالکیت خارجی، nonce به تعداد تراکنش های ارسال شده از آدرس اشاره دارد. حساب های قراردادی تعداد قراردادهای ایجاد شده توسط حساب را ذخیره می کنند.
موجودی
مقدار اتر ذخیره شده در حساب.
storageRoot
storageRoot یک هش از محتوای ذخیره سازی در حساب را، رمزگذاری می کند.
codeHash
هش کد، EVM (ماشین مجازی اتریوم) این حساب می باشد. کد حساب قرارداد در این قسمت هش و ذخیره می شود. حساب های دارای مالکیت خارجی حاوی هش یک رشته خالی هستند.
2- حالت جهانی
حالت جهانی یک نقشه برداری از آدرس های حساب بین حالت های حساب می باشد. از همین ساختار برای ذخیره تراکنش ها و رسیدها استفاده می شود. همچنین تبدیل مقدار زیادی داده می شود که در صورت ذخیره و عبور کل وضعیت هنگام ایجاد بلوک های جدید، باید ذخیره و پردازش شوند.
مشتری بدون تابعیت اتریوم
روشی که یک بلوک در اتریوم ساخته میشود، روشی را برای ایجاد نوعی کلاینت بدون حالت ارائه میدهد. دانستن این نکته مهم است که با تکامل اتریوم، بی تابعیتی در نهایت یک طیف خواهد بود. برای ایجاد هش های معتبر، مقداری دانش از داده ها در گره های اطراف مورد نیاز است.
بی تابعیتی اجازه ایجاد light nodes را می دهد. یک light nodes فقط شامل زنجیره ای از هدرها بدون اجرای هیچ تراکنش یا حالت مرتبط است.
زمانی که یک نود به صورت کامل بی حالت می شود، می تواند از فضای کمتری از حافظه، دیسک و ورودی و خروجی را به خود اختصاص دهد، به همین علت می تواند الگوریتم های بزرگتری را با بالاترین عملکرد حل کند. در این حالت نودها می توانند در سطح بالاتری از عملکرد رسیده و پایگاه اطلاعات را به صورت بهینه بررسی کنند.
کاربردهای مشتریان بدون تابعیت در اتریوم
اتریوم 1.X کلاینت های بدون حالت را پیاده سازی می کند اما ماینرهای بدون حالت را اجرا نمی کند. همگام سازی سریع به عنوان یک گره بدون حالت اولیه می شود و چیزی را ایجاد می کند که راه اندازی بلوک نامیده می شود و فقط وضعیت ورودی و خروجی این بلوک را به صورت محلی ثبت می کند. بلوک راه اندازی یک شماره بلوک از پیش تعیین شده است که مدت زمان مشخصی در آینده می باشد. تا زمانی که راه اندازی بلوک زودتر یا به موقع ایجاد شود، ایجاد بلوک ها ادامه خواهد داشت و گره فعال است. استفاده از دادههای شاهد و حالتهای ورودی/خروجی می تواند این را به مشتری بدون حالت تبدیل کند.
مزایای مشتریان بدون تابعیت
استخراج بلوک های جدید از اثبات کار (PoW) به اثبات سهام (PoS) منتقل می شود. یک کاربر می تواند با قرار دادن حداقل مقدار اتریوم زنده در بلاک چین، یک ماینر شود. این به ماینر اجازه میدهد تا به بلوک بعدی برای ایجاد، رأی دهد. اجماع خیلی سریع و در یک بلوک از بلوک ارزیابی شده به دست می آید زیرا رمزنگاری هش طولانی دیگر برای ایجاد بلاک ها استفاده نمی شود. این امر نیاز برق را تا حد زیادی کاهش می دهد، بنابراین هزینه اجرای یک گره را کاهش می دهد. علاوه بر این، سهام نگهداری شده یک انگیزه اقتصادی/مجازات برای هر ماینر است که فعالیت غیر مجاز انجام می دهد.
سخن پایانی
برای اطمینان از امکان پذیر بودن اتریوم بدون حالت، تنها راهی که وجود دارد تلفیق دانش متخصصان و کارشناسان این حوزه با فرآیند مدل سازی است تا به کمک احتمالات به جواب نهایی برسیم. در این مقاله سعی کردیم شما را با اصطلاح اتریوم بدون حالت آشنا کنیم.