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

شاردینگ نوعی پارتیشن بندی یا تقسیم بندی پایگاه داده است که به عنوان پارتیشن بندی یا تقسیم بندی افقی نیز شناخته میشود.
این فرآیند شامل تقسیم یک پایگاه داده بسیار بزرگ به بخشهای کوچکتر و با قابلیت مدیریت بهتر بوده و هدف از آن بهبود عملکرد و کاهش زمان پاسخ به درخواست کاربران است.
شاردینگ مفهوم جدیدی نیست و حداقل از اواخر دهه 1990 در مدیریت سنتی و متمرکز پایگاه داده وجود داشته است. این اصطلاح در واقع توسط یکی از اولین بازیهای نقشآفرینی آنلاین چند نفره (MMORPG)، به نام Ultima Online، رواج یافت که در آن توسعهدهندگان بازیکنان را در سرورهای مختلف (به گونهای «جهانهای» مختلف در بازی) تقسیم کردند تا بتوانند راه حلی برای حجم بالای ترافیک داده ایجاد کنند.
در تجارت، یک مثال رایج از شاردینگ یک پایگاه داده بزرگ، تقسیم پایگاه داده مشتریان به مکانهای جغرافیایی مختلف است. مشتریان در یک مکان جغرافیایی با هم گروه بندی شده و در سرورهای منحصر به فرد قرار می گیرند.
بلاک چین نیز نوعی پایگاه داده است، فقط از نوع غیرمتمرکز. بنابراین شاردینگ در بلاک چین همان وظیفه که در بالا توضیح داده شد را انجام میدهد؛ یعنی تقسیم بندی دادهها به قطعات کوچکتر برای پایین آوردن حجم ترافیک و افزایش مقیاس پذیری (سرعت انجام تراکنشهای همزمان).
شبکه بلاک چین یک پایگاه داده با نودها یا گرههایی است که هر نود یا گره نشان دهنده یک سرور مستقل است. اگر شاردینگ را برای بلاک چین اعمال کنیم، این به معنای تجزیه شبکه بلاک چین به بخشهای جداگانه یا شاردها (Shards) است. هر شارد، مجموعه ای منحصر به فرد از قراردادهای هوشمند و موجودی حسابها را در خود جای می دهد.
سپس گرهها برای تأیید تراکنشها و تایید عملیات، به جای اینکه هر کدام مسئول تأیید همه تراکنشها در کل شبکه باشند، مسئولیت تایید یک شارد را به عهده میگیرند. بدین ترتیب دادههای بیشتری در مدت زمان کمتری در شبکه تایید میشوند.
ایده پشت شاردینگ این است که تقسیم بلاک چین به بخشهایی که راحتتر مدیریت میشوند، باید به افزایش توان عملیاتی تراکنشها منجر شود و در نتیجه بر مشکلات مقیاس پذیری که اکثر بلاک چین های اصلی امروزی با آن مواجه هستند غلبه کند. در ادامه به موضوع شاردینگ با جزئیات بیشتری نگاه خواهیم کرد.
برای توضیح بهتر شاردینگ از بلاک چین اتریوم به عنوان مثال استفاده میکنیم.
بلاک چین اتریوم از هزاران کامپیوتر که به آنها گره یا نود میگویند تشکیل شده است. طبق گفته ethernodes.org تعداد کل نودها در حال حاضر 6879 است. تشکیل شده است. هر کدام از این نودها مقدار مشخصی از قدرت هش را به شبکه اتریوم هدایت میکنند. این قدرت هش مانند سوخت ماشین مجازی اتریوم (EVM) است – یعنی امکان اجرای قراردادهای هوشمند و اجرای برنامه های غیرمتمرکز یا Dapps.
در حال حاضر، اتریوم بر اساس فرآیند اجرای ترتیبی کار میکند که در آن هر یک از این گرهها باید تک تک عملیات را محاسبه کرده و تک تک تراکنشها را پردازش کنند. بنابراین، تایید تراکنشها میتواند مدت زیادی طول بکشد. در زمان نوشتن این مقاله، اتریوم در حدود 10 تراکنش در ثانیه (TPS) را ساپورت میکند – برای مقایسه، گفته میشود که ویزاکارت به طور متوسط 24000 تراکنش در ثانیه انجام میدهد.
بنابراین در چنین شبکهای، افزودن کامپیوترها یا نودهای جدید به شبکه لزوماً کارایی و سرعت را بهبود نمیبخشد، زیرا تمام اطلاعات بلاک چین روی همه کامپیوترها نگهداری میشود و این زنجیره تأیید و فرآیند پردازش تراکنشها را طولانیتر میکند.
با شاردینگ، هدف این است که شبکه اتریوم از یک مدل اجرای خطی – که در آن هر گره باید همه عملیات را محاسبه کند – به یک مدل اجرای موازی – که در آن هر گره فقط برای پردازش محاسبات خاص اختصاص داده میشود – حرکت کند. بنابراین شاردینگ امکان پردازش تراکنشهای چندگانه و موازی را به طور همزمان فراهم میکند.
در شاردینگ، بلاک چین به شاردها یا زیردامنههای کوچکتر تقسیم میشود. گرهها فقط باید آن بخش از دفتر کل را اجرا کنند که به آنها اختصاص داده شده است تا بتوانند فرآیندها را اجرا کنند و تراکنش ها را تأیید کنند، به جای اینکه مسئولیت اجرای تمام بلاک چین را داشته باشند.
شاردینگ یک راه حل بالقوه برای مشکلات مداوم مقیاس پذیری بلاک چین است.
همانطور که در بالا ذکر شد، یکی از بزرگترین مشکلاتی که شبکههای بلاک چین با آن مواجه هستند، مسئله مقیاس پذیری است. هر چه یک شبکه بلاک چین محبوبتر و پرطرفدارتر شود، کاربران بیشتری از تراکنشها، برنامههای غیرمتمرکز و سایر فناوریهای آن بلاک چین استفاده میکنند.
افزایش فعالیتها و تراکنشها در بلاک چین باعث افزایش تقاضا برای نودهای بیشتر برای تأیید تراکنشها می شود و آن موقع این خطر وجود دارد که این بلاک چین مسدود شود (همانطور که در اتریوم در دوران محبوبیت بازی CryptoKitties مشاهده شد، زمانی که این بازی 11 درصد از تراکنشهای شبکه اتریوم را تشکیل میداد). اگر این اتفاق بیفتد، سرعت تراکنش به طرز وحشتناکی کند میشود و باعث میشود بلاک چین در طولانی مدت موفق و پرکاربرد نباشد.
همانطور که در بالا توضیح داده شد، اگر زنجیره بلوکی به بخشهای کوچکتر یا شاردها تقسیم شود، مسئولیت بخشهای جداگانه به تیمی از گرهها محول میشود و هر گره برای اجرای هر عملیات مجبور نیست کل بلاک چین را اجرا کند. بنابراین، اعتبارسنجی تراکنش میتواند به صورت موازی و نه به صورت خطی انجام شود و سرعت کل شبکه را افزایش دهد. بنابراین شاردینگ راه حلی برای مسائل مقیاس پذیری پیرامون شبکههای بلاک چین ارائه میدهد و بنابراین بلاک چین را در دراز مدت پایدارتر میکند.
مکانیزم شاردینگ چه مشکلاتی دارد؟
در حال حاضر، چالشهای اصلی شاردینگ به ارتباطات و امنیت مربوط میشود.
اگر یک بلاک چین را به بخشهای مجزا تقسیم کنید، هر قطعه به عنوان یک شبکه بلاک چین مجزا ظاهر میشود. کاربران و برنامههای کاربردی یک زیر دامنه یا یک شارد، بدون پیادهسازی مکانیزم ارتباطی ویژه و بین شاردی، قادر به برقراری ارتباط با کاربران و برنامههای یک شارد دیگر نخواهند بود .این باعث میشود کار توسعه دهندگان در پیاده سازی شاردینگ پیچیدهتر شود.
در یک بلاک چین مجهز به شاردینگ، امنیت نیز یک نگرانی دیگر است زیرا به دلیل کاهش قدرت هش مورد نیاز برای کنترل بخشهای جداگانه، هک کردن یک شارد برای هکرها آسانتر است؛ که به آن حمله تصاحب تک-شاردی یا حمله 1% نیز میگویند. هنگامی که یک شارد هک شود، هکرها می توانند تراکنشهای نامعتبر را به شبکه اصلی ارسال کنند، یا ممکن است اطلاعات در آن بخش خاص باطل شده و برای همیشه از بین بروند. پاسخ پیشنهادی اتریوم به این خطر امنیتی، نمونهگیری تصادفی است، که در آن ماموران بهطور تصادفی در بخشهای مختلف برای تأیید احراز هویت بلوک منصوب میشوند.
در یک شبکه که به 100 شارد تقسیم شده باشد، 1% از قدرت هش کل شبکه کافی است که هکرها به یک شارد نفود کنند.
آیا جایگزینی برای شاردینگ وجود دارد؟
دو پیشنهاد دیگر توسط توسعه دهندگان برای بهبود عملکرد و سرعت تراکنش در بلاک چین پیشنهاد شده است.
اولین مورد این است که اندازه بلوکها افزایش پیدا کنند؛ با این تفکر اساسی که هر چه اندازه بلوک بزرگتر باشد، تراکنشهای بیشتری میتوان در یک بلوک قرار داد – و بنابراین، تعداد تراکنشها در هر ثانیه بیشتر میشود. اگرچه این درست است، اما به این معنی است که هرچه اندازه بلوک بزرگتر باشد، برای تأیید بلوک به قدرت محاسباتی بیشتری نیاز است.
اگر قرار باشد اندازه بلوک به طور نامحدود افزایش یابد، تنها تخصصیترین تجهیزات کامپیوتری با قدرت بالا میتوانند قدرت پردازش مورد نیاز برای یک نود یا گره را مدیریت کنند. افزایش هزینه این نوع تجهیزات به این معنی است که استخرهای نود لزوما کوچکتر و متمرکزتر می شوند و خطر حمله 51 درصدی را افزایش میدهند .افزایش اندازه بلوک همچنین به یک هارد فورک نیاز دارد که خطر کاهش تعداد اعضای جامعه آن ارز دیجیتال را به همراه دارد. اگر همه اعضای جامعه به بلاک چین جدید ارتقاء ندهند، دو زنجیره مجزا با استفاده از دو رمزارز مجزا وجود خواهند داشت. به دلیل این مسائل، افزایش اندازه بلوک تنها یک راه حل کوتاه مدت است.
پیشنهاد دوم این است که از آلت کوینها استفاده کنیم تا عملیات مختلف و برنامههای مختلف روی زنجیرههای مجزا با کوینهای مجزا اجرا شوند. این کارایی را افزایش می دهد زیرا باعث میشود یک بلاک چین بیش از حد بارگذاری نشود، اما خطرات امنیتی را نیز افزایش میدهد زیرا اکنون تمام قدرت هش بر روی چندین بلاک چین تقسیم شده است. باز هم، این کار هک کردن شبکه را بسیار آسانتر میکند، زیرا میزان قدرت هش مورد نیاز برای اجرای یک حمله موفق 51 درصد را بسیار کمتر میکند. بنابراین راه حل مناسبی نیست.
در حال حاضر کدام بلاک چین از شاردینگ استفاده میکند؟
برخی از بلاک چینها قبلاً مکانیزم شاردینگ را پیاده سازی کردهاند، در حالی که شاردینگ در برخی دیگر هنوز در دست توسعه است.
Zilliqa اولین پلتفرم بلاک چین عمومی است که شاردینگ را پیاده سازی کرده است. این دستگاه توانست به 2828 تراکنش بر ثانیه در شبکه آزمایشی خود دست یابد.
اکوسیستم بلاک چین Near به توسعه دهندگان این امکان را میدهد که به راحتی برنامههای غیرمتمرکز را بسازند و به کار گیرند. همچنین خود را «یک بلاک چین مجهز به شاردینگ و مکانیزم اثبات سهام و سازگار با توسعهدهندگان» مینامد و بیان میکند که فناوری شاردینگ آن به گرهها اجازه میدهد تا به اندازه کافی کوچک بمانند تا حتی در آینده روی دستگاههای تلفن همراه نیز اجرا شوند.
همانند Near، اتریوم بلاک چینی است که ساخت برنامههای غیرمتمرکز کبتنی بر قراردادهای هوشمند را امکان چذیر میکند. اتریوم اجرای شاردینگ را در نقشه راه خود قرار داده اما هنوز مشخص نیست که دقیقاً چه زمانی این اتفاق میافتد.
سایر پروژه های بلاک چین که در حال بررسی اجرای شاردینگ هستند شامل کاردانو، QuarkChain و PChain هستند.
آینده مکانیزم شاردینگ در بلاک چین چگونه است؟
شاردینگ به دلیل رمزارز فیس بوک که ابتدا لیبرا نام داشت و سپس به Diem تغییر نام داد توجه بیشتری را به خود جلب کرد. البته شاردینگ میتواند راه حلی باشد که مشکل سه گانه بلاک چین را حل کند.
در سهگانه بلاک چین ، همانطور که ویتالیک بوترین، یکی از بنیانگذاران اتریوم توضیح داده است، تنها میتوان دو مورد از سه ویژگی اصلی بلاک چین را به طور همزمان بدست آورد – یعنی امنیت، تمرکززدایی و مقیاسپذیری. دلیلش این است که برای داشتن دو عنصر دیگر، همیشه باید حداقل یکی از این عناصر را قربانی کرد.
بنابراین شاردینگ میتواند مقیاس پذیری بلاک چین را بالا ببرد بدون اینکه غیرمتمرکز بودن یا امنیت آن را به خطر بیندازد. اگر شاردینگ در این کار موفق شود، استفاده عمومی بلاک چینها را در سطح جهانی بسیار افزایش داده و آنها را تبدیل به رقیبی پرقدرت برای شبکههایی مثل ویزا کارت میکند.