شاردینگ چیست؟ روشی برای بهبود مقیاس پذیری با Sharding

مقدمه ای درباره شاردینگ …….
از زمان تأسیس بیت کوین ، فناوری بلاکچین نحوه درک ارزش و مفهوم سازی پول به عنوان یک کل را کاملاً طراحی مجدد کرده است. بلاکچین با تصور بسیاری از افراد و افزایش میزان علاقه در صنایع مختلف ، متعاقباً به یکی از مهیج ترین پیشرفتهای فن آوری قرن 21 تبدیل شده است و همچنین به عنوان زیرساختی فوق العاده مورد جستجو قرار گرفته است.
این احساسات در وهله اول ناشی از تمایل ذاتی برای ساختن و مشارکت در انقلابی است که به همان اندازه بزرگ است که ایجاد اینترنت در دهه 80 و 90 میلادی است. در حالی که اینترنت حوزه ارتباطات آنلاین را آغاز کرد ، بلاکچین در شکل های جدید ایجاد ثروت از طریق داده ها و شبکه های دارایی دیجیتال پیشگام است.
این شبکه ها اکوسیستم فنی دقیقاً غیرمتمرکز و غیرمتمرکز خود هستند که برای ارائه خدمات دفتر قرارداد و قرارداد هوشمند به برنامه ها ، همچنین به عنوان dApps شناخته می شوند ، طراحی شده اند. اتریوم ، دومین ارز رمزنگاری شده با ارزش تر ، ایجاد سهولت ساخت این برنامه ها و در نهایت کنترل بیشتر کاربران بر روی امور مالی و داده های آنلاین است.

ایده با اتریوم این است که تا حدودی یک “رایانه جهانی” ایجاد کنید که از طریق آن dApps می تواند موارد استفاده خود را اجرا ، رشد و گسترش دهد و به عنوان مثال ، در نهایت ، کسب و کارها و سیستم عامل های بزرگ مانند آمازون یا توییتر را به چالش بکشد. بنابراین ، اتریوم به عنوان یک “رایانه جهانی” غیرمتمرکز عمل می کند ، برای همه باز است و نه می تواند دستکاری شود و نه خاموش شود.
در صورت دستیابی به این هدف ، اتریوم باید قادر باشد داده های عظیمی را در سیستم خود ذخیره و حفظ کند ، قابلیتی که در حال حاضر از آن برخوردار نیست. با این حال ، اتریوم می تواند مشکل مقیاس پذیری خود را با استفاده از روشی به نام شاردینگ حل کند ، نسخه ای که واقعاً قرار است با Ethereum 2.0 اجرا شود.
شاردینگ (sharding) چیست؟
در علم کامپیوتر ، شاردینگ تکنیکی است که برای مقیاس گذاری برنامه ها استفاده می شود تا بتوانند داده های بیشتری را پشتیبانی کنند. این فرآیند شامل تجزیه جداول بزرگ داده به قطعات کوچکتر است که shards نامیده می شوند و در چندین سرور پخش می شوند. هر خرده داده با داده های خاص خود ارائه می شود و در مقایسه با سایر خرده ها ، آن را متمایز و مستقل می کند.

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

در شبکه های غیرمتمرکز ، هر گره باید بتواند اطلاعات مهم مانند سابقه معاملات و مانده حساب را ذخیره کند. با انتشار داده ها و معاملات در چندین گره ، بلاکچین می تواند امنیت خود را تضمین کند ، با این حال ، این مدل از نظر مقیاس پذیری موثرترین نیست.
در حالی که سیستم دفتر توزیع شده آن بلاکچین را با ویژگیهای غیرمتمرکز و امنیتی فراهم می کند ، شبکه ای که نیاز به پردازش مقدار زیادی از معاملات و ذخیره مقدار زیادی داده دارد ، ممکن است بیش از حد تحت فشار قرار گیرد ، مسدود شود و تاخیر یا کندی را تجربه کند.
به عنوان مثال اتریوم می تواند در هر ثانیه بین 10 تا 20 معامله انجام دهد اما این در واقع برای اندازه بلاکچین قابل توجه نیست و دلیل کند بودن سرعت آن پروتکل اجماع اثبات کار (PoW) ذاتی در چارچوب آن است. بنابراین ، به همین دلیل ، بلاکچین اتریوم به شدت نیاز به مقیاس پذیری دارد.

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

