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