مشکلات مقیاس پذیری در بلاک چین‌ها باعث شد تا راهکارهایی مانند شاردینگ و لایتنینگ برای بهبود آن ارائه شوند. شاردینگ یکی از روش‌های بهبود مقیاس‌ پذیری است که بلاک چین‌هایی چون اتریوم قصد استفاده از آن را در آینده دارند. در این مطلب که از کوین‌تلگراف گرفته شده، به توضیح تاریخچه شاردینگ و نحوه استفاده از آن در بلاک چین‌ها خواهیم پرداخت.

شاردینگ چیست؟

شاردینگ نوعی پارتیشن‌بندی پایگاه داده است که از آن به عنوان پارتیشن‌بندی افقی نیز یاد می‌شود.

فرایند شاردینگ شامل شکستن یک پایگاه‌ داده بسیار بزرگ به اجزای کوچکتر و قابل مدیریت است. اجرای شاردینگ با هدف بهبود عملکرد و کاهش زمان پاسخ‌دهی انجام می‌شود.

شاردینگ مفهوم جدیدی نیست و از اواخر دهه ۹۰ میلادی در مدیریت پایگاه‌ داده‌های متمرکز رایج از آن استفاده می‌شده است.

استفاده از این اصطلاح زمانی رایج شد که توسعه‌دهندگان یکی از اولین بازی‌های در سبک نقش آفرینی بر خط چندنفره گسترده به نام اولتیما آنلاین، برای مدیریت ترافیک ورودی تصمیم گرفتند بازیکنان را در سرورهای مختلف پخش کنند.

مثال رایج از شاردینگ یک پایگاه داده بزرگ در دنیای کسب‌وکار، شکستن پایگاه داده مشتریان به مناطق جغرافیایی است. مشتریانی که در مکان‌های جغرافیایی یکسانی هستند، با هم‌ گروه‌بندی می‌شوند و در سرورهای منحصربفردی قرار می‌گیرند.

شاردینگ (Sharding) چیست؛ روشی برای بهبود مقیاس‌ پذیری

شاردینگ در بلاک چین چگونه است؟

شاردینگ در بلاک چین نیز مفهوم ثابتی را دنبال می‌کند.

شبکه‌های بلاک چینی پایگاه داده‌ای هستند که هر نود یا گره به عنوان سرور مجزایی در شبکه اعلام حضور می‌کند. اگر شاردینگ را در بلاک چین اجرا کنیم، در واقع شبکه را به اجزای کوچکتری که «شارد» نام دارند، تقسیم کرده‌ایم. هر شارد مجموعه ثابت و منحصربفردی از قراردادهای هوشمند و موجودی حساب‌ها را نگهداری خواهد کرد.

نودها در شاردهای مجزایی قرار می‌گیرند تا تراکنش‌ها و عملیات خاصی را تایید کنند. به عبارتی نودها در شاردینگ، دیگر مسئول تایید تمامی تراکنش‌ها در شبکه نخواهند بود.

ایجاد اجزای قابل مدیریت‌تر، هدف استفاده از شاردینگ در بلاک چین‌هاست تا در نتیجه آن میزان تراکنش‌ها افزایش یابد و مشکلاتی ناشی از مقیاس‌پذیری در بلاک چین‌های بزرگ امروزی حل شود.

در ادامه به جزئیات شاردینگ خواهیم پرداخت.

شاردینگ چگونه کار می‌کند؟

برای توضیح شاردینگ، از مثال بلاک چین اتریوم استفاده می‌کنیم.

بلاک چین اتریوم از هزاران کامپیوتر (به عبارت دقیقتر ۸۶۲۲ عدد در حال حاضر) تحت عنوان نودها تشکیل شده است. هر کدام از نودها میزان مشخصی قدرت هش در اختیار شبکه می‌گذارند تا ماشین مجازی اتریوم (EVM) از پس اجرای وظایف خود مانند اجرای قراردادهای هوشمند و برنامه‌های غیرمتمرکز برآید.

