شاردینگ (Sharding) چیست؟ | راهنمای جامع برای مبتدیها

شاردینگ یعنی خرد کردن دادههایی عظیم به بخشهایی کوچکتر به نام شارد، جهت مقیاسپذیری برنامهها و پشتیبانی آنها از حجم بیشتری از اطلاعات.
از زمان شروع بهکار بیت کوین، فناوری بلاک چین کاملاً درک ما را نسبت به مفهوم و ارزش پول دستخوش تغییر قرار داده است. بلاک چین توانسته است تا با جلبتوجه بسیاری از صنایع بزرگ، تبدیل به یکی از جذابترین دستاوردهای فناوری در قرن ۲۱ شود. این تمایلات در اصل از میل درونی به ایجاد انقلاب نشأت میگیرد. انقلابی که میتواند بهاندازه ساخت اینترنت در دهههای هشتاد و نود جذاب باشند. در حالی که اینترنت توانست قلمروی ارتباطات آنلاین را آغاز کند، بلاک چین در حال پیشتازی در عرصههای ایجاد اعتبار بهوسیله شبکههای دارایی دیجیتال است.
این شبکهها دارای اکوسیستم مستقل غیرمتمرکز و فنی خود هستند. آنها به شکلی طراحیشدهاند تا بتوانند خدمات قراردادهای هوشمند (Smart Contracts) و دفاتر کل را برای اپلیکیشن هایی فراهم سازند که از آنها بهعنوان اپلیکیشن های غیرمتمرکز (dApps) یاد میشود. اتریوم (Ethreum)، دومین ارز دیجیتال باارزش جهان، بهمنظور تسهیل ساخت این اپلیکیشن ها آغاز بهکار کرد.
بهوسیله بستر اتریوم، کاربران میتوانستند کنترل بیشتری بر داراییها و اطلاعات دیجیتالی خود داشته باشند. ایده بنیادین در مورد اتریوم، ایجاد یک رایانه جهانی (World Computer) است تا اپلیکیشن ها غیرمتمرکز بتوانند بهوسیله آن اجرایی شده و کاربردهای خود را گسترش دهند. درنهایت، این اپلیکیشن های غیرمتمرکز باید بتوانند تجارتها و پلتفرمهای بزرگ جهانی مثل توییتر (Twitter) یا آمازون (Amazon) را به چالش بکشند. ازاینرو، اتریوم بهعنوان یک “رایانه جهانی غیرمتمرکز” عمل میکند. این رایانه در اختیار عموم قرار داشته و نمیتواند دستکاری شود.
اگر تمام این اهداف اتریوم محقق شوند، آنگاه اتریوم باید بتواند حجم عظیمی از دادهها را داخل سیستم خود ذخیره و آنها را حفظ کند. اتریوم در حال حاضر این قابلیت را ندارد. بااینوجود، این ارز دیجیتال میتواند این مشکل مقیاسپذیری خود را بهوسیله راهحلی تحت عنوان شاردینگ (Sharding) حل کند. قطعاً این راهحل در بهروزرسانی جدید اتریوم (اتریوم 2.0) به فاز اجرایی کامل خود خواهد رسید. در این مطلب از فکت کوینز قصد داریم تا به مفهوم شاردینگ پرداخته و این راهحل را در پروژههایی مثل اتریوم اتریوم 2.0، زیلیکا، پروتکل Near و پولکادات بهطور کامل بررسی کنیم.
شاردینگ (Sharding) چیست؟
در علوم رایانه، شاردینگ روشی است که جهت مقیاسپذیری برنامهها از آن استفاده میشود. در حقیقت به کمک این روش، برنامهها قادر خواهند بود تا از اطلاعات بیشتری پشتیبانی کنند. این فرآیند شامل خرد کردن سیل عظیمی از دادهها به بخشهایی کوچکتر است که به آن شارد (Shard) گفته میشود. درواقع این شاردها در بین سرورهای گوناگون گسترش پیدا میکنند. از طرفی هر شارد دارای اطلاعات مخصوص به خود است که این اطلاعات منجر به استقلال و تمایز آن شارد در قیاس با دیگر شاردها خواهد شد.
اساساً فرآیند شاردینگ از اهمیت بسزایی در شبکههای بلاک چینی برخوردار است. این روش به بلاک چینها این امکان را میدهد تا از تاخیرهای شبکهای و همچنین ازدیاد دادهها جلوگیری کنند. علاوه بر این، شاردینگ از تقسیم شبکه به بخشهای کوچکتر استفاده میکند که این بخشهای کوچکتر میتوانند در هر ثانیه تراکنشهای بیشتری را پردازش کنند. این موضوع زمانی جلوه پیدا میکند که مجموعه اطلاعات به حدی عظیم باشد که در یک پایگاه داده جای نگیرد و اینجاست که اهمیت وجود شاردینگ نشان داده میشود. با در نظر گرفتن پروژههای بسیاری که بر بستر شبکه اتریوم ایجاد شدهاند و همچنین توسعهدهندگانی که از این شبکه بلاک چین استفاده میکنند، قطعاً اتریوم نیاز به اجرای این روش خواهد داشت.
درواقع، بر اساس تحلیلهای آماری، نزدیک به ۳۰۰۰ اپلیکیشن غیرمتمرکز بر بستر شبکه بلاک چین اتریوم وجود دارند. ازاینرو، مقیاسپذیری بهوسیله شاردینگ یک نیاز اساسی برای اتریوم است. در حقیقت بهوسیله این روش، اتریوم قادر خواهد بود تا جایگاه اول خود را در این اکوسیستم حفظ و کارایی بالای شبکه را نیز تضمین کند.
شاردینگ چگونه کار میکند؟
جهت شناخت کامل نحوه عملکرد شاردینگ در بلاک چینها، حائز اهمیت است که در ابتدا با نحوه کارکرد گرهها یا نودها (Node) آشنا شده و بدانیم که اطلاعات به چه شکل ذخیره و پردازش میشوند. اساساً گرهها جزئی اساسی در زیرساخت بلاک چینها هستند. درواقع، انتقال اطلاعات بدون حضور گرهها میسر نخواهد بود. از طرفی تمامی نودها به یکدیگر متصل هستند و بهطور مرتب اطلاعات بلاک چین را با هم مبادله میکنند. بدین شکل، تمامی آنها در جریان آخرین وضعیت شبکه قرار میگیرند. علاوه بر این، نودها سازنده لایه بنیادین بلاک چینها هستند؛ درواقع گرهها بلاک چین را قادر میسازند تا دادهها را در سرتاسر زیرساخت خود ذخیره، نگهداری یا گسترش دهد.
همچنین در شبکههای غیرمتمرکز، هر گره باید قادر باشد تا اطلاعات حیاتی مثل تاریخچه تراکنشها و ترازنامه حسابها را در داخل خود ذخیره کند. ازاینرو با پخش کردن اطلاعات و تراکنشها بین گرههای گوناگون، بلاک چین قادر خواهد بود امنیت خود را تضمین کند. بااینوجود، این مدل چندان از نظر مقیاسپذیری واقعگرایانه نیست. بااینکه سیستم اهرمی غیرمتمرکز نهایتاً منجر به تحقق خصوصیات تمرکززدایی و امنیتی برای بلاک چین خواهد شد، شبکهای که قرار است تا حجم عظیمی از اطلاعات و تراکنشها را پردازش کند، احتمالاً دچار اختلال، تأخیر در پردازش یا ترافیک خواهد شد.
بهعنوان مثال اتریوم را در نظر بگیرید. این شبکه قادر است ۱۰ الی ۲۰ تراکنش را در هر ثانیه پردازش کند. ولی واقعیت این است که چنین عددی برای بلاک چینی به این اندازه، اصلاً چشمگیر نیست. در حقیقت علت سرعت پایین شبکه اتریوم را بایستی در الگوریتم اجماع آن، یعنی الگوریتم گواه اثبات کار (PoW) یافت. نتیجتاً اینکه بهاین علت، بلاک چین اتریوم نیازی اساسی به مقیاسپذیری دارد.
با تکیهبر شاردینگ، شبکه بلاک چین قادر است تا حجم کار خود را بهصورت افقی گسترش دهد و آنگاه نیازی نیست تا هر گره در شبکه، وظیفه پردازش و کنترل تمامی تراکنشها را بر عهده داشته باشد. ازاینرو شاهد یک طراحی تقسیمبندی شده و کارآمدتر خواهیم بود.
تقسیمبندی افقی
شاردینگ بهوسیله تقسیمبندی افقی پایگاه داده یا شبکه، به ردیفهای گوناگون انجام میگیرد. از طرفی به این ردیفها، اصطلاحاً شارد گفته میشود. این ساختار افقی منجر به ایجاد یک اکوسیستم پویاتر خواهد شد؛ چراکه به شاردها این امکان را میدهد تا عملکردهایی تخصصی را طبق خصوصیات خود انجام دهند. بهعنوان نمونه، یک شارد ممکن است وظیفه ذخیره تاریخچه تراکنشها و وضعیت یک آدرس بخصوص را بر عهده داشته، یا اینکه قادر باشد تا با سایر شاردها مشارکت کرده و تراکنشهای یک رمز ارز را پردازش کند.
جهت درک بهتر نحوه کار تقسیمبندی افقی، باهم نگاهی میاندازیم به مدلی که در تصویر زیر مشخصشده است:
این مدل بیانگر یک پایگاه داده عظیم مشتمل بر ۶ ردیف است. پسازآن، جدول اصلی دادهها به ۳ بخش کوچکتر تقسیم میگردد. درواقع تکههای کوچکتر همان شاردهای افقی هستند که مدیریت جدول دادهها را سادهتر میکنند. از طرفی تقسیمبندی افقی فقط جدول اصلی اطلاعات را تبدیل به جداولی کوچکتر و البته کارآمدتر میسازد. در حقیقت در جداول کوچکتر نیز خصوصیات مربوط به اصالت دادهها کاملاً حفظ خواهند شد. اساساً چنین مفهومی در زیرساختهای بلاک چینی نیز وجود دارد که بهموجب آن، زنجیره بلوکی به بخشهایی کوچکتر و منظمتر تبدیلشده که به هرکدام از آنها شارد میگوییم.
مقیاس بندی افقی در مقایسه با عمودی
در زمان رویارویی با موضوعی مثل مقیاسپذیری، زیرساختهای یک شبکه بلاک چین فقط چند گزینه پیش روی خود دارند: لایه ۲، تقسیمبندی افقی و البته مقیاسپذیری عمودی.
اساساً راهحل لایه ۲، راهحلی جهت مقیاسپذیری برون زنجیرهای در رأس شبکه بلاک چین است. ایده اصلی در چنین فرآیندی، کنار گذاشتن لایه اصلی و تشکیل یک لایه دیگر بر روی آن است. در حقیقت چنین لایه مازاد با محاسبات پیچیده سروکار داشته و ازاینرو مشکلات ساختاری لایه اصلی را کاهش خواهد داد. از طرفی شبکههای پلاسما (Plasma) و رایدن (Raiden) را میتوان جزء بهترین مثالهای مقیاسپذیری لایه ۲ بشمار آورد. همچنین ازجمله سرشناسترین پروژههایی هم که از اهرم کمکی لایه ۲ استفاده کردهاند، میتوانیم به شبکههای پالی گان (Polygon) یا ماتیک (Matic) اشارهکنیم.
پسازآن نیز نوبت به راهحل مقیاسپذیری عمودی خواهد رسید. اساساً مقیاسپذیری عمودی شامل توسعه شبکه توسط تزریق قدرت و حافظه بیشتر به واحد پردازش مرکزی سیستم خواهد بود. در حقیقت این فرایند توسط بهبود کارایی انجام هر تراکنش صورت میگیرد. جهت انجام این کار نیز، مقیاسپذیری عمودی، قدرت پردازش بیشتری را در یک ماشین مجازی جایداده تا ظرفیت پردازش خود را ارتقاء دهد.
همچنین بخوانید: لایه ۲ اتریوم، این شبکه را نجات نخواهد داد!
بهصورت کلی، مقیاسپذیری عمودی کارآمدی پایینی دارد؛ ولی اجرای آن بسیار آسانتر از مقیاسهای افقی خواهد بود. درواقع، اگر حافظه اصلی ماشین مجازی قادر به پردازش چنین حجمی از تراکنشهای ورودی نباشد، مقیاسپذیری عمودی بهاحتمالزیاد قادر خواهد بود تا پاسخی مناسب را برای آن ارائه دهد. در چنین سناریویی، مقیاسپذیری عمودی خواهد توانست تا حافظه بیشتری را در اختیار زیرساخت ماشین مجازی قرار داده و درنتیجه، حجم پردازش کاهش پیداکرده و توان عملیاتی تراکنشها افزایش پیدا میکند.
بااینوجود، اگر حجم تراکنش ورودی از توان سختافزار ماشین مجازی به میزانی بالاتر رود که دیگر ازنظر فیزیکی قادر به پردازش آن نباشد، راهحل مقیاسپذیری افقی موردنیاز خواهد بود. همانگونه که در بالا بیان کردیم، مقیاسپذیری افقی یا شاردینگ، اساساً به توان عملیاتی در زیرساختهای یک شبکه بلاک چین کمک میکند. در این روش، از خوشهها یا کلاسترها (clusters) یا ماشینهایی مجازی (Virtual Machines) استفاده میشود که به لایه اصلی در بلاک چین اضافه میشوند. باوجود اینکه شاردینگ سیستمی کاملاً مؤثر در راستای مقیاسپذیری است، ولی بهطور قطع با پیچیدگیهایی در اجرا و پیادهسازی همراه خواهد بود.
علاوه بر این موارد، وقتیکه صحبت از اجرای روشهای مقیاسپذیری در زیرساختهای شبکه بلاک چین باشد، برخی سؤالات فنی و بنیادین وجود دارند که باید به آنها پاسخ داده شود.
شاردینگ در راستای تمرکززدایی بیشتر
بهطور قطع بحث و جدال اساسی در مورد تقابل شاردینگ و تمرکززدایی در بلاک چین مطرح است. در حقیقت، در زمان معرفی مفهومی بنام مقیاسپذیری در فناوری بلاک چین، باید دقت کرد که ازآنجاییکه چنین سیستمهایی بهعنوان شبکههای توزیع یافته عمل میکنند، بهطور ذاتی بهسختی میتوان توان کلی آنها را بهوسیله اضافه کردن سختافزار بیشتر (مثل گرهها، ماینرها یا اعتبارسنجها) ارتقاء داد. این مطلب وقتی بیشتر خود را نشان میدهد که بدانیم توسعهدهندگان شبکههای بلاک چین تلاش دارند تا ثبات کلی لایه اصلی را حفظ کنند. درواقع این توسعهدهندگان در تلاش هستند تا ساختار اصلی این شبکهها را دستکاری نکنند.
از طرفی روشهای مقیاسپذیری هم اهمیت و محبوبیت بیشتری پیدا میکنند؛ چراکه قادر خواهند بود تا به سطح امنیتی و اعتبار لایه اصلی کمک کنند. درنتیجه توان تراکنشی شبکه بلاک چین، بدون تغییر زیرساخت کلی آن بهبود پیدا خواهد کرد. اساساً شبکه لایتنینگ (Lightning Network) را میتوان جزء مثالهای خوب این موضوع بیان کرد. این شبکه از فناوری خود بهره برده تا به امنیت بیت کوین در راستای ارتقاء ظرفیت تراکنشهای کلی سیستم کمک کند.
جدا از این، Sharding منجر به تقسیم حجم زیادی از اطلاعات به بخشهای کوچکتر و کارآمدتر خواهد شد و نتیجتاً اینکه ایجاد یک اکوسیستم غیرمتمرکز میسر خواهد شد. در حقیقت، اگر تمامی ساختار اطلاعاتی یک بلاک چین در یک سوپر گره یا سوپر نود (Supernode) جمعآوری شود و فقط چند کاربر محدود، قادر به دسترسی به آن باشند، اولاً دستکاری و بهرهبرداری از چنین ساختاری بهوسیله مهاجمان آسانتر میشود. دوماً، اهداف اصلی شبکههای بلاک چین مبتنی بر یک ساختار غیرمتمرکز و بدون نیاز به اعتماد نیز از بین خواهند رفت.
بهطور کلی، مقیاسپذیری و شاردینگ را میتوان اجزای اصلی توسعه شبکههای بلاک چینی در نظر گرفت. از طرفی آنها کاتالیزورهای بسیار حیاتی جهت تحقق تمرکززدایی بلاک چین هستند.
شاردینگ در اتریوم 2.0
سامانه سنجش بلوکی اتر اسکن (Etherscan)، عنوان کرده که فول نودهای اتریوم در حال حاضر حداقل پنج ترابایت فضا اشغال میکنند؛ که این رقم ۱۰ برابر بیشتر از ظرفیت معمول رایانهها است. علاوه بر این، با توسعه پلتفرم و افزایش تعداد کاربران، تعداد نودهای اتریوم افزایش پیداکرده و کار با آنها دشوارتر خواهد شد.
واضح است که اتریوم نیازی اساسی به مقیاسپذیری دارد و شاردینگ دقیقاً راهحل چنین مشکلی است. ازاینرو بد نیست در ادامه نگاهی به نحوه کارکرد شاردینگ بهوسیله اتریوم 2.0 بیندازیم.
تقسیمبندی نودها و کسب موفقیت
در کنار پروتکل کسپر (Casper) و ماشین وب اسمبلی اتریوم (Ethereum WebAssembly) که اختصاراً با ewasm شناخته میشود، شاردینگ جزء اصلیترین ویژگیهای جدید در نسخه اتریوم 2.0 است. در حال حاضر در شبکه اتریوم، هر گره وظیفه سنجش هر تراکنش را بر عهده دارد. این خصوصیت بیانگر پویایی شبکه اتریوم است. درواقع این شبکه به شکلی کار میکند که حتی اگر ۸۰ درصد گرههای اتریوم نیز بهطور همزمان از کار بیفتند، بازهم شبکه دچار اختلال نخواهد شد.
اما مدل فعلی الزاماً باعث کند شدن اتریوم نخواهد شد، ولی اما میتواند برای آن مشکلساز شود؛ چراکه این مدل قادر نخواهد بود تا منابع شبکه اتریوم را به شکلی مطلوب بهینهسازی کند. بهعنوان مثال، تصور کنیم که ۳ گره جداگانه بر بستر شبکه اتریوم موجود و در حال سنجش اعتبار تراکنشها هستند. این گرهها را بهعنوان گره X، گره Y و گره Z در نظر بگیرید. در شرایط کنونی، جهت سنجش اعتبار اطلاعات یک تراکنش (در این مثال، اطلاعات T)، هر گره باید تمامی مجموعه دادههای T را تأیید کرده و آنها را موردسنجش قرار دهد.
اگرچه این کار باعث تضمین سطح ایمنی تمامی شبکه میشود، ولی ترافیکی را برای صف تراکنشها ایجاد خواهد کرد. درواقع بدین شکل، شبکه مجبور خواهد بود تا منتظر هر گره باشد تا تراکنشها را تأیید کند. البته که چنین سناریویی بههیچعنوان کارآمد و ایده آل نیست. بااینوجود در نسخه اتریوم اتریوم 2.0 و بهوسیله طرح شاردینگ آن، مجموعه اطلاعات T را میتوان در دستهبندی T1، T2 و T3 قرارداد. آنگاه بهعنوان مثال، گرههای X، Y و Z فقط باید شاردی کوچک از اطلاعات را جهت تکمیل فرایند تأیید اطلاعات T پردازش کنند.
اگر قصد داشته باشیم تا بیش از ۱۰۰۰۰ تراکنش را در هر ثانیه پردازش کنیم. این کار بایستی بدون اجبار گرهها جهت تبدیلشدن به ابررایانه انجام بگیرد. از طرفی این گرهها نباید اجباری جهت ذخیره ۱ ترابایت اطلاعات داشته باشند. ولی چنین کاری نیاز به راهحلی اثباتشده دارد که طی آن، حجم ذخیره بالا، پردازش تراکنشها و حتی دانلود تراکنشها و انتشار مجدد آنها در بین گرههای گوناگون گسترده شود.
(قسمت سؤالات متداول شاردینگ- وبسایت ویکی اتریوم (Ethereum Wiki))
نتیجتاً اینکه با شکاندن اطلاعات به زیرمجموعههایی کوچکتر، اتریوم قادر خواهد بود تا توان تراکنشی بالاتری را کسب کند که درنتیجه آن، محیطی بادوام تر و سریعتر برای پیشبرد اهداف و تداوم رشد این شبکه به وجود خواهد آمد.
مکانیک (سازوکار) شاردینگ
اتریوم 2.0 سعی دارد تا کارکرد شبکه خود را بهوسیله انتقال لایه اصلی خود از الگوریتم گواه اثبات کار (PoW) به الگوریتم اجماع گواه اثبات سهام (PoS) به حداکثر میزان خود برساند. در حقیقت الگوریتم اجماع گواه اثبات کار، برحسب مفهوم ماینرها کار میکند تا شبکه را ایمن و متوازن سازد. از طرفی این الگوریتم نیاز به قدرت محاسباتی بسیار بالایی دارد. همچنین، الگوریتم PoW، مصرف انرژی بالای ناشی از استفاده از توان محاسباتی بالا را با تعهد مالی پاسخ خواهد داد.
این در حالی است که در الگوریتم گواه اثبات سهام در اتریوم اتریوم 2.0 یا همان کسپر، دیگر نیازی به ماینرها نیست؛ بلکه در عوض از اعتبارسنجها استفاده خواهد شد که قادر هستند تا با تزریق حداقل سی و دو توکن ETH در استخر سهام گذاری یا استیکینگ (Staking)، در فرآیند تأیید تراکنشها و تشکیل بلوکهای جدید مشارکت کنند. درواقع پروتکل کسپر توسط زنجیره بیکن (Beacon Chain) است که میسر خواهد شد. این زنجیره در حقیقت همان زنجیره اصلی در اتریوم اتریوم 2.0 است و به شاردها این امکان را میدهد تا باهم ارتباط برقرار کنند.
همچنین بخوانید: نحوه استیکینگ رمز ارزها | کسب درآمد غیر فعال با استفاده از رمز ارزها
البته که تمامی این فرآیند شامل زیرساختهای بسیاری بوده که درنتیجه آن، کاربران بایستی انتظار مواجهه با شکلی تماماً جدید و بهینه از اتریوم را داشته باشند. بهعنوان مثال، اتریوم اتریوم 2.0 باعث خواهد شد تا حسابهای کاربران در یک شارد بخصوص قرار بگیرند. از طرفی تراکنشها را داخل بستههای تراکنشی تقسیمبندی شده و پسازآن نیز هر بسته به یک شارد بخصوص اختصاص داده میشود. در قدم بعدی نیز این بستهها به زیرمجموعههای دیگری شامل سرتیترها و بدنههای تراکنش تقسیمبندی شده که هرکدام از این سر تیتر یا بدنهها، خصوصیات بخصوصی از شارد را معرفی میکنند.
همانطور که در تصویر بالا نمایش دادهشده است، هر سر تیتر گروه تراکنشها دارای یک بخش راست و چپ جداگانه بوده که قسمت چپ سر تیتر دارای اجزای زیر است:
- شناسه شارد (Shard ID): جهت انتقال گروه تراکنشها به شاردی معتبر و شناساییشده
- ریشه پیش از وضعیت: وضعیت ریشه آن شارد بخصوص قبل از قرار گرفتن گروه تراکنشها در داخل آن
- ریشه پس از وضعیت: وضعیت ریشه آن شارد بخصوص بعد از قرار گرفتن گروه تراکنشها در داخل آن
- ریشه رسید: یک تأییدیه مبنی بر ورود گروه تراکنشها در ریشه شارد بخصوص
از سوی دیگر، قسمت راست سر تیتر، گروهی از اعتبارسنجهای تصادفی را نشان میدهد که تراکنشها را در خود شارد تأیید میکنند. در ادامه نیز، این بستههای تراکنشی بایستی دستخوش فرآیند تأیید دوگانه قرارگرفته تا به زنجیره اصلی پیوست شوند. نخستین فرآیند تأیید شامل اعتبارسنجهایی است که بهطور تصادفی برای یک شارد تعیینشدهاند. در حقیقت آنها باید درباره صحت هر بسته تراکنش رأی دهند. حال اگر اعتبارسنجها رأی تأیید دهند، کمیتهای جداگانه در زنجیره بیکن بایستی صحت این رأی را بهوسیله یک قرارداد هوشمند مدیریت شاردینگ موردسنجش قرار دهد. اما اگر رأی دوم هم مثبت باشد، آن بسته تراکنشی به زنجیره اصلی ضمیمهشده و بخشی از دفتر کل توزیعشده خواهد شد. همچنین، پیوندی درونی و استوار با گروه تراکنشی در آن شارد خواهد داشت.
ارتباط بین شاردها
زیرساخت اتریوم اتریوم 2.0 به شاردها این امکان را میدهد تا بهصورت مؤثر در راستای ایجاد اکوسیستمی تعاملی و سودمند باهم ارتباط داشته باشند. ویتالیک بوترین (Vitalik Buterin)، بنیانگذار اتریوم، مفهوم ارتباط بین شاردی را به بهترین شکل در کنفرانس DevCon در شهر پراگ در سال ۲۰۱۸ بیان کرد:
فرض کنید که اتریوم به هزاران جزیره تقسیمشده و هر جزیره کار خود را کرده، ویژگیهای مخصوص به خود را داشته و هر فرد در آن جزیره (هر حساب) میتواند بهآسانی با سایر افراد معاشرت کند. از طرفی این افراد میتوانند از ویژگیهای مشترک هم نیز لذت ببرند. حال اگر آنها بخواهند با سایر جزایر ارتباط برقرار کنند، باید از یک نوع پروتکل بخصوص پیروی کنند.
نیاز به پروتکل بین شاردی
با در نظر گرفتن چنین تشابه شارد به جزیره بهوسیله ویتالیک بوترین، کاملاً واضح است که اگر این شاردها قصد داشته باشند تا بهصورت موفق باهم ارتباط برقرار کنند، نیاز به یک پروتکل بین شاردی بخصوص دارند. این پروتکل مدنظر در اتریوم اتریوم 2.0 پارادیم رسید یا الگوی رسید (Receipt Paradigm) نام دارد. از طرفی همانگونه که در تصویر بالا نشان داده شد، ریشه رسید (Receipt Root) نیز قسمتی از سر تیتر گروه تراکنش بوده که جهت تأیید ورود یک گروه تراکنش به ریشه شارد در یک درخت مرکل (Merkle Tree) از آن استفاده میشود.
در حقیقت هر تراکنش در گروه، منجر به ایجاد یک رسید در شارد متعلق به خود خواهد شد. همچنین زنجیره بیکن یا همان زنجیره سیستمی موجود در اتریوم اتریوم 2.0 نیز از حافظه مشترک توزیع یافته خود جهت ذخیره کلیه رسیدهای تراکنشی در داخل خود استفاده میکند. درواقع ازاینجهت است که به آن الگوی رسید اطلاق میشود. این اتفاق ازاینرو رخ میدهد که دیگر شاردها قادر باشند تا رسیدهای داخل زنجیره بیکن را دیده و با آنها تعامل داشته باشند. ولی به دلیل ماهیت تغییرناپذیر شبکه بلاک چین، خود آنها نمیتوانند رسیدهای تراکنشها را تنظیم و مرتب کنند.
این خصوصیت بسیار کلیدی است. درواقع بهوسیله این خصوصیت، شاردها دقیقاً خواهند فهمید که چه زمان جهت برقراری ارتباط با دیگر شاردها مناسب خواهد بود. اساساً، این طراحی خاص برای اتریوم اتریوم 2.0 به شاردها این امکان را میدهد تا از فعالیت هم بهره برده و درعینحال هدف خاص خود را نیز حفظ کنند.
پیچیدگیها و تأخیرهای عملیاتی بین شاردها (Cross-shards)
۲ مشکل اساسی که در مورد ارتباطات بین شاردی در اتریوم 2.0 مطرح است، همانا پیچیدگیها و تأخیرهای عملیاتی بین شاردها است. بااینوجود، ویتالیک بوترین چند پیشنهاد را جهت حل این مشکلات و همچنین تضمین توسعه اتریوم شارد شده مطرح کرده است که عبارتاند از:
- انتقال تعدادی از مسئولیتها و وظایف از شاردهای اختصاصی به زنجیره بیکن
- تضمین وضعیت و فعالیت مخصوص هر شارد
- کاهش پیچیدگیها در ساختار شارد و حفظ کارکردهای گوناگون شبکه
- اهدای کارکردهای کافی به شاردها در راستای پشتیبانی از اجرای قراردادهای هوشمند در گروههای تراکنشی گوناگون
- معرفی ۳ دسته تراکنش جدید که عبارتاند از رونوشت اجرایی جدید (New Execution Script)، اعتبارسنج جدید (New Validator) و برداشت از حساب (Withdrawal). در حقیقت رونوشت اجرایی جدید، منجر به ایجاد یک رونوشت اجرایی خواهد شد که میتواند توکن های ETH را در خود جای دهد. از طرفی اعتبارسنج جدید نیز قادر است تا اعتبارسنجهای جدید را به سیستم اضافه کند. ضمناً برداشت از حساب نیز میتواند اعتبارسنجها را از زنجیره بیکن بیرون کند.
علاوه بر اینها، دیگر موضوعی که اتریوم اتریوم 2.0 در تلاش یافتن راهحلی برای آن است، تأخیرهای عملیاتی در ارتباطات بین شاردی است. بهعنوان مثال اگر کاربری قصد داشته باشد تا یک توکن را از شارد X به شارد Y اتقال دهد، یک تراکنش در شارد X، آن توکن را از بین خواهد برد؛ ولی درعینحال، گزارشی از اعتبار ارسالشده، آدرس و شارد مقصد (در این مثال شارد Y) نیز ذخیره خواهد شد.
از طرفی باکمی تأخیر، تمامی شاردها از وضعیت سایر شاردها مطلع خواهند شد که این آگاهی میتواند باعث این شود که آنها بتوانند تراکنش و صحت آدرس شارد Y را تأیید کنند. ازاینرو، شارد X اقدام به ایجاد یک رسید تراکنش کرده که بهوسیله شارد Y بازیابی شده و اجازه میدهد تا اعتبار داخل شارد X از بین رفته و به شارد Y منتقل شود.
قطعاً میتوان تصور کرد که چنین فرآیندی تأخیرهای زیادی را با خود به همراه خواهد داشت. از طرفی، اهداف مقیاسپذیری اتریوم اتریوم 2.0 نیز زیر پا گذاشته خواهند شد. در حقیقت اتریوم راهحلی تحت عنوان انتقالات سریع بین شاردی بهوسیله ریشههای خوشبینانه رسیدی (Fast Cross-Shard Transfers Via Optimistic Receipt Roots) را پیشنهاد داده است. باوجوداینکه این عنوان کمی گیجکننده است، ولی درواقع یک سیستم ساده است که وضعیتهای گوناگون را ذخیره کرده و درباره صحت تراکنش ارسالشده، خیلی خوشبینانه عمل خواهد کرد.
جهت درک بهتر این موضوع، تصور کنید که باب پنجاه توکن در شارد B دارد و آلیس نیز بیست توکن از شارد A برای وی ارسال کند، بدون آنکه باب در مورد وضعیت شارد A اطلاع داشته باشد. ازاینرو باب قادر نخواهد بود تا بهطور کامل اعتبار انتقال را بسنجد. در این شرایط، وضعیت حساب باب (شارد B) بهطور موقف، در صورت اصالت، انتقال هفتاد توکن از سوی آلیس و در صورت عدم اصالت، انتقال همان پنجاه توکن را نشان خواهد داد.
اساساً دلیل این موضوع این است که اعتبارسنجهایی که تراکنش انجامشده از سوی شارد A به B را تأیید میکنند، قادر هستند تا نسبت به نهایی شدن انتقال خوشبین باشند. این یعنی آنها میتوانند خوشبین باشند که نهایتاً حساب باب بهمحض سنجش اعتبار تراکنش از سمت آلیس، دارای هفتاد توکن خواهد شد. ازاینرو، اعتبارسنجها میتوانند به شکلی رفتار کنند که انگار باب به هفتاد توکن دست پیداکرده است.
حال بهمحض تأیید تراکنش از سمت شارد A به B، وضعیت آن دائم شده و در صورت عدمتأیید آن نیز رد میشود. درواقع این سیستم انتقال سریع بین شاردی میتواند شدیداً تأخیرهای شبکه را از میان بردارد. حال در صورت اجرای دقیق و موفق آن، اتریوم اتریوم 2.0 میتواند توان عملیاتی خود را سریعتر کرده و مقیاسپذیری خود را نیز ارتقاء دهد. حال بیایید بحث درباره اتریوم اتریوم 2.0 را کنار گذاشته و مفهوم شاردینگ را در سایر پروژهها بررسی کنیم. در این مطلب، قصد داریم تا بهصورت بخصوص بحث شاردینگ در زیلیکا (Zilliqa)، نیر (NEAR) و پولکادات (Polkadot) را موردبررسی قرار دهیم.
شاردینگ در زیلیکا
یک پروژه معتبر و جذاب دیگری نیز که از شاردینگ استفاده میکند، زیلیکا (Zilliqa) است. زیلیکا که در سال ۲۰۱۷ میلادی (۱۳۹۶) راهاندازی گردیده است، بلاک چینی با کاربردهای محاسباتی گسترده برای سازمانها و فناوریهای رو به رشد است که خصوصیات کلیدی آن، شاردینگ و پردازش موازی تراکنش هستند.
اگرچه این شبکه طبق الگوریتم اثبات کار فعالیت میکند که نیازمند قدرت محاسباتی بسیار بالایی است، اما به شکلی طراحیشده تا برحسب تقاضا و بهوسیله مشارکت گرهها و ماینرهای ZIL، بیشتر به ارتقاء مقیاس خود بپردازد. ازاینرو، در زیلیکا شاردهای بیشتری میتوانند در شبکه جای بگیرند.
از طرفی توکن بومی زیلیکا نیز اختصاراً با ZIL نشان داده میشود. همچنین طبق مدل شاردینگ زیلیکا، اگر این شبکه بخواهد ۲۰۰۰۰ گره را در خود جای دهد، آنگاه میتواند به ۲۵ زیر شبکه که هرکدام نیز شامل ۸۰۰ گره هستند، تقسیمشده که هرکدام قادر هستند تا اطلاعات را به شکل موازی و همزمان باهم پردازش کنند. در حقیقت ساختار زیلیکا پیچیدگیهای بخصوصی دارد. اول اینکه این ساختار از ۲ بلاک چین بهطور موازی استفاده میکند. همچنین زیلیکا از بلوکهای تراکنشی بانام TX-Blocks استفاده میکند که تراکنشهای ارسالشده از سمت کاربران شبکه را در خود جای میدهند. ضمناً شکل دیگر بلوکهای تراکنشی در این شبکه، بلوکهای راهنمای خدمات (DS-Blocks) هستند که آنها هم اطلاعات را نزد ماینرهای شبکه نگهداشته که این موضوع نهایتاً منجر به کمک به امنیت شبکه خواهد شد.
اساساً شاردینگ بلاک چین در زیلیکا در ۲ مرحله صورت میگیرد. در مرحله اول، گرههای کمیته راهنمای خدمات (Directory Service Committee Nodes) انتخاب میشوند و فرآیند شاردینگ را شروع میکرده و هر گره را به یک شارد مرتبط میسازند. در مرحله دوم نیز پس از تأیید تراکنشها در شارد، این تراکنشها میتوانند از سمت تمامی شبکه هم تأییدشده و به مرحلهای جهانی تبدیل شوند که هر تراکنش در شارد را به یک منبع سنجش اعتبار مستقل در بلاک چین زیلیکا ضمیمه میکنند.
بصورت کلی یک تراکنش شارد شده در شبکه زیلیکا، شامل یک کاربر است که یک تراکنش را شروع میکند و پسازآن، تراکنش به شاردی منتقل خواهد شد که تراکنش را سنجیده و آن را با تراکنشهای دیگر مقایسه میکند تا یک میکرو بلوک (Microblock) از تراکنشها ایجاد کند. در ادامه نیز بهوسیله شارد موجود در سنجش اعتبار میکرو بلوک، اجماع حاصلشده و این اجماع به کمیته راهنمای خدمات سپرده خواهد شد که وظیفه ادغام میکرو بلوکها با بلوک نهایی را بر عهده دارد. درواقع کمیته راهنمای خدمات در اینجا، قبل از ضمیمه این بلوک به شبکه بلاک چین، به اجماع نهایی دست پیدا خواهد کرد.
شاردینگ در پروتکل نیر
دیگر پروژهای که از نوعی متفاوت از شاردینگ استفاده میکند، پروتکل نیر (NEAR Protocol) است. پروتکل Near که در سال ۲۰۲۰ (۱۳۹۹) راهاندازی گردید، یک پلتفرم بلاک چین شارد شده با مدیریت اجتماعی است که از الگوریتم اجماع گواه اثبات سهام (PoS) استفاده میکند. ازاینرو، در این پروتکل، مقیاسپذیری و تعامل از اهمیت بسزایی برخوردار هستند.
از طرفی Near نیز از فناوری نایت شید (Nightshade) خود بهره گرفته تا توان عملیاتی بالایی را کسب کند. طبق این فناوری، اعتبارسنجها تراکنشها را بهطور موازی پردازش کرده تا ظرفیت تراکنشها را در بلاک چین افزایش دهند. باوجوداینکه مدل شاردینگ بر پایه زنجیرههای شاردی و زنجیره بیکن بسیار قدرتمند عمل میکند، ولی برخی مشکلات ساختاری را نیز به همراه خواهد داشت. درواقع چنین مشکلاتی ازاینجهت رخ میدهند که هر جفت زنجیرههای شاردی و زنجیره بیکن اساساً ماهیتی مستقل از هم در یک بلاک چین دارند.
پروتکل Near این مشکل را بهوسیله ارائه یک طرح شاردینگ حل خواهد کرد. در حقیقت این طراحی با مدلسازی زیرساخت آن بهعنوان یک بلاک چین منفرد، اجرایی میشود. در این مدل، هر بلوک دارای کلیه تراکنشهای کلیه شاردها است و تمامی وضعیت شاردها را تغییر خواهد داد. درواقع بهوسیله نایت شید، پروتکل نیر قادر خواهد بود تا الگوی مستقل خود در بلاک چین را بهوسیله شاردینگ تراکنشهای هر بلوک در دستههای فیزیکی تحقق ببخشد. در حالتی ایده آل، هر شارد دارای یک بخش است و تمامی شاردها در یک بلوک جمع خواهند شد.
شاردینگ در پولکادات (Polkadot)
پولکادات نیز از یک مدل شاردینگ متفاوت با شاردینگ اتریوم استفاده میکند. این پروژه از خصوصیات بین زنجیرهای خود بهره برده و شاردینگ را توسط پاراچین ها (parachains) پیادهسازی میکند. اساساً طراحی بومی پولکادات از یک شبکه چند زنجیرهای تشکیلشده که امنیت، اطمینان و مقیاسپذیری لایه صفر را برای تمامی بلاک چینهای لایه ” که بر روی آن پیادهسازی شوند، به ارمغان خواهد آورد. از طرفی این لایههای ۱ همان شبکه پاراچین هستند. درواقع پاراچین ها بلاک چینهایی گوناگون هستند که بهطور موازی در داخل اکوسیستم پولکادات فعالیت میکنند.
همچنین بخوانید: ۱۰ رمز ارز برتر جهت سرمایهگذاری در سال ۲۰۲۱
همچنین پاراچین ها توسط زنجیره اصلی (Relay Chain) موجود در پولکادات به هم متصل شده و ایمن میشوند. شبکه پاراچین را به جرئت میتوان بهعنوان نمونه یک شاردینگ پیشرفته تلقی کرد که خصوصیات زنجیره اصلی پولکادات را اجرایی میکند. درواقع این شبکه به شکلی موازی و شبیه به شارد عمل میکند.
بیشتر بخوانید: اولین پاراچین پولکادات با نام شل رسما به این شبکه اضافه شد
جدا از این، پروژههای پاراچینی مثل کلاور (Clover) نیز هستند که میتوانند از تراکنشهایی بدون کارمزد گس (Gas Fee) استفاده کرده و لایههای جدیدی را با مقیاسپذیری و همچنین تعاملی بالا به زیرساختهای لایه ۱ بیفزایند؛ چراکه پولکادات، بهعنوان یک شبکه چند زنجیرهای که با پاراچین ها ایجادشده است، میتواند چندین تراکنش موازی در چندین زنجیره را بهصورت آنی پردازش کند. نهایتاً اینکه بهوسیله این مفهوم است که شاردینگ بین زنجیرهای در شبکه پولکادات محقق خواهد شد.
نتیجهگیری
شاردینگ را میتوان کلید اصلی مقیاسپذیری در شبکههای غیرمتمرکز نامید. در حقیقت شاردینگ میتواند فرصتهای زیادی را برای پروژههایی فراهم سازد که از آن استفاده میکنند. از طرفی در حال حاضر، مشکل مربوط به بلاک چینهایی است که با گسترش روزافزون خود به دلیل محبوبیت، کاربرد و تقاضای بالا، با ترافیک سنگینی در شبکه خود همراه شدهاند و این ترافیک باعث پدید آمدن مشکلات و پیچیدگیهای درون زنجیرهای برای آنها شده است و چنین مشکلاتی میتواند منجر به نیاز مبرم آنها به راهحلی مطلوب جهت مقیاسپذیری شود.
اتریوم 2.0 شاردینگ را در این بهروزرسانی خود پیاده کرده و به نظر میرسد که انتظارات از این روش بسیار بالا باشد. حال اگر اتریوم 2.0 موفق شود تا به شکل صحیح از شاردینگ استفاده کند، مقیاسپذیری اتریوم تا بلندمدت تضمین خواهد شد و نتیجتاً اینکه اتریوم موفق میشود تا در مسیر خود بهعنوان پروژهای غیرمتمرکز و عمومی به پیشتازی خود ادامه دهد. درنهایت اینکه بهاحتمالزیاد، در صورت موفقیت شاردینگ، اتریوم در تحقق رؤیای یک رایانه جهانی به موفقیتهای بسیار زیادتری خواهد رسید.
منبع: coinbureau
فکت کوینز مرجع خبر،تحلیل،آموزش رمز ارز
برای دیدن آموزش های رایگان بیشتر،عضو شوید