شاردینگ چیست؟ راهنمای عملکرد شاردینگ در بلاک چین
ابداع فناوری شاردینگ (Sharding) به عصر پایگاه دادههای سنتی باز میگردد و شامل تقسیمبندی یک پایگاه داده بزرگ به چندین واحد قابل مدیریت، بهمنظور دسترسی بهتر به اطلاعات میشود. دنیای ارزهای دیجیتال روزبهروز در حال گسترش است و تعداد کاربرانی که به این فضا میپیوندند، هر لحظه افزایش مییابد. آنچه که در این میان سبب نگرانی فعالان این حوزه شده، مشکلات مربوط به مقیاسپذیری در بلاک چین ها است. شاردینگ یک مکانیزم مؤثر در حل مشکل مقیاسپذیری رمزارزها محسوب میشود و تاکنون نقش قابلتوجهی در بهبود شبکههای بلاک چین داشته است. در حال حاضر شاردینگ را میتوان بهعنوان یکی از تکنیکهای بهبود مقیاسپذیری دانست که شبکههایی مثل اتریوم در فکر استفاده از آن هستند.
فناوری شاردینگ پیش از ظهور بلاک چین وجود داشته و از یک فناوری تحت عنوان پارتیشنبندی پایگاه داده (Database Partitioning) گرفته شده است. کلمه Shard به معنی بخش کوچکی از یک مجموعه بزرگ است و Sharding به تقسیم کردن یک مجموعه بزرگ به بخشهای کوچکتر اشاره دارد. این شیوه با هدف بهبود عملکرد مراکز ذخیره دادهها بهوسیله تقسیمبندی دیتابیس (پایگاه داده / Database) انجام میشود و به آن پارتیشنبندی افقی میگویند.
حال با توجه به نیاز شبکههای بلاک چین به مقیاسپذیری، برای برقراری آن چه کاری باید انجام داد؟ شاردینگ فرآیندی است که کمبودهای این وضعیت را تامین میکند. در این مقاله از صرافی ارز دیجیتال او ام پی فینکس، به بررسی فناوری شاردینگ و نحوه عملکرد آن خواهیم پرداخت.
مطالعه بیشتر: رمز ارز چیست؟ آموزش ارز دیجیتال
شاردینگ چیست؟
بهترین روش برای پاسخ به سوال شاردینگ چیست؟ شناخت سهگانه مقیاسپذیری است. این مثلث دارای سه ضلع امنیت (Security)، مقیاسپذیری (Scalability) و تمرکززدایی (Decentralization) است و نیاز اصلی هر شبکه بلاک چین محسوب میشود. در واقع، ایدهآل هر شبکه بلاک چین در اختیار داشتن این سهویژگی بهصورت همزمان است، اما معمولاً برای داشتن آنها با مشکلات و چالشهایی روبهرو میشوند.
- مقیاسپذیری: مقیاسپذیری را میتوان بهعنوان اصلیترین نیاز و دغدغه اصلی هر شبکه بلاک چین معرفی کرد. براساس ویژگی مقیاسپذیری، شبکه میتواند تعداد تراکنشهای بیشتری را مدیریت کند. در نتیجه سرعت انجام تراکنشها در شبکه افزایش خواهد یافت.
- امنیت: طبق این ویژگی، شبکه در مقابل تهدیدهای امنیتی و اقدامات خرابکارانه مقاوم خواهد بود. در واقع شبکه میتواند در مقابل هر چیزی که امنیت را به چالش میکشد مقاومت کند.
- تمرکززدایی: براساس این قابلیت، شبکه میتواند بدون نیاز به نهادی متمرکز و یا گروهی متمرکز از افراد، به عملکرد خود ادامه دهد.
در واقع شاردینگ نوعی تقسیمبندی پایگاه داده است که با هدف مدیریت بهتر شبکههای دیتابیس بزرگ استفاده میشود. به عبارتی دیگر در فرآیند شاردینگ، یک پایگاه داده بزرگ برای تبدیل به اجزای کوچکتر شکسته میشود و بهبود عملکرد شبکه را بهدنبال دارد.
برخلاف تصور عدهای از کاربران ارزهای دیجیتال، شاردینگ مفهوم جدیدی نیست؛ استفاده از این فرایند از اواخر دهه ۹۰ میلادی با هدف مدیریت پایگاه دادههای متمرکز رایج بوده است. با این حال فراگیری این اصطلاح زمانی بیشتر شد که توسعهدهندگان یکی از بازیها به نام اولتیما آنلاین تصمیم گرفتند که جهت مدیریت ترافیک ورودی، بازیکنان را در سرورهای مختلف پخش کنند.
کاربرد شاردینگ در بلاک چین چیست؟
محبوبیت رمزارزها و بلاک چین بهدلیل کاربردهای گسترده آنها در بخشهایی نظیر مدیریت زنجیره تامین و تراکنشهای مالی، روزبهروز در حال افزایش است. به این ترتیب، هرچه محبوبیت و پذیرش بلاک چین بیشتر شود، حجم تراکنشها و بار عملیاتی شبکه مربوطه نیز افزایش پیدا میکند. در حال حاضر مقیاسپذیری یکی از بزرگترین معضلات شبکه بلاک چین محسوب میشود؛ بنابراین امروزه استفاده از راهکارهایی برای حل این مسئله به چالشی بزرگ تبدیل شده است. اگر بلاک چین را یک پایگاه داده مشترک در نظر بگیریم، هرچه اطلاعات بیشتری به آن افزوده شود، شبکه باید راهکارهای جدیدتری را جهت بهینهسازی پردازش اطلاعات پیدا کند؛ مهمترین کاربرد شاردینگ، رسیدگی به همین مسئله است.
یکی از جذابترین جنبههای استفاده از دفتر کل توزیع شده در قالب فناوری بلاک چین، قابلیت به اشتراکگذاری تراکنشها و اطلاعات بهصورت توافقشده در سراسر دنیا است. زمانی که یک تراکنش در بلاک چین ثبت میشود، نسخههای متعددی از آن در تمام شبکه منتشر میشود و در دسترس عموم قرار میگیرد. اگر بخشی از شبکه دچار حملات کلاهبرداری و سایبری شود، سایر فعالان شبکه از آن باخبر خواهند شد؛ چراکه هرکدام یک نسخه کامل از شبکه را در اختیار دارند. به این ترتیب، دفتر کل بلاک چین در برابر اینگونه حملات مقاوم بوده و میتواند از آنها جلوگیری کند.
با این وجود، یکی از بزرگترین چالشهایی که بلاک چین هنگام افزایش تعداد کامپیوترهای شبکه و تراکنشها با آن روبهرو میشود، پایین آمدن سرعت شبکه و تاخیر در انجام عملیات آن است که تحت عنوان لِیتنسی (Latency) شناخته میشود. لیتنسی یکی از مهمترین عوامل بازدارنده در پذیرش جهانی فناوری بلاک چین است؛ زیرا هنگامی که با شبکههای پرداختی فعلی مقایسه میشود، میبینیم که از سرعت و کارآمدی کمتری برخوردار است.
به بیانی دیگر، چنانچه صنایع و سازمانهای بیشتری اقدام به پذیرش و خرید بیت کوین یا اتریوم و استفاده از بلاک چین کنند، مسئله مقیاسپذیری به یک چالش مهم و بزرگ تبدیل خواهد شد؛ زیرا بلاک چینها ممکن است نتوانند با افزایش تراکنشها و دادهها، عملکرد صحیح و سریع خود را حفظ کنند. در اینجا کاربرد شاردینگ بسیار حائز اهمیت خواهد بود و مقیاسپذیری بدون لیتنسی را میتوان از طریق این فناوری پیادهسازی کرد. کاربرد شاردینگ پخشکردن بار عملیاتی شبکه بلاک چین بین بخشهای مختلف است که منجر به کاهش لیتنسی و پردازش سریعتر و بیشتر تراکنشها میشود.
اجرای فرآیند شاردینگ در بلاک چین به منزله تقسیمبندی شبکه به اجزای کوچکتری به نام شارد است. وظیفه هر شارد نگهداری مجموعه ثابت و منحصربهفردی از قرارداد هوشمند (Smart Contract) و موجودی حسابها است. در واقع نودها با قرار گرفتن در شاردهای مجزا، تراکنشها و عملیات مشخصی را تأیید میکنند. بر اساس این فرایند، نودها دیگر مسئول تمامی تراکنشهای موجود در شبکه نخواهند بود. اصلیترین هدف استفاده از شاردینگ در شبکه بلاکچین، ایجاد اجزایی است که مدیریت آنها سادهتر باشد تا تعداد تراکنشها افزایش یابد و مشکلاتی نظیر مقیاسپذیری در شبکه حل شود.
برای درک بهتر کاربرد شاردینگ در بلاک چین، لازم است به مثال زیر توجه کنید. همانطور که میدانید بلاک چین اتریوم از تعداد زیادی کامپیوتر، تحت عنوان نود (Node) تشکیل شده است. هر یک از این نودها مقدار مشخصی قدرت هش در اختیار شبکه قرار میدهند و به این ترتیب، شبکه میتواند وظایف خود مانند اجرای قرارداد هوشمند اتریوم را به درستی انجام دهد.
عملکرد اتریوم به صورت خطی یا ترتیبی است؛ براساس آن هر نود باید تمامی تراکنشها و عملیات را پردازش نماید. به همین دلیل انجام این تراکنشها به زمان زیادی نیاز دارد. جالب است بدانید که در حال حاضر اتریوم قادر به انجام ۱۰ تا ۲۰ تراکنش در هر ثانیه است؛ در حالیکه سیستمهای پرداختی مانند ویزا (Visa) این قابلیت را دارند که ۲۴,۰۰۰ تراکنش در ثانیه را پردازش کنند.
حال باید پرسید که در چنین شرایطی نقش شاردینگ چیست؟ شاردینگ مدل خطی را که در آن هر نود وظیفه پردازش تمامی فعالیتها را دارد به مدل موازی که در آن هر نود مسئول پردازش تعداد مشخصی از تراکنشها است، تغییر میدهد. براساس مدل موازی، تراکنشها بهطور موازی و در خطوط چندگانه پردازش میشوند. بهطور کلی یک بلاک چین به شاردهای مختلف تقسیم میشود و نودها برای تأیید تراکنشها باید قسمتی از دفترکل که به آنها اختصاص داده شده است را اجرا کنند. براساس فرآیند شاردینگ، دیگر نیازی به نگهداری و بهروزرسانی تمامی تراکنشها نیست.
نحوه عملکرد شاردینگ
مشابه با شبکههای مبتنی بر الگوریتم اجماع اثبات کار (Proof-of-Work / PoW) که در معرض حملات ۵۱ درصدی قرار دارند، شبکههای دارای فناوری شاردینگ نیز در برابر حملاتی تحت عنوان حمله ۱ درصدی آسیبپذیر هستند. به بیان ساده، این نظریه به اینگونه است که اگر یک شبکه بلاک چین را به ۱۰۰ شارد مختلف تقسیم کنیم، فرد خرابکار تنها به هک کردن یکی از این شاردها و ایجاد تراکنشهای تقلبی در آن نیاز دارد تا بتواند فعالیت خود را پیش ببرد.
امنیت از دیگر عوامل مهم در یک بلاک چین دارای فناوری شاردینگ محسوب میشود؛ چراکه امکان دسترسی هکرها و مهاجمان به یک شارد به دلیل کاهش قدرت هش آن راحتتر است. اگر یک شارد هک شود، مهاجم امکان ثبت تراکنشهای نامعتبر در شبکه را دارد؛ یا اینکه میتواند قسمتی از بخش هک شده را بیاعتبار و یا آن بخش را برای همیشه پاک کند.
برای انجام چنین کاری، نودهای اعتبارسنج هر شارد باید تحت مالکیت فرد خرابکار باشند. البته که ایجاد چنین حملهای در شبکه بیکن اتریوم (Beacon Chain) تقریباً غیرممکن است؛ چراکه در این شبکه یک الگوریتم انتخاب تصادفی (Randomization) وجود دارد که اعتبارسنجها را در بازههای زمانی مشخص بین شاردها جابهجا میکند. از این رو، دور زدن چنین سیستمی بهطور کل غیرممکن خواهد بود؛ زیرا هیچ اعتبارسنجی در یک شارد مشخص باقی نمیماند.
درک عملکرد شاردینگ در بلاک چین و ارزهای دیجیتال با بررسی جزئیات این سیستمها بهمراتب راحتتر خواهد بود. در وحله اول باید بدانید که کاربرد شاردینگ در مواردی است که یک مجموعه بزرگ از دادهها و اطلاعات برای یک پایگاه داده موجود باشند. مثال بارز در اینجا شبکه اتریوم است که توسعهدهندگان بیشماری روی پروژههای مختلف تحت این بلاک چین فعالیت میکنند.
در حال حاضر نزدیک به ۳,۰۰۰ اپلیکیشن غیرمتمرکز یا DApp تحت بلاک چین اتریوم اجرا شدهاند و بهطور واضح، ضروریت مقیاسبندی از طریق شاردینگ در چنین شرایطی دیده میشود. عملکرد شاردینگ در اینجا به اینگونه است که با تقسیمبندی شبکه به ماژولها یا پارتیشنهای کوچکتر، باعث شده توانایی پردازش تراکنشها در هر ثانیه تقویت شود. شاید در اینجا تعریف عملکرد شاردینگ ساده به نظر برسد، اما این فرآیند جزئیات حیاتی بسیار زیادی دارد.
مطالعه بیشتر: DApp چیست؟ همهچیز در مورد برنامه غیرمتمرکز
بهتر است در ادامه کار برای فهم بهتر عملکرد شاردینگ در یک شبکه بلاک چین، نحوه فعالیت نودهای شبکه را مورد بررسی قرار دهیم؛ نودها یکی از اجزای جداییناپذیر در یک شبکه بلاک چین بهشمار میآیند و بدون آنها، دسترسی به اطلاعات درون شبکه امکانپذیر نخواهد بود. تمام نودهای یک بلاک چین همیشه باهم در ارتباط هستند و دائماً مشغول تبادل اطلاعات با یکدیگر بوده تا بهروزترین نسخه بلاک چین را در اختیار داشته باشند.
به بیان ساده، نودها زیربنای یک بلاک چین بوده و عملیات مهم شبکه را انجام میدهند. نودها وظیفه ذخیرهسازی، حفظ اطلاعات و انتشار آنها در سراسر زیرساخت شبکه را بر عهده دارند. این اطلاعات نظیر موجودی حسابها و تاریخچه تراکنشها، بین سایر نودهای بلاک چین پخش شده تا صحت و امنیت آنها برقرار باشد.
اما چنین سیستمی از لحاظ مقیاسپذیری کمبودهایی نیز دارد. فناوری دفتر کل توزیع شده در بلاک چینها دارای امنیت و تمرکززدایی است؛ اما شبکههای بلاک چین در برابر حجمی بزرگ از دادهها به مشکل میخورند که منجر به تراکم شبکه میشود. پیامد چنین وضعیتی، لیتنسی بالا و سرعت پایین شبکه در پردازش اطلاعات خواهد بود.
شبکههای بلاک چین میتوانند بار عملیاتی خود را بهصورت افقی پخش کنند تا نودهای شبکه مجبور به پردازش تمام تراکنشها نباشند. از این رو، بخشبندی صحیح و کارآمد نودها، میتواند تاثیر عملکرد آنها پس از شاردینگ را نشان دهد.
پارتیشن بندی افقی (Horizontal Partitioning): فرآیند شاردینگ در بلاک چین و رمزارزها شامل پارتیشنبندی فیزیکی نودهای شبکه نمیشود. پارتیشنبندی افقی شبکه بلاک چین یا یک پایگاه داده، باعث میشود که چندین ردیف مختلف برای پیادهسازی شاردینگ بهوجود آیند. به هر یک از این ردیفها شارد گفته میشود که با کمک پارتیشنبندی افقی، یک اکوسیستم فوقالعاده پویا را بهوجود میآورند.
چنین طراحی به شاردها اجازه داده تا طبق ویژگیهای خود، وظایفی تخصصی را بر عهده گیرند. مثلاً، یک شارد میتواند وظیفه ثبت تاریخچه تراکنشها و وضعیت یک آدرس کیف پول را بر عهده گیرد. از طرفی دیگر، یک شارد میتواند به برقراری ارتباط با سایر شاردها جهت پردازش تراکنشها بپردازد.
مطالعه بیشتر: معرفی بهترین کیف پول های ارز دیجیتال
فرض کنید یک پایگاه داده بزرگ حاوی شش ردیف داریم و شما میتوانید این ساختار را به سه بخش کوچکتر تقسیم کنید تا پردازش اطلاعات موجود راحتتر شود. پارتیشنبندی افقی یک پایگاه داده بزرگ را به بخشهای کوچکتر و بهینهتر نسبت به نسخه اصلی تقسیم کرده و در عین حال، ویژگیهای بنیادی و مهم آن را حفظ میکند. ناگفته نماند که پارتیشنبندی افقی تنها راهکار برای تقویت مقیاسپذیری نبوده و راهکارهای لایه ۲ (Layer-2) و مقیاسبندی افقی (Vertical Scaling) نیز از دیگر راه حلها برای این چالش بهشمار میآیند.
مزایای شاردینگ
یکی از مزایای شاردینگ، تسهیل دسترسی و اجرای یک نود در شبکه مربوطه است. زمانی که دادههای درون شبکه بین شاردها پخش میشوند، دیگر نیازی نیست تا یک نود اعتبارسنج تمام تاریخچه بلاک چین را ذخیره کند؛ در عوض، آن نود تنها تاییدیه صحت اطلاعات موجود را ذخیره میکند.
شبکههای فاقد شاردینگ اغلب به استفاده از رولآپها (Rollup) جهت تقویت سطح مقیاسپذیری خود روی میآورند. رولآپها تراکنشها را از لایه اصلی شبکه خارج کرده و بهصورت دستهای آنها را تایید و به شبکه باز میگردانند. از این رو، شاید فکر کنید که شاردینگ نوعی رقیب برای رولآپ محسوب میشود که اینطور نیست؛ در واقع، یکی دیگر از مزایای شاردینگ تقویت فناوری رولآپ است. پیادهسازی رولآپها در یک شبکه شارد شده، منجر به بهینهتر و سریعتر شدن گزارشات وضعیت و دادهها میشود. هماکنون، راهکارهای لایه ۲ اجرا شده روی شبکه اتریوم نظیر آپتیمیزم (Optimism / OP)، از فناوری رولآپها استفاده میکنند.
مطالعه بیشتر: بررسی پروژه و مشاهده قیمت اپتیمیزم (OP)
طبق اطلاعات موجود از وبسایت رسمی اتریوم، پیادهسازی شاردینگ در این شبکه باعث میشود که هر فردی بتواند از طریق گوشی موبایل یا لپتاپ خود، بهعنوان یک نود اتریوم در این شبکه فعالیت داشته باشد. به این ترتیب، افراد بیشتری میتوانند در شبکه اتریوم به فعالیت بپردازند که این مسئله، تقویت امنیت و تمرکززدایی این شبکه را در پی دارد.
شاردینگ یکی از بهترین روشهای ارائه شده برای حل مشکل مقیاسپذیری شبکههای بلاک چین است. بر اساس این فرایند، شبکه بلاک چین به اجزای کوچکتری تقسیم میشود که به هر یک از آنها یک شارد میگویند. طبق این ساختار، همه تراکنشهای فرستاده شده به شبکه، بین شاردهای مختلف تقسیم میشود و در نتیجه سرعت تراکنشها افزایش مییابد. تاکنون روشهای زیادی برای حل مشکل مقیاسپذیری شبکه بلاک چین پیشنهاد شده است، اما این روشها موقتی بوده و با مشکلات بسیاری همراه بودهاند. اگرچه فرایند شاردینگ هم با چالشهایی روبهروست اما در حال حاضر میتوان آن را بهعنوان یکی از بهترین راهکارهای موجود معرفی کرد.
در این پست از بلاگ صرافی او ام پی فینکس به بررسی فناوری شاردینگ (Sharding) و نحوه عملکرد و مزایای آن پرداختیم. چنانچه در رابطه با موارد فوق سوال، پیشنهاد و یا انتقادی داشتید، میتوانید با ثبت نظر خود در پایین همین صفحه ما را در جریان بگذارید.
مهم ترین سوالات شما در مورد شاردینگ
شاردینگ چیست؟
Sharding در قالب یک فناوری، به تقسیمبندی یک پایگاه داده بزرگ به چندین واحد قابل مدیریت، بهمنظور دسترسی بهتر به اطلاعات میگویند.
Shardeum چیست؟
شاردیوم (Shardeum) یک پلتفرم قرارداد هوشمند مبتنی بر ماشین مجازی اتریوم (EVM) و دارای مقیاسپذیری خطی (Linear Scalability) است که با اضافهشدن نودها به شبکه، سرعت پردازش تراکنشها نیز افزایش مییابد.
منظور از شاردینگ در بلاک چین چیست؟
شاردینگ در بلاک چین به فرآیندی اشاره دارد که طبق آن تمام ساختار شبکه به چندین شبکه کوچکتر بهنام شارد (Shard) تقسیم شده و هرکدام از شاردها وظیفه خاص خود را بر عهده دارند.
مطلب بسیار خوبی بود .
سلامت باشید