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

۸۷ بازدید
آخرین به‌روزرسانی: ۲۰ شهریور ۱۴۰۲
زمان مطالعه: ۸ دقیقه
شاردینگ در بلاک چین چیست؟ – به زبان ساده

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

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

شاردینگ در بلاک چین تکنیکی برای قطعه قطعه کردن شبکه برای افزایش مقیاس‌پذیری در بلاکچین است. با افزایش مقیاس پذیری شبکه می‌تواند تراکنش‌های بیشتری را در ثانیه انجام دهد. شاردینگ بستر بلاک چین را به پارتیشن‌های کوچک‌تری به‌نام «شارد» (Shard) تقسیم می‌کند. هر شارد مسئول پردازش اطلاعات خود است و مستقل از شاردهای دیگر عمل می‌کند. با توجه به این‌که شبکه بلاک چین به قسمت‌های کوچک‌تری تقسیم می‌شود کندی و تأخیر در پردازش اطلاعات در شبکه کم می‌شود. در واقع شاردینگ روشی برای تفکیک کردن پایگاه‌داده برای افزایش مقیاس‌پذیری در بلاکچین است.

مثالی برای شاردینگ پایگاه‌داده

تصور کنید که پایگاه‌داده‌ای برای ذخیره اطلاعات 100 هزار شهروند وجود دارد. برای پیدا کردن اطلاعات یک شهروند در این پایگاه‌داده نیاز به صرف انرژی پردازشی بالایی داریم. به عبارتی دیگر باید 100 هزار تراکنش را پردازش کنیم تا بتوانیم اطلاعات مورد نظر خود را پیدا کنیم.

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

مثالی برای شاردینگ

شارد چیست ؟

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

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

شارد چیست

شاردینگ و حل مشکل سه‌گانه مقیاس‌پذیری

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

مقیاس پذیری در بلاک چین چیست ؟

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

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

«مشکل سه‌گانه مقیاس پذیری» (Scalability Trilemma) بیان می‌کند که راهکارهای راحت و آسان تنها می‌توانند دو مورد از سه مورد مقیاس‌پذیری، امنیت و غیرمتمرکز بودن را به‌طور همزمان بهتر کنند. حال مروری می‌کنیم به سه‌ گروه از بلاکچین‌های موجود که تنها باعث ارتقاء و بهبود دو مورد از موارد فوق شده‌اند.

بلاکچین‌‌های نسل اول

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

بلاکچین‌های با TPS بالا

در برخی از بلاکچین‌ها همانند شبکه بایننس برای افزایش سرعت شبکه و بالا بردن «تراکنش بر ثانیه» (Transactions Per Second |TPS) تعداد مشخصی از نودها کار پردازش و ذخیره اطلاعات را انجام ‌می‌دهند. این دسته از بلاکچین‌ها معمولا از 10 الی 100 نود تشکیل شده‌اند. کاربران مجبور هستند به این تعداد نود برای پردازش اطلاعات خود اطمینان کنند. این دسته از بلاکچین‌ها مقیاس‌پذیر و امن هستند ولی غیرمتمرکز نیستند.

اکوسیستم‌های چند زنجیره‌ای

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

اهمیت شاردینگ در بلاک چین

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

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

اهمیت شاردینگ در بلاک چین

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

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

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

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

نحوه عملکرد شاردینگ در بلاک چین

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

نودها در بلاک چین

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

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

شبکه بلاکچین

 شاردینگ اتریوم

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

State در بلاک چین چیست ؟

«وضعیت» (State) در بلاک چین به اطلاعات موجود در شبکه در هر لحظه گفته می‌شود. در بستر اتریوم نیز «وضعیت شبکه» اطلاعات بلاک چین اتریوم در هر لحظه را بیان می‌کند. این اطلاعات شامل موارد مختلفی از قبیل قراردادهای هوشمند، اطلاعات مربوط به حساب‌ها و دیگر اطلاعات شبکه است. لازم به ذکر است هر تراکنش جدیدی وضعیت شبکه بلاک چین را تغییر می‌دهد.

زنجیره شارد اتریوم چیست ؟

در بلاک چین اتریوم «زنجیره شارد» (Shard Chain) خرده زنجیرهایی هستند که بخشی از شبکه بلاک چین را در خود جای می‌دهند و تراکنش‌های مربوطه را پردازش می‌کنند. زنجیره‌های شارد شده در بستر اتریوم همانند بلاکچین‌هایی کوچک هستند که به‌طور مستقل فعالیت دارند. برای این‌که امنیت شبکه حفظ شود هر زنجیره شارد سابقه‌ای از تراکنش‌ها را در بازه‌های زمانی منظم به زنجیره اصلی اتریوم یا «بیکن چین» (Beacon Chain) ارسال می‌کند.

شاردینگ در بلاک چین اتریوم

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

نحوه کارکرد شاردینگ اتریوم

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

فرض کنید اتریوم دارای 10 هزار «اعتبار سنج» (Validators) و 100 زنجیره شارد است. در شارد 1 ولیدیتور یا اعتبارسنجی برای قراردادن تراکنش‌ها در یک «مجموعه تراکنش» (Collation) انتخاب می‌شود. بقیه اعتبارسنج‌ها این مجموعه تراکنش را بررسی و اعتبارسنجی تراکنش‌های آن را انجام می‌دهند. اگر دو سوم اعتبارسنج‌ها مجموعه حاوی تراکنش‌ها را تأیید کنند این مجموعه به زنجیره اصلی ارسال می‌شود.

لازم به ذکر است که همه collation یا «مجموعه حاوی تراکنش‌ها» به بیکن چین یا زنجیره هماهنگ‌کننده اتریوم ارسال نمی‌شود. برای این‌که اگر ولیدیتورهای موجود در بیکن چین بخواهند تمامی تراکنش‌های موجود در شاردها را بررسی و اعتبارسنجی کنند به زمان زیادی نیاز دارند. در عوض نودهای اعتبارسنج بیکن چین تنها امضاهای تأییدیه این مجموعه‌ تراکنش‌ها را بررسی می‌کنند.

جمع بندی

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

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

مطلبی که در بالا مطالعه کردید بخشی از مجموعه مطالب «آموزش ارزهای دیجیتال — راهنمای مفاهیم و اصطلاحات رمزارزها» است. در ادامه، می‌توانید فهرست این مطالب را ببینید:

بر اساس رای ۱۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Web3 UniversityInvestopedia
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *