شاردینگ (Sharding) چیست؟ گامی مهم برای بهبود مقیاس پذیری در بلاک چین

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

یکی از مهم‌ترین ویژگی‌های هر بلاک چین، مقیاس پذیری (Scalibility) نام دارد. این قابلیت به ظرفیت بلاک چین اشاره دارد. به طوری که با افزایش بار مسئولیت، کیفیت شبکه افت نکند و تراکنش‌ها همچنان با سرعت مناسب و هزینه پایین انجام شوند.

بلاک چین‌هایی مانند سولانا، در مقیاس پذیری موفق بوده‌اند. علی رغم سرعت بالا (۵۰ هزار TPS)، این شبکه توانسته هزینه خود را در پایین ترین حد نگه دارد و از ۰.۰۰۰۲۵ دلار فراتر نرود.

مفهوم مقیاس پذیری را به خاطر بسپارید که در آینده لازممان خواهد شد! برای تسهیل مقیاس پذیری، از راه حل‌هایی استفاده می‌شود که یکی از آن‌ها، Sharding نام دارد. امّا شاردینگ چیست؟

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

به زبان ساده، Sharding به تقسیم بندی یک دیتابیس (مثلا بلاک چین) به اجزای کوچک تر اطلاق می‌شود. لازم به ذکر است که این راه حل مختص به دنیای بلاک چین نبوده و در هر مجموعه‌ای از داده‌ها قابل اجراست.

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

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

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

با افزایش فعالیت بلاک چین‌ها و پیشرفت روزافزون دنیای غیرمتمرکز، شبکه‌ها برای حفظ مقیاس پذیری خود با چالش بیشتری مواجه هستند. بسیاری از آن‌ها، در کنترل تعداد بالای تراکنش‌ها موفق نیستند و در نتیجه این موضوع، کاهش سرعت و کندی (Latency) بلاک چین‌ها را شاهد خواهیم بود.

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

نام دیگر شاردینگ

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

تقسیم بندی افقی

اگر یک پایگاه داده (دیتابیس) را به آن دسته از میزها تشبیه کنیم، می‌توانیم داده‌های خود را به دو روش افقی (Horizontal Partitioning) و عمودی (Vertical Partitioning) تقسیم بندی کنیم.

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

شاردینگ چگونه کار می‌کند؟

برای درک بهتر ساز و کار شاردینگ در بلاک چین‌ها، بهتر است نگاهی داشته باشیم بر اولین پلتفرم قراردادهای هوشمند یعنی اتریوم. می‌دانیم که بلاک چین اتریوم از هزاران کامپیوتر موسوم به Node، تشکیل شده است. طبق داده‌های پلتفرم ethernodes، شمار نُودهای این شبکه به بیش از ۸۲۰۰ می‌رسد. آشنایی بیشتر با ساختار بلاک چین‌ و مفهوم نُود

به عنوان مثال، یک مجموعه مشتکل از هزار Node، به ۱۰ دسته با ۱۰۰ نُود تقسیم می‌شود.

هر Node یا گره، مقدار معینی از توانایی محساباتی (Hash Power) را به کار می‌بردتا فعالیت‌های شبکه اعم از اجرای قراردادهای هوشمند یا اپلیکیشن‌های غیرمتمرکز (dAppها) را به ثمر نشاند. امّا این گره‌ها چگونه فعالیت می‌کنند؟

مکانیزم شاردینگ

علی رغم انتشار آپگرید Merge، همچنان Nodeهای شبکه به صورت خطی و در امتداد یکدیگر فعالیت دارند. گفته می‌شود که در فاز ۲ آپدیت Surge در نیمه دوم ۲۰۲۳، اتریوم مکانیزم شاردینگ را به کار خواهد گرفت و از آن پس، نُودهای بلاک چین به صورت موازی (Parallel) فعالیت خواهند داشت.

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

چالش‌های پیش روی شاردینگ

از مهم ترین کاربردهای شاردینگ گفتیم. دانستیم که برای بهبود مقیاس پذیری و افزایش ظرفیت هر شبکه، از تقسیم بندی افقی یا شاردینگ استفاده می‌شود. با این حال، بد نیست اگر باری دیگر مزایای این سیستم را مرور کنیم:

  • مقیاس پذیری بهتر و افزایش تراکنش‌های پردازش شده
  • افزایش توزیع پذیری شبکه
  • تسریع فرایند تراکنش‌ها
  • تمرکز زدایی بیشتر و تقسیم کار

شاردینگ چه معایبی دارد؟

علی رغم راهگشایی در اکثر موارد، شاردینگ هم بی عیب و نقص نبوده و در صورت اختلال در شیوه اجرای آن، درگیر ریسک‌هایی خواهیم شد.

پیچیدگی و مشکل در بازیابی اطلاعات

مهم تر از هرچیز، باید به این موضوع اشاره کنیم که Sharding فرایند تنظیم داده‌های یک دیتابیس را با پیچیدگی مواجه خواهد کرد.

بازیابی اطلاعات

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

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

امنیت شبکه

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

اگرچه که افزایش بی رویه نُودها می‌تواند موجب ترافیک شاردها و ضعف مجدد در مقیاس پذیری شود.

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

امنیت بلاک چین

به این اقدام اصطلاحا تصرف یک شارد(Single-Shard Takeover) یا حمله ۱ درصدی گفته می‌شود.

راه حل‌های جایگزین شاردینگ

علی رغم کارایی قابل توجه شاردینگ، دیدیم که این راه حل هم در مواردی با چالش‌هایی‌ مواجه می‌شود.

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

البته، این لزوما به این معنا نیست که این گزینه‌ها همواره از شاردینگ عملکرد بهتری را به نمایش می‌گذارند.

افزایش اندازه بلاک‌ها

با افزایش اندازه هر بلاک، گنجایش هر بلاک برای نگهداری تراکنش‌ها و اطلاعات افزایش می‌یابد.

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

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

با افزایش قدرت تجهیزات و توان محاسباتی شبکه، احتمالا شاهد کاهش تمرکز زدایی (Decentralization) در بلاک چین باشیم. مرکزیت بیشتر در پلتفرم، ریسک‌هایی چون حمله ۵۱ درصد را به همراه دارد.

اندازه بلاک در بلاک چین

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

مقیاس پذیری عمودی

شاید این راه حل چندان مورد استقبال توسعه دهندگان بلاک چین قرار نگیرد چرا که اغلب توسعه دهندگان نرم افزارها و سخت افزارها آن‌ را به کار می‌گیرند. امّا گفتن آن خالی از لطف نیست.

فراموش که نکردید؟ شاردینگ تنها به دنیای بلاک چین محدود نمی‌شود!

در مقیاس پذیری عمودی، کاربران یا توسعه دهندگان تلاش می‌کنند تا با بروزرسانی دستگاه‌ها و یا افزایش ظرفیت داده‌ها، عملکرد اپلیکیشن‌ها یا سخت افزارهای خود را بهبود ببخشند. این اقدام بدون تغییر در پایه‌های پلتفرم و سیستم اصلی شبکه صورت می‌گیرد.

بلاک چین‌های پیرو شاردینگ

تا کنون برخی شبکه‌ها استفاده از شاردینگ را آغاز کرده‌اند و برخی هم درحال توسعه زیرساخت‌های خود برای استفاده از این راه حل هستند.

زیلیکا (ZIL)

زیلیکا نخستین بلاک چین عمومی بود که سیستم خود را بر پایه فناوری تقسیم بندی افقی بنا کرد.

شاردینگ زیلیکا

