با پیدایش بیت کوین، دید بسیاری از افراد نسبت به ارزش بلاک چین تغییر کرد. این فناوری به یکی از هیجان انگیزترین پیشرفتهای فنی قرن بیست و یکم تبدیل شده است. هر چه بلاک چین شناختهتر شد، افراد بیشتری از آن برای زیر ساخت پروژههای خود استفاده کردند. بلاک چین مانند ظهور اینترنت در دهههای ۱۹۸۰ و ۱۹۹۰ است. اینترنت در آن زمان پیشگام ارتباطات آنلاین بود و بلاک چین امروزه راه جدیدی برای افزایش دارایی بر اساس شبکههای داده و داراییهای دیجیتالی ایجاد میکند.
این شبکهها شامل محیط فناوری غیرمتمرکز خود هستند که به منظور ارائه خدمات دفتر کل و قرارداد هوشمند به برنامههای غیرمتمرکز یا dApps شناخته میشوند. آنها برای تسهیل برنامههای خود از اتریوم استفاده میکنند. هدف اتریوم ایجاد یک کامپیوتر جهانی برای اجرا، رشد و گسترش دی اپها است. شبکه اتریوم در صورتی میتواند به این هدف دست یابد که حجم زیادی از دادهها را بتواند در سیستم خود ذخیره و نگهداری کند (کاری که در حال حاضر امکانپذیر نیست). اما غیر ممکن، غیرممکن است. اتریوم میتواند این مشکل را به وسیله شاردینگ حل کند. اگر میخواهید بدانید شاردینگ چیست، چگونه کار کرده و چه کمکی به شبکه اتریوم میکند، در این مقاله به بررسی کامل شاردینگ (Sharding) خواهیم پرداخت.
شاردینگ روشی است که در علوم کامپیوتر برای مقیاسبندی سیستمها استفاده میشود تا سیستمها بتوانند دادههای اضافی را در خود جای دهند. این روش مستلزم به تقسیم بندی جداول بزرگ از دادهها به بخشهای کوچکتر است که در سرورهای متعدد توزیع میشوند. در مقایسه با سایر شاردها، هر شارد دادههای خاص خود را دارد که آن را مجزا و مستقل میکند.
از آنجایی که شاردینگ میتواند تأخیر و دادههای اضافی را به پارتیشنهای کوچکتر تقسیم کند، برای بلاک چین بسیار مفید واقع میشود. بنابراین اگر بخواهید مجموعه دادههای بزرگی را در پایگاه دادهای ذخیره کنید، حتماً به شاردینگ نیاز خواهید داشت. البته این مورد در اتریوم صادق است. بر اساس تجزیه و تحلیل دادهها، بیش از ۳۰۰۰ برنامه غیرمتمرکز (dApps) در بلاک چین اتریوم وجود دارد، بنابراین مقیاسپذیری از طریق شاردینگ، برای اتریوم جهت حفظ موقعیت غالب خود در اکوسیستم و حفظ کارایی کلی شبکه ضروری است.
قبل از توضیح عملکرد اصلی شاردینگ، مطالعه و بررسی گرهها و نحوه ذخیره و پردازش دادهها اهمیت دارد. به زبان ساده، نود یا گرهها بخش مهمی از زیرساختهای بلاک چین هستند. بدون آنها، دادههای یک بلاک چین در دسترس نخواهد بود. همه گرهها به یکدیگر متصل هستند و به طور مداوم آخرین دادههای بلاک چین را مبادله میکنند تا همه گرهها به روز باشند. در واقع این گرهها هستند که در بلاک چین دادهها را ذخیره، نگهداری و توزیع میکنند.
هر گره در یک شبکه غیرمتمرکز باید بتواند دادههای مهمی مانند تاریخچه تراکنش و مانده حسابها را ذخیره کند. در حالی که معماری دفتر کل توزیعشده بلاک چین، تمرکززدایی و امنیت را امکانپذیر میکند، شبکهای که باید تعداد زیادی از تراکنشها را پردازش کند و حجم عظیمی از دادهها را ذخیره کند، ممکن است دچار بارگذاری بیش از حد، گرفتگی و تأخیر یا کندی شود.
به عنوان مثال، زمان تراکنشها در اتریوم بین ۱۰ تا ۲۰ تراکنش در ثانیه است، به عنوان دومین ارز دیجیتال برتر این مقدار عدد بسیار کمی است. از این رو، اتریوم باید مشکل مقیاسپذیری خود را حل کند. از سوی دیگر، یک شبکه بلاک چین ممکن است با کمک شاردینگ، حجم کاری خود را به صورت افقی توزیع کند تا هر گره مجبور نباشد تمام تراکنشهای خود را مدیریت یا پردازش کند، و این امکان را برای یک معماری تقسیمبندیشده و کارآمدتر فراهم میکند.
پارتیشنبندی افقی
شاردینگ Sharding با پارتیشنبندی افقی یک پایگاه داده یا به ردیفهای جداگانه انجام میدهد که به آنها شارد میگویند. این طراحیها منجر به پویایی اکوسیستم میشود. برای مثال، یک شارد ممکن است مسئول حفظ تاریخچه تراکنش و وضعیت یک آدرس خاص باشد یا میتواند با چندین شارد برای اجرای تراکنشها برای یک دارایی دیجیتال خاص کار کند.
برای درک بهتر تصویر زیاد را تصور کنید. در این مدل یک پایگاه داده بزرگ با ۶ ردیف وجود دارد. جهت مدیریت بهتر، پایگاه داده به چند بخش کوچکتر تقسیم میشوند. پارتیشنبندی افقی فقط جدول را به یک نسخه کوچکتر و کارآمدتر از خود کاهش میدهد و در عین حال تمام ویژگیهای اصلی را حفظ میکند. همین تصویر را در ذهن خود بر روی یک بلاک چین تصور کنید. جایی که وضعیت زنجیره را میتوان به بخشهای کوچکتر و قابل مدیریتتر به نام شارد تقسیم کرد.
تفاوت مقیاسبندی افق و عمودی در چیست؟
وقتی صحبت از مقیاسپذیری به میان میآید، زیرساختهای بلاک چین چند گزینه دارند: مقیاسبندی عمودی و پارتیشنبندی افقی نمونههایی از راهحلهای لایه ۲ هستند. راه حلهای لایه ۲ که خارج از زنجیره و در بالای بلاک چین قرار دارند. هدف لایه ۲ دور زدن لایه پایه موجود به نفع طراحی جدید است. این لایه اضافی محاسبات پیچیدهای را انجام میدهد و هدف آن کاهش تنگناهای مختلف در معماری لایه پایه است. بسیاری از پروژههای محبوب از این راه حل لایه ۲ برای مقیاسپذیری استفاده میکنند، پروژههایی مانند پلیگان (ماتیک)، Plasma و Raiden.
مقیاسبندی عمودی فرآیند گسترش یک شبکه با افزایش قدرت پردازش و حافظه واحد پردازش اصلی یک سیستم و در عین حال افزایش کارایی تراکنشهای فردی است. مقیاسبندی عمومی این کار را صرفاً با افزایش قدرت پردازش اضافی به ماشین مجازی انجام میدهد.
مقیاسبندیهای عمودی معمولا محدود بوده و نسبت به روشهای مقیاسبندی افقی اثربخشی کمتری دارند، اما به کارگیری آنها آسانتر است. به هر حال، در صورتی که ماشین مجازی برای اجرا حافظه کافی نداشته باشد، کارآمد است. زیرا مقیاسبندی عمودی، RAM بیشتری را به معماری ماشین مجازی اضافه میکند از اینرو بر پردازشی کمتر و عملکرد تراکنشها افزایش مییابد. اما اگر دادها از ظرفیت بیشتر شوند، این روش دیگر قابل استفاده نخواهد بود و باید از مقیاسبندی افقی استفاده کنیم.
تمرکززدایی از طریق شاردینگ
همیشه رابطهایی بین تمرکززدایی و شاردینگ وجود دارد. در حالی که در مورد مقیاسپذیری در زمینه فناوری بلاک چین بحث میکنیم، باید به خاطر داشت که از آنجایی که این سیستمها از قبل به عنوان شبکههای توزیع شده عمل میکنند، افزایش توان عملیاتی کل با افزودن موجودیتهای سختافزاری مانند گرهها، ماینرها یا اعتبارسنجیها ذاتاً چالش برانگیز است.
این موضوع با این واقعیت که توسعهدهندگان بلاک چین سعی میکنند تغییرناپذیری کلی زنجیره لایه پایه را حفظ کنند و بر عدم دستکاری در طراحی اساسی آن تأکید دارند. البته این کار مزیتهایی نیز دارد. چرا که راهحلهای مقیاسپذیری از امنیت فعلی و قابل اعتماد بودن زنجیره لایه پایه بهره میبرند و به آنها اجازه میدهد تا توان عملیاتی تراکنشها را بدون به خطر انداختن معماری اصلی زنجیره افزایش دهند.
شبکه لایتنینگ نمونه فوقالعادهای از این موضوع است، زیرا از فناوری خود برای افزایش توان عملیاتی کل سیستم با استفاده از امنیت بیتکوین استفاده میکند. همچنین از آنجایی که شاردینگ منجر به تقسیم دیتاهای بزرگ میشود، در واقع ایجاد یک اکوسیستم غیر متمرکز را فراهم میکند. بنابراین، مقیاسپذیری و شاردینگ، به طور خاص، ممکن است به عنوان مؤلفههای حیاتی تکامل شبکههای بلاک چین، و همچنین کاتالیزورهای نهایی برای «دلیل وجودی» غیرمتمرکز زنجیره بلاک دیده شود.
طبق گفته Etherscan، گرههای کامل اتریوم اکنون حداقل ۵ ترابایت فضا را اشغال میکنند که ۱۰ برابر بیشتر از توانایی یک رایانه معمولی است. علاوه بر این، با بزرگ شدن پلتفرم و گسترش پایگاه داده آن، گرههای اتریوم بزرگتر و مدیریت آن دشوارتر میشود.
به همین خاطر است که اتریوم برای حل این مشکل به ارتقای نسخه خود نیاز دارد. مشکل از آنجایی شروع میشود که در شبکه اتریوم هر گره باید هر تراکنش را تأیید کند. برای مجموعه داده T باید توسط گرههای X، Y و Z تأیید شود. یعنی شبکه کندتر عمل میکند چرا که منتظر سایر گرهها برای تأیید میماند. اما در اتریوم ۲ با کمک شاردینگ این مجموعه داده به قسمتهای کوچکتری مانند T۱، T۲، T۳ تقسیم میشوند و گرههای مختلف هر یک از این تقسیمبندیها را تأیید میکنند تا در نهایت T کل مجموعه تأیید شود.
زیلیکا یکی از پروژههایی است که از شاردینگ استفاده میکند. این شبکه در سال ۲۰۱۷ ایجاد شد که یک بلاک چین فشرده محاسباتی است و عملکردهای اصلی آن به صورت شاردینگ و پردازش تراکنشهای موازی است. در حالی که شبکه آن مبتنی بر الگوریتم اثبات کار (PoW) است که به قدرت محاسباتی زیادی نیاز دارد، Zilliqa به گونهای ساخته شده است که بر اساس تقاضا با افزودن گرههای ZIL و ماینرهای بیشتری به شبکه رشد کند و امکان افزودن شاردهای بیشتری را فراهم کند.
شاردینگ در این شبکه فرایند دوگانهایی است. برای شروع، گرههای کمیته خدمات دایرکتوری را انتخاب میکند که با اختصاص گرهها به هر قطعه، فرآیند شاردینگ را آغاز میکند. بنابراین، پس از اینکه تراکنشها در یک شارد اعتبارسنجی شد و توسط کل شبکه تأیید شوند و در نتیجه حالتی جهانی ایجاد میکنند که در آن هر تراکنش در هر شارد را به یک منبع منفرد و قابل تأیید حقیقت در بلاک چین Zilliqa مرتبط میکند.
پروتکل NEAR یک روش شاردینگ متفاوتی را ارائه میدهد. NEAR یک پلتفرم بلاک چین اثبات سهام (PoS) تحت کنترل جامعه است و قابلیت همکاری و مقیاسپذیری در قلب خود دارد که در سال ۲۰۲۰ راهاندازی شد. این پروتکل از روشی به نام Nightshade جهت افزایش توان عملیاتی و ظرفیت کلی بلاک چین استفاده میکند. در حالی که شاردینگ مبتنی بر زنجیرههای شارد و زنجیره بیکن است، اما چالشهای زیرساختی خاصی را فراهم میکند زیرا زنجیرههای شارد و زنجیرههای بیکن، در اصل، موجودیتهای مختلفی در داخل یک اکوسیستم بلاک چین هستند.
پروتکل NEAR بر این مشکل غلبه میکند و با مدلسازی زیرساخت خود بهعنوان یک بلاک چین که در آن هر بلوک بهطور منطقی تمام تراکنشهای شاردها را در بر میگیرد و کل وضعیت شاردها را اصلاح میکند، راهحلی برای شاردینگ ارائه میدهد. این پروتکل با تقسیم کردن تراکنشهای هر بلوک به قطعات فیزیکی و جمعآوری آنها در یک بلوک با استفاده از نایت شید این مشکل را حل کرده است.
شبکه Polkadot از یک متدولوژی شاردینگی استفاده میکند که کاملاً با مکانیسم شاردینگ اتریوم متفاوت است. این شبکه از ویژگیهای ترکیبپذیری زنجیرهای متقابل برای فعال کردن شاردینگ بر روی پاراچینها استفاده میکند. زنجیره رله پولکادات پاراچینها را متصل و ایمن نگه میدارد و به آنها امکان میدهد از امنیت، مقیاسپذیری و قابلیت همکاری پولکادات بهرهمند شوند. شبکه پاراچین یک الگوی تقسیمبندی پیشرفته است که قابلیتهای زنجیره اصلی پولکادات را در حالی که در حالت موازی و شبیه شارد کار میکند، در خود جای داده است.
علاوه بر این، پروژههای پاراچین پولکادات مانند Clover، قادر به انجام تراکنش بدون گس و اضافه کردن سطح جدیدی از مقیاسپذیری و قابلیت همکاری هستند. پولکادات میتواند بسیاری از تراکنشهای موازی شده را در زنجیرههای مختلف به طور همزمان اجرا کند زیرا یک شبکه چند زنجیرهای مبتنی بر پاراچین است که مفهوم تقسیم زنجیرهای را در بر میگیرد.
نتیجه پایانی
شاردینگ (Sharding) ستون فقرات مقیاسپذیری در شبکههای غیرمتمرکز است و پروژههای مربوط به آن است. با توجه به مشکل مقیاسپذیری بیشرت بلاک چینها، شاردینگ راه حلی مناسبی برای افزایش ظرفیت و سرعت بلاک چینها است. اتریوم ۲.۰ قصد دارد در آینده تحولی ابا ایجاد قابلیت شاردینگ در شبکه خود ایجاد کند.
سوالات متداول
شاردینگ چیست؟
شاردینگ یک روش کاربردی برای افزایش مقیاس پذیری است که با ترفند خرد کردن دیتا و محاسبه آن ها به صورت موازی به افزایش سرعت تراکنشها کمک میکند.
مهمترین مزیت Sharding چیست؟
بهترین ویژگی Sharding این است که برای استفاده از این ترفند، نیازی به محدود کردن تمرکز زدایی نیست.
نکته: توجه داشته باشید این مقاله صرفا با هدف راهنمایی و آشنایی شما با شاردینگ نوشته شده است و ارزتودی مسئولیتی در مقابل تصمیمات یا عواقب مالی آن برای افراد ندارد.
۲ دیدگاه. نظر خود را با ما به اشتراک بگذارید.
خب برنامش واسه امنیت چیه؟ اصلا تاثیری تو امنیت داره؟
درود بر شما
به طور خلاصه برای حمله به شبکه باید ۵۱ درصد از نودها با همدیگه همکاری کنن اما برای حمله به شبکهای که از شاردینگ استفاده میکنه دیگه حمله به کل شبکه نیاز نیست و کافیه به یکی از شاردها (گروهی از نودها) حمله کرد.