فهرست مطالب
- شاردینگ چیست ؟
- عملکرد شاردینگ در بلاک چین
- محدودیتهای شاردینگ چیست ؟
- کاربرد شاردینگ چیست ؟
- تفاوت لایه دوم اتریوم و شاردینگ چیست ؟
- چه ارزهایی از شاردینگ استفاده میکنند؟
- مزایای شاردینگ چیست ؟
- جمعبندی
شاردینگ مفهومی است که برای اولین بار برای افزایش مقیاسپذیری و کارایی پایگاهدادههای سنتی استفاده شده است. Sharding سرورهای موجود برای ذخیره اطلاعات پایگاه داده را به چندین جز تقسیم میکند. بدین ترتیب هر یک از کاربران اطلاعات خود را در شارد مخصوص ذخیره میکنند. این مدل از ذخیرهسازی باعث میشود که حجم درخواستهای پایگاه داده بین شاردهای مختلف توزیع شود و فعالیتها به صورت موازی اجرا شوند. نتیجه این کار افزایش مقیاسپذیری و سرعت پاسخدهی پایگاه داده است.
تکنولوژی بلاک چین به عنوان یک پایگاه داده توزیع شده فعالیت میکند که در آن کاربران اطلاعات تراکنشهای ارسال شده به شبکه را بررسی و تایید میکنند. بررسی صحت اطلاعات توسط تمام نودهای بلاک چین صورت میگیرد و این مساله علیرغم افزایش امنیت اطلاعات، مقیاسپذیری شبکه را کاهش میدهد. مفهوم شاردینگ در بلاک چین به عنوان یک راه حل مقیاسپذیری درون زنجیرهای مطرح شده است. در این مقاله به بررسی کامل سوال شاردینگ چیست میپردازیم و مزایا و محدودیتهای آن را مورد بررسی قرار میدهیم.
شاردینگ چیست ؟
«شاردینگ» (Sharding) به معنی افزایش کارایی پایگاه داده در مقابل افزایش حجم شدید فعالیتها است که با توزیع دادهها و فعالیتهای پایگاه داده به چندین پایگاه داده انجام میشود. به هر یک از پایگاه دادههای جدید شارد گفته میشود که بخشی از فعالیتهای مورد انتظار پایگاه داده اصلی در آن انجام میشود. فعالیت شاردها در کنار هم معنا پیدا میکند و هر یک از آنها به صورت مستقل قادر به اجرای تمامی فعالیتهای تعریف شده برای پایگاه داده اصلی نیستند.
شاردینگ علاوه بر پایگاه دادههای سنتی برای تکنولوژی دفتر کل توزیع شده نیز قابل استفاده است. بلاک چین به عنوان معروفترین پیادهسازی DLT از شاردینگ برای حل مشکل مقیاسپذیری استفاده میکند. مقیاسپذیری در بلاک چین به معنی توانایی سیستم در پاسخگویی به حجم بالای تراکنشهای کاربران با سرعت بالا و هزینه کم است. در بلاک چینها کاربران به صورت غیرمتمرکز و بدون نیاز به اعتماد به یکدیگر اطلاعات تراکنشهای کاربران را ثبت میکنند.
برای این که امنیت این سیستم بالا باشد، اطلاعات اضافه شده به بلاک چین توسط تمامی نودها بررسی و تایید میشود. تصور کنید تمایل افراد به فعالیت در بلاک چین بیشتر شود و تعداد زیادی از افراد به دنبال فعالیت به عنوان ماینر یا نود در شبکه باشند. در این صورت، امنیت شبکه به دلیل غیرمتمرکزتر شدن شبکه افزایش مییابد اما زمان صرف شده برای تایید تراکنشهای اضافه شده بیشتر میشود. اگر همزمان با اضافه شدن نود به بلاک چین، استفاده مردم از اپلیکیشنهای غیرمتمرکز نیز افزایش یابد، مشکل مقیاسپذیری شکل غیرقابل قبولتری به خود میگیرد.
برای حل مشکل مقیاسپذیری در بلاک چین، دو دسته کلی راهحلهای «درون زنجیرهای» (On-Chain) و «بروزن زنجیرهای» (Off-Chain) در نظر گرفته شده است و شاردینگ یکی از اصلیترین روشهای درون زنجیرهای است. در این روش، نودها فقط مسئول بررسی و نگهداری قسمتی از اطلاعات تراکنشها هستند و تنها بخشی از فعالیتهای مورد نیاز بلاک چین را انجام میدهند. در بخش بعدی خواهیم فهمید که عملکرد شاردینگ چیست و چگونه به مقیاسپذیری بلاک چین کمک میکند.
عملکرد شاردینگ در بلاک چین
در بخش قبل فهمیدیم که شاردینگ چیست و چگونه به کارایی پایگاه دادهها کمک میکند. در بلاک چین مفهوم شاردینگ را میتوان با مدل پردازش موازی تراکنشها مدلسازی کرد. در یک بلاک چین برای ثبت تراکنش در شبکه، ابتدا اطلاعات تراکنشها توسط کاربران به بلاک چین ارسال و در ممپول جمعآوری میشود. سپس ماینرها با جمعآوری و بررسی آنها، بلاک نهایی را با تایید اکثریت نودها به بلاک چین اضافه میکنند. پس از تایید بلاک، کار ایجاد بلاک بعدی شروع میشود که این کار نیز توسط همه نودها انجام میشود.
بنابراین، میتوان گفت فرآیند ثبت تراکنشها و فعالیتها در بلاک چین به صورت خطی انجام میشود. اضافه کردن ساختار شاردینگ به بلاک چین باعث میشود که ساختار خطی تایید اطلاعات به ساختار موازی تبدیل شود. در این حالت به جای اینکه یک پایگاه داده یا دفتر کل، وظیفه ثبت تمام اطلاعات را برعهده داشته باشد، چندین دفتر کل وجود دارد که هر کدام از آنها مسول ثبت و بررسی دسته خاصی از اطلاعات کاربران و تراکنشها هستند.
علاوه بر این، هر ماینر نیز وظیفه فعالیت در یک شارد را برعهده دارد و در فعالیتهای شاردهای دیگر دخیل نیست. بنابراین، وقتی تراکنشهای کاربران به بلاک چین ارسال میشود با توجه به نوع فعالیت و کاربر ارسال کننده، تراکنش به یک شارد خاص ارجاع داده میشود و ماینرهای آن شارد اطلاعات را بررسی، تایید و به دفتر کل شارد اضافه میکنند. این فرآیند باعث میشود که بلاک چین امکان بررسی اطلاعات به صورت موازی را داشته باشد ثانیا نودهای بلاک چین همگی در تایید همه اطلاعات دخیل نشوند. هر دو این اتفاقات منجر به افزایش مقیاسپذیری بلاک چین میشود.
شاردینگ افقی یا عمودی
در بخش قبل فهمیدیم که عملکرد شاردینگ چیست و چگونه به مقیاسپذیری بلاک چین کمک میکند. به صورت کلی در دنیای پایگاه داده تقسیمبندیهای انجام شده بر روی پایگاه داده به دو روش «تقسیمبندی افقی» (Horizontal Partitioning) و «تقسیمبندی عمودی» (Vertical Partitioning) انجام میشود. هر کدام از این روشها بسته به اطلاعاتی که در پایگاه داده ثبت میشود میتوانند مفید باشند. در بلاک چین ما با کاربران شبکه و اطلاعات مربوط به هر کدام از آنها طرف هستیم و این تقسیمبندی با توجه به این اطلاعات انجام میشود.
در شاردینگ افقی بلاک چین بر اساس کاربران تقسیمبندی میشود. در این حالت، هر کاربر به عنوان یک ردیف در پایگاه داده است که ویژگیهای مختلف کاربران به صورت ستونهای داده در مقابل آن قرار گرفته است. در این روش میتوان کاربران به شاردهای مختلف اختصاص داد تا اطلاعات مربوط به کاربران در ماینرهای مربوط به آن شارد بررسی و نگهداری شود. در این روش ماینرها نیز به تعداد شاردهای موجود تقسیم میشوند و هر کدام از آنها وظیفه بررسی و نگهداری اطلاعات بخشی از کاربران را به عهده میگیرند.
در شاردینگ عمودی بلاک چین براساس ویژگیهای مختلف تقسیمبندی میشوند. در این حالت هر ستون از اطلاعات پایگاه داده که مربوط به یک ویژگی خاص است به یک شارد اختصاص داده میشود تا ماینرها تراکنشهایی که با آن دسته از اطلاعات در ارتباط هستند را بررسی و تایید کنند. معمولا ویژگیهای تعریف شده برای کاربران در یک بلاک چین مشخص و ثابت است و به همین دلیل در شاردینگ عمودی میزان شاردهای قابل تعریف ثابت است. سوالی که مطرح میشود این است که بهترین نوع شاردینگ چیست.
برای پاسخ به این سوال باید به سوال هدف شاردینگ چیست توجه داشت. هدف از این کار افزایش میزان کارایی بلاک چین با افزایش میزان کاربرها و تعداد تراکنشهای آنها در شبکه است. هر دو این موارد به کاربران وابستگی دارند و به همین دلیل شاردینگ افقی گزینه مناسبتری برای بلاک چین به شمار میرود. در تقسیمبندی افقی امکان اضافه کردن شارد جدید با افزایش کاربرها وجود دارد اما در شاردینگ عمودی با افزایش کاربر، امکان افزایش تعداد شاردها وجود ندارد. این مساله باعث میشود که مقیاسپذیری در شاردینگ عمودی از یک مرحله به بعد با محدودیت روبهرو شود.
محدودیتهای شاردینگ چیست ؟
شاردینگ ارز دیجیتال غلیرغم اینکه منجر به افزایش مقیاسپذیری بلاک چین میشود اما چندین مساله اساسی در مورد آنها وجود دارد. مهمترین مشکل در ارتباط با شاردینگ پیادهسازی آن است. اگرچه توضیح دادن ایده شاردینگ به صورت تئوریک ساده و آسان است اما عملیاتی کردن آن سخت است. عدم اجرای درست شاردینگ در بلاک چین ممکن است باعث از بین رفتن کل سیستم شود و همین اهمیت عملیاتی کردن درست آن را نشان میدهد. از نظر سختافزاری نیز اجرا کردن ایده شاردینگ نیاز به سختافزارهای خاص برای اعتبارسنجها دارد و لزوما امکان استفاده از سیستمهای قبلی برای اعتبارسنجی وجود ندارد.
یکی دیگز از مشکلات اساسی شاردینگ نحوه تخصیص اعتبارسنجها به شاردها است. این مساله از این جهت مهم است که اگر اعتبارسنجهای یک شارد باهم دیگر تبانی کنند میتوانند با هزینه کمتری یکی از شاردهای بلاک چین را به دست آورند و از این طریق به دابل اسپندیگ داراییهای خود بپردازند. بهترین راهکار برای این که این اتفاق نیفتد، استفاده از یک فرآیند تصادفی برای انتخاب اعتبارسنجهای هر شارد و تغییر آن در بستههای زمانی مختلف است. این مساله امکان تبانی اعتبارسنجها را برای حمله 51 درصد به بلاک چین از بین میبرد.
مشکل دیگری که در ارتباط با شاردینگ وچود دارد فراهم آوردن شرایط ارتیاط شاردها با یکدیگر است. بدون وجود ارتباط امن بین شاردها امکان ایجاد یک بلاک چین شارد شده با مقیاسپذیری بالا وجود ندارد. اگر امنیت این ارتباط تضمین نشود، ممکن است داراییهای کاربران و کارایی شبکه به کل از بین برود. برای این که این مشکل پیش نیاید، نیاز است که معماری شاردینگ از ابتندا مطابق با اهداف تعیین شده طراحی شود.
کاربرد شاردینگ چیست ؟
شاردینگ به عنوان یکی از راههای افزایش مقیاسپذیری درونزنجیرهای مطرح شده است و هدف آن غلبه بر مشکل سهگانه امنیت، غیرمتمرکز بودن و مقیاسپذیری است. بنابراین، کاربرد اصلی شاردینگ در بلاک چین تقسیم حجم نراکنشهای ارسال شده به شبکه میان ماینرهای مختلف و حل بلاکها به صورت موازی است. همان طور که در بخش قبل گفته شد، شاردینگ افقی بهترین راه حل شاردینگ برای مقیاسپذیری است که در ادامه با یک مثال ساده نحوه افزایش مقیاسپذیری بلاک چین با شاردینگ را بررسی میکنیم.
فرض کنید یک بلاک چین 1000 ماینر دارد. در بلاک چین شارد نشده، بلاکها به صورت متوالی توسط تمامی ماینرها بررسی، تایید و به دفتر کل اضافه میشوند. حال در صورتی که شاردینگ به شبکه اعمال شود، شبکه به 10 شارد مختلف تقسیم میشود که هر کدام از این شاردها مسئول ایجاد بلاکهای مربوط به کاربران خود هستند. بنابراین، هر شارد 100 ماینر مخصوص دارد و در طی زمان واجد، هر شارد میتواند یک بلاک اطلاعاتی ایجاد و به بلاک چین اضافه کند. این مساله باعث میشود که 10 بلاک به صورت موازی و همزمان توسط ماینرها بررسی، تایید و به بلاک چین اضافه میشود.
ارتباط بین شاردهای مختلف در بلاک چین با استفاده از یکی از شاردها که وظیفه هماهنگی را برعهده دارد انجام میشود. بدین ترتیت مجموعهای از شاردها که هر کدام به صورت مستقل به ایجاد بلاک میپردازند میتوانند یک بلاک چین و پایگاه داده منسجم و هماهنگ بسازند. در این میان نحوه تعامل شاردها با یکدیگر و تعامل آنها با شارد هماهنگ کننده از مسائل مهم در ارتباط امنیت شبکه است. نحوه تخصیص ماینرها به شاردهای مختلف نیز از جهت غیرمتمرکز بودن شبکه اهمیت دارد. در صورتی که پروژههای کریپتوکارنسی بتوانند راه حل مناسبی برای این موارد پیدا کنند، شاردینگ میتواند یک راهحل مناسب برای افزایش مقیاسپذیری باشد. در ادامه به سوال تفاوت لایه دوم اتریوم و شاردینگ چیست میپردازیم.
تفاوت لایه دوم اتریوم و شاردینگ چیست ؟
در بخش شاردینگ چیست به روشهای مختلف برای افزایش مقیاسپذیری اشاره شد. شاردینگ به عنوان یک راه حل درون زنجیرهای، از تقسیم دفتر کل به صورت افقی و اختصاص هر بخش از آن به دستهای از ماینرها به عنوان روش افزایش مقیاسپذیری استفاده میکند. در این حالت اطلاعات تراکنشها همگی به شبکه بلاک چین ارسال میشود و مقیاسپذیری از طریق بررسی موازی تراکنشها افزایش مییابد. روشهای دیگری نیز برای افزایش مقیاسپذیری به صورت درون زنجیرهای وجود دارد که از جمله آنها میتوان به افزایش اندازه بلاک اشاره کرد.
لایه دوم اتریوم روش افزایش مقیاسپذیری به صورت برون زنجیرهای است. در این روش تراکنشها خارج از زنجیره اصلی شبکه بلاک چین بررسی و تایید میشوند و تنها اثباتی از تغییرات کلی به شبکه بلاک چین اصلی ارسال میشود. با این روش، نتیجه صدها تراکنش بین کاربران تنها در یک تراکنش درون زنجیرهای خلاصه میشود و این مساله از طریق کاهش حجم ترافیک شبکه اصلی منجر به افزایش مقیاسپذیری میشود. روشهای مختلفی در لایه دوم برای افزایش مقیاسپذیری تعریف شده است که از جمله آنها میتوان به «کانال پرداخت» (State Channel)، «زنجیره جانبی» (SideChain)، «رول آپها» (Rollups) و «ولیدیوم» (Validium) اشاره کرد.
چه ارزهایی از شاردینگ استفاده میکنند؟
شاردینگ به طور کلی برای بلاک چینهای با الگوریتم اجماع اثبات سهام مناسب است و امکان اجرای آن در بلاک چینهای اثبات کار وجود ندارد. دلیل این امر این است که در اثبات کار تمامی کاربران برای باید برای تایید تراکنشها به صورت همزمان معادله بلاک را حل کنند و امکان تخصیص نودها به شاردهای مختلف برای تولید موازی بلاک وجود ندارد. بنابراین، Sharding در بیت کوین همانند خرید بیت کوین و استیک آن به منظور تامین امنیت شبکه، منتفی است. شبکه اتریوم یکی از اصلیترین پروژههایی است که در برنامه توسعه خود به اتریوم 2، شاردینگ را برای افزایش مقیاسپذیری جای داده است.
اتریوم 2 علاوه بر تبدیل الگوریتم اجماع خود به اثبات سهام، از 64 شارد مجزا از هم برای افزایش مقیاسپذیری شبکه استفاده میکند. اگرچه با پیادهسازی مرحله مرج، الگوریتم اجماع اثبات کار این پروژه تغییر کرده است اما هنوز شاردینگ پیادهسازی نشده و قرار است در مرحله بعدی بهروزرسانی این پروتکل این اتفاق رخ بدهد. با اعمال شاردینگ، «ریلی چین» (Relay Chain) به عنوان شارد هماهنگ کننده عمل خواهد کرد و بقیه شاردها به پردازش تراکنشها به صورت موازی خواهند پرداخت.
در حال حاضر انواع پروژههای ارز دیجیتال شاردینگ را در پروژههای خود عملیاتی کردهاند و از این طریق مقیاسپذیری را به بلاک چین آوردهاند. «زیلیکا» (Zillika) یکی از پروژههای ار زدیجیتال است که با استفاده از شاردینگ توانسته است به سرعت 2400 تراکنش در ثانیه برسد. افزایش تعداد نودهای فعال در شبکه منجر به افزایش تعداد شاردهای فعال در شبکه زیلیکا میشود و این مساله مقیاسپذیری دائمی شبکه را تضمین میکند. مشابه این روش در پروژههای ارز دیچیتال «نییر» (Near)، «هارمونی وان» (Harmoney One) و «الروند» (Elrond) نیز پیادهسازی شده است و اصل تفاوت این روشها با یکدیگر در نحوه تخصیص ماینرها به شاردهای مختلف برای جلوگیری از احتمال حمله به شاردها است.
نکته مهم دیگری که در ارتباط با شاردینگ وجود دارد تاثیر آن بر قیمت ارز دیجیتال است. شاردینگ از آنجایی که باعث افزایش مقیاسپذیری بلاک چین میشود میتواند تمایل افراد به استفاده از سیستم را افزایش داده و منجر به افزایش قیمت توکن آن شود. به عنوان مثال، اعمال شاردینگ در یک شبکه بلاک چین مثل ترون در صورتی که منجر به افزایش استفاده از آن شود باعث افزایش قیمت ترون میشود.
تاثیر مثبت دیگر شاردینگ بر روی کارمزد تراکنشهای انتقال این توکنها در بستر بلاک چین است. اگر به سایت صرافی ارز دیجیتال رابکس مراجعه کنید میتوانید هزینه کارمزد ارزهای با الگوریتم شاردینگ را با سایر پروژهها مقایسه کنید. توجه داشته باشید که الزامی به استفاده از شاردینگ در تمام بلاک چینها نیست و انجام این کار تنها در شبکههای شلوغ منطقی است.
مزایای شاردینگ چیست ؟
شاردینگ برای حل مشکل مقیاسپذیری بلاک چینها ارائه شده است و میتواند به صورت درون زنجیرهای ایجاد موازی تراکنشها را ممکن کند. در شاردینگ دست توسعهدهندهها برای سازگاری با شرایط باز است و در صورت افزایش استفاده از شبکه میتوان با اضافه کردن شاردهای جدید مشکل مقیاسپذیری را حل نمود. این ویژگی از دید اقتصادی و غیرمتمرکز بودن نیز برای شبکه مفید است. شبکه میتواند تعداد اعتبارسنجهای خود را با توجه به افزایش یا کاهش شاردها مدیریت کند که هزینه ایجاد تراکنشها و سرعت ثبت اطلاعات نیز تا حدودی به آنها وابسته است.
جمعبندی
شاردینگ یکی از روشهای افزایش مقیاسپذیری درون زنجیرهای در بلاک چین است که با تقسیم پایگاه داده به شاردهای کوچک و پردازش موازی بلاکها به این هدف میرسد. در این مفاله علاوه بر بررسی سوالهایی چون شاردینگ چیست و محدودیت شاردینگ چیست به معرفی ارزهایی که از این روش استفاده میکنند پرداختیم. علاوه بر این تفاوت بین شاردینگ و لایه دوم اتریوم در مقیاسپذیری نیز مورد بررسی قرار گرفت.
نظر خود را با ما به اشتراک بگذارید