به گفته تیم توسعه دهنده این پروژه، با عرضه شاردینگ در سال ۲۰۱۸، زیلیکا توانست انقلابی را در دنیای غیرمتمرکز ایجاد کند. جالب است بدانید که پس از استفاده از شاردینگ، میزان تراکنش‌های پردازش شده در هر ثانیه (TPS)، به بیش از ۲۸۰۰ تراکنش افزایش یافت.

پس هیچ بلاک چینی بی دلیل از شاردینگ استفاده نمی‌کند!

نییر پروتکل (NEAR)

نییر پروتکل هم از جمله پروژه‌هایی بوده که شیوه نوآورانه‌ای از تقسیم بندی دیتابیس را به کار گرفته است. این نوع از شاردینگ Nightshade نام دارد.

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

شاردینگ نییر پروتکل

استفاده از تکنولوژی شاردینگ، موجب شد تا تیم توسعه دهنده نییر پروژه خود را این گونه معرفی کنند: «بلاک چینی شارد شده، پیرو الگوریتم اثبات سهام و محبوب نزد توسعه دهندگان.»

توسعه دهندگان این پلتفرم در نظر دارند تا با کاهش هرچه بیشتر نُودهای شبکه و تقسیم بندی بیشتر، در آینده حتی کاربران موبایل هم امکان توسعه اپلیکیشن‌های غیرمتمرکز (dAppها) و فعالیت در زیرساخت‌های شبکه را داشته باشند.

پولکادات (DOT)

علاوه بر بلاک چین‌های نام برده، شبکه‌هایی چون پولکادات هم در بکارگیری شاردینگ اقدامات مهمی را صورت داده‌اند. با تقسیم بندی داده‌ها، پروتکل امکان ارتباط میان شاردها (Cross-Shard transaction) را فراهم می‌کند.

ارتباط میان شاردها

پولکادات در تقسیم کار میان نُودها موفق عمل کرده و تا حد زیادی به اهداف خود رسیده است. به عبارتی، بلاک چین به شاخه‌های کوچک تری تقسیم بندی می‌شود که هرکدام از آن‌ها با نام پاراچین (Parachain) شناخته‌ می‌شوند.

شاردینگ در اتریوم

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

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

شاردینگ اتریوم

اتریوم تصمیم دارد تا در نهایت پردازش ۱۰۰ هزار تراکنش در ثانیه (TPS) را ممکن سازد. در چنین شرایطی، برای تشکیل یک بلاک جدید، ۱۲ ثانیه زمان نیاز خواهد بود.

چکیده مطالب

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

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

مثلث بلاک چین

گفتیم که اگر تعداد نُودها از حد مشخصی کمتر باشد، هکرها این امکان را دارند که اختیارات شبکه را در دست بگیرند. از طرفی، در صورتی که شبکه بیش از اندازه بر روی Hash Power متمرکز شود، دیگر بلاک چینی غیرمتمرکز را در اختیار نداریم و احتمال بروز مشکلاتی چون حمله ۵۱ درصد وجود دارد.

در هر حال، نباید از مزایای قابل توجه شاردینگ غافل شویم. دیدیم که با به کارگیری شاردینگ، زیلیکا توانست شاخص TPS خود را به مرز ۳ هزار تراکنش برساند. در آینده هم شاهد تقسیم بندی افقی در اتریوم خواهیم بود و احتمالا بتوان اهداف جذابی را برای این پلفترم متصور شد!

شما آینده شاردینگ و به خصوص شاردینگ در اتریوم را چطور ارزیابی می‌کنید؟ آیا جاه طلبی ویتالیک بوترین نتیجه بخش خواهد بود؟

نظرات کاربران

.دیگران نشانی ایمیل شما را نخواهند دید

بخش‌های ستاره‌دار را حتما پر کنید.

 

Subscribe
Notify of
guest
0 تمام دیدگاه‌ها
Inline Feedbacks
نمایش تمام دیدگاه‌ها
0
سوال دارید؟ همین حالا بپرسید...x