روشی برای بهبود مقیاس پذیریی باشاردینگ/شاردینگ چیست؟
دراین مقاله با روشی برای بهبود مقیاس پذیریی باشاردینگ/شاردینگ چیست؟ اشنا می شویم.
پیش از ظهور شاردینگ، تصور بر این بود که هیچوقت نمیتوان سه ویژگی «تمرکززدایی»، «مقیاسپذیری» و «امنیت» را در یک پروژه بلاک چینی جمع کرد و همیشه باید یکی از آنها را قربانی سایرین کرد.
این سه ویژگی در کنار یکدیگر مفهومی به نام سهگانه مقیاسپذیری را میسازندکه اولین بار ویتالیک بوترین آن را مطرح کرد؛
این مفهوم میگوید اگر پروژهای میخواهد مقیاسپذیری بالایی داشته باشد،
باید تمرکززدایی و در پی آن، امنیت را قربانی کند
و اگر پروژهای قصد دارد به ویژگی تمرکززدایی پایبند بماند، باید از مقیاسپذیری بگذرد.
شاردینگ چیست؟
به بیان ساده، شاردینگ یعنی تقسیم یک پردازش بزرگ به پردازشهای کوچکتر؛
فرض کنید قصد تکمیل یک جورچین ۱,۰۰۰ تکه را دارید. به جای آن که تمام ۱,۰۰۰ تکه را روی میز بریزید و شروع به چیدن آنها کنید،
میتوانید آنها را بر اساس رنگ تکهها جدا کنید و سپس کار تکمیلش را انجام دهید.
این دستهبندی باعث میشود بررسی تکههایی که برای بخش خاصی هستند، آسانتر و سریعتر باشد.
شاردینگ راهکاری است که بار پردازش را به قسمتهای کوچکتر تقسیم میکند
و به این طریق، ظرفیت و سرعت شبکه را افزایش میدهد. شاردینگ بهعنوان راهکاری ارائه شده است
که بهلحاظ تئوری میتواند با کمترین هزینه، به چالشهای مقیاسپذیری بلاک چین غلبه کند.
واژه شارد (Shard) بهمعنای تکه یا قطعه است و شاردینگ از لحاظ واژگانی به تکهتکه یا قطعهقطعه کردن یک چیز گفته میشود.
برای درک بهتر مفهوم شاردینگ، ابتدا نگاهی به تاریخچه آن خواهیم داشت و سپس نقش آن را در فناوری بلاک چین بررسی میکنیم.
شاردینگ در بلاک چین
Sharding یک مهارت طبقهبندی پایگاه داده است و در بلاک چینها و با هدف مقیاسپذیری استفاده میشود
تا بلاک چینها بهکمک آن بتوانند تراکنشهای بیشتری را در هر ثانیه پردازش کنند.
درحقیقت Sharding تمامی شبکه بلاک چین را به طبقاتی کوچکتر تقسیم میکند که به هرکدام از آنها یک «شارد» گفته میشود.
از طرفی هر شارد از دادههای مخصوص خود تشکیل شده است که آن را در قیاس با دیگر شاردها متمایز و مستقل میکند.
همچنین هدف اصلی Sharding در بلاک چین، کاهش تأخیر در پردازش اطلاعات و بهبود سرعت آن نیز خواهد بود.
از سوی دیگر، نگرانیهای امنیتی پیرامون بهکارگیری شاردینگ در بلاک چین نیز وجود دارد؛
برای مثال هک یا تصاحب شاردی، به نوعی تهاجم گفته میشود که در آن یک شارد به شاردی دیگر حمله میکند
و به از دست رفتن اطلاعات آن منجر میشود.
بهمنظور درک ساز و کار Sharding، ابتدا باید مفاهیمی مانند فناوری دفتر کل توزیعشده (Decentralized Ledge) و مقیاسپذیری را درک کنیم.
مقیاسپذیری بلاک چینها
یکی از چالشهای اصلی فناوری بلاک چین این است که با اضافهشدن کاربران شبکه و پردازش تراکنشهای بیشتر، شبکه بهاصطلاح دچار ایراد شده
و روند پردازش اطلاعات در آن کند میشود که به آن تأخیر یا لتنسی (Latency) شبکه میگویند.
تأخیر مانعی برای بلاک چین محسوب میشود و کاربرد آن را محدود میکند؛
درحالیکه بلاک چینها با مانعی به نام تأخیر در روند گسترش خود مواجه میشوند
و سیستمهای پرداخت متمرکز الکترونیکی فعلی با سرعت و کارآمدی بیشتری عمل میکنند.
به عبارت دیگر، همچنان که صنایع و کاربران بیشتری از این فناوری استفاده میکنند،
مقیاسپذیری چالشی برای بلاک چین در مدیریت حجم فزاینده دادهها و جریان تراکنشهاست.
همچنین یکی از راهحلهایی که برای فراهمکردن مقیاسپذیری بیتأخیر در نظر گرفته میشود، فرایند شاردینگ است.
Sharding بهگونهای طراحی شده است که حجم کاری شبکه را به پارتیشنها تقسیم میکند
تا در حد ممکن در کاهش تأخیر مؤثر باشد و امکان پردازش تراکنشهای بیشتر در زمان کوتاهتر توسط بلاک چین را فراهم کند.
شاردینگ در ارزهای دیجیتال
با توجه به تعریف شاردینگ و برقراری ارتباط میان این تعریف و مشکلات مقیاسپذیری بلاک چین، احتمالاً متوجه شدهاید
که این تکنیک تا چه حد میتواند در دنیای بلاک چین و ارزهای دیجیتال کاربردی باشد.
بهطور کلی، در حوزه بلاک چین، شاردینگ بهمعنای تقسیمبندی یک مجموعه داده به چند قسمت و ذخیره آن در چندین پایگاه داده است.
شبکههای بلاک چینی در حقیقت پایگاههای دادهای هستند که هر نود (Node) یا گره در آنها بهعنوان سرور مجزایی در شبکه کار میکند.
اگر شاردینگ را در بلاک چین اجرا کنیم، در واقع شبکه را به اجزای کوچکتری که «شارد» نام دارند تقسیم کردهایم. هر شارد مجموعه منحصربهفردی از قراردادهای هوشمند و موجودی حسابها را نگهداری خواهد کرد.
بهطور کلی، در حوزه بلاک چین، شاردینگ بهمعنای تقسیمبندی یک مجموعه داده به چند قسمت و ذخیره آن در چندین پایگاه داده است.
نود یا گره چیست؟
نودها در شاردهای مجزایی قرار میگیرند تا تراکنشها و عملیات خاصی را تأیید کنند.
بهعبارتی نودها در شاردینگ، دیگر مسئول تأیید اعتبار تمامی تراکنشهای شبکه نخواهند بود.
برای توضیح بهتر شاردینگ میتوانیم از مثال بلاک چین اتریوم استفاده کنیم.
بلاک چین اتریوم از هزاران کامپیوتر تحت عنوان نودها تشکیل شده است.
هر کدام از نودها میزان مشخصی قدرت هش در اختیار شبکه میگذارند
تا ماشین مجازی اتریوم (EVM) از پس اجرای وظایف خود مانند اجرای قراردادهای هوشمند و برنامههای غیرمتمرکز برآید.
در حال حاضر اتریوم بر پایه اجرای ترتیبی یا خطی کار میکند که در آن، هر نود باید تمامی عملیات و تراکنشها را پردازش کند.
به همین دلیل است که عبور تراکنشها از این فرایند زمان زیادی به طول میانجامد.
در حال حاضر اتریوم میتواند حدود ۱۳ تراکنش را در ثانیه پردازش کند؛
اما برای نمونه، سیستم پرداخت ویزا قادر به پردازش ۲۴,۰۰۰ تراکنش در ثانیه است.
شاردینگ در واقع مدل اجرای خطی را که در آن هر نود تمامی فعالیتها را پردازش میکند، به مدل اجرای موازی تغییر میدهد
که در آن هر نود تنها مسئول پردازش تعداد مشخصی از تراکنشها خواهد بود.
در این صورت پردازش تراکنشها بهصورت موازی و در خطوط چندگانه پیش خواهد رفت.
یک بلاک چین به شاردهای مختلف (زیردامنه یا باکت) تقسیم میشود.
نودها نیز برای تأیید تراکنشها، تنها باید بخشی از دفترکل را که به آنها اختصاص یافته اجرا کنند
و دیگر نیازی به نگهداری و بهروزرسانی کل تراکنشها نخواهد بود.
به همین دلیل است که به شاردینگ، قسمتبندی افقی (Horizontal Partitioning) نیز میگویند
که جایگزینی برای قسمتبندی عمودی (Vertical Partitioning) است.
گردآوری: وبلاگ تترفا