شاردینگ چیست و چگونه کار میکند؟ مزایا و معایب فرآیند sharding چه مواردی هستند؟ این تکنولوژی چه محدودیتها و چالشهایی پیش رو دارد؟ کدام ارزهای دیجیتال از شاردینگ استفاده میکنند؟
تکنولوژی بلاک چین در تلاش است تا تمامی امور روزمره انسان را به صورت غیر متمرکز انجام دهد و رویای دنیای غیرمتمرکز، بدون دخالت دیگران، را محقق سازد. بلاکچین در ابتدای مسیر خود مشکلات زیادی داشت اما مهمترین ایراد این تکنولوژی در این بود که هیچ شبکهای نمیتواند سه ویژگی تمرکززدایی، مقیاس پذیری و امنیت را در یک بلاک چین داشته باشد و باید برخی از ویژگیها قربانی میشدند.
در واقع اگر پروژهای قصد داشت تا مقیاس پذیری بالایی داشته باشد، باید امنیت و تمرکززدایی را قربانی میکرد. برای رفع این مشکل یک تکنیک کامپیوتری به نام شاردینگ (sharding) طراحی شد. در واقع، با استفاده از تکنیک شاردینگ، پایگاه داده یا شبکه به صورت افقی تقسیم میشود که منجر به افزایش مقیاسپذیری و تمرکززدایی میشود.
استراتژی شاردینگ ابتدا برای افزایش مقیاس پذیری در سیستمهای توزیع شده و غیرمتمرکز ساخته شد؛ اما امروزه در تکنولوژی بلاکچین استفاده میشود و توانسته مشکلات زیادی از بلاک چین را برطرف کند. در این مقاله قصد داریم تا ابتدا با فلسفه شاردینگ آشنا شده و سپس به بررسی عملکرد و مزایا و معایب آن بپردازیم.
شاردینگ چیست؟
کلمه شارد یا shard به معنی تکه یا قطعه قطعه کردن یک چیز است. به صورت خلاصه، فرآیند شاردینگ (sharding) یعنی تقسیم یک داده یا پردازش بزرگ به داده یا پردازشهای کوچکتر. به عنوان مثال فرض کنید قصد دارید دستگاهی را بسازید. این دستگاه از 500 قطعه تشکیل شده و باید به درستی در کنار یکدیگر قرار بگیرند.
اگر بخواهید به تنهایی این دستگاه را بسازید، باید زمان زیادی صرف قرار دادن 500 قطعه در کنار یکدیگر کنید، همچنین میزان دقت در ساخت دستگاه نیز کاهش پیدا میکند؛ اما اگر از دوستان نیز کمک بگیرید و 500 قطعه را تقسیم کنید، در نهایت میزان دقت و سرعت ساخت دستگاه افزایش پیدا میکند. در واقع با دسته بندی قطعهها ساخت دستگاه آسانتر و سریعتر میشود.
عملکرد فرآیند شاردینگ همانند مثال مطرح شده، است و یک پردازش را به بخشهای کوچکتر تقسیم مینماید تا سرعت و ظرفیت شبکه افزایش پیدا کند. درواقع راه حل شاردینگ با کمترین هزینه مشکل اصلی بلاک چین را برطرف میکند. در فرآیند شاردینگ، با خرد کردن به صورت پارتیشن بندی افقی (Horizontal Partitioning) یک پردازش یا دیتابیس بزرگ به پایگاه دادههای کوچکتر تقسیم میشود که قابلیت مدیریت آنها وجود دارد. مدیریت پایگاه دادههای کوچکتر که در شبکه با عنوان شارد (shard) شناخته میشود، باعث بهبود عملکرد و کاهش مدت زمان پردازش در شبکه بلاک چین میگردد.
تاریخچه فرایند شاردینگ (Sharding)
برخی از کاربران دنیای کریپتوکارنسی تصور میکنند فرآیند شاردینگ اولین بار در تکنولوژی بلاکچین استفاده شده که این تصور غلط است. شاردینگ اولین بار در اواخر دهه 90 میلادی برای مدیریت پایگاههای اطلاعات متمرکز مورد استفاده قرار گرفت. زمانی که توسعه دهندگان یکی از اولین بازیهای آنلاین با نقش آفرینی چند نفره به نام Ultima Online (اولیتما آنلاین) تصمیم گرفتند تا برای مدیریت بهتر ترافیک ورودی، بازیکنان را در چند سرور تقسیم کنند.
درواقع توسعه دهندگان، اطلاعات و پردازش کاربران این بازی را گروه بندی کرده و در چند پایگاه داده تقسیم کردند. با این کار سرعت پردازش بازی افزایش پیدا کرد و مدیریت ترافیک ورودی آسانتر شد. به لطف ایده تکه تکه کردن یا شارد (shard) کردن پردازش یا اطلاعات یک شبکه، امروزه بسیاری مشکلات تکنولوژی بلاکچین برطرف شده است.
شاردینگ در ارزهای دیجیتال
تکنولوژی شاردینگ یک راه حلی کاربردی برای افزایش مقیاس پذیری شبکههای بلاک چین است. به صورت خلاصه شاردینگ با تقسیم بندی دیتابیسهای شبکه بلاکچین به بخشهای کوچکتر و ذخیره اطلاعات در چندین پایگاه داده، سرعت تراکنشها و تمرکززدایی را در شبکه افزایش میدهد و در نتیجه مقیاس پذیری نیز بهبود پیدا میکند.
هر شبکه بلاک چین پایگاههای دادهای هستند که هر نود (node) یا گره در آنها به عنوان یک سرور جداگانه به پردازش شبکه کمک میکند و در ازای آن پاداش میگیرد. هنگامی که شاردینگ در بلاک چین اجرا میشود، شبکه به بخشهای کوچکتر به نام شارد تقسیم میگردد. هر شارد مجموعه مخصوصی از قراردادهای هوشمند و موجودی حسابها را نگهداری میکند.
نودها در شاردها قرار میگیرند تا تراکنشها و پردازش شبکه را تایید کنند و در این حالت نودها دیگر مسئول تایید اعتبار تمامی تراکنشهای شبکه نیستند و تنها باید تراکنشهای موجود در شارد خود را بررسی نمایند.
به بیان سادهتر، در بلاک چینهایی که فرآیند شاردینگ در آنها انجام نمیشود، نودها با مدل اجرای خطی به پردازش شبکه میپردازند و باید تمامی فعالیتهای شبکه را پردازش کنند؛ اما با اجرای تکنیک شاردینگ در شبکه بلاک چین، مدل اجرای خطی به مدل اجرای موازی تغییر پیدا میکند و هر نود تنها وظیفه دارد تا تعداد مشخصی از تراکنشها را پردازش نماید.
در این حالت پردازش تراکنشها به صورت موازی و در چندین خطوط اجرا میشود. به دلیل آنکه نودها به صورت موازی در شاردها به پردازش شبکه میپردازند، به شاردینگ، قسمت بندی افقی نیز گفته میشود که راه حلی بهتر برای مدل اجرای خطی یا قسمت بندی عمودی است.
شاردینگ اتریوم، بزرگترین شاردینگ دنیای کریپتوکارنسی
دومین ارز دیجیتال بزرگ بازار کریپتوکارنسی که کاربران زیادی را به خود جذب کرده، اتریوم است. شبکه اتریوم به دلیل استفاده مدل خطی، دارای مشکلات بزرگی همچون هزینه کارمزد تراکنش بالا و مقیاس پذیری پایین شده بود. ویتالیک بوترین، بنیانگذار اتریوم، راه نجات شبکه ETH را اجرای فرآیند شاردینگ در این رمز ارز دانست.
اجرای فرآیند شاردینگ در شبکه اتریوم، یکی از بزرگترین تغییرات دنیای کریپتوکارنسی بود و باعث تولد اتریوم 2.0 و انتقال آن از الگوریتم اثبات کار به الگوریتم اثبات سهام شد. در حال حاضر با اجرای فرآیند شاردینگ و تغییر الگوریتم به اثبات سهام، کارایی این شبکه بسیار بهتر شده و تراکنشهای شبکه با کارمزدهای کمتر و سرعت بالاتری انجام میشوند. شبکه اتریوم علاوه بر تکنولوژی شاردینگ، از تکنیکهایی مانند درخت مرکل نیز استفاده کرده تا بتواند ارتباط بین شاردها را آسان کند.
مزایا و معایب شاردینگ (Sharding)
یکی از بزرگترین مشکلات شبکههای بلاک چینی، بحث مقیاس پذیری است. تکنولوژی شاردینگ یکی از راهکارهای خلاقانه برای حل مشکل مقیاس پذیری شبکههای بلاکچینی است. این تکنولوژی علاوه بر داشتن مزایای زیاد، دارای معایب مختلفی نیز است که به صورت خلاصه موارد زیر هستند:
مزایای شاردینگ
- مدیریت اطلاعات آسانتر میشود: به کمک فرایند شاردینگ (sharding)، دیتابیس شبکه بلاک چین به اجزای کوچکتری تقسیم و مدیریت دیتا در این حالت آسانتر میشود.
- سرعت تراکنش و پردازش شبکه افزایش پیدا میکند: هنگامی که شاردینگ در شبکه، دیتابیس را به بخشهای کوچکتر تقسیم میکند، سرعت پردازش و انجام تراکنش در شاردهای کوچکتر، آسانتر و سریعتر انجام میشود. این موضوع عملکرد کلی شبکه بلاک چینی را بهتر میکند.
- هزینهها در شبکه کاهش پیدا میکنند: از دیگر مزیتهای شاردینگ کاهش هزینههاست. مدل مدیریت دیتا در شاردینگ ارزانتر از سیستمهای پایگاه داده یکتا است.
معایب شاردینگ
- پیچیدگی تکنولوژی شاردینگ: اجرای شاردینگ در شبکه بلاک چین، بسیار پیچیده است و توسعه دهندگان باید تمامی پیچیدگیهای شاردینگ را به درستی پیدا کنند. در صورتیکه تکنیک شاردینگ به درستی اجرا نشود، کل دیتابیس شبکه از بین میرود.
- مدیریت دشوار در ایجاد تعادل بین اندازه دادهها در شاردها: از دیگر مشکلات اصلی در اجرای شاردینگ، ایجاد تعادل بین اندازه دادههای ذخیره شده در هر شارد است. در واقع باید نحوه توزیع دادهها بین شاردهای مختلف به گونهای انجام شود تا متعادلترین حالت برای کل سیستم رعایت شود. این نوع توزیع دیتا در مواقعی که تعداد تراکنشها بسیار بالاست، دشوار خواهد بود.
به عنوان مثال فرض کنید برای ساخت یک خودرو باید از 12 میلیون قطعه استفاده کنید. برای ساخت هر بخش از خودرو، مثل موتور خودرو، لاستیک، سپر و غیره چند گروه ایجاد میکنید تا هر بخش با دریافت قطعات، قطعه مورد نظر را بسازند. گروهی که قرار است قطعه موتور را بسازند باید تعداد قطعات بیشتری نسبت به گروهی که قرار است لاستیکهای خودرو را بسازند، دریافت کنند. همین موضوع باعث میشود تا گروهی قطعه بیشتری نسبت به دیگر گروهها دریافت نمایند و سختی کار برای آن گروه بیشتر خواهد شد. - عدم تطبیق سخت افزارها با فرآیند شاردینگ (sharding): از دیگر مشکلات تکنیک شاردینگ، ماشینهای پردازش داده است که باید با ساختار شاردینگ منطبق باشند. شاردینگ دارای ساختاری متفاوتتر از سایر پردازشگرهای معمولی است و توسعه دهندگان برای مدیریت دیتاهای شبکه، باید پردازشگرهایی منطبق با ساختار شاردینگ تهیه کنند.
چالش های پیش روی شاردینگ
شاردینگ در بلاکچین دارای دو چالش اصلی است که باعث به وجود آمدن مشکلات در شبکه بلاک چین میشود:
1. تصرف شارد
تصرف شارد (shard takeover) همانند حمله 51 درصدی در بلاک چین است و هنگامی تصرف شارد اتفاق میافتد که شخص یا گروهی کنترل یک شارد را به دست بگیرند و تراکنشهای مخربی بر روی شارد انجام دهند. در واقع در شبکههای بلاک چین که از زنجیره انفرادی استفاده میکنند و شاردینگ در آنها انجام نمیشود، اگر فرد یا گروهی بخواهند شبکه را کنترل کرده و یا در آن اختلال ایجاد نمایند، باید بتوانند 51 درصد قدرت شبکه را به دست بگیرند؛ اما این موضوع در شاردینگ سادهتر است و فرد یا گروه با تصرف یک شارد میتواند تراکنشها را دستکاری کند.
فرض کنید در یک شبکه بلاک چینی، تعداد 100 نود با قدرت هش برابر وجود دارند. یک فرد یا گروه مخرب برای دستکاری تراکنشها، تنها نیاز دارد که کنترل یکی از شاردها را به دست بگیرد و تمام نودهای آن شارد را تصاحب کند. اگر فرض کنیم در هر شارد تنها 10 نود وجود دارد، فرد یا گروه مخرب برای خرابکاری، به جای تسلط بر 51 درصد قدرت شبکه، تنها بر 10 نود از یک شارد مسلط میشود و شبکه بلاک چین را با مشکل مواجه میکند.
به بیان سادهتر، در فرآیند شاردینگ تصرف یک شارد مانند تصرف یک زنجیره در اکوسیستم چند زنجیرهایست که بسیار راحتتر از تسلط بر روی 51 درصد اکوسیستم شبکه است. با تقسیم بلاک چین به اجزای کوچکتر، هکرها و اسپمها با کنترل تنها یک شارد، میتوانند شبکه را به چالش بکشند.
با توجه به موارد گفته شده، از چالشهای مهم شاردینگ احتمال حمله به یک شارد است که باید برطرف شود. برای رفع این مشکل باید توزیع قدرت رای دهی در بین تمامی شاردهای شبکه به صورت اتفاقی و برابر انجام شود و یا الگوریتمهایی برای جلوگیری از تمرکز قدرت هش در یک شارد طراحی شوند. در حال حاضر برخی از شبکههای بلاک چین با توزیع قدرت رای دهی در تمامی شبکه توانستهاند تا حدودی از تصرف شارد (shard takeover) جلوگیری کنند.
2. ارتباطهای بین شاردی
از دیگر چالشهای پیش رو در تکنولوژی شاردینگ، ارتباطات بین شاردی یا cross-shard communication است. ارتباطهای بین شاردی برای مواقعی است که یک تراکنش نیاز به تغییر در وضعیت یک تابع از یک شارد به یک شارد دیگر داشته باشد. به عنوان مثال فرض کنید در تصویر زیر، کاربر A میخواهد یک تراکنش را به کاربر V منتقل کند. نحوه برقراری ارتباط بین این دو کاربر در دو شارد مختلف چالش بزرگی برای شاردینگ در بلاک چین به حساب میآید.
برخی از شبکههای بلاک چینی توانستهاند این چالش را تا حدودی برطرف کنند. به عنوان مثال، وقتی کاربر A تراکنشی را به کاربر V ارسال میکند، این تراکنش وضعیت موجودی حساب هر دو کاربر A و V را تغییر میدهد. بنابراین نودهایی که وظیفه ثبت تغییرات وضعیت شبکه را برعهده دارند، باید در چندین شارد تغییراتی اعمال کنند تا الگوریتمی برای اطمینان از تطابق وضعیت در شاردها ایجاد شود و تراکنش بین کاربر A و V صورت بگیرد.
علاوه بر نکات گفته شده، برای تراکنشهای بین شاردی استخراج کننده تراکنش باید بتواند تغییرات وضعیت در چندین شارد را انجام دهد. این موارد باعث ایجاد پیچیدگی بالایی در شاردینگ میشوند. در واقع نودها تنها در شارد مخصوص خود دادهها را ذخیره و پردازش میکنند؛ اما با تراکنشهای بین شاردی باید به دنبال الگوریتمی مناسب برای انجام تراکنش شوند که کار نودها را بسیار پیچیده میکند.
برای برطرف کردن مشکل ارتباطهای بین شاردی، باید معماری و الگوریتم شبکه را تغییر داد. در واقع یک شبکه بلاک چینی باید معماری مناسبی برای اجرای شاردینگ داشته باشد تا با چالشهای گفته شده مواجه نشود. در حال حاضر برخی از شبکههای بلاک چینی توانستهاند با معماری و الگوریتمهای مناسب، این چالش را تا حدودی برطرف کنند.
محدودیت های تکنولوژی شاردینگ
همان طور که در این مقاله اشاره کردیم، استفاده از شاردینگ باعث افزایش مقیاس پذیری و سرعت شبکه میشود و عملکرد شبکه بلاک چین را بهبود میبخشد. با وجود تمام این ویژگیها شاردینگ در شبکه بلاک چین محدودیتهایی را ایجاد میکند که به صورت خلاصه میتوان به موارد زیر اشاره کرد:
- عدم مقیاس پذیری مناسب در برخی از بلاکچینها
در برخی از شبکههای بلاک چینی با وجود تکنولوژی شاردینگ، مشکل مقیاس پذیری پایین به طور کامل برطرف نمیشود. در پروتکلهایی مانند ارز زیلیکا (zilliqa) نودهای شبکه با وجود اینکه در شاردهای مختلفی تقسیم میشوند؛ اما باید وضعیت کل شبکه بلاک چین را در خود ذخیره کنند تا بتوانند به پردازش شبکه بپردازند. ذخیره تمامی شبکه بلاک چین در نودها باعث کاهش سرعت آنها و درنتیجه کاهش مقیاس پذیری شبکه میشود. - وابستگی توان شبکه به نودها
از دیگر محدودیتهای موجود این است که پروتکلهای شارد شده برای مقیاس پذیری بیشتر نیاز به افزایش تعداد نودهای شبکههای خود دارند. درواقع شبکههای بلاک چینی که از تکنیک شاردینگ استفاده میکنند، باید مورد استقبال و توجه کاربران زیادی قرار گیرند تا بتوانند مقیاس پذیری بالاتری داشته باشند.
برخی از کارشناسان دنیای کریپتوکارنسی این موضوع را یک مزیت برای شاردینگ میدانند؛ زیرا از نگاه آنها افزایش پذیرش و محبوبیت یک پروتکل منجر به افزایش تعداد نودهای آن شبکه میشود. این موضوع نمیتواند در همه جا صدق کند و صرفا وجود کاربران زیاد در یک شبکه نمیتواند باعث افزایش تعداد نودهای آن شبکه شود.
بنابراین اگر در یک دوره زمانی تعداد نودهای یک شبکه بلاک چینی کاهش یابد، توان عملیاتی آن شبکه به شدت افت پیدا میکند. در این حالت میزان کارمزد تراکنشهای شبکه و زمان اجرای تراکنشها افزایش پیدا میکند. در نتیجه علاوه بر کاهش توان عملیاتی شبکه، نارضایتی کاربران افزایش پیدا میکند و در نهایت از شبکه خارج میشوند. در حال حاضر در هیچ شبکه بلاک چینی این اتفاق نیفتاده اما اجرای این سناریو به دلیل وابستگی بیش از حد توان عملیاتی شبکه به نودها، دور از ذهن نیست.
آیا راه حل جایگزینی برای شاردینگ وجود دارد؟
به جز تکنیک شاردینگ، راهکار دیگری برای افزایش مقیاس پذیری شبکههای بلاک چینی در بین توسعه دهندگان مطرح شد و آن افزایش سایز و اندازه بلاک بود. در این راه حل، با افزایش سایز بلاک امکان قرارگیری تراکنشهای بیشتر در آن وجود دارد و در نتیجه سرعت تراکنشهای شبکه افزایش پیدا میکند؛ اما از طرفی بلاک بزرگتر به قدرت محاسباتی بیشتری برای اعتبارسنجی نیاز دارد.
در صورت افزایش اندازه بلوک شبکه، پردازشگرهای امروزی نمیتوانند به خوبی شبکه بلاکچین را پردازش کنند و تجهیزات کامپیوتر پرقدرت و پیشرفتهتری برای تبدیل شدن به یک نود شبکه نیاز است. بنابراین با افزایش اندازه بلاکها، هزینه لازم برای تهیه دستگاههای پردازش افزایش پیدا میکند و تعداد نودهای شبکه کمتر و متمرکزتر میشوند. این نکته باعث افزایش حمله 51 درصدی به شبکه بلاک چین نیز میشود.
علاوه بر موارد گفته شده، حتی با چشم پوشی از مشکلات ذکر شده، برای افزایش سایز بلاک باید هارد فورک (hardfork) در شبکه بلاک چین انجام شود که باعث جداسازی کاربران نیز میگردد. در واقع در فرآیند هاردفورک، دو زنجیره جداگانه ایجاد میشود و باید تمامی نودهای شبکه به بلاک چین جدید منتقل شوند. بنابراین راه حل افزایش سایز بلاک علاوه بر افزایش ریسک حمله 51 درصدی، باعث متمرکزتر شدن شبکه میشود. بنابراین این راه حل باعث ایجاد ریسکهای بزرگتری برای شبکه بلاک چین میگردد.
کدام ارزهای دیجیتال از شاردینگ استفاده میکنند؟
همانطور که اشاره شد، تکنولوژی شاردینگ توانسته مقیاس پذیری خوبی را برای شبکههای بلاک چین فراهم کند. هرچند تکنیک شاردینگ با هاردفورک اتریوم 2.0 معروف شد، اما پیش از اتریوم، پروژههای دیگری در بازار ارزهای دیجیتال از این تکنیک بهره بردهاند. رمز ارزهایی که در حال حاضر از تکنولوژی شاردینگ استفاده میکنند، موارد زیر هستند:
1. زیلیکا (zilliqa)
شبکه زیلیکا اولین بلاک چین عمومی است که از تکنیک شاردینگ استفاده کرد. شبکه زیلیکا به کمک شاردینگ توانست 2828 تراکنش را در ثانیه ثبت کند. در شبکه زیلیکا تمامی تراکنشها به صورت موازی در تک شاردها اجرا میشوند. همچنین تراکنشهایی که بر روی یک قرارداد هوشمند تاثیر میگذارند، به صورت موازی اجرا نمیشوند و هیچ تراکنشی که بر روی بیش از یک شارد تاثیر بگذارد، دیگر به موازات تراکنش دیگری اجرا نمیگردد.
در رمز ارز زیلیکا، اگرچه شبکه به هزاران شارد تقسیم میشود، اما فقط تعداد محدودی از برنامههای غیر متمرکز در شاردهای خاص خود جای میگیرند و این نکته ایراد اصلی این بلاک چین به حساب میآید. همین موضوع باعث میشود تا قدرت پردازش شارد و ذخیره سازی حالت شاردینگ در این شبکه با محدودیت مواجه شود. به بیانی دیگر، شبکه زیلیکا نمیتواند قراردادهای هوشمندی را که به طور موازی بر چندین شارد تاثیر میگذارند را پردازش کند.
2. نیر (near)
رمز ارز نیر توکن بومی شبکه NEAR protocol است که با هدف تشویق نودهای شبکه نیر و تامین انرژی برای تراکنشها و قراردادهای هوشمند استفاده میشود. شبکه near یک شبکه بلاک چینی است که از فناوری شاردینگ استفاده میکند و کاربران در آن میتوانند برنامههای غیرمتمرکز (DApp) مخصوص خود را توسعه دهند.
اکوسیستم نیر از الگوریتم اجماع اثبات سهام (proof of stake) پیروی میکند. بلاک چین با استفاده از شاردینگ به نودهای خود اجازه میدهد تا به حدی کوچک بمانند تا حتی در سیستمهای کوچک نظیر گوشی همراه، بتوانند در توسعه شبکه مشارکت داشته باشند. اعتبارسنجهای شبکه نیر از تکنیک شاردینگ استفاده میکنند و به چند شارد تقسیم میشوند. هر شارد اعتبارسنج مجموعهای از وضعیت کل بلاک چین را در خود ذخیره میکند.
اعتبارسنجها از هر دوره زمانی مشخص (12 ساعت) به صورت تصادفی به یک شارد اختصاص داده میشوند و باید وضعیت مشخص شده را دانلود کرده و در دوره زمانی بعدی حفظ کنند. درواقع در بلاک چین نیر هر شارد مسئول یک قطعه از آخرین بلاک است و با اضافه شدن نودهای جدید، تعداد شاردها نیز افزایش پیدا میکنند و عملکرد پردازش شبکه بهتر میشود.
3. الروند (elrond)
شبکه الروند (Elrond) یک شبکه بلاک چین عمومی با هدف افزایش مقیاس پذیری، سرعت و امنیت طراحی و ساخته شده است. شبکه الروند همانند شبکه اتریوم، یک پلتفرم قرارداد هوشمند برای توسعه برنامههای غیرمتمرکز یا DApp است. با این تفاوت که الروند توانسته با میزان کامزد کمتر و سرعت تراکنش بالاتر از شبکه اتریوم، عملکرد بهتری داشته باشد.
در شبکه بلاک چین الروند اعتبارسنجهای جدید در یک لیست انتظار قرار میگیرند تا در یک دوره زمانی مشخص، به یکی از شاردها اختصاص یابند. در هر دوره زمانی تعدادی از اعتبارسنجهای شبکه الروند به صورت اتفاقی انتخاب و مجدد به شاردهای مختلف اختصاص داده میشوند. در این شبکه، هر اعتبارسنج در هر دوره زمانی به یک شارد متفاوت متصل میشود.
اعتبارسنجهایی که به تازگی به یک شارد متصل شدهاند، باید در دوره زمانی بعدی، در لیست انتظار شارد قرار گیرند و با شارد جدید همگام سازی شوند تا بعد از آن بتوانند با شارد جدید متصل شوند. به کمک این فرآیند، اعتبارسنجها میتوانند به طور دائم با وضعیت شاردی که به آن متصل میشوند، همگام باشند. همین نکته باعث افزایش ظرفیت تراکنشهای شبکه و تمرکززدایی میشود و شاردینگ در شبکه به خوبی اجرا میگردد.
4. پولکادات (polkadot)
پولکادات یک شبکه بلاک چین نسل سوم محسوب میشود که در تلاش است تا تمامی شبکههای بلاک چینی را به یکدیگر متصل کند و یک شبکه یکپارچه همتا به همتا ایجاد نماید. از پلتفرم پولکادات به عنوان یکی از عوامل تسهیل کننده در ساخت تکنولوژی وب 3 یا اینترنت غیرمتمرکز یاد میشود. شبکه پولکادات با استفاده از مفهوم جدید شاردینگ، این امکان را برای کاربران خود فراهم میکند تا پروژههای خود را در کنار سرعت تراکنش و مقیاس پذیری بالا در شبکه پولکادات ایجاد کرده و توسعه دهند.
اجرای شاردینگ در شبکه پولکادات نسبت به شبکه اتریوم کاملا متفاوت است. این شبکه از ویژگیهای ترکیب پذیری زنجیرهای متقابل برای فعال کردن شاردینگ بر روی پاراچین ها استفاده میکند. زنجیره رله در پولکادات، پاراچینها را متصل میکند و به آنها اجازه میدهد تا در کنار امنیت و مقیاس پذیری، در شبکه فعالیت کنند.
به بیان ساده، شبکه پاراچین با ایجاد یک الگوی تقسیمبندی پیشرفته اجازه میدهد تا زنجیرهها به حالت موازی و شارد فعالیت کنند. شبکه پولکادات میتواند بسیاری از تراکنشهای موازی شده را در زنجیرههای مختلف به طور همزمان اجرا کند؛ در واقع به دلیل ساختار چند زنجیرهای پاراچین که در شبکه پولکادات وجود دارد، تقسیم زنجیرهای در این شبکه به سادگی انجام میشود و به همین دلیل میزان کارمزد تراکنش کاهش و سرعت آن افزایش پیدا میکند.
ارزهای دیجیتال معرفی شده، جزو رمز ارزهای مشهور هستند که همانند اتریوم 2.0، از تکنیک شاردینگ استفاده میکنند. علاوه بر این رمز ارزهای دیگری همچون کاردانو (cardano) و فلتا (fleta) نیز از شاردینگ در شبکه بلاک چین خود استفاده میکنند.
سخن پایانی
«شاردینگ چیست؟» راه حل شاردینگ یکی از بهترین روشهای طراحی شده برای حل مشکلات مقیاس پذیری در شبکههای بلاک چین است. در راه حل شاردینگ زنجیره شبکه به زنجیرههای کوچکتر تقسیم میشود که هر زنجیره شارد نام دارد. در این حالت تمامی تراکنشهای شبکه بین شبکه تقسیم میشوند و توان پردازش تراکنشها بین نودها توزیع شده و عملکرد شبکه افزایش مییابد.
شبکههای بلاک چینی که از الگوریتم اثبات سهام استفاده میکنند، میتوانند شاردینگ را در شبکه خود اجرا کنند. رمز ارزهای بزرگی همچون اتریوم توانستهاند با اجرای شاردینگ، بخش زیادی از مشکلات مقیاس پذیری را برطرف سازند که این موضوع باعث افزایش سرمایه گذاری توسعه دهندگان بر این روش شده است. در این مقاله تلاش کردیم تا با فرآیند شاردینگ (sharding)، نحوه عملکرد، مزایا و مشکلات آن آشنا شوید.
سوالات متداول
آیا استفاده از فرایند شاردینگ خوب است؟
مهمترین مزیت استفاده از شاردینگ در بلاک چین، افزایش مقیاس پذیری آن است. با استفاده از این فرایند، بلاکچین میتواند به تعداد بیشتری از گرهها (نودها) متصل شود و اطلاعات بیشتری را ذخیره نماید، بدون اینکه زمان انجام تراکنشها کاهش پیدا کند.
هدف از شاردینگ چیست؟
شاردینگ به شما اجازه میدهد تا پایگاه دادهی خود را برای مواجهه با بار کاری افزایش یافته تا حد نامحدودی گسترش دهید و این کار با افزایش سرعت خواندن اطلاعات انجام میشود.
منظور از شاردینگ در اتریوم چیست؟
شاردینگ فرایندیست که در آن شبکه اتریوم به چندین زنجیرهی کوچکتر یا شارد تقسیم میشود تا بار کاری شبکه را بین آنها تقسیم کند. از نظر تئوری، sharding باید با کاهش تراکم شبکه، توان عملیاتی تراکنش ها را افزایش دهد. هدف از این کار افزایش توانایی شبکه اتریوم به ۱۰۰،۰۰۰ معامله در هر ثانیه است.
تفاوت بین شاردینگ و پارتیشن بندی در کریپتو چیست؟
در ابتدا ممکن است این دو مفهوم مشابه به نظر بیایند. به این دلیل که هر دو به تقسیم یک مجموعه داده بزرگ به چندین زیرمجموعه کوچک مرتبط هستند. اما تفاوت اصلی این است که در شاردینگ، دادهها بین چندین کامپیوتر پخش میشوند، در حالیکه در پارتیشن بندی، اینگونه نیست.
اینکه اتریوم الگوریتم خودش رو به اثبات سهام تغییر داده به خاطر استفاده از شاردینگ یعنی شاردینگ فقط توی روش اثبات سهام قابل استفادست؟
شبکههای بلاک چینی که از الگوریتم اثبات سهام استفاده میکنند، میتوانند شاردینگ را در شبکه خود اجرا کنن
بسیار عالی بود . مرسی از زحماتتون