این مدل یک پایگاه داده بزرگ را که شامل 6 ردیف است نشان می دهد. سپس جدول از قبل خرد شده به 3 خرده خرد و افقی تقسیم می شود تا پردازش جدول بزرگ داده ها بیشتر قابل کنترل باشد. پارتیشن بندی افقی با حفظ ویژگی های اصلی ، فقط جدول را به نسخه کوچکتر و کارآمدتر از خود تبدیل می کند. همین مفهوم را می توان در زیرساخت های بلاکچین نیز به کار برد ، به موجب آن وضعیت زنجیره را می توان به تکه های کوچکتر و قابل کنترلتری تقسیم کرد که به آنها خرده ریز نیز می گویند.
چه مشکلی را حل میکند؟
شاردینگ راهکار بالقوهای برای مشکلات مقیاسپذیری در بلاک چینهای امروزی است.
همانطور که گفته شد، مسئله مقیاس پذیری در حال حاضر به یکی از بزرگترین معضلات بلاک چینها تبدیل شده است. هرچقدر که شبکه بلاک چینی محبوب میشود، کاربران بیشتری اقدام به اجرای تراکنشها، برنامههای غیرمتمرکز و سایر عملیات در شبکه میکنند.
افزایش تراکنشها منجر به افزایش تقاضا از سوی نودها برای تایید تراکنشها میشود. این یک تهدید واقعی برای اتریوم است که در زمان جنون کریپتوکیتیز یکبار خود را نشان داد. در آن زمان تراکنشهای این بازی ۱۱ درصد از تراکنشهای شبکه را به خود اختصاص داده بود. در صورتی که چنین اتفاقی بیافتد، تراکنشها به کندی تایید خواهند شد و پذیرش بلاک چینها با مشکل جدی روبرو میشود.
اما به وسیله شاردینگ و تقسیم شدن بلاک چین به اجزای کوچکتر، گروههای مشخصی از نودها مسئول تایید بخش خاصی از تراکنشها خواهند بود. تایید تراکنشها به جای مدل خطی به صورت موازی انجام خواهد شد و سرعت کل شبکه افزایش خواهد یافت. شاردینگ بلاک چینها را برای بلندمدت پایدارتر و بادوامتر میکند.
آینده شاردینگ در بلاک چین ها
شاردینگ اخیرا به خاطر ارز دیجیتال لیبرا توجهات را به سوی خود جلب کرده است.
فیسبوک با انتشار وایتپیپر لیبرا، جزئیات بیشتری در رابطه با این پروژه در اختیار همگان قرار داد. بخشی از تیم این ارز دیجیتال که نیمه اول سال ۲۰۲۰ راهاندازی میشود، از تیم پروژه چیناسپیس تشکیل شده که توسعهدهندگان آن به طور عمده بر روی شاردینگ بلاک چینها تحقیق و پژوهش داشتند. از این نظر احتمال دارد حتی فیسبوک نیز فناوری شاردینگ را به نحوی در پارتیشنبندی بلاک چین خود پیاده کند.
در ابعاد گستردهتر، شاید بتوان شاردینگ را روشی برای حل مشکل سهراهی بلاک چینها در نظر گرفت.
سهراهی بلاک چینها که توسط ویتالیک بوترین، خالق اتریوم، مطرح شد به این صورت است که شما تنها میتواند دو خصیصه از سه ویژگی اساسی بلاک چینها را به صورت همزمان داشته باشید؛ امنیت، مقیاسپذیری، غیرمتمرکز بودن.
یعنی برای ایجاد یک بلاک چین شما باید یکی از ویژگیها را برای دستیابی به خاصیت اساسی سوم قربانی کنید.

