حتما وقتی صحبت از شبکه اتریوم و تغییر زیرساخت های موجود میشود؛ اصطلاح شاردینگ (Sharding) به گوشتان رسیده است. در این مقاله قصد داریم به توضیح کامل و تاریخچه این تکنولوژی بپردازیم.
۱- شاردینگ چیست؟
شاردینگ نوعی پارتیشن (تقسیم بندی) بندی دیتابیس است که به آن پارتیشن بندی افقی نیز میگویند.
فرآیند شاردینگ شامل تقسیم کردن دیتابیس بسیار بزرگ به بخش های کوچکتر و قابل مدیریت تر و با هدف بهبود عملکرد و کاهش زمان پاسخ دهی میباشد.
شاردینگ مفهوم جدیدی نیست و از اواخر دهه ۱۹۹۰ در زمینه مدیریت دیتابیس های متمرکز وجود داشته است. اصطلاح شاردینگ در واقع توسط یکی از اولین بازی های نقش آفرینی آنلاین چندنفره گسترده یا همان MMORPG ها به اسم اولتیما آنلاین (Ultima Online) محبوب شد. توسعه دهندگان این بازی، گیمرها را بین سرورهای مختلف (دنیاهای مختلف در بازی) تقسیم کردند تا بتوانند به مشکل ترافیک ورودی سرورها فائق آیند.
در تجارت، نمونه رایجی از شاردینگ دیتابیس بزرگ، تقسیم کردن دیتابیس مشتریان به مکان های جغرافیایی است. مشتریانی که در یک منطقه جغرافیایی وجود دارند در یک گروه و در سرورهای منحصر به فرد قرار میگیرند.
۲- شاردینگ در حوزه بلاک چین به چه معناست؟
شاردینگ در بلاک چین نیز فرآیند مشابهی را در بر میگیرد.
شبکه بلاک چین، دیتابیسی دارای نودهایی است که معرف سرورهای اطلاعات میباشد. اگر شاردینگ را در بلاک چین اعمال کنیم بدان معنا است که شبکه بلاک چین را به بخش های مجزا (یا شاردها) تقسیم میکنیم. هر شارد، مجموعه منحصر به فردی از قراردادهای هوشمند و موجودی حساب ها را دربر خواهد داشت.
سپس به جای آنکه هر نود مسئول تایید تراکنش های کل شبکه باشد، هر نود به شاردهای مجزا اختصاص مییابند تا تراکنش ها و عملیات را تایید کنند.
هدف از شاردینگ این است که با تقسیم بلاک چین به بخش های قابل مدیریت تر، منجر به افزایش خروجی تراکنش ها و غلبه بر مشکلات مقیاس پذیری اکثر بلاک چین های مهم شود. در ادامه مقاله به این موضوع با جزییات بیشتری خواهیم پرداخت.
۳- نحوه کار شاردینگ چگونه است؟
برای توضیح شاردینگ از بلاک چین اتریوم به عنوان یک مثال استفاده میکنیم.
بلاک چین اتریوم از هزاران رایانه یا همان نودها ساخته شده است که طبق آمار ethernodes.org این تعداد در حال حاضر ۸۶۲۲ رایانه میباشد. هر نود مقدار مشخصی توان هش به شبکه ارائه میدهد. این توان هش است که عملکرد ماشین مجازی اتریوم (EVM)، یعنی اجرای قراردادهای هوشمند و برنامه های غیرمتمرکز را ممکن میکند.
در حال حاضر اتریوم بر اساس اجرای متوالی کار میکند که در آن، هر کدام از این نودها باید تمام عملیات را محاسبه و تمام تراکنش ها را پردازش کنند. در نتیجه عبور تراکنش از این فرآیند تایید ممکن است طول بکشد.
در حال حاضر اتریوم حدود ۱۰ تراکنش در ثانیه پردازش میکند. برای مقایسه میتوان گفت که این رقم در ویزا کارت به طور میانگین ۲۴۰۰۰ تراکنش در ثانیه است. افزودن رایانه ها به شبکه لزوما به معنای بهبود عملکرد نیست زیرا کل دفترکل بر روی تمام رایانه ها نگهداری میشود و زنجیره تایید طولانی تر خواهد شد.
هدف شاردینگ، انتقال از مدل اجرایی خطی، که در آن هر نود باید تمام عملیات را محاسبه کند، به مدل اجرایی موازی است که در آن نودها فقط به پردازش محاسبات خاصی اختصاص مییابند. این امر باعث پردازش چندین تراکنش موازی به طور همزمان میشود.
بلاک چین به شاردهای مجزایی تقسیم خواهد شد. (زیر دامنه ها یا باکت ها) نودها به جای حفظ تمام دفترکل به صورت همیشگی، فقط باید بخشی از دفترکل را اجرا کنند که برای پردازش و تایید تراکنش های آن بخش اختصاص یافته اند.
۴- شاردینگ چه مسأله ای را حل میکند؟
شاردینگ یک راهکار بالقوه برای مشکلات همیشگی مقیاس پذیری بلاک چین است.
همانطور که اشاره شد، یکی از بزرگترین مشکلاتی که شبکه بلاک چین با آن مواجه است، مساله مقیاس پذیری است. هرچه شبکه بلاک چین محبوب تر شود، کاربران بیشتری به سمت تراکنش ها، برنامه های غیرمتمرکز و سایر فرآیندهای این شبکه کشیده میشوند.
افزایش تراکنش ها باعث افزایش تقاضا از نودها برای تایید تراکنش ها میشود و این موضوع یک تهدید واقعی در خصوص از کار افتادن بلاک چین ها میباشد. (همانطور که هنگام جنون کریپتوکیتی ها در بلاک چین اتریوم مشاهده کردیم، به طوری که ۱۱ درصد تراکنش های شبکه را دربرگرفته بودند) در صورت رخ دادن این موضوع، سرعت انجام تراکنش ها به شدت کاهش مییابد که در بلندمدت شرایط ایده آلی برای پذیرش گسترده بلاک چین نمیباشد.
همانطور که توضیح داده شد، اگر بلاک چین به بخش های کوچکتر تقسیم شود به طوری که گروه نودها مسئولیت هر بخش را به عهده بگیرند، دیگر نیازی نیست که هر نود برای اجرای هر عملیات تمام دفترکل را ذخیره کند. در نتیجه، تایید تراکنش ها به جای حالت خطی، به صورت موازی انجام میشود. این امر، راهکاری برای مشکل مقیاس پذیری شبکه های بلاک چین ارائه میدهد و پایداری بلندمدت آن را امکان پذیر میسازد.
۵- آیا شاردینگ دارای معایب خاصی است؟
در حال حاضر چالش های اصلی شاردینگ مربوط به ارتباطات و امنیت است.
اگر بلاک چین را به بخش های مجزا تقسیم کنید، هر شارد به صورت شبکه بلاک چین مجزایی ظاهر خواهد شد. کاربران و برنامه های دامنه های فرعی بدون پیاده سازی مکانیزم های ارتباطی مخصوص و بین شاردی، نمیتوانند با کاربران و برنامه های سایر دامنه های فرعی ارتباط برقرار کنند. این موضوع باعث افزایش پیچیدگی برای توسعه دهندگان میشود.
در بلاک چینی که به چندین بخش تقسیم شده است، موضوع امنیت نیز به یکی از نگرانی ها تبدیل میشود، زیرا به دلیل کاهش توان هش مورد نیاز برای کنترل هر بخش، در اختیار قرار گرفتن هر شارد توسط هکرها آسان تر میشود. به این امر، حمله در اختیار قرار گرفتن شارد یا حمله ۱ درصد میگویند.
پس از هک شدن یک بخش، هکرها میتوانند تراکنش های نامعتبر را در شبکه اصلی ثبت کنند و هم چنین ممکن است اطلاعات آن بخش مورد نظر، نامعتبر شود و برای همیشه از دست برود. راهکار پیشنهاد شده اتریوم به مشکل امنیت شاردینگ، نمونه گیری تصادفی است که در آن، ثبت کنندگان سازد برای بخش های مختلف و تایید اعتبار بلاک به صورت تصادفی انتخاب میشوند.
۶- آیا راهکارهای جایگزین دیگری برای شاردینگ وجود دارد؟
برای بهبود عملکرد و افزایش سرعت تراکنش های بلاک چین دو پروپوزال دیگر نیز ارائه شده است.
اولین پروپوزال، افزایش حجم بلاک ها است. در نگاه اول به نظر میرسد که هرچه حجم بلاک ها بیشتر باشد، تراکنش های بیشتری در بلاک ها میتوان قرار داد و در نتیجه تعداد تراکنش های بیشتری در ثانیه به دست خواهد آمد. اگرچه این نکته صحیح است، اما افزایش حجم بلاک ها به معنای نیاز به توان محاسباتی بیشتر برای تایید بلاک نیز میباشد.
اگر حجم بلاک ها بسیار زیاد افزایش یابد، فقط تجهیزات رایانه ای پر قدرت و تخصصی میتوانند توان پردازشی مورد نیاز برای تبدیل شدن به نود را فراهم کنند. افزایش هزینه این نوع از تجهیزات به معنای کوچک تر و متمرکزتر شدن استخرهای نودها خواهد بود و احتمال حمله ۵۱ درصد افزایش خواهد یافت.
افزایش حجم بلاک ها هم چنین به هاردفورک نیز نیاز خواهد داشت که خطر تفکیک جامعه را افزایش میدهد. اگر تمام نودها به بلاک چین جدید به روز رسانی نشوند، دو زنجیره مختلف به وجود خواهد آمد که از دو کوین مجزا استفاده میکنند. به این دلیل، افزایش حجم بلاک ها فقط یک راهکار کوتاه مدت در نظر گرفته میشود.
پروپوزال دوم، استفاده از آلتکوین های مختلف است تا عملکردها و برنامه های مختلف در زنجیره و با کوین خود اجرا شوند. این امر باعث افزایش عملکرد و کارایی میشود زیرا بار بیش از حد بر روی بلاک چین وارد نمیکنید، اما به دلیل آنکه کل توان هشینگ به چندین بلاک چین تقسیم میشود، خطرات امنیتی نیز افزایش خواهد یافت.
هم چنین هک کردن شبکه آسانتر میشود زیرا میزان توان هشینگ مورد نیاز برای انجام موفقیت آمیز حمله ۵۱ درصد بسیار کمتر خواهد شد. در نتیجه، این پروپوزال، راهکار عملی و مناسبی نیست.
۷- چه ارزهای دیجیتالی از شاردینگ استفاده میکنند؟
بعضی از بلاک چین ها مکانیزم شاردینگ را پیاده سازی کرده اند در حالی که در سایر بلاک چین ها هم چنان در حال توسعه میباشد.
زیلیکا اولین پلتفرم بلاک چین عمومی است که شاردینگ را پیاده سازی کرده است. زیلیکا در شبکه آزمایشی خود توانسته است به ۲۸۲۸ تراکنش در ثانیه دست یابد.
اکوسیستم بلاک چین نیر (Near) به توسعه دهندگان امکان میدهد تا به آسانی برنامه های غیرمتمرکز را ایجاد و اجرا کنند. نیر خود را بلاک چین گواه اثبات سهام شارد شده و مناسب توسعه دهندگان میخواند و بیان میکند که فناوری شاردینگ آنها به نودها امکان میدهد تا به قدری کوچک بمانند که در موارد ساده ابری و حتی دستگاه های موبایل نیز اجرا شوند.
همانند نیر، اتریوم نیز اکوسیستم بلاک چینی برای پیاده سازی برنامه های غیرمتمرکز مبتنی بر قرارداد هوشمند ارائه میدهد. بنیاد اتریوم در صدد معرفی شاردینگ به عنوان بخشی از به روزرسانی اتریوم ۲.۰ است که برای عرضه در ژانویه ۲۰۲۰ برنامه ریزی شده است.
سایر پروژه های بلاک چین نظیر کاردانو، کوارک چین (QuarkChain) و PChain به شاردینگ به عنوان راهکاری برای حل مشکل مقیاس پذیری مینگرند.
۸- آینده شاردینگ بلاک چین چگونه است؟
شاردینگ اخیرا به دلیل کوین لیبرا فیسبوک توجهات بیشتری را به خود جلب کرده است.
فیسبوک اخیرا در وایت پیپر خود، جزییات بیشتری در خصوص کوین لیبرا ارائه کرده است که برای عرضه در نیمه اول سال ۲۰۲۰ برنامه ریزی شده است. هم چنین مشخص شده است که فیسبوک، چین اسپیس (Chainspace) را خریده است. تیم توسعه دهنده چین اسپیس به شاردینگ بلاک چین معطوف بوده است. این موضوع بیان میکند که بلاک چین لیبرا، نوع خاصی از پارتیشن بندی بلاک چین را پیاده سازی خواهد کرد.
به طور کلی، شاردینگ میتواند راهکاری برای حل سه راهی بلاک چین باشد.
طبق تعریف ویتالیک بوترین موسس اتریوم، در سه راهی بلاک چین میتوانید فقط دو مورد از سه ویژگی اصلی بلاک چین را به طور همزمان در اختیار داشته باشید. این سه ویژگی عبارتند از: امنیت، غیرمتمرکزسازی و مقیاس پذیری. این موضوع به دلیل آن است که همواره باید حداقل یکی از این ویژگی ها را فدای داشتن دو ویژگی دیگر کنید.
همانطور که بنجامین مینسو مدیرعامل شبکه الراند که پروتکل بلاک چین معطوف به مقیاس پذیری و قابلیت مشارکت و همکاری است، در مقاله اخیر فوربز گفته است، اگر شاردینگ از چالش های پیش روی خود عبور کند، بدون آنکه غیرمتمرکزسازی و امنیت را به خطر بیاندازد میتواند مقیاس پذیری را به بلاک چین وارد کند. این امر باعث میشود بلاک چین یک قدم دیگر به پذیرش گسترده نزدیک تر شود. مینسو گفت:
شاردینگ پیچیده است اما نوعی از بهبود ظرفیت خروجی را ارائه میدهد که میتواند بلاک چین های عمومی را تبدیل به رقیبی سرسخت برای شبکه هایی نظیر ویزا کند. بعضی از چالش های پیش روی شاردینگ شامل حمله در اختیار گرفتن شارد، ارتباطات بین شاردها و اعتبار داده ها و اطلاعات میباشد.