آنچه در این مطلب می خوانید
آن چه در این مقاله میخوانید:
- شاردینگ یا تکهتکهسازی، یک بلاک چین را به تکههای کوچکتر به نام شاردها تقسیم میکند تا مسئله مقیاسپذیری مرتبط با شبکههای لایه اول را حل کند.
- شاردینگ سرعت معاملات را افزایش میدهد، هزینههای پردازشی و ذخیرهسازی را کاهش میدهد و عملکرد شبکه را بهبود میبخشد.
- شاردینگ با معایب بالقوه خود همراه است، مانند نگرانیهای امنیتی شبکه و پیچیدگی معاملات میان شاردها.
مقدمه
فناوری بلاک چین، قابلیتهای بیسابقهای در زمینههای غیرمتمرکزسازی، شفافیت و امنیت ارائه داده است. اما با چالش قابل توجهی روبرو است: مقیاسپذیری. مقیاسپذیری یکی از نقاط حیاتی “مثلث مشکلات بلاک چین” است که شامل امنیت و غیرمتمرکزسازی نیز میشود. دستیابی به هر سه به طور همزمان، مسئلهای دائمی در عرصه بلاک چین است. در اینجاست که راهکارهای راهبردی مانند “شاردینگ” به کار گرفته میشوند.
شاردینگ چیست؟
شاردینگ مفهومی است که از مدیریت پایگاه داده سنتی اقتباس شده است. این مفهوم به فرآیند تقسیم یک پایگاه داده بزرگ به قسمتهای کوچکتر و قابل مدیریتتر، موسوم به شاردها، اشاره دارد. هدف از آن در بلاک چین بهبود مقیاسپذیری، ضمن حفظ اصل غیرمتمرکزسازی، است. در واقع، شاردینگ زمانی رخ میدهد که یک شبکه بلاک چین به قسمتهای کوچکتری تقسیم شود که به آنها شارد گفته میشود، و هر یک قادر به پردازش همزمان تراکنشها و قراردادهای هوشمند هستند.
چگونه شاردینگ کار میکند؟
درک نحوه اجرای شاردینگ در شبکه بلاک چین نیازمند درک نحوه ذخیرهسازی و پردازش دادهها در بلاک چین است. روشهای مختلفی برای پردازش دادهها وجود دارد که ما به بررسی پردازش متوالی و موازی خواهیم پرداخت.
معمولاً، هر گره بلاک چین مسئول رسیدگی به کل حجم معاملات درون شبکه است. این نوع از پردازش دادهها معمولاً به عنوان پردازش متوالی شناخته میشود. این بدان معناست که هر گره باید تمام اطلاعات حیاتی مانند موجودی حسابها و تاریخچه معاملات را حفظ و ذخیره کند. در واقع، هر گره باید تمام عملیات، دادهها و معاملات شبکه را پردازش کند.
این مدل، با ضبط هر معامله در تمام گرهها، امنیت بلاک چین را تقویت میکند، اما پردازش دادهها را به شدت کند میکند. اینجاست که پردازش موازی دادهها به کار میآید، چون اجازه میدهد تا چندین عملیات به طور همزمان اجرا شوند.
شاردینگ میتواند یک راه حل قدرتمند برای این معضل باشد، چون بار کاری معاملاتی را در سراسر شبکه بلاک چین تقسیم یا “جداسازی” میکند. این بدان معنی است که همه گرهها نیازی به مدیریت یا پردازش کل بار بلاک چین ندارند.
به جای آن، شاردینگ بار کاری را از طریق تقسیم بندی افقی جدا میکند. در این فرایند، دادهها به زیرمجموعههای افقی تقسیم میشوند و هر شارد به عنوان یک پایگاه داده مستقل عمل میکند که قادر به پردازش معاملات به صورت جداگانه از بقیه است.
تقسیمبندی افقی در مقابل عمودی
تقسیمبندی افقی و تقسیمبندی عمودی دو رویکرد کلیدی برای افزایش مقیاس پایگاه دادهها هستند. در حالی که هر دو برای مدیریت موثرتر مجموعههای دادههای بزرگ طراحی شدهاند، اما به روشهای بنیادین متفاوتی کار میکنند. شاردینگ یک روش رایج برای پیادهسازی تقسیمبندی افقی است.
در تقسیمبندی افقی، دادهها به صورت ردیفها تقسیم شده و بین گرههای مختلف (یا پایگاههای داده) پخش میشوند، هر یک شامل زیرمجموعهای از دادهها هستند. هر ردیف در جدول یک موجودیت منحصر به فرد است؛ بنابراین، جدا کردن آنها منجر به از دست رفتن یکپارچگی دادهها نمیشود. نمونهای برجسته از استفاده از تقسیمبندی افقی، در توزیع شبکههای بلاک چین، مانند اتریوم و بیت کوین، دیده میشود.
در تقسیمبندی عمودی، دادهها به جای ردیفی، به صورت ستونی تقسیم میشوند. هر قسمت در تقسیمبندی عمودی شامل زیرمجموعهای از دادهها برای هر موجودیت است، یا کل مجموعه دادهها، اما فقط برای مجموعه معینی از ویژگیها. به عنوان مثال، یک جدول مشتری را در نظر بگیرید که شامل ستونهایی مانند نام، وضعیت، توضیحات، و عکس است. در سناریوی تقسیمبندی عمودی، ‘نام’ و ‘وضعیت’ ممکن است در یک جدول نگهداری شوند و ‘توضیحات’ و ‘عکس’ در جدول دیگری.
چرا تقسیمبندی افقی ترجیح داده میشود؟
تقسیمبندی افقی به دلایل کلیدی زیر در شبکههای بلاک چین نسبت به تقسیمبندی عمودی ترجیح داده میشود:
- قابلیت افزایش مقیاس،
- تمرکززدایی،
- و امنیت.
قابلیت افزایش مقیاس: شاردینگ با شکستن دادهها به قطعات کوچکتر و قابل مدیریتتر، یک راه حل ارائه میدهد. هر شارد میتواند به صورت مستقل عمل کند، که این امکان را فراهم میکند که تراکنشهای بیشتری به طور همزمان پردازش شود، و سرعت و کارایی شبکه را بهبود میبخشد. در حالی که با تقسیمبندی عمودی، توزیع ستونها در پایگاههای داده مختلف ممکن است پیچیدگی بیشتری در بازیابی اطلاعات کامل تراکنش یا بلاک مورد نیاز داشته باشد و میتواند قابلیت افزایش مقیاس را محدود کند.
غیرمتمرکزسازی: مطابق با اصل اساسی بلاک چین، تقسیمبندی افقی از غیرمتمرکزسازی حمایت میکند. زمانی که گرهها فقط نیاز به پردازش بخشی از کل دادهها (یک شارد) دارند، این امکان را میدهد که گرههای بیشتری در شبکه مشارکت کنند، چون بار محاسباتی و ذخیرهسازی کاهش مییابد. در مقابل، تقسیمبندی عمودی این امکان را محدود میکند چرا که هر گره نیاز به دسترسی به تمام بخشها (تمام ستونهای داده) برای درک و تأیید دادههای کامل بلوک دارد.
امنیت و یکپارچگی دادهها: تقسیمبندی افقی یکپارچگی دادهها را حفظ میکند چون هر شارد (یا بخش) دادههای تراکنش کامل را دارد، که اطمینان میدهد که هر گره نسخهای کامل و دقیق از بخش خود از بلاک چین را دارد. در تقسیمبندی عمودی، در واقع دادههای یک بلوک را در گرههای مختلف تقسیم میکنید، که اطمینان از یکپارچگی و امنیت دادهها، جنبهای بسیار مهم از شبکههای بلاک چین، را دشوار میکند.
مزایای شاردینگ چیست؟
بیایید به فواید بالقوهای که شاردینگ برای فناوری بلاک چین دارد، بپردازیم:
افزایش سرعت تراکنش: شاردینگ امکان پردازش موازی تراکنشها را فراهم میکند. به جای پردازش تراکنشها یکی پس از دیگری به صورت ترتیبی، شاردینگ اجازه میدهد تا تراکنشها به طور همزمان اما در شاردهای مختلف پردازش شوند. هر شارد به صورت مستقل کار میکند؛ به همین دلیل، به طور قابل توجهی سرعت تراکنش را افزایش میدهد. این کار نه تنها سرعت تراکنش را تسریع میکند، بلکه به این معناست که کل شبکه میتواند از تعداد بیشتری کاربر پشتیبانی کند، که این امر امکان پذیرش گسترده را ترویج میکند.
یک نمونه از شبکه بلاک چین موجود که از شاردها برای رفع مشکل مقیاسپذیری استفاده میکند، زیلیقا (Ziliqa) است. مکانیزم شاردینگ زیلیقا به آن اجازه میدهد تا هزاران تراکنش در ثانیه انجام دهد.
کاهش هزینههای پردازش و ذخیرهسازی: طراحی سنتی بلاک چین هر گره را ملزم میکند که تمام تراکنشها را ذخیره کند، که این مسئله نیازهای سختافزاری را با رشد بلاک چین تشدید میکند. اما با شاردینگ، هر گره تنها مسئول پردازش و ذخیرهسازی بخشی از دادههای کل شبکه است—این موضوع منابع لازم برای شرکت یک گره در شبکه را کاهش میدهد.
بنابراین، افراد بیشتری میتوانند به عنوان اعتبارسنجها بپیوندند، که این موضوع بدون در نظر گرفتن هزینههای سرسامآور، به بهبود غیرمتمرکز بودن شبکه کمک میکند. این ویژگی مشکلات را کاهش میدهد، جایی که تنها نهادهایی با منابع محاسباتی پیشرفته و گرانقیمت میتوانستند واقع بینانه در فرآیند شرکت کنند؛ به این ترتیب، طبیعت دموکراتیک شبکههای بلاک چین حفظ میشود.
بهبود عملکرد شبکه: شاردینگ میتواند به بهبود عملکرد و ظرفیت کلی شبکه کمک کند. در بلاک چینهای سنتی، همان طور که گرههای بیشتری در شبکه شرکت میکنند، عملکرد به طور تناقضآمیزی به دلیل نیاز به افزایش ارتباط و همزمانسازی دادهها بین گرهها، کاهش مییابد.
با این حال، شاردینگ این سناریو را تغییر میدهد. از آنجا که هر شارد به طور جداگانه و همزمان کار میکند، سیستم میتواند تراکنشها و محاسبات بیشتری را پردازش کند. هنگامی که یک گره جدید به شبکه میپیوندد، میتوان آن را به یک شارد به جای کل شبکه اضافه کرد؛ بنابراین، ظرفیت شبکه برای مقیاسپذیری بهبود مییابد. کارایی بهبود مییابد که منجر به تراکنشهای روانتر و تجربه کاربری بهتر میشود.
به یاد داشته باشید، پیشرفتها و بهبودهای آینده در فناوری شاردینگ ممکن است مزایای دیگری ایجاد کنند یا این مزایای موجود را تقویت کنند و به طور مداوم اکوسیستم بلاک چین را بهبود بخشند.
محدودیتهای شاردینگ چیست؟
در حالی که شاردینگ چندین مزیت بالقوه ارائه میدهد که میتواند به شبکههای بلاک چین کمک کند تا کارآمدتر شوند، این فرآیند همچنین مجموعهای منحصر به فرد از چالشها را ایجاد میکند. برخی از آسیبپذیریهای بالقوه که توسط شاردینگ ایجاد میشوند، شامل:
حملات تصرف یک شارد: در محیط شاردینگ، قدرت محاسباتی برای تصرف یک شارد بسیار کمتر از قدرت مورد نیاز برای تصرف کل شبکه است. این امر باعث میشود که این شاردهای فردی به یک “حمله یک درصدی” یا “تصرف شارد” آسیبپذیرتر باشند – که در آن یک مهاجم با مقدار کمی منابع نسبت به کل شبکه ممکن است بتواند یک شارد فردی را تصرف کند.
معاملات میان شارد (Cross-shard): معاملاتی که بین شاردهای مختلف رخ میدهند (میان شارد) یک چالش منحصر به فرد ارائه میدهند. معاملات میان شارد پیچیده هستند و اگر به دقت مدیریت نشوند، ممکن است منجر به خرج مضاعف شوند. اگر یک شارد به طور دقیق وضعیت شارد دیگر را در طول یک معامله ردیابی نکند، کاربران ممکن است از این موقعیت سوء استفاده کرده و “خرج مضاعف” متحمل شوند.
مشکلات دسترسی به دادهها: شاردینگ حفظ وضعیت کل شبکه را به تلاش پیچیدهای تبدیل میکند. اگر شاردهای خاصی زمانی که نیاز است در دسترس نباشند (چون گرههایی که این شاردها را نگه داری میکنند آفلاین هستند)، میتواند منجر به مشکلات دسترسی به دادهها شود، که به اختلال در کل شبکه منجر میشود.
امنیت شبکه: شاردینگ نیاز به اجرای یک پروتکل مستحکم دارد که بار را بین شاردها متعادل میکند. اگر شاردینگ به درستی انجام نشود، میتواند منجر به توزیع نابرابر دادهها یا عدم تعادل منابع شود، که میتواند به بیثباتی احتمالی شبکه منجر شود.
همگامسازی گرهها: همگامسازی گرهها میتواند به دلیل زمان مورد نیاز برای به اشتراک گذاشتن و بهروزرسانی اطلاعات در سراسر گرههای مختلف، تاخیر در شبکه ایجاد کند. علاوه بر این، اگر یک گره با قابلیت پردازش کند یا اتصال شبکه کند پشت سر بماند، میتواند کل فرآیند همگامسازی را کند کرده و عملکرد کلی شبکه بلاک چین را کاهش دهد.
آیا شاردینگ بر روی اتریوم اجرا میشود؟
اتریوم قصد دارد به عنوان بخشی از ارتقاء اتریوم 2.0، شاردینگ را پیاده سازی کند. اتریوم ۲.۰، که همچنین با نامهای Eth2 یا سرنیتی (Serenity) شناخته میشود، بهروزرسانی بلاک چین اتریوم است که با هدف افزایش سرعت، کارآیی و مقیاسپذیری شبکه طراحی شده تا بتواند تراکنشهای بیشتری را پردازش کرده و از ازدحام شبکه بکاهد.
در حال حاضر، این بهروزرسانی در فازهایی در حال اجراست، که فاز نهایی (فاز ۲) شامل اجرای کامل شاردینگ میشود. توسعهدهندگان اتریوم امیدوارند که این بهبودها برخی از چالشهای فعلی مرتبط با مقیاسپذیری و هزینه تراکنشهایی که شبکه با آنها روبهرو است، را برطرف کند.
با این حال، لازم است توجه داشته باشیم که پیادهسازی شاردینگ دارای مجموعهای از چالشهای خود به ویژه در حفظ امنیت و توزیعپذیری شبکه است. به همین دلیل، توسعهدهندگان اتریوم در انتقال به این سیستم، فکر و آزمایشهای دقیقی را انجام میدهند تا موفقیت بهروزرسانی را هنگامی که به طور کامل پیادهسازی شود، تضمین کنند.
سخن پایانی
در مجموع، شاردینگ نمایانگر پیشرفت قابل توجهی در راستای حل دیلمای بلاک چین است. در حالی که شاردینگ پیچیدگیهای جدیدی را وارد میکند و ممکن است معایبی را به همراه داشته باشد، پتانسیل آن برای افزایش مقیاسپذیری بدون آسیب رساندن به توزیعپذیری، وعدهای بزرگ برای آینده شبکههای بلاک چین دارد.
چندان تعجبآور نیست که بلاک چینهای مختلف در حال بررسی شاردینگ به عنوان راهحل احتمالی هستند. اتریوم در حال ادغام شاردینگ به عنوان بخشی از بهروزرسانی اتریوم ۲.۰ برای رفع مسائل مربوط به مقیاسپذیری است. انتظار میرود این پیادهسازی از طریق بهروزرسانی کانکون (Cancun)، یک جزء حیاتی از برنامه بهبود کلی، انجام شود. با این حال، مانند هر فناوری در حال تکامل دیگری، موفقیت به تحقیقات مداوم، توسعه و آزمایشهای دقیق اجرای شاردینگ بستگی خواهد داشت.