
یک بانک شلوغ را تصور کنید که در ساعت خاصی از روز تعداد زیادی از افراد به آن مراجعه میکنند. اگر این بانک فقط یک باجه داشته باشد، افراد باید پشت سر هم در صف منتظر بمانند تا نوبتی کارشان انجام شود. اما اگر بجای یک باجه، چندین باجه داشته باشد، سرعت پاسخدهی بالا رفته و کارها سریعتر پیش میرود. این دقیقا همان اتفاقی است که در شاردینگ میافتد؛ تکنیکی برای رفع چالش مقیاسپذیری بلاکچین! در این مقاله از ارزیکال بررسی میکنیم شاردینگ چیست و چطور سرعت پردازش را بالا میبرد تا شبکه بتواند همزمان تراکنشهای بیشتری انجام دهد.
معنی شاردینگ چیست؟
شاردینگ چیست؟ شاردینگ (Sharding) یعنی تقسیم یک شبکه یا پایگاه داده بزرگ به چند بخش کوچکتر به نام شارد که هر یک، مجموعهای از دادهها و تراکنشها را بطور مستقل پردازش میکنند. به این ترتیب طی شاردینگ، فشار از روی سیستم برداشته میشود و سرعت پردازش افزایش پیدا میکند.
اما شاردینگ در بازاری مثل بازار کریپتو چیست و چه هدفی را دنبال میکند؟ شاردینگ راه حل مقیاسپذیری بلاکچین است. روشی که به بهبود عملکرد شبکه کمک میکند تا تعداد تراکنشهایی که باید همزمان پردازش شوند را افزایش دهد. در عین حال به مدیریت بهتر آنها کمک میکند. در ادامه توضیح میدهیم چطور.
مطلب پیشنهادی: بلاک چین چیست؟
شاردینگ چگونه کار میکند؟
در پاسخ به این سوال که نحوه عملکرد شاردینگ چیست باید گفت در Sharding، شبکه به چندین بخش کوچکتر تقسیم میشود. به این ترتیب بهجای اینکه تمام نودها همه چیز را پردازش کنند، هر شارد مثل یک زیر شبکه مستقل عمل میکند و تراکنشها و قراردادهای هوشمند خود را پردازش میکند.
قضیه از این قرار است؛ نودهای هر شارد، تراکنش را دریافت، بررسی و آن را در بلاک مخصوص خود ثبت میکنند. در همین حال در یک شارد دیگر نیز بلاکی بطور موازی در حال ایجاد شدن است.
از آنجایی که شاردها مجزا هستند و بطور مستقل کار میکنند به یک لایه هماهنگکننده با نام Coordinator یا Beacon Chain احتیاج است تا با به بکارگیری مکانیزم Cross-Shard Communication اتصال بین شاردها را ممکن کند.
بنابراین طی Sharding، با پردازش همزمان تعداد زیادی تراکنش و هماهنگ شدن آنها با یکدیگر، شاهد افزایش سرعت، کاهش ترافیک و در عین حال حفظ ساختار غیر متمرکز شبکه هستیم.
کاربرد شاردینگ چیست؟
کاربرد شاردینگ یکی دو تا نیست. شاید این اولین باری نباشد که با این مفهوم روبرو شدید. شاردینگ تکنیکی است که سالها در پایگاهدادههای مختلف مثل دیتابیسهای ابری و … مورد استفاده است. اما اصلیترین کاربرد شاردینگ چیست؟ این تکنیک کجا و چرا استفاده میشود؟
- تقویت مقیاسپذیری: شاردینگ انجام تعداد زیادی تراکنش در ثانیه را امکان پذیر میکند. مثلا اتریوم تا قبل از شاردینگ قادر به اجرای حداکثر ۳۰ تراکنش در ثانیه بود اما بعد از شاردینگ قادر است تا دههزار تراکنش در ثانیه انجام دهد!
- کنترل ترافیک شبکه: شاردینگ جلوی ازدحام شبکه را میگیرد؛ در شبکهای مثل اتریوم، در ساعات شلوغ که هزاران تراکنش در انتظار اجرا شدن هستند هزینه کارمزد سنگین میشود، شاردینگ این مسئله را حل میکند.
- اجرای همزمان قراردادهای هوشمند: در شاردینگ قراردادهای هوشمند دیگر پشت سر هم اجرا نمیشوند بلکه بطور همزمان روی چند شارد مختلف اجرا شده و چون همروند پیش میروند، سرعت و مقیاسپذیری شبکه را بالا میبرند.
از طرفی در شاردینگ دیگر لازم نیست همه نودها کل دیتای بلاکچین را ذخیره کنند که به بهینهتر شدن سیستم کمک میکند.
پیشنهاد مطالعه: شاید بهتر باشد برای درک عمیق مفهوم شاردینگ، ابتدا با شبکه اتریوم آشنایی کامل پیدا کنید. در همین راستا مطالعه مقاله “اتریوم چیست؟” میتواند مفید باشد.
چرا شاردینگ مهم است؟
تمام پروژههای بلاکچینی در تلاشاند شبکهای بسازند که امن باشد، در کنترل هیچ نهادی نباشد و آنقدر سریع عمل کند که کاربران لحظهای معطل نشوند. اما اصولا با یک چالش آزاردهنده روبهرو هستند؛ هر چه شبکه بزرگتر میشود، سرعت پایینتر میآید. سپس برای حل مشکل سرعت تلاش میکند و اینبار امنیت دچار مشکل میشود.
به همین دلیل صاحبنظران معتقدند باتوجه مستندات موجود، یک بلاکچین در حالت عادی نمیتواند همزمان بسیار امن، بسیار مقیاسپذیر و کاملا غیر متمرکز باشد. هر شبکهای به ناچار یکی از این سه ضلع اصلی را قربانی دوتای دیگر میکند. اما شاردینگ سعی دارد راهحل چالش سهگانه بلاکچین باشد.
این تکنیک با تقسیم شبکه به چندین بخش کوچکتر، فشار را از روی نودها برمیدارد. با پردازش موازی تراکنشها، مقیاسپذیری را افزایش میدهد. با مشارکت دادن تعداد بیشتری نود مستقل، به تمرکززدایی بلاکچین کمک میکند و به واسطه سیستم اعتبارسنجی جداگانه هر شارد، امنیت را بالا میبرد.
اکنون برای آنکه بهتر درک کنید اهمیت شاردینگ چیست، شبکه اتریوم را مثال میزنیم. تعداد کاربران این شبکه روز به روز در حال افزایش است، از طرفی حوزه دیفای حسابی مورد استقبال قرار گرفته است و هر روز تراکنشهای بیشتری در آن انجام میشود. همه این موارد با مشکلاتی مثل کارمزد بالاتر و محدودیت سرعت و… روبهرو هستند.
اما طی شاردینگ اتریوم، این شبکه به ۶۴ بخش کوچکتر یا به اصطلاح شارد، تقسیم شد تا هر نود بطور مستقل کار خود را پیش ببرد. همین باعث شد اتریوم از یک شبکه شلوغ و سنگین به یک سیستم چند لایه مقیاسپذیر تبدیل شود.
مزایا و معایب شاردینگ در بلاکچین
حالا که میدانید شاردینگ چیست، چرا مهم است و چگونه کار میکند، وقت آن است با جنبههای مثبت و منفی آن نیز آشنا شوید. در ادامه این تکنیک را از هر دو جنبه مثبت و منفی بررسی میکنیم؛ با ما همراه باشید.
مزایا Sharding
اصلیترین مزایا Sharding عبارتند از:
- کاهش بار محاسباتی: در این تکنیک هر نود از شبکه مسئول پردازشهای مربوط به خود است؛ همین تخصیص مسئولیت فشار پردازشی روی زنجیره را کم میکند.
- افزایش چشمگیر مقیاسپذیری: امکان اجرای همزمان هزاران تراکنش روی شاردهای موازی بدون اینکه سرعت پردازش کاهش پیدا کند، باعث افزایش مقیاسپذیری میشود.
- کاهش هزینه کارمزد: با کم شدن ترافیک شبکه، کارمزد تراکنشها کاهش پیدا میکند.
- افزایش توان عملیاتی شبکه: شاردینگ بهواسطه افزایش توان پردازشی بلاکچین، برای اپلیکیشنهایی با ترافیک بالا بسیار مناسب است.
بطور کلی شاردینگ باعث بهبود عملکرد شبکه بلاکچین میشود؛ با این حال همچنان با برخی محدودیتها نیز روبهروست که در ادامه به آنها نیز میپردازیم.
معایب Sharding
یکی از بزرگترین سوالاتی که ذهن کاربران را درگیر میکند این است که آیا شاردینگ امنیت شبکه را کم میکند؟ در پاسخ باید گفت خیر؛ شاردینگ بطور مستقیم باعث کاهش امنیت نمیشود، اما اگر طراحی ضعیفی داشته باشد، ریسکهایی به همراه دارد.
- پیچیدگی فنی بالا: طراحی و ایجاد ارتباط بین شاردها پیچیده است و گاهی حفظ امنیت حین اتصال شاردها به یکدیگر به نوعی چالش تبدیل میشود.
- ریسک حمله در صورت اجرای اشتباه: حتی اگر یکی از شاردها دچار نقص امنیتی شود، کل سیستم تحت تاثیر قرار می گیرد و آسیبپذیر میشود.
- توسعه زمانبر: پیادهسازی شاردینگ یک پروسه زمانبر است که عملی کردن آن نیازمند آزمون و خطاهای بسیار است و طول میکشد.
حالا که علاوه بر مزایا، با اصلیترین معایب شاردینگ آشنا شدید، تصویر منطقیتری از این راهحل مقیاسپذیری دارید.
کدام ارزهای دیجیتال از شاردینگ استفاده میکنند؟
اصولا پروژههایی سراغ شاردینگ میروند که امنیت و سرعت را در کنار تمرکززدایی و ظرفیت پردازش بالا میخواهند. در این بخش چند پروژه مهم و موفق در این زمینه را معرفی میکنیم.
مطلب پیشنهادی: ارز دیجیتال چیست؟
اتریوم لایه دو
اتریوم توسط ویتالیک بوترین، با هدف اجرای قراردادهای هوشمند ایجاد شد و خیلی سریع به شلوغترین شبکه با هزاران پروژه تبدیل شد. انواع اپلیکیشنهای دیفای، بازیها، NFTها و…همزمان روی این شبکه اجرا میشدند. نتیجه دور از ذهن نبود، ترافیک شبکه هر روز بیشتر میشد، سرعت پایینتر میامد و کارمزدها بهقدری بالا رفته بود که برای برخی غیرقابل قبول بود.
همینجا بود که تیم توسعهدهنده فهمید ساختار تکزنجیرهای دیگر برای شبکه اتریوم جواب نمیدهد؛ باید سیستم را چند لایه کرد! ایده ساخت اتریوم لایه ۲ مطرح شد و از تکنیک شاردینگ برای افزایش سرعت عملی کردن تراکنشها استفاده کردند.
جا دارد همینجا اشاره کنیم که شاردینگ اتریوم صرفا روی سرعت متمرکز نیست بلکه نقش پررنگی در تامین دیتا برای رولآپها دارد.
در نهایت با پیادهسازی کامل نسخه Danksharding، اتریوم به شبکهای تبدیل شد که هر شارد آن مثل یک پشتیبان قوی برای رولآپهای لایه دو عمل کرده و ظرفیت شبکه را چندین برابر افزایش میدهد.
مطلب پیشنهادی: کارمزد اتریوم چقدر است؟ روشهایی برای کم کردن کارمزدهای شبکه اتریوم
نیر پروتکل
یکی از قدرتمندترین پیادهسازیهای شاردینگ را در پروژه Near میبینیم. نیر پروتکل (Near Protocol) پروژهای بود که از همان ابتدا میدانست باید روی مقیاسپذیری تمرکز داشته باشد تا تراکنشها را بدون تاخیر پردازش کند. دقیقا در همین پروتکل بود که معماری Nightshade به عنوان نسخه بهبود یافته شاردینگ کلاسیک، معرفی شد. مدلی که در آن شاردها در ظاهر مستقل بودند اما به شکل یک زنجیره واحد عمل میکردند.
زیلیکا
زیلیکا (Zilliqa) اولین شبکهای بود که ایده شاردینگ برای بلاکچین را عملی کرد. تیم توسعهدهنده Zilliqa تصمیم گرفت اولین شبکهای باشد که شاردینگ را عملی میکند و این اتفاق واقعا افتاد! در سال ۲۰۱۹ زیلیکا اولین بلاکچینی شد که برای افزایش مقیاسپذیری از این تکنیک استفاده کرد تا ثابت کند بلاکچین میتواند در عین غیرمتمرکز بودن سریع هم باشد!
این پروژه نشان داد تقسیم تراکنشها بین نودها شدنی است؛ نهتنها عملکرد شبکه را مختل نمیکند بلکه به آن سرعت میدهد.
هارمونی
شبکه هارمونی (Harmony) از همان ابتدا با عنوان «شبکه مقیاسپذیر برای اپلیکیشنهای آینده» معرفی شد. پیادهسازی Sharding در این شبکه طوری بود که علاوه بر تقسیمبندی تراکنشها، خود شبکه نیز شارد شود و بطور همزمان در چند دسته موازی فعالیت کند تا سرعت پردازش دوچندان شود.
این پروژه در تلاش بود امنیت را قربانی سایر ویژگیهای بلاکچین نکند که موفق هم شد! هارمونی هم سرعت را بالا برد و هم هزینه کارمزد را کاهش داد.
الروند
هدف پروژه الروند (Elrond/ MultiversX) ایجاد زیرساخت اینترنتی بسیار سریع بود؛ شبکهای که بتواند هزاران تراکنش در لحظه را بدون اینکه کند شود پیش ببرد. الروند برای استفاده شاردینگ از راهحلی به نام Adaptive State Sharding استفاده میکند که یک مدل هوشمند بسته به ترافیک شبکه است و تعداد و ظرفیت شاردها را تغییر میدهد. به این ترتیب با زیاد شدن تعداد کاربران، شبکه نیز همپای آن رشد میکند.
توان پردازشی الروند بسیار بالا و مدت زمانی که طول میکشد تا تراکنشها در آن نهایی شوند، بسیار پایین است. همین سبب شد این شبکه به لطف شاردینگ به یکی از بهترین بسترها برای توسعه اپلیکیشنهای وب ۳ تبدیل شود.
شاردینگ؛ پاسخ ساده به یک مشکل بزرگ
حالا میدانید هر جا صحبت از توسعه شبکه سریع با ظرفیت بالا و کارمزد پایین باشد، به احتمال زیاد از تکنیک شاردینگ یا دیگر تکنیکهای چند زنجیرهای استفاده شده است. پس اگر توسعهدهنده هستید یا قصد دارید وارد دنیای بلاکچینهای نسل جدید شوید، ضروری است پروژههایی که از Sharding استفاده میکنند را بشناسید و از ساز و کار آنها مطلع شوید.
یکبار دیگر شاردینگ را اینگونه معرفی میکنیم: یکی از بزرگترین پیشرفتهای حوزه کریپتو و تکنیکی برای حل سهگانه بلاکچین است! روشی که با هدف افزایش مقیاسپذیری بلاکچین، شبکههای بزرگ و سنگینی که کند شدند را به شاردهای سبک و سریع تبدیل میکند تا از همه لحاظ بهصرفه باشند. نظر شما چیست؟ فکر میکنید شاردینگ بتواند به استاندارد اصلی نسل بعدی بلاکچین تبدیل شود؟









