شاردینگ چیست؟ Sharding در بلاک چین چه کاربردی دارد؟
تاریخ انتشار: 4 خرداد 1402 | آخرین بهروزرسانی: 26 شهریور 1402
زمان مطالعه:
6 دقیقه
در پاسخ یه این سوال که شاردینگ چیست، باید گفت که استفاده از این مفهوم در بلاک چین، یعنی تقسیم یک بلاک چین به چند قسمت با همان ساختار بلاک چین اصلی، اما متشکل از دادههای متفاوت و مستقل! اما اساسا چرا باید یک بلاک چین را به چندین قسمت (شارد) تقسیم کرد؟ پیشتر درباره مقیاسپذیری بلاک چین، به عنوان یکی از سهگانه بلاک چین، اهمیت و عوامل موثر بر آن توضیح دادیم، حال در این مقاله از بیت پین قصد داریم درباره شاردینگ، به عنوان راهکاری برای حل مشکل مقیاسپذیری بلاک چین و سازوکار آن صحبت کنیم.
برای روشن شدن مفهوم واقعی شاردینگ چیست، ابتدا تعریفی از خود کلمه شاردینگ (Sharding) ارائه میدهیم، شاردینگ در علوم کامپیوتری، تکنیکی برای تقسیمبندی پایگاه داده است که در آن جدولی بزرگ به چندین جدول کوچکتر تقسیم میشود. هر جدول کوچکتر یا شارد، همان ساختار و ستونهای جدول قبلی را دارد، اما دادههای متفاوت و مستقلی را نگهداری میکند.
هر شارد، به عنوان یک پایگاه داده مجزا در سروری مختلف قرار میگیرد و همین موضوع مقیاسپذیری پایگاه داده را به صورت افقی امکانپذیر کرده و عملکرد و قابلیت دسترسی به دادهها را بهبود میبخشد. پس شاردینگ چیست؟ الگوی معماری که هیچ منبع داده یا محاسباتی را با سایر شاردها به اشتراک نمیگذارد.
شاردینگ مفهوم جدید و نوظهوری نیست؛ این راهکار در دهه ۹۰ میلادی در یکی از اولین بازیهای نقشآفرینی آنلاین بزرگ و چندنفره به نام Ultima Online به کار گرفته شد، در آن زمان توسعهدهندگان بازی، بازیکنان را در سرورهای گوناگون تقسیمبندی کردند تا مشکل ترافیک در بازی حل شود. شاردینگ در بلاک چین برای حل یکی از بزرگترین مشکلات این فناوری، یعنی مشکل مقیاسپذیری به کار گرفته میشود؛ یعنی هرجا صحبت از مشکلات بلاک چین به میان میآید، مقیاسپذیری پای ثابت تمام بحثها است.
شاردینگ با تفکیک بلاک چین به بخشهای مختلفی به نام شارد (Shard) که شامل سابقه تراکنشها و وضعیتهای شبکه است، پردازش موازی را در بلاک چین امکانپذیر میکند. پس تا اینجا با مفهوم شاردینگ چیست و کاربردش در علوم کامپیوتر آشنا شدیم، در ادامه با دلیل استفاده از این مفهوم در بلاک چین، سازوکار و چرایی اهمیت آن، صحبت میکنیم، اما قبل از آن ابتدا کمی درمورد چالش سهگانه بلاک چین توضیح میدهیم.
چالش سهگانه بلاک چین
بلاکچینها تنها میتوانند تعداد محدودی تراکنش را در هر ثانیه پردازش کنند؛ این تعداد برای هر شبکه متفاوت است، برای مثال، شبکه بیت کوین، هفت تراکنش را در هر ثانیه پردازش میکند و این تعداد در شبکه اتریوم هم به ۱۵ تراکنش در هر ثانیه محدود است.
بلاک چین، پایگاه دادهی دیجیتالی و توزیع شده است که در آن به ترتیب زمانی، به بلوکهای داده رسیدگی میشود و تلاش بر این است که با رمزنگاری هر بلوک، برای تامین امنیت دادهها، تراکنش را بتوان بدون نیاز به نظارت دولت و به صورت غیرمتمرکز، انجام داد. برای رسیدن به این هدف باید مشکلی به نام مقیاسپذیری برطرف شود.
اصطلاح سهگانه بلاک چین، اولین بار توسط ویتالیک بوترین، از بنیانگذاران اتریوم، مطرح شد؛ این اصطلاح به سه عنصر اصلی در فناوری بلاک چین، یعنی تمرکززدایی، امنیت و مقیاس پذیری اشاره دارد و چالشی هم که برای این سهگانه مطرح میشود، برقراری تعادلی نسبی برای این سه عنصر است.
در سهگانه بلاک چین (Blockchain Trilemma)، بهینهسازی یک یا دو عنصر، به تضعیف دیگری منجر میشود.
در اصل تمرکززدایی، بهجای اینکه کنترل توسط نهادی واحد انجام شود، در تمام شبکه و بین تمام نودها توزیع میشود و همه به یک میزان به دادهها دسترسی دارند. مفهوم تمرکززدایی، اصل و پایه ایجاد مفهومی به نام Web3 است که در آن محتوای تولیدشده توسط کاربران تحت اختیار خودشان است و هر کاربر خود دادهها و زندگی آنلاین خود را کنترل میکند؛ برای محقق شدن چنین رویایی به زیربنایی ایمن نیاز خواهیم داشت.
در سیستمهای متمرکز، هر فردی که کنترل سیستم را در دست دارد، میتواند امنیت دادهها را هم تضمین کند، اما امنیت در سیستمهای غیرمتمرکز به شرکتکنندگان یا همان نودهای شبکه بستگی دارد. هر چه تعداد نودها بیشتر باشد، احتمال انجام فعالیتهای مخرب در آن شبکه کاهش پیدا میکند.
مشکل این است که در مکانیسم اجماع اثبات کار (Proof of Work)، پس از ایجاد هر بلوک، اطلاعات بلوک جدید باید توسط هر ماینر بهروز شود، اما از آنجا که هزاران گره برای بهروزرسانی و تایید وجود دارد، زمان و انرژی زیادی مصرف میشود. همزمان با افزایش حجم دادهها و استفاده از بلاک چین، مشکل ثابت نگه داشتن سرعت تراکنش برای سازگاری بلاک چین با تعداد فزاینده تراکنشها، هم مطرح میشود.
پس میتوان گفت که برای رسیدن به تمرکززدایی و امنیت بالا در شبکه، به بلاک چینی نیاز خواهیم داشت که بتواند تراکنشهای بیشتری را در هر ثانیه، پردازش کند؛ در چنین شرایطی است که موضوع مقیاسپذیری بالا در شبکه، اهمیت پیدا میکند و راهکاری به نام شاردینگ معرفی میشود.
شاردینگ در بلاک چین چیست؟
همانطور که در پاسخ به سوال شاردینگ چیست گفتیم، شاردینگ تکنیکی برای توزیع پایگاه داده است که در فناوری بلاک چین برای بهبود مقیاس پذیری سیستمها به کار گرفته میشود. در تئوری، شاردینگ می تواند مقیاسپذیری بینهایتی را برای بلاک چین به ارمغان بیاورد و تأخیر را برای همیشه به حداقل برساند.
از آنجایی که هر گره به جای کنترل کل دفتر، دادههای کمتری را پردازش میکنند، اجماع و توافق هم راحتتر مدیریت میشود و سرعت تراکنش را میتوان تا حدودی ثابت نگه داشت. اتریوم 2.0 از اولین شبکههایی است که از این روش مقیاسبندی استفاده میکند و قصد دارد به ۶۳+۱ شارد تقسیم شود.
پس از شاردینگ و جدایی، هر بلاک چین قراردادهای هوشمند و ویژگیهای خاص خود را خواهد داشت، همین موضوع کمک میکند تا هر شارد در مقایسه با سایر شاردها، متمایز و معتبر باشد. به این ترتیب، هنگامی که تراکنشی انجام میشود، گرهها میدانند که کدام شارد در ثبت تراکنش نقش دارد. در پاسخ به فرایند شاردینگ چیست؟ باید گفت که شاردینگ فرآیند پیچیدهای است که باید به دقت برنامهریزی شود، چرا که اغلب به دلیل سودمندی و نیاز مداوم، امکان معکوسکردن آن وجود ندارد.
از پیوند بلاکچین و هوش مصنوعی، به پول میرسیم؟
جوابت تو شماره ۱۴ ماهنامه دامیننسه!
چرا شاردینگ ضروری است؟
بلاک چین اتریوم امکان انجام حدود ۱۵ تراکنش را در هر ثانیه فراهم میکند، این سرعت تراکنش بسیار کمتر از برخی دیگر از سیستمهای پردازش تراکنش معمولی است. برای مثال، ویزا می تواند ۲۴ هزار تراکنش را در هر ثانیه پردازش کند. در بلاکچین اتریوم 2.0، افراد میتوانند برای پردازش تراکنشهای خود قبل از سایر تراکنشهای معلق، پیشنهادهایی را در قالب مناقصه، اضافه کنند. این هزینه مناقصه گاهی ممکن است به ۵۰ دلار هم برسد؛ به این معنی که اگر بخواهید دارایی به ارزش ۲۰ دلار را در شبکه اتریوم ارسال کنید، باید ۵۰ دلار بپردازید.
شاردینگ (Sharding) در بلاک چین، مقیاسپذیری را به مؤثرترین روش و با حداقل معایب، افزایش میدهد.
موضوعی که در بالا مطرح کردیم، استفاده منطقی از بلاک چین را محدود کرده و استفاده از این فناوری را برای انجام تراکنشهایی با ارزش پایین، به فرایندی غیرعملی تبدیل میکند. تعداد کم تراکنشهای مجاز هم در سیستم تاخیر ایجاد کرده و این تاخیر در شرایطی که تراکنش باید در کوتاهترین زمان ممکن پردازش شود، ممکن است مشکلات مختلفی را ایجاد کند.
قیاسی خوب برای درک بهتر شاردینگ
اگر بلاک چین را بزرگراهی در نظر بگیریم که در هر ثانیه به تعداد مشخصی از خودروها، اجازه تردد میدهد، با شلوغ شدن شهر، وسایل نقلیهای که از جاده استفاده میکنند هم افزایش مییابد و پس از گذشت زمان مشخصی، ترافیک ایجاد میشود؛ در چنین شرایطی، راننده ممکن است مسافتی ۲۰ دقیقهای را در یک ساعت طی کند. شاردینگ در آن نقطه وارد بازی می شود. برای رسیدگی به ترافیک می توان جاده های موازی با ظرفیت تراکنش مشابه جاده اول ساخت. تعداد خرده ها (جاده های اضافه شده) باعث کاهش ترافیک می شود.
مزایای بهکارگیری شاردینگ چیست؟
در این بخش به سوال مزایای بهکارگیری شاردینگ چیست، پاسخ خواهیم داد؛ استفاده از شاردینگ در بلاک چین، باعث میشود تا پایگاه داده به اجزای کوچکتری (همان شارد) تقسیم شده، سرعت پردازش و تایید تراکنشها در هر شارد، افزایش یابد و درنتیجه مدیریت دادهها سادهتر شود. یکی دیگر از مزایای سیستمهای مجهز به ساختار شاردینگ، کاهش هزینههای پردازش تراکنشها است.
معایب شاردینگ چیست؟
شاردینگ چندین معایب دارد، در ادامه دو مورد از مهمترین آنها را ذکر میکنیم:
از آنجایی که در فرایند شاردینگ، بلاک چین به چندین شارد کوچک تقسیم میشود، امکان هک شبکه و مورد حملات سایبری قرار گرفتن و حملات ۵۱ درصدی، افزایش پیدا میکند؛ در واقع همانطور که در ابتدای مقاله شاردینگ چیست هم توضیح دادیم، با افزایش مقیاسپذیری ممکن است امنیت شبکه به خطر بیفتد. با کاهش امنیت شبکه، این امکان وجود دارد که هکرها شاردها را تصاحب کرده و کنترل آن را به دست گرفته و تراکنشها را آزادانه ثبت کنند.
شاردینگ در بلاک چین باید راهکاری دائمی در نظر گرفته شود، چرا که نیاز به مقیاسپذیری تراکنشها امری دائمی است و مقیاسپذیری هیچ شبکهای خودبهخود بهبود پیدا نمیکند.
گفتار پایانی
به طور خلاصه، در پاسخ به این سوال که شاردینگ چیست، باید گفت که شاردینگ راهکاری اجتنابناپذیر برای مشکل رشد تصاعدی در بلاک چین است. برطرف کردن چالش سهگانه بلاک چین با حداقل معایب و فراهم آوردن امکان رقابت بلاک چینها با سیستمهای متمرکز، تنها از طریق به کارگیری شاردینگ ممکن میشود و بدون شک این سازوکار در آینده فناوری بلاک چین، بیش از پیش تاثیرگذار خواهد بود.
سوالات متداول
شاردینگ چیست؟
شاردینگ (Sharding) نوعی فرایند تقسیمبندی یا خردکردن شبکه است برای بهبود مقیاس پذیری و افزایش ظرفیت بلاک چینها به کار میرود.
مزایای استفاده از شاردینگ چیست؟
کاهش هزینهها و بهبود فرایند مدیریت کردن شاردها دو مزیت مهم در استفاده از شاردینگ هستند.
شبنم توایی
علاقه زیادی به حوزه فناوری و فین تک دارم، درباره ارزهای دیجیتال، بلاک چین، هوش مصنوعی، وب ۳ و سایر موضوعات مرتبط با فناوری مینویسمو تحقیق میکنم.
عاشق سفر و عکاسی هستمو اوقات فراغتم را با کشف جاذبهها و ثبت لحظات زیبا سپری میکنم.
بزرگترین هدفم تو زندگی یاد گرفتنه و لذت میبرم از اینکه یادگرفتههامو دانش و تجربهام را با دیگران به اشتراک بگذارم و از اونها هم یاد بگیرم.