در حال حاضر اتریوم بر پایه اجرای ترتیبی یا خطی کار می‌کند که در آن هر نود باید تمامی عملیات و تراکنش‌ها را پردازش کند. برای همین نیز عبور تراکنش‌ها از این فرایند زمان زیادی به طول می‌انجامد. در حال حاضر اتریوم می‌تواند تا ۱۰ تراکنش در ثانیه پردازش کند اما برای نمونه سیستم‌های پرداخت ویزا قادر به پردازش ۲۴,۰۰۰ تراکنش در ثانیه هستند. همینطور افزودن کامپیوتر یا همان نود به شبکه الزاما باعث بهبود راندمان نخواهد شد؛ چرا که دفتر کل و تراکنش‌های ثبت شده بر روی تمامی کامپیوترها موجود است و تنها زنجیره تایید کردن طولانی‌تر خواهد شد.

شاردینگ مدل اجرای خطی را که در آن هر نود تمامی فعالیت‌ها را پردازش می‌کند، به مدل اجرای موازی تغییر می‌دهد که در آن هر نود تنها مسئول پردازش تعداد مشخصی از تراکنش‌ها خواهد بود. در این صورت پردازش تراکنش‌ها به صورت موازی و در خطوط چندگانه پیش خواهد رفت.

شاردینگ (Sharding) چیست؛ روشی برای بهبود مقیاس‌ پذیری

یک بلاک چین به شاردهای مختلف (زیردامنه یا باکت‌ها) تقسیم می‌شود. نودها نیز برای تایید تراکنش‌ها، تنها باید بخشی از دفترکل را که به آن‌ها اختصاص یافته اجرا کنند؛ دیگر نیازی به نگهداری و بروزرسانی کل تراکنش‌ها نخواهد بود.

شاردینگ چه مشکلی را حل می‌کند؟

شاردینگ راهکار بالقوه‌ای برای مشکلات مقیاس‌پذیری در بلاک‌ چین‌های امروزی است.

همانطور که گفته شد، مسئله مقیاس پذیری در حال حاضر به یکی از بزرگترین معضلات بلاک چین‌ها تبدیل شده است. هرچقدر که شبکه بلاک چینی محبوب می‌شود، کاربران بیشتری اقدام به اجرای تراکنش‌ها، برنامه‌های غیرمتمرکز و سایر عملیات در شبکه می‌کنند.

افزایش تراکنش‌ها منجر به افزایش تقاضا از سوی نودها برای تایید تراکنش‌ها می‌شود. این یک تهدید واقعی برای اتریوم است که در زمان جنون کریپتو‌کیتیز یکبار خود را نشان داد. در آن زمان تراکنش‌های این بازی ۱۱ درصد از تراکنش‌های شبکه را به خود اختصاص داده بود. در صورتی که چنین اتفاقی بیافتد، تراکنش‌ها به کندی تایید خواهند شد و پذیرش بلاک چین‌ها با مشکل جدی روبرو می‌شود.

اما به وسیله شاردینگ و تقسیم شدن بلاک چین به اجزای کوچکتر، گروه‌های مشخصی از نودها مسئول تایید بخش خاصی از تراکنش‌ها خواهند بود. تایید تراکنش‌ها به جای مدل خطی به صورت موازی انجام خواهد شد و سرعت کل شبکه افزایش خواهد یافت. شاردینگ بلاک چین‌ها را برای بلندمدت پایدارتر و بادوام‌تر می‌کند.

معایب شاردینگ چیست؟

در حال حاضر چالش‌های پیش‌روی شاردینگ به نحوه برقراری ارتباط و امنیت برمی‌گردد.

اگر بلاک چین را به اجزای ایزوله‌ای تقسیم کنید، هر شارد به عنوان یک بلاک چین مجزا عمل خواهد کرد. در اینصورت بدون پیاده‌سازی سازوکارهای برقراری ارتباط بین شاردی، کاربران و برنامه‌های یک زیردامنه قادر به برقراری ارتباط با کاربران و برنامه‌های زیردامنه دیگری نخواهند بود.

همین مسئله باعث شده تا لایه پیچیده دیگری به مجموعه وظایف توسعه‌دهندگان اضافه شود تا راجع به آن فکر کنند.

