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

شاردینگ (Sharding)

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

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

کاربرد شاردینگ در حوزه بلاک چین

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

نحوه کار شاردینگ

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

نحوه کار شاردینگ

شاردینگ چه مسائلی را می تواند حل کند؟

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

آیا می توان معایب خاصی برای شاردینگ متصور شد؟

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

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

می توان جایگزینی برای شاردینگ در نظر گرفت؟

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

طرح های جایگزین برای شاردینگ

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

علیرغم اینکه شاردینگ در برخی از بلاک چین ها به مرحله عملیاتی رسیده است، سایر بلاک چین ها همچنان در حال توسعه آن هستند.
یکی از این بلاک چین ها که به عنوان اولین پلتفرم بلاک چینی عمومی شناخته می شود و توانسته شاردینگ را اجرایی کند، زیلیکا است. این پلتفرم موفق شده در شبکه آزمایشی خود پردازش 2828 تراکنش در ثانیه را انجام دهد.
در اکوسیستم بلاک چین نیر (Near)، توسعه دهندگان این امکان را دارند که بتوانند به آسانی اقدام به ایجاد و اجرای برنامه های غیرمتمرکز کنند. نیر مدعی است که بر مبنای بلاک چین گواه اثبات سهام شارد شده و می تواند گزینه مناسبی برای استفاده توسعه دهندگان باشد. همچنین ادعا می کند که با بکارگیری تکنولوژی شاردینگ نودها این قابلیت را دارند که به اندازه ای کوچک بمانند که بتوان آنها را روی موارد ساده تر ابری و حتی موبایل ها اجرا نمود.
علاوه بر نیر، اتریوم نیز درصدد ارائه اکوسیستم بلاک چینی به منظور اجرای برنامه های غیرمتمرکز بر مبنای قراردادهای هوشمند است. در همین راستا قصد دارد تا شاردینگ را به عنوان بخشی از به روزرسانی در راه اندازی اتریوم 2.0 که قرار است در ژانویه 2022 عرضه شود، معرفی نماید.
برخی پروژه های بلاک چینی دیگر همانند کاردانو، کوراک چین (QuarkChain) و PChain شاردینگ را به عنوان راهکاری در جهت حل چالش مقیاس پذیری می دانند. 

استفاده از شاردینگ

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

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