همانطور که بنیامین مینکو، مدیر الروند نتورک از بلاک چینهایی که بر روی مقیاسپذیری و همکارکردپذیری متمرکز است در گفتگوی اخیرش با فوربز اشاره کرده، اگر چالشهای شاردینگ را پشت سر بگذاریم، مقیاسپذیری را به بلاک چینها برخواهیم گرداند؛ بدون اینکه نیاز باشد غیرمتمرکز بودن یا امنیت را به خطر بیاندازیم.
این اتفاق بلاک چینها را یک قدم به پذیرفته شدن و راه یافتن به جریان اصلی نزدیکتر خواهد کرد:
شاردینگ پیچیده است، اما حاصل کار به بهبودی در بلاک چینهای عمومی منجر میشود که توان رقابت با شبکههایی چون ویزا را به آنها میدهد. هرچند برخی چالشها مانند کنترل یافتن بر روی یک شارد واحد، ارتباطات بین شاردی و صحت اطلاعات وجود دارد.
معایب شاردینگ
هرچند تکنیک شاردینگ بسیاری از مشکلات ما را حل کرده اما هیچ سیستمی بدون ایراد نیست. یکی از مشکلات شاردینگ، نحوه پیادهسازی آن از منظر تکنیکال و فنی است. هرچند ما در این مقاله به سادگی آن را توضیح میدهیم، اما اجرای چنین سیستمی، پیچیدگیهای فراوانی دارد. در صورتی که این تکنیک به درستی اجرا نشود، ممکن است کل دادهها را از دست بدهیم.
یکی دیگر از مشکلات، ایجاد تعادل میان اندازهی دادههای ذخیره شده در هر شارد است. مثلا فرض کنید که ما قصد داریم، اسامی ۱ میلیون دانشجوی مثال قبل را صرفا بر اساس حروف الفبا تقسیم بندی کنیم. مثلا از حرف الف تا ط در شارد اول و از حرف ظ تا ی را در شارد دوم قرار دهیم. ممکن است تعداد افراد ذخیره شده در شارد اول بسیار بیشتر از شارد دوم باشد.
لذا بار تحمیلی به شارد یک بسیار بالاتر از شارد دو است. مسئله اصلی اینجاست که باید نحوه توزیع دادهها میان شاردهای مختلف را به گونهای انجام دهیم که متعادلترین حالت، برای کل سیستم رعایت شود. این مدیریت دادهها، زمانی که تعداد تراکنشها بسیار بالاست، واقعا کار دشواری است.
مشکل بعدی، مشکلات سخت افزاری است. ماشینهای پردازش دیتا که با ساختار شاردینگ منطبق باشند متفاوت از سایر پردازشگرها هستند. اینطور نیست که ما بتوانیم با استفاده از سختافزارهای فعلی، دیتابیس شارد شده را مدیریت کنیم. این مورد نیز مسئله ساز خواهد بود.
در بخش مزایا و معایب ما مدعی نیستیم که تمام موارد را اشاره کردهایم، حتما موارد دیگری نیز وجود دارد که ما در این مقاله به دنبال آن نیستیم. در بخش بعد به سراغ استفاده از تکنیک شاردینگ در دنیای بلاک چین میرویم.
نتیجه گیری
شاردینگ پایه مقیاس پذیری در شبکه های غیرمتمرکز است و فرصت های مختلف و مهیجی را برای آن دسته از پروژه هایی که قصد اجرای آن را دارند و یا حداقل مفهوم آن را آزمایش می کنند ، ارائه می دهد.
در حال حاضر ، این مسئله با این واقعیت تعریف شده است که شبکه های بلاکچین به دلیل محبوبیت ، مورد استفاده و در نهایت تقاضای آنها با سرعت نمایی در حال رشد و گسترش هستند. به نوبه خود ، این امر باعث ایجاد یک سری گلوگاه های پیچیده ، پیچیدگی ها و ناکارآمدی شبکه می شود و در کل بیانگر نیاز شدید آنها به یک راه حل مناسب برای مقیاس بندی است.
Ethereum 2.0 قرار است در آینده ای نه چندان دور قابلیت های شاردینگ خود را معرفی کند و این یکی از پیش بینی شده ترین رویدادها در تاریخ بلاکچین ETH است. انتظارات به طور باورنکردنی زیاد است ، در صورتی که ویرایش ETH 2.0 موفقیت آمیز باشد ، مقیاس پذیری طولانی مدت شبکه Ethereum را تضمین می کند و پروژه را برای تبدیل شدن به جهانی غیرمتمرکز ، باز برای همه غیرممکن و غیرممکن می کند. کامپیوتر’.
سلب مسئولیت: این نظرات نویسنده است و نباید به عنوان توصیه سرمایه گذاری در نظر گرفته شود. کاربران باید تحقیق خود را انجام دهند.






