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

مفهوم کلی شاردینگ

شاردینگ(sharding) یک مفهوم بسیار مهم است که به یک سیستم کمک می کند تا داده ها را در منابع مختلف ذخیره کند. کلمه “shard” به معنی ” قسمت کوچکی از یک کل” است. بنابراین، شاردینگ به معنای تقسیم یک قسمت بزرگتر به بخش های کوچک تر است.

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

شاردینگ مفهوم جدیدی نیست و حداقل از اواخر دهه ۱۹۹۰ در مدیریت سنتی و متمرکز پایگاه داده وجود داشته است. این اصطلاح در واقع توسط یکی از اولین بازی های نقش آفرینی آنلاین چند نفره گسترده (MMORPG) به نام “Ultima Online” عمومیت یافت که در آن توسعه دهندگان برای حل مشکل ترافیک، بازیکنان را در سرورهای مختلف پخش کردند.

شاردینگ در بلاک چین

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

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

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

شاردینگ در اتریوم

بلاک چین اتریوم از هزاران کامپیوتر یا همان نودها (در حال حاضر ۸۶۲۲ نود) تشکیل شده که هر کدام مقدار مشخصی از نرخ هش شبکه را تولید می کنند. نرخ هش این امکان را برای ماشین مجازی اتریوم فراهم می کند تا قراردادهای هوشمند و برنامه های غیر متمرکز را اجرا کند.

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

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

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

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

داده های اتریوم در کجا ذخیره می شوند؟

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

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

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

همانطور که مشاهده می کنید، اینها داده های خیلی زیادی هستند. چرا چندین نود باید کل این تاریخچه پرحجم را ذخیره کند؟ این همان چیزی است که باعث می شود تا اتریوم غیر متمرکز باشد و بتواند برنامه هایی را ایجاد کند که ” هیچ کس نمی تواند آنها را از بین ببرد”.

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

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

چرا اتریوم به شاردینگ احتیاج دارد

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

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

شاردینگ می تواند اجرای کامل این نودها را آسان تر کند. طبق مرورگر بلاک چین Etherscan، در حال حاضر، تمام نودهای اتریوم حداقل پنج ترابایت فضا را اشغال می کنند که تقریبا ۱۰ برابر یک کامپیوتر متوسط است.

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

چرا شاردینگ یک راه حل سریع نیست؟

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

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

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

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

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

زمان اجرای شاردینگ در اتریوم

شاردینگ از زمان ظهور اتریوم در سال ۲۰۱۳ به صورت یک ایده بوده است. هنوز مشخص نیست که آیا انجام خواهد شد یا نه. همچنین زمان انجام آن معلوم نیست.

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

چه بلاک چین هایی از شاردینگ استفاده می کنند؟

زیلیکا اولین بلاک چین عمومی است که از شاردینگ استفاده می کند. این بلاک چین در شبکه آزمایشی خود موفق به پردازش ۲۸۲۸ تراکنش در ثانیه شد.

بلاک چین “Near” نیز به توسعه دهندگان اجازه می دهد تا به راحتی برنامه های غیر متمرکز را بسازند و اجرا کنند. این اکوسیستم خود را یک بلاک چین اثبات سهام شارد شده و مناسب برای توسعه دهندگان می داند. فناوری شاردینگ در این بلاک چین به نودها اجازه می دهد تا به اندازه کافی کوچک بمانند که حتی در آینده قابلیت اجرا بر روی  گوشی های هوشمند را داشته باشند.

سایر پروژه‌های بلاک چینی دیگر که شاردینگ را راه حلی برای مقیاس پذیری می دانند شامل کاردانو، کوارک ‌چین و پی‌ چین هستند.

منبع: وب سایت کوین سرا

نظرات کاربران