شاردینگ (Sharding) چیست؟ آموزش کامل، نحوه عملکرد و کارایی شاردینگ

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

شاردینگ در بلاکچین چیست؟
مقیاسپذیری یکی از مشکلات جدی فناوری بلاکچین است. بسیاری از شبکههای بلاکچین بر سر مقیاسپذیری رقابت سختی با یکدیگر دارند. در تعریف ساده، تعداد تراکنشهایی که در شبکه بلاکچین در هر ثانیه پردازش میشود، میتوان مهمترین نماد کمی مقیاسپذیری بلاکچین توصیف کرد. شاردینگ یکی از تکنیکهایی است که بهمنظور ارتقای مقیاسپذیری در برخی از شبکههای بلاکچین استفاده میشود.
در شبکه بلاکچین، یک نسخه از دادهها در اختیار هریک از نودها قرار میگیرد. با پیادهسازی Sharding مدیریت توزیع و ذخیره دادهها در شبکه تغییر میکند. بدینترتیب که نودها به گروههای کوچکتری تقسیم میشوند. به هریک از بخشهای کوچک در شبکه بلاکچین، «شارد» گفته میشود. هر شارد، دادههای اختصاصی خود را در اختیار میگیرد و پردازش میکند. به عبارت دیگر، فعالیت هر شارد مستقل از گروههای دیگر در شبکه است.
در حالت عادی، تمام نودهای حاضر در بلاکچین در فرایند پردازش و تأیید تراکنشها مشارکت میکنند؛ اما اجرای تکنیک شاردینگ کمک میکند تا هر شارد مسئول پردازش تراکنش باشد. این اقدام کمک میکند تا ظرفیت پردازش تراکنش در شبکه بلاکچین ارتقا پیدا کند و در نتیجه، کُندی شبکه کمتر شود.
یکی از مزایای اجرای Sharding در شبکه بلاکچین این است که میتوان مدیریت شبکه را با توجه به تعداد نودهای فعال در آن انجام داد. این یعنی اگر تعداد نودهای فعال در بلاکچین افزایش پیدا کند، این امکان وجود دارد که شارد جدیدی تعریف شود. بدینترتیب، بهمرورزمان در شبکه بلاکچین تعداد شاردها افزایش و متعاقباً مقیاسپذیری شبکه نیز دائماً بهبود پیدا میکند.
مزایا شاردینگ چیست؟
به نقل از Techtarget، نحوه عملکرد شاردینگ در شبکههای بلاکچین میتواند متفاوت باشد. شاردینگ افقی بدینمعنی است که هریک از شاردهای ایجادشده در شبکه، مسئولیت مشابهی دارند. این در حالی است که شاردینگ میتواند بهصورت عمودی هم اجرا شود. این یعنی هر شارد مسئولیت خاصی را برعهده دارد.
اگر فرایند Sharding با تمام اصول و ضوابط مرتبط در شبکه بلاکچین اجرا شود، مقیاسپذیری شبکه افزایش مییابد و تعداد تراکنشهایی که در ثانیه پردازش میشود، افزایش مییابد. همچنین، نودهای حاضر در شبکه دیگر به ذخیرهسازی همه دادهها نیازی ندارند. در عین حال، قابلیت دسترسی نودها به همه دادههای بلاکچین همچنان پابرجا باقی میماند.

مشکلات شاردینگ در بلاک چین چیست؟
فناوری شاردینگ خالی از ایراد نیست. بسیاری از توسعهدهندگان مخالف اجرای شاردینگ بر این باورند که با وجود نقش مثبت آن روی مقیاسپذیری بلاکچین، سطح امنیت شبکه را کاهش میدهد. در ادامه، به برخی از مشکلات فناوری شاردینگ اشاره میکنیم.
افزایش احتمال خرابکاری هکرها
هکرها برای مسلطشدن به شبکه بلاکچین نیاز دارند که اختیار ۵۱ درصد نودهای آن را به دست بگیرند. طبیعی است که در بلاکچین معمولی با تعداد نودهای زیاد، امکان حمله هکری پایین بهشدت کاهش مییابد. باوجوداین با اجرای شاردینگ، تعداد نودهای موجود در هر شارد کاهش پیدا میکند.
در نتیجه، هکرها عملاً با حمله به هر شارد کار آسانتری برای بهدستگرفتن کنترل آن خواهند داشت. این مسئله یکی از مشکلاتی است که باید بهدنبال راهحلی برای برطرفکردن آن بود. برای حل این مشکل به مدیریت متمرکز نودها نیاز است که این موضوع هم در نوع خود تأثیر منفی روی ویژگی تمرکززدایی فناوری بلاکچین میگذارد.
انتقال داده بین شاردها
گاهی اوقات لازم است که دادهها از شاردی به شارد دیگر در بلاکچین منتقل شوند. اجرای این کار نیز مسئله مهمی به شمار میرود که درحالحاضر، راهحلهایی برای آن ابداع شده است. باوجوداین، فرایندهای پیچیدهای برای حل این مسئله باید پشت سر گذاشته شود.
اهمیت تعداد نودها برای اجرای شاردینگ
مقیاسپذیری در اجرای شاردینگ، تنها زمانی افزایش پیدا میکند که تعداد نودهای زیادی در شبکه وجود داشته باشد. درواقع، اگر نودهای حاضر در شبکه محدود باشند یا بههر دلیل ادامه فعالیت برای نودهای فعلی توجیه اقتصادی نداشته باشد، عملاً اجرای این تکنیک با مشکل روبهرو میشود. بنابراین، اگر در بلاکچین بهدنبال موفقیت در اجرای شاردینگ هستند، با درنظرگرفتن تدابیر تشویقی، باید تعداد نودهای فعال را بهصورت پیوسته افزایش دهند.
تکنیک شاردینگ در کدام شبکههای بلاکچین اجرا شده است؟
درحالحاضر، تعداد بلاکچینهایی که از Sharding استفاده میکنند، زیاد نیست. اصلیترین دلیل این موضوع هم نگرانی از مشکلات امنیتی است که اجرای شاردینگ میتواند بهدنبال داشته باشد. چهار شبکه مهم بلاکچین که از شاردینگ استفاده میکنند، عبارتاند از:
- اتریوم (Ethereum)
- زیلیکا (Zilliqa)
- نیر پروتکل (Near Protocol)
- کاردانو (Cardano)
جمعبندی
در این مطلب، توضیح دادیم که شاردینگ چیست و چه مزایا و معایبی دارد. مشکلات سهگانه تمرکززدایی و مقیاسپذیری و امنیت از مدتها قبل به دغدغه توسعهدهندگان بلاکچین تبدیل شده است. تکنیکهای ایدئال برای توسعه بلاکچین باید همزمان به ارتقای مقیاسپذیری و امنیت و تمرکززدایی شبکه کمک کنند. بااینحال، بیان این موضوع در کلام آسان است و در عمل مسائلی جدی وجود دارد.