حل مشکل مقیاس پذیری با شاردینگ
اگر به شبکه اتریوم علاقه دارید و اخبار و مباحث فاندامنتال آن را دنبال کرده باشید، حتما به واژهای به نام شاردینگ (Sharding) برخوردهاید. این تکنیک که اخیراً بسیار مورد توجه قرار گرفته، یکی از روشهای بسیار موثر و کاربردی در حل مشکل مقیاس پذیری میباشد.
در این مقاله با بررسی دقیق و مفهومی مشکل مقیاس پذیری و شاردینگ، سعی شده به تمام سوالاتی که ممکن است برای شما پیش آمده باشد، پاسخ داده شود.
شاردینگ (Sharding) چیست؟
از آنجایی که بلاکچین در حال افزایش تعداد زیادی برنامه آزمایشی برای همه حوزهها میباشد، از معاملات مالی برون مرزی گرفته تا مدیریت زنجیره تأمین، یک مسئله پایدار باقی میماند که آن فقدان مقیاسپذیری است. با پیوستن کامپیوترهای بیشتر به شبکه همتا به همتا (peer-to-peer)، معمولاً کارایی کل سیستم کاهش مییابد. مقیاس پذیری به عنوان مشکلی در رمزارزهایی مانند بیتکوین و اتریوم شناخته شده است. اگر قرار است دفتر کل توزیع شده توسط شرکتهای فناوری مالی (FinTech) پذیرفته شود و با شبکههای پرداخت سریعتر رقابت کند، باید راهی برای افزایش مقیاس پذیری و توان عملیاتیاش پیدا کند.
نبود مقیاس پذیری، بدترین کابوس در بین دفاتر کل توزیع شده است. بسیاری از شبکههای غیر متمرکز تلاش میکنند تا یک راه حل واحد برای این موضوع حساس ارائه دهند. شاردینگ (Sharding) یک مفهوم امیدوار کننده است که میتواند مشکل مقیاس پذیری را در نهایت با حفظ ماهیت غیرمتمرکز بلاکچین حل کند. این روش میتواند کلیدی برای افزایش مقیاس پذیری بلاکچین باشد، اما موانعی وجود دارد که باید برطرف شوند. ما در این مقاله قصد داریم توضیح دهیم که شاردینگ چیست و چگونه میتواند در آینده به بلاکچین کمک کند. اما قبل از آن باید با تعریف مقیاس پذیری که یکی از مسائل مهم برای تمام شبکههای بلاکچینی است آشنا شویم و در ادامه به چالشهای آن بپردازیم.
مقیاس پذیری
به زبان ساده، مقیاسپذیری یعنی اینکه کارایی و عملکرد یک سیستم با افزایش تعداد کاربرانی که از آن استفاده میکنند، چقدر تغییر خواهد کرد؟ فرض کنید در یک روز ۲۰۰ تراکنش به یک شبکه بلاکچین ارسال شود و هر تراکنش به طور میانگین در ۱ دقیقه پردازش، تایید و انجام شود. اگر فردای آن روز، ۲۰۰ هزار تراکنش به همین شبکه ارسال شود، باز هم هر تراکنشها به طور میانگین در ۱ دقیقه تایید خواهد شد؟ اگر جواب بله باشد، پس این شبکه مقیاسپذیر است؛ یعنی افزایش تعداد تراکنش در عملکرد این شبکه تاثیری ندارد، اما اگر جواب منفی است و زمان میانگین برای تایید تراکنشها افزایش یابد، پس این شبکه مقیاسپذیر نیست.
سهگانهی Trilemma
مقیاسپذیری، امنیت و غیرمتمرکز ماندن؛ هر شبکهی بلاکچینی تمایل دارد این سه ویژگی را به صورت همزمان داشته باشد. اما برای داشتن همزمان این سه ویژگی با مشکل مواجه میشود. به تصویر زیر توجه کنید:
مشکل اصلی این است که یک شبکه همزمان نمیتواند هر سه ضلع این مثلث را در بلاکچین خود داشته باشد و یکی از اضلاع را از دست خواهند داد. اکنون با توجه به این سه فاکتور، میتوان شبکههای بلاکچینی را به سه دسته تقسیم بندی کرد:
- شبکههای بلاکچین مثل بیت کوین، لایت کوین و شبکه فعلی اتریوم؛ از آنجایی که این شبکههای بلاکچین عمومی میباشند، افراد برای مشارکت در این شبکه ها نیازی به مجوز نداشته و به راحتی میتوانند به عنوان نود یا گره در این شبکه فعالیت داشته باشند. بنابراین میتوان ادعا کرد که در این نوع شبکهها، فاکتورهای غیر متمرکز بودن و امنیت بالا تامین شده، اما مقیاسپذیری در این شبکه ها مناسب نیست.
- این نوع شبکهها با کاهش تعداد نودها و استفاده از آنها به عنوان نماینده همه گرهها، که این گرههای انتخابی اجماع در شبکه را فراهم میکنند، سرعت انجام تراکنشها را افزایش دادهاند. این شبکهها هم مقیاسپذیرند و هم امنیت دارند (با فرض اعتماد به نودهای انتخاب شده)، اما نمیتوان آن را به عنوان یک شبکه غیر متمرکز محسوب کرد. به طور مثال، شبکه بایننس تنها ۲۱ نود انتخابی دارد که توسط خود بایننس تعیین شدهاند. اما در مورد بیت کوین ما چنین انتخابی نداریم و همانطور که گفته شد به دلیل عمومی بودن بلاکچین آن، همه میتوانند در شبکه به عنوان نود مشارکت کنند.
- در این دسته میتوان به اکوسیستم های چندزنجیرهای (MultiChains) اشاره کرد؛ شبکههایی مانند پولکادات که نمونهای پیچیده و در عین حال موفق این دسته سوم از شبکههای بلاکچین است. این شبکهها، غیرمتمرکز هستند و به دلیل ایجاد پلتفرمی برای ارتباط میان زنجیرهای، مقیاسپذیر نیز هستند؛ اما رکن مهم دیگر را قربانی کردهاند، امنیت! در این دسته از شبکهها، امنیت با چالشهای جدی همراه است. مثلا شبکه پولکادات از ۱۰۰ پاراچین پشتیبانی خواهد کرد. برای حمله ۵۱ درصدی به این اکوسیستم، تنها کافی است ۰.۵ درصد از قدرت اجماع یکی از این پاراچینها در اختیار یک گروه خرابکار بیافتد، در نتیجه امنیت کل اکوسیستم به خطر خواهد افتاد. در نتیجه به جای در دست گرفتن کنترل ۵۱ درصد کل اکوسیستم، با هزینه بسیار کمتر میتوان به این شبکهها حمله کرد. برای بیشتر آشنا شدن با این حمله، میتوانید این مقاله را مطالعه کنید.
همانطور که مشاهده میشود، هر نوع از این شبکهها با وجود مزایای بسیار زیاد، مجبور شدهاند که یکی از فاکتورهای دیگر را نادیده بگیرند! حالا سوال اینجاست که آیا راهکار و روشی وجود دارد که یک شبکه بلاکچین هر سه رکن امنیت، مقیاسپذیری و غیرمتمرکز بودن را همزمان داشته باشد؟
پس بیایید با شاردینگ (Sharding) آشنا شویم…
تعریف شاردینگ
شاردینگ (sharding) یک مفهوم بسیار مهم است که به یک سیستم کمک میکند تا دادهها را در منابع مختلف ذخیره کند. کلمه “shard” به معنی ” قسمت کوچکی از کل” میباشد. بنابراین، شاردینگ به معنای تقسیم یک قسمت بزرگتر به بخشهای کوچکتر است. به بیان دیگر، یک روش تقسیم بندی و یا پارتیشنبندی پایگاه داده میباشد که شامل شکستن یک پایگاه داده بسیار بزرگ به اجزای کوچکتر و قابل مدیریت است. هر بخش جدا شده و در عین حال متصل به یکدیگر از پایگاه داده را شارد (shards) میگویند.
مفهوم شاردینگ از اواخر دهه ۱۹۹۰ توسط پایگاههای داده عظیم در سراسر جهان مورد استفاده قرار گرفت. اصطلاح “شارد” به لطف بازی آنلاین چند نفره (MMORPG)، Ultima Online، محبوبیت زیادی پیدا کرد. این بازی بسیار محبوب بود، توسعه دهندگان مجبور شدند بار سرورها را با معرفی دنیاهای جدید به جهان بازی تقسیم کنند. همچنین برای مدیریت ترافیک ورودی تصمیم گرفتند بازیکنان را در سرورهای مختلف پخش کنند. Investopedia تعریف زیر را برای مفهوم شاردینگ ارائه داده است:
شاردینگ یک روش تقسیم بندی پایگاه داده است که برای مقیاس پذیری چشمگیر بلاکچین اتریوم و فعال کردن آن به منظور پردازش تراکنشهای بیشتر در ثانیه استفاده میشود.
اگرچه این یک تعریف کاملاً دقیق است، اما تکنیک شاردینگ از امتیازات مخصوص شبکه اتریوم نیست. به طور خلاصه، شاردینگ در بلاکچین با هدف تقسیم بار بر روی شبکه غیر متمرکز با تقسیم دادهها از طریق شاردها انجام میشود.
مزیت استفاده از شاردینگ
با استفاده از شاردینگ، پایگاه داده به اجزای کوچکتری تقسیم میشود که همین امر منجر به مدیریت آسانتر دادهها خواهد شد. زمانی که یک پایگاه داده یا دیتابیس به شاردهای کوچکتر تقسیم میشود، سرعت پردازش و تراکنش در این شاردهای کوچک، سریعتر خواهد بود که به بهبود عملکرد کلی سیستم کمک زیادی میکند. از دیگر مزایای شاردینگ، میتوان به کاهش هزینهها اشاره کرد. در واقع، سیستمی که از ساختار شاردینگ استفاده میکند، در مقایسه با سیستم های دارای پایگاه داده یکتا و یکپارچه، به مراتب ارزانتر میباشد.
شاردینگ چگونه کار میکند؟
برگردیم به اصول اولیه؛ یک بلاکچین از نود یا همان گرهها تشکیل شده است، نهادهای مستقل که عملکرد مناسب یک شبکه غیرمتمرکز را حفظ میکنند. هر نود بخش مهمی از اکوسیستم است که منابع محاسباتی خود را به منظور افزودن بلاک به بلاکچین به اشتراک میگذارد.
به عنوان مثال، شبکه اتریوم دارای بیش از ۸۲۰۰ گره فعال میباشد که محیط سالم را در شبکه حفظ میکنند. بلاکچین اتریوم در حال حاضر بر اساس پروتکل اجرایی گواه اثبات کار (Proof-of-Work یا PoW) است که کاربران را ملزم به پرداخت هزینه گس (gas fees) میکند. هرچه کاربران بیشتر از بلاکچین اتریوم استفاده کنند، این هزینه بیشتر خواهد بود. لازم به ذکر است که اتریوم و بسیاری از بلاکچینهای دیگر در حال حاضر از مدل اجرای خطی پیروی میکنند، که برای پردازش هر عملیات به هر گره یا نود نیاز دارد.
با شاردینگ، اجرای تراکنشها در یک بلاکچین خاص از یک مدل اجرای موازی پیروی میکند. این بدان معناست که تراکنشها به طور همزمان و موازی در هر شارد پردازش میشوند و باعث افزایش قابل توجه تراکنش معاملات میشوند. در واقع گرهها عملیات خاصی را پردازش میکنند نه کل گروه را.
معمای اجماع
یکی از پایدارترین مشکلات بلاکچین، حول پروتکلهای اجماع است؛ چگونه میتوان از کاربران درباره اینکه آیا تراکنشهای پیشنهادی معتبر هستند یا باید به دفتر کل توزیع شده اضافه شوند، توافق کرد؟
پروتکلهای اجماعی مانند رایج ترین مکانیزم گواه اثبات کار (PoW) میتوانند بسیار به شبکه کمک کنند. در بلاکچین مبتنی بر PoW، هر نود یا گره تمام دادههای زنجیره را ثبت میکند و بخشی از فرایند اجماع است. در بلاکچینهای بزرگ مانند بیت کوین، اکثر گرههای شرکت کننده باید تراکنشهای جدید را تایید کنند و اگر قرار است به دفتر کل اضافه شوند، این اطلاعات را ثبت کنند؛ که این کار، تکمیل هر تراکنش را کند و سخت میکند. به همین دلیل، بیت کوین که مبتنی بر PoW است، فقط میتواند ۵ تا ۷ تراکنش را در ثانیه پردازش کند و همچنین نهایی شدن یک تراکنش میتواند ۱۰ دقیقه طول بکشد.
اتریوم، یکی دیگر از دفاتر و بلاکچینهای محبوب، تنها قادر است ۱۵ تراکنش در ثانیه را پردازش کند. در مقایسه با این شبکههای بلاکچینی، ویزا به طور متوسط ۲۴۰۰۰ تراکنش در ثانیه را پردازش میکند. نکته مثبت این موضوع که هر نود اطلاعات جدیدی را که به بلاکچین اضافه میشود را ثبت میکند، این است که دادهها غیرقابل تغییر میشوند. بلاکچینهای مبتنی بر PoW یکبار نوشته میشوند و بسیاری از برنامهها را ضمیمه میکنند، به این ترتیب آنها تغییر ناپذیر هستند.
Avivah Litan، نایب رئیس Gartner و تحلیلگر برجسته میگوید: “Sharding مفهومی است که از تقسیم بندی پایگاه داده افقی سرچشمه گرفته و توسط اتریوم پذیرفته شده است. همچنین عملکرد آن به صورتی است که هر گره مجبور نیست همه تراکنشها را پردازش کرده و در نتیجه منجر به افزایش مقیاس پذیری خواهد شد.”
پس از آن که تعداد تراکنشهای بستر اتریوم به بیش از یک میلیون تراکنش در روز رسید، راههای افزایش عملکرد را آغاز کرد. این شبکه، دو راه حل پیشنهادی را در نظر گرفت:
- اولین راه حل مکانیزم لایه دوم بود؛ پردازش تراکنشها خارج از زنجیره در یک پایگاه داده استاندارد و فقط ثبت دائمی در دفتر کل.
- راه حل دیگر شاردینگ بود که در آن امکان انجام همزمان بسیاری از تراکنشها به صورت همزمان فراهم میشد.
پروتکلهای لایه ۲ بیشتر تراکنشها را خارج از زنجیره ارسال میکنند و فقط برای ورود و خروج از سیستم لایه ۲، با بلاکچین اصلی ارتباط برقرار میکنند. این پروتکلها، دادهها را بین نودهای LAN یا WAN مجاور منتقل میکند و بار را از شبکه بلاکچین P2P بر میدارد.
پس از فعال شدن شاردینگ، بلاکچین به بخش یا پارتیشن تقسیم میشود. طبق گفته لیتان، هر حساب کاربری منحصر به فرد معادل یک شارد است و حسابها فقط میتوانند با حسابهای دیگر در همان قسمت معامله کنند که این موضوع اجازه میدهد تا تعداد زیادی از معاملات موازی به طور همزمان انجام شود.
“یک پروتکل جداگانه که توسط اتریوم انتخاب شده است، امکان ارتباطات متقابل را فراهم میکند.”
شاردینگ؛ PoW یا PoS
احتمالا حمله ۵۱٪ به یک شبکهغیر متمرکز را قبلا شنیدهاید. این واقعیت که یک ماینر مخرب یا یک استخر استخراج میتواند ۵۱ درصد از هش شبکه را بدست آورد و در نتیجه بلاکچین را کنترل کند، بسیار ترسناک است.
بلاکچینی را تصور کنید که بر اساس مکانیزم اجماع Proof-of-Work ساخته شده است که میخواهد برای مقیاس پذیری بهتر، شاردینگ را اجرا کند. بلاکچین مبتنی بر PoW نیاز به استخراج دارد، استخراج نیاز به هش ریت دارد، هش ریت توسط کامپیوترهای ماینر تولید میشود. هر شارد برای تولید یک بلوک به منابع محاسباتی کمتری (هش ریت) نیاز دارد. یک بلاکچین مبتنی بر PoW را تصور کنید که ۱۰۰ شارد دارد. در این شرایط، یک بازیگر بد که ۱٪ قدرت هش کل شبکه را بدست آورد، میتواند ۱۰۰٪ کنترل هش ریت یک شارد را در دست بگیرد.
پروتکل گواه اثبات سهام (Proof-of-Stake) نیازی به ماینر ندارد. برای شروع حمله ۵۱ درصدی، یک کاربر مخرب باید بیش از ۵۰ درصد از رمز ارز را به دست آورد. از طرفی، هر اعتبارسنج (validator) در یک بلاکچین مبتنی بر PoS، باید مقدار معینی رمز ارز را استیک کند تا بتواند به بلاکچین، بلاک اضافه کند.
شاردینگ چگونه میتواند به بلاکچین کمک کند؟
رویاهای پذیرش انبوه ممکن است با اجرای شاردینگ در بلاکچین به واقعیت تبدیل شود. حقیقت این است که درک فناوری غیر متمرکز برای کاربران معمولی بسیار پیچیده است. با گذشت زمان، توسعه دهندگان مبتکر بلاکچین موفق شدند راه حلهای پیچیده تکنولوژیکی را در یک فرم کاربر پسند قرار دهند. برنامههای غیر متمرکز (dApps) بومی و کاملاً ساده به نظر میرسند، در حالی که تجربه کاربر بصری است. با این حال، یکی از موانع اصلی بر سر راه پذیرش انبوه، سرعت تراکنش میباشد که زمان زیادی میبرد. با استفاده از شاردینگ، سرعت معاملات ممکن است به شدت افزایش یابد، کارایی بهتری را به ارمغان بیاورد و در نتیجه، کاربران جدیدی را جذب کند.
هدف نهایی در شاردینگ این است که تمام نودها، تمام تراکنشها را بررسی نکنند. این اتفاق، حجم کار نودها را به مراتب کاهش خواهد داد و بار تحمیل شده به شبکه میان نودهای آن توزیع شده و در نتیجه عملکرد کلی شبکه، بهبود مییابد.
شاردینگ در شبکه اتریوم
همانطور که اشاره شد، در حال حاضر ساختار فعلی شبکه اتریوم، مانند شبکه بیت کوین، از الگوریتم اجماع گواه اثبات کار استفاده میکند. در چنین ساختاری، نودها برای مشارکت در شبکه و تولید هش ریت متناسب برای ایجاد بلوکهای جدید، بایستی دستگاه ماینر فراهم کنند. اما طبق برنامهای که توسعه دهندگان اتریوم ارائه کردهاند، این ساختار در شبکه اتریوم ۲.۰ به گواه اثبات سهام تغییر خواهد کرد و اجرای شاردینگ را ممکن و کارآمد میکند. اتریوم ۲.۰ که مدتها منتظرش بودیم، با کمک راه حل شاردینگ در شبکه، مشکل مقیاس پذیری را حل میکند. اتریوم ۲.۰، ۶۴ شارد مساوی را معرفی خواهد کرد که قادر به انجام تراکنشها به صورت همزمان و موازی توسط سایر شاردها میباشند. اتریوم ۲.۰ با توزیع بار بین شاردها قادر به انجام تعداد ۱۰۰۰۰۰ تراکنش در ثانیه خواهد بود. در شبکه اتریوم شارد شده، تراکم شبکه کاهش یافته و سرعت پردازش تراکنشها در هر ثانیه افزایش خواهد یافت.
در اتریوم شارد شده، هر کس میتوان به نود شبکه تبدیل شود. هزینه مورد نیاز برای راهاندازی نود در شبکه اتریوم شارد شده بسیار کمتر از شبکه اتریوم فعلی است. زیرا نیازی به دستگاه قدرتمند از نظر قدرت پردازشی نیست و افراد با استفاده از لپ تاپ و حتی تلفن همراه خود نیز میتوانند به نود شبکه تبدیل شوند. اتریوم با استفاده از زنجیره بیکن (Beacon Chain) به دنبال اجرای ایده شاردینگ در شبکه اتریوم ۲.۰ است. تامین امنیت در شاردهای مختلف، مسئله اصلی در زمان استفاده از شاردینگ است. در حقیقت در یک شبکه شارد شده، نودهای شبکه در شاردهای مختلف توزیع میشوند.
سوالی که اینجا مطرح میشود این است که راهکار اتریوم برای زمانی که یک فرد خرابکار به دنبال آسیب به یک شارد باشد، چیست و چگونه امنیت شبکه آسیب نخواهد دید؟
در شبکه اتریوم، نودهای اختصاص یافته به هر شارد، به صورت تصادفی انتخاب میشوند. به این معنی که یک بازیگر مخرب باید کنترل بیش از ۳۳ درصد کل شبکه را در اختیار بگیرد تا بتواند به یک شارد حمله کند. در این شبکه در هر ۱۲ ثانیه، ۶۴ بلاک از ۶۴ شارد و یک بلاک بیکن چین تولید خواهد شد. نقش بیکن چین مثل یک هماهنگکنندهی شاردها میباشد و اگر حتی یک بلاک از یک شارد به شیوه نادرست استخراج شده باشد، به سرعت از شبکه خارج شده و وارد بیکن چین نخواهد شد. در واقع به دلیل حضور بیکن چین، ۶۴ بلوک ایجاد شده، به عنوان چک پوینت تعریف شده تا به صورت مداوم اطلاعات و تراکنشهای هر شارد، در بیکنچین به اشتراک گذاشته شود.
شبکه اتریوم، تکنیک شاردینگ را به طور تقریبی در سال ۲۰۲۲ عملی خواهد کرد.
آیا اشکالی در شاردینگ وجود دارد؟
بزرگترین نگرانیها در مورد تکنیک شاردینگ مشکلات امنیتی و ارتباطی است.
چگونه (N) تعداد شارد به طور یکپارچه با یکدیگر ارتباط برقرار میکنند؟
برای برطرف کردن ارتباط نادرست بین شاردها، اتریوم ۲.۰ از زنجیره Beacon استفاده میکند. بن ادینگتون، مشاور و محقق Eth 2.0: “جنبههای مختلفی در این مورد وجود دارد: مدیریت تایید کنندهها و سهام آنها، منصوب کردن بلوک انتخاب شده برای هر شارد در هر مرحله، سازماندهی تایید کنندهها در کمیتههایی برای رای گیری در مورد بلوکهای پیشنهادی، اعمال قواعد اجماع، اعمال پاداش و مجازات برای تایید کنندهها، بودن یک نقطه محکم که در آن شاردها وضعیت خود را برای تسهیل معاملات متقابل ثبت میکنند.”
حمله ۱ درصدی که بالاتر ذکر شد، تهدیدی برای اجرای گسترده شاردینگ میباشد. با این حال، مکانیزم اجماع اثبات سهام میتواند تا حدی آن را حل کند. تایید کنندههای اتریوم که به طور تصادفی تعیین شدهاند، از طبیعت غیر متمرکز بلاکچین در عین حفظ امنیت، آن پشتیبانی میکنند. ویتالیک بوترین همچنین معتقد است که انتقال اتریوم به الگوریتم PoS باعث ایجاد امنیت بیشتر اتر نسبت به شبکه بیت کوین میشود. به خطر انداختن بلاکچین بسیار گران است، زیرا مهاجم باید بیش از ۵۰ درصد داراییهای شبکه را به دست آورد.
آیا شاردینگ ایمن است؟
ویتالیک بوترین (Vitalik Buterin)، خالق اتریوم: همراه با پرداختن به مقیاس پذیری، برخی معتقدند که شاردینگ امنیت بومی بلاکچین را نیز حفظ میکند زیرا “بیشتر تمرکززدایی و ویژگیهای امنیتی موردنظر بلاکچین” را حفظ میکند.
دیوید هوزبی (David Huseby)، مأمور امنیت پروژه بلاکچین Hyperledger در بنیاد لینوکس میگوید:
“از لحاظ تئوری، افزایش توان تراکنش در تعداد شاردها خطی است و هر تعداد شارد میتواند وجود داشته باشد.”
بر اساس مقاله تحقیقی منتشر شده توسط دانشگاه کرنل، خرابی گرهها در یک شارد معین منجر به از دست دادن دائمی بخش مربوطه از دادهها میشود. به عنوان مثال، در مدل شبکه اتریوم، گرهها باید به طور تصادفی به یک شارد تخصیص داده شوند و در زمانهای تصادفی مجدداً به یک شارد تصادفی دیگر منتقل میشوند.
هوزبی در ادامه گفت: “بلاکچینهای ما معمولاً مانند رمز ارزها با آدرسها سروکار ندارند. بلاکچین Hyperledger بر حفظ وضعیت جهانی (database) تمرکز میکنند و مکانیزم اجماع به روز رسانیها را در آن حالت تنظیم میکند، در حالی که بلاکچین به روز رسانیهای ایمن را ذخیره میکند. اگر مجبور بودم شبکه Hyperledger را تقسیم کنم، ابتدا از تقسیم اعتبار سنجی تراکنش و ساخت بلوک استفاده میکردم. همچنین اعتبار تراکنش بسیار کندتر از ساخت بلوک است، بنابراین اولین اقدام من این است که تعداد گرههای تایید کننده تراکنش را به شدت افزایش دهم.”
دومین چالش، برخورد با کلاینتهای سبک (light-weight) است که به آنها کیف پول SPV (تأیید پرداخت ساده) نیز گفته میشود تا اطمینان حاصل شود که این گرهها تصویر کاملی از وضعیت بلاکچین را در حالی که بین شاردهای تقسیم شده است، داشته باشند.
راهکارهای جایگزین شاردینگ
برای افزایش سرعت تراکنش ها بر روی بلاکچین ها، دو راهکار از طرف توسعه دهندگان ارائه شده است:
افزایش سایز بلاکها
هر چه بلاکها بزرگتر باشند، تراکنشهای بیشتری در آنها جا میگیرد و به همین دلیل، تعداد تراکنشهایی که در ثانیه میتواند انجام شود، افزایش مییابد. اگر چه این راهکار میتواند عملی شود اما باید این موضوع را نظر گرفت که بزرگتر شدن بلاکها، نیاز به قدرت محاسباتی بیشتری برای تایید آن بلاک نیز دارد. به این معنی که، اگر سایز بلاک به طور نامحدودی افزایش یابد، تنها تجهیزات و سختافزارهای بسیار تخصصی از عهده مدیریت پردازش تراکنشها به عنوان نود برمیآمدند و تعداد نودهای شبکه به طور قابل توجهی کاهش مییافت.
از طرفی، پر هزینه بودن تهیه این تجهیزات به معنی متمرکز شدن نودها و افزایش خطر حمله ۵۱ درصد میشود. همچنین افزایش دادن سایز بلاک نیازمند هاردفورک است که خطر جدا شدن جامعه از هم را به دنبال دارد. زیرا اگر همه افراد بروزرسانی به بلاکچین جدید را انجام ندهند، دو زنجیره جدا با کوینهای مجزا تشکیل خواهد داد. به همین دلیل، افزایش دادن سایز بلاک را میتوان تنها یک راهکار موقتی در نظر گرفت.
روش دیگر، استفاده از آلت کوین ها برای کاربردهای مختلف است تا بر روی زنجیرههای خود و با کوین های خودشان اجرا شوند.
از آنجا که عملیات و پردازش ها تنها به دوش یک بلاکچین نمیافتد، این اتفاق موجب بهبود عملکرد میشود. در این روش، امنیت شبکه نیز تا حدود زیادی تامین میشود، زیرا قدرت هش بین بلاکچین های مختلف پخش میشود. با این حال هک کردن بلاکچین و اجرای حمله ۵۱ درصد نسبت به حالت قبل راحتتر خواهد بود و باید این حقیقت را پذیرفت که این یک راهکار نیز، دائمی و قابل اتکا نیست.
شبکه لایتنینگ
یکی از راهکارهای مقیاس پذیری خارج از زنجیره است. کانالهای پرداختی ایجاد شده در این شبکه، به کاربران این امکان را میدهند تا بدون نیاز به تایید تراکنش ها توسط نودهای شبکه اصلی، تراکنشهایی را میان یکدیگر ارسال کنند. از بلاکچین در این روش فقط برای باز و بستن کانالهای پرداخت استفاده میشود. پتانسیل شبکه لایتنینگ به اندازهای است که میلیاردها تراکنش در ثانیه را پردازش کند. در واقع اگر شبکه لایتنینگ طبق برنامه عمل کند، مقیاس پذیری دیگر برای شبکههای بلاکچینی موضوعیتی نخواهد داشت.
شبکه رایدن
شبکه رایدن که تقریبا مشابه با شبکه لایتنینگ است، چندین ویژگی متفاوت دارد. این شبکه مشخصا برای اتریوم طراحی شده است و برخلاف شبکه لایتنینگ علاوه بر تسهیل پرداختها، از قراردادهای هوشمند و برنامههای غیرمتمرکز پشتیبانی میکند و انتقال توکنهای ERC-20 را ممکن میسازد.
سگویت
راه حل سگویت نیز که صرفا برای بیت کوین معرفی شده، حجم بلاک های تراکنش را از یک مگابایت به دو مگابایت افزایش خواهد داد. این راهکار میتواند تا حدودی به مقیاس پذیری بیت کوین کمک کند. عرضه سگویت برای پاییز ۲۰۱۷ برنامه ریزی شده بود اما به دلیل عدم پشتیبانی جامعه بیت کوین نتوانست طبق برنامه پیش برود.
کدام رمز ارزها از شاردینگ استفاده میکنند؟
برخی بلاکچینها در حال توسعه شاردینگ هستند و برخی دیگر نیز این فناوری را بر روی شبکه خود پیاده کردهاند.
- شبکه زیلیکا (Zilliqa) اولین بلاکچین عمومی میباشد که شاردینگ را به مرحله پیادهسازی رسانده است. این بلاکچین در شبکه آزمایشی خود موفق شد با این فناوری به ۲۸۲۸ تراکنش در ثانیه برسد.
- بلاکچین (Near) نیز به توسعهدهندگان اجازه ساخت و اجرای برنامههای غیرمتمرکز را میدهد. فناوری شاردینگ در این بلاکچین به نودها اجازه میدهد تا به اندازهای کوچک بمانند که حتی در آینده قابلیت اجرا بر روی گوشیهای هوشمند را نیز داشته باشند.
- همانطور که قبلا اشاره شد، اتریوم نیز اکوسیستم بلاکچینی را توسعه میدهد تا علاوه بر اینکه بستری برای اجرای قراردادهای هوشمند و برنامههای غیرمتمرکز باشد، در بروزرسانی اتریوم ۰ شاردینگ را نیز به عنوان یکی از اجزای اصلی خود معرفی کند.
از دیگر بلاکچینهایی که روش شاردینگ را در نظر دارند، میتوان به پروژه هایی مانند کاردانو، کوارک چین و پیچین نیز اشاره کرد که به شاردینگ به عنوان راهحلی برای رفع مشکلات مقیاس پذیری مینگرند. بلاکچین کاردانو راه حل مقیاس پذیری خود، یعنی پروتکل Hydra را منتشر کرده است. هر سر پروتکل Hydra (به معنی هر شارد) میتواند حدود ۱۰۰۰ تراکنش در ثانیه را داشته باشد. در نتیجه، بلاکچین کاردانو به طور بالقوه میتواند به توان تراکنش یک میلیون (!) تراکنش در ثانیه برسد.
لازم به ذکر است که در شبکه های مبتنی بر الگوریتم گواه اثبات کار (مانند بیت کوین)، که تمام تراکنشها توسط تمام نودها بررسی میشود، نمیتوان شاردینگ را استفاده کرد.
آینده شاردینگ
در ابتدا نیز اشاره شد که ویتالیک بوترین، موضوعی به نام سه راهی بلاکچین ها یا سهگانهی مقیاسپذیری را مطرح کرد و آن به این صورت است که شما تنها میتوانید دو تا از سه ویژگی اساسی بلاکچین ها را به صورت همزمان داشته باشید؛ امنیت، مقیاسپذیری، غیرمتمرکز بودن. یعنی برای ایجاد یک بلاکچین شما باید یکی از این ویژگیها را برای دستیابی به خاصیت اساسی سوم قربانی کنید.
اما بنیامین مینکو، مدیر پروژه الروند، نظر جالبی دارد. لازم به ذکر است که شبکه الروند از بلاکچینهایی است که بر روی مقیاسپذیری متمرکز است. مینکو در مصاحبهای با فوربز اشاره کرده، اگر چالشهای شاردینگ پشت سر گذاشته شود، میتوان مقیاسپذیری را به بلاکچین ها برگرداند؛ بدون اینکه نیاز باشد غیرمتمرکز بودن یا امنیت را به خطر بیاندازیم، که این با اتفاق امکان دارد بلاکچین ها یک قدم به پذیرفته شدن و راه یافتن به جریان اصلی نزدیکتر شوند. وی ادامه داد: شاردینگ پیچیده است، که در نهایت به بهبود در بلاکچین های عمومی منجر میشود و توان رقابت با شبکههایی چون ویزا را به آنها میدهد. هرچند برخی چالشها مانند کنترل یافتن بر روی یک شارد واحد، ارتباطات بین شاردها و صحت اطلاعات همچنان وجود دارد.
این پذیرش جهانی، با حمایت و استفاده نهادهای معروف بیشتر نیز خواهد شد. برای مثال، اخیرا فیسبوک با انتشار وایتپیپر رمز ارز لیبرا، جزئیات بیشتری در رابطه با این پروژه در اختیار کاربران قرار داد. بخشی از تیم این رمزارز، از تیم پروژه چیناسپیس (ChainSpace) تشکیل شده که توسعهدهندگان آن به طور عمده بر روی شاردینگ بلاکچینها تحقیق و پژوهش داشتند. برخی عقیده دارند که احتمال دارد حتی فیس بوک نیز فناوری شاردینگ را به نحوی در پارتیشن بندی پایگاه داده خود پیاده کند.
کلام آخر
شاردینگ یکی از بهترین روشهای ارائه شده برای حل مسئله مقیاس پذیری شبکههای بلاکچین است و ممکن است به راه حل مورد انتظار برای یک مشکل مقیاس پذیری تبدیل شود. هنگامی که بلاکچین مقیاس پذیر میشود، میتواند کاربران، توسعه دهندگان، dApps فعالتر را جذب کند. در نتیجه، هرچه شبکههای غیرمتمرکز بومیتر شوند، پذیرش گسترده در صنعت بلاکچین سریعتر خواهد بود. در واقع در چنین ساختاری، تمام تراکنشهای ارسال شده به شبکه میان شاردهای مختلف تقسیم شده و به این شکل بار کل تحمیل شده به شبکه میان نودها توزیع میشود. به احتمال زیاد، ما به اندازه کافی خوش شانس هستیم که شاهد خروج گسترده مردم به جهان عدم تمرکز هستیم.