در یک بلاک چین بخش شده، برقراری امنیت نیز مسئله مهمی است؛ چرا که با تقسیم شبکه به اجزای کوچکتر، کار هکرها و مهاجمین برای کنترل یافتن بر روی یک شارد واحد به دلیل قدرت هش کاهش یافته، راحت‌تر می‌شود. این نوع حمله در شاردها با نام «حمله ۱ درصد» یا «کنترل بر شارد واحد» نیز شناخته می‌شود.

زمانی که یک شارد هک می‌شود، مهاجم می‌تواند تراکنش‌های نامعتبر را در شبکه اصلی ثبت کند یا اینکه اطلاعات آن قسمت را نامعتبر ساخته و یا برای همیشه پاک کند.

پاسخ اتریوم به این خطر امنیتی، نمونه‌گیری تصادفی است. تراکنش‌های ثبت شده در هر شارد به صورت تصادفی به بخش‌های مختلفی برای صحت‌سنجی بلاک‌ها نیاز پیدا می‌کند.

شاردینگ (Sharding) چیست؛ روشی برای بهبود مقیاس‌ پذیری

آیا راهکار جایگزینی برای شاردینگ وجود دارد؟

دو طرح بهبود اضافی از سوی توسعه‌دهندگان برای بهبود عملکرد و سرعت تراکنش‌ها بر روی بلاک چین‌ها پیشنهاد شده است.

اولین روش افزایش دادن سایز بلاک‌ها با این تفکر است که هر چه بلاک‌ها بزرگتر باشند، تراکنش‌های بیشتری در آن‌ها جا می‌گیرد. بر همین اساس هم تعداد تراکنش‌هایی که در ثانیه می‌تواند انجام شود، افزایش می‌یابد.

هرچند این راهکار می‌تواند عملی شود اما باید در نظر داشت که بزرگتر شدن بلاک‌ها به معنی نیاز به قدرت محاسباتی بیشتر برای تایید آن بلاک است.

اگر سایز بلاک قرار بود به طور نامحدودی افزایش یابد، تنها تجهیزات و سخت‌افزارهای بسیار تخصصی از عهده مدیریت پردازش تراکنش‌ها به عنوان نود برمی‌آمدند و تعداد نودهای شبکه به طور قابل توجهی کاهش می‌یافت.

هزینه‌بر بودن تهیه این تجهیزات به معنی متمرکز شدن نودها و افزایش خطر حمله ۵۱ درصد می‌شود. همچنین افزایش دادن سایز بلاک نیازمند هاردفورک است که خطر جدا شدن جامعه از هم را به دنبال دارد. اگر همه افراد بروزرسانی به بلاک چین جدید را انجام ندهند، دو زنجیره جدا با کوین‌های مجزا به حیات خود ادامه خواهند داد. به همین خاطر افزایش دادن سایز بلاک، تنها یک راهکار موقتی است.

پیشنهاد دوم استفاده از آلت کوین‌ها برای عملکردها و کاربردهای مختلف است تا بر روی زنجیره‌شان با کوین‌های خودشان اجرا شوند. این اتفاق موجب بهبود عملکرد می‌شود چرا که عملیات و پردازش‌ها تنها به دوش یک بلاک چین نمی‌افتد. در این شیوه امنیت نیز تا حدود زیادی تامین می‌شود چرا که قدرت هش بین بلاک چین‌های مختلف پخش می‌شود. با این حال هک کردن بلاک چین و اجرای حمله ۵۱ درصد نسبت به حالت قبل راحت‌تر خواهد بود. با این حال، این یک راهکار دائمی و قابل اتکا نیست.

شاردینگ (Sharding) چیست؛ روشی برای بهبود مقیاس‌ پذیری

کدام ارزهای دیجیتال از شاردینگ استفاده می‌کنند؟

برخی بلاک چین‌ها فناوری شاردینگ را پیاده‌ کرده‌اند و این در حالی است که برخی دیگر در حال توسعه آن هستند.

زیلیکا (Zilliqa) اولین بلاک چین عمومی است که موفق به پیاده‌سازی شاردینگ شده است. این بلاک چین در شبکه آزمایشی خود موفق شد با این فناوری به ۲,۸۲۸ تراکنش در ثانیه برسد.

