شاردینگ (Sharding) چیست و چگونه مقیاس پذیری بلاکچین را بهبود می‌دهد؟
تاریخ انتشار25 اردیبهشت 1402 زمان مطالعه7 دقیقه

در سال‌های اخیر، توسعه‌دهندگان به منظور بهبود بلاکچین اتریوم، تصمیم گرفتند آن را به روز رسانی کنند. این به روز رسانی نیاز به زمان زیادی دارد و طی چندین مرحله انجام می‌شود. اولین مرحله آن، راه‌اندازی بلاکچین «بیکن چین» بود که در سال 1399 اجرا شد. دومین مرحله آن «مرج» نام دارد که در شهریور سال 1401 اجرا شد. و در نهایت مرحله آخر آن «شاردینگ» نام دارد که پیش‌بینی می‌شود در سال 1403 اجرا خواهد شد. هر یک از این مراحل، قدم‌های مهمی برای ارتقا اتریوم است و با اجرای آن‌ها ویژگی‌‌های جدیدی به بلاکچین اتریوم اضافه‌ می‌شود. در این مقاله به بررسی مفهوم شاردینگ و مزایای آن می‌پردازیم.

نود چیست؟

برای درک مفهوم شاردینگ، ابتدا بهتر است به طور مختصر با «نود» آشنا شویم. در بلاکچین‌های عمومی، هر کاربری که بخواهد می‌تواند تبدیل به یک «نود» شود و در شبکه فعالیت کند. برای این کار کافیست که کاربران با استفاده از یک رایانه به شبکه بلاکچینی متصل شوند. البته نوع این رایانه برای هر بلاکچینی متفاوت است و کاربران برای تبدیل شدن به نود در شبکه، باید رایانه بلاکچین مورد نظر خود را تهیه کنند. همچنین در برخی از بلاکچین‌ها، مانند اتریوم 2، روش تبدیل شدن به نود متفاوت است. در این شبکه کاربران دیگر نیازی به خرید رایانه‌های سخت‌افزاری گران قیمت ندارند. کاربران می‌توانند با خرید رمزارز اتر و قفل آن در شبکه، تبدیل به نود شوند و به فعالیت بپردازند.

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

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

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

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

شاردینگ چیست؟

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

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

تاثیر اجرای شاردینگ در بلاکچین

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

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

شاردینگ چگونه مقیاس پذیری بلاکچین را افزایش می‌دهد؟

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

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

تاثیر Sharding بر کارمزد تراکنش‌ها

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

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

جمع بندی

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

 

 

comment دیدگاهتان را بنویسید (0 دیدگاه)

ایمیل
نام و نام خانوادگی
متن