بلاک چین نیِر (Near) نیز به توسعه‌دهندگان اجازه ساخت و اجرای برنامه‌های غیرمتمرکز را می‌دهد. این اکوسیستم خود را یک بلاک چین اثبات سهام معرفی کرده که شارد شده و برای توسعه‌دهندگان مناسب است. فناوری شاردینگ در این بلاک چین به نودها اجازه می‌دهد تا به حدی کوچک بمانند که حتی در آینده قابلیت اجرا بر روی گوشی‌های هوشمند را نیز داشته باشند.

همانند Near، اتریوم نیز اکوسیستم بلاک چینی را توسعه می‌دهد تا علاوه بر اینکه بستری برای اجرای قراردادهای هوشمند و برنامه‌های غیرمتمرکز باشد، در بروزرسانی اتریوم ۲.۰ شاردینگ را نیز به عنوان یکی از اجزای اصلی خود معرفی کند. اولین بخش از بروزرسانی و انتقال به اتریوم ۲.۰ در ماه ژانویه ۲۰۲۰ اتفاق خواهد افتاد.

برخی پروژه‌های بلاک چینی دیگر مانند کاردانو، کوارک‌چین و پی‌چین نیز به شاردینگ به عنوان راه‌حلی برای رفع مشکلات مقیاس‌‌پذیری می‌نگرند.

آینده شاردینگ در بلاک چین‌ها به چه صورت است؟

شاردینگ اخیرا به خاطر ارز دیجیتال لیبرا توجهات را به سوی خود جلب کرده است.

فیس‌بوک با انتشار وایت‌پیپر لیبرا، جزئیات بیشتری در رابطه با این پروژه در اختیار همگان قرار داد. بخشی از تیم این ارز دیجیتال که نیمه اول سال ۲۰۲۰ راه‌اندازی می‌شود، از تیم پروژه چین‌اسپیس تشکیل شده که توسعه‌دهندگان آن به طور عمده بر روی شاردینگ بلاک چین‌ها تحقیق و پژوهش داشتند. از این نظر احتمال دارد حتی فیس‌بوک نیز فناوری شاردینگ را به نحوی در پارتیشن‌بندی بلاک چین خود پیاده کند.

در ابعاد گسترده‌تر، شاید بتوان شاردینگ را روشی برای حل مشکل سه‌راهی بلاک چین‌ها در نظر گرفت.

سه‌راهی بلاک چین‌ها که توسط ویتالیک بوترین، خالق اتریوم، مطرح شد به این صورت است که شما تنها می‌تواند دو خصیصه از سه ویژگی اساسی بلاک چین‌ها را به صورت همزمان داشته باشید؛ امنیت، مقیاس‌پذیری، غیرمتمرکز بودن.

یعنی برای ایجاد یک بلاک چین شما باید یکی از ویژگی‌ها را برای دستیابی به خاصیت اساسی سوم قربانی کنید.

شاردینگ (Sharding) چیست؛ روشی برای بهبود مقیاس‌ پذیری

همانطور که بنیامین مینکو، مدیر الروند نتورک از بلاک چین‌هایی که بر روی مقیاس‌پذیری و همکارکردپذیری متمرکز است در گفتگوی اخیرش با فوربز اشاره کرده، اگر چالش‌های شاردینگ را پشت سر بگذاریم، مقیاس‌پذیری را به بلاک چین‌ها برخواهیم گرداند؛ بدون اینکه نیاز باشد غیرمتمرکز بودن یا امنیت را به خطر بیاندازیم.

این اتفاق بلاک چین‌ها را یک قدم به پذیرفته شدن و  راه یافتن به جریان اصلی نزدیک‌تر خواهد کرد:

شاردینگ پیچیده است، اما حاصل کار به بهبودی در بلاک چین‌های عمومی منجر می‌شود که توان رقابت با شبکه‌هایی چون ویزا را به آن‌ها می‌دهد. هرچند برخی چالش‌ها مانند کنترل یافتن بر روی یک شارد واحد، ارتباطات بین شاردی و صحت اطلاعات وجود دارد.

[تعداد: 1    میانگین: 5/5]

دیدگاه تان را بنویسید