شاردینگ چگونه کار میکند؟
برای توضیح شاردینگ، بیایید از بلاکچین Ethereum به عنوان مثال استفاده کنیم.
بلاکچین اتریوم از هزاران رایانه، یا همان گره تشکیل شده است، طبق اطلاعات ethernodes.org، چیزی حدود ۸،۶۲۲ گره، بلاکچین اتریوم را تشکیل داده است. هرکدام مقدار مشخصی از هش را به شبکه وام میدهند. این قدرت هش است که به ماشین مجازی اتریوم (EVM) امکان اجرای قراردادهای هوشمند و اجرای برنامه های غیرمتمرکز (DApps) را میدهد.
در حال حاضر، Ethereum بر اساس یک روند ترتیبی کار میکند که در آن هر یک از این گره ها باید هر عملیات را محاسبه کرده و تک تک معاملات را پردازش کنند. بنابراین هر معامله، مدت زمان طولانی را برای عبور از این فرآیند تأیید، پشت سر میگذارد. در حال حاضر، Ethereum حدود ۱۰ معامله در هر ثانیه را ساپورت میکند. برای مقایسه، ویزا به طور متوسط ۲۴۰۰۰ معامله در ثانیه (TPS) را انجام میدهد. افزودن رایانه به شبکه لزوماً کارایی را بهبود نمیبخشد، زیرا کل دفتر در یک رایانه ی جدا نگهداری میشود، بنابراین زنجیره تأیید طولانی تر خواهد شد.
قصد داریم با استفاده از شاردینگ، از یک مدل اجرای خطی، که در آن هر گره باید انواع معاملات را محاسبه کند، به یک مدل اجرای موازی، که در آن گره ها اختصاص داده میشوند تا فقط محاسبات خاصی را پردازش کنند، حرکت کنیم. این حرکت، امکان پردازش همزمان برای معاملات چندگانه و موازی را فراهم میکند.
بلاکچین به shard (زیر دامنه یا باکت) تقسیم میشود. در این جا گره ها به جای اینکه دائماً کل دفتر را حفظ و کنترل کنند، فقط باید بخشی از دفتر را که برای اجرای فرآیندها و اعتبار سنجی معاملات به آن ها اختصاص داده شده است را اجرا کنند.
شاردینگ چه مشکلی را حل خواهد کرد؟
شاردینگ یک راه حل خوب برای مشکل مقیاس پذیری بلاکچین است.
همانطور که در بالا ذکر شد، یکی از بزرگترین مشکلات شبکه های بلاک چین مسئله مقیاس پذیری است. هرچه شبکه بلاکچین محبوبیت بیشتری پیدا کند، کاربران بیشتری، معاملات برنامه های غیرمتمرکز و سایر فرایندهای شبکه را آغاز میکنند.
افزایش معاملات باعث افزایش فعالیت گره ها برای تأیید معاملات میشود و این یک تهدید واقعی است که منجر به مسدودیت بلاکچین میشود (همانطور که در اتریوم هنگام اوج CryptoKitties، زمانی که این بازی ۱۱٪ تراکنش های شبکه را به خود اختصاص میداد، مشاهده شد). اگر این اتفاق بیفتد، سرعت معاملات بسیار کند میشود، که این وضعیت اصلا برای پذیرش پایدار و طولانی مدت بلاکچین ایده آل نیست.
همانطور که در بالا توضیح داده شد، اگر بلاکچین به بخش های کوچکتر تقسیم شود، و گروه های گره هر مسئولیت را به شارد( بخش های جداگانه ای) اختصاص دهند، هر گره برای اجرای هر عملیات مجبور نیست که کل دفتر را نگه دارد و کنترل کند. بنابراین اعتبار سنجی معامله، میتواند به طور موازی اتفاق بیفتد و سرعت کل شبکه را افزایش دهد. این یک راه حل برای مشکل مقیاس پذیری شبکه های بلاکچین ارائه میدهد و بنابراین باعث میشود در طولانی مدت پایدارتر باشند.
آیا اشکالاتی در شاردینگ وجود دارد؟
در حال حاضر، چالش های اصلی که شاردینگ با آن روبرو است مربوط به ارتباطات و امنیت میباشد.
اگر یک بلاکچین را به shard(بخش های جداگانه ای) تقسیم کنید، هر shard(بخش) به عنوان یک شبکه بلاکچین جداگانه ظاهر میشود. کاربران و برنامه های یک زیر دامنه بدون اجرای سازوکار ارتباطی ویژه intershard قادر به برقراری ارتباط با کاربران و برنامه های زیر دامنه دیگری نخواهند بود. این یک نمونه از مشکلات برای توسعه دهندگان است.
در یک بلاکچین پارتیشن بندی شده، امنیت نیز به یک موضوع نگران کننده تبدیل میشود، زیرا برای هکر ها حمله به یک شارد از بلاکچین آسان تر است و این به دلیل کاهش قدرت هش مورد نیاز برای کنترل شارد است که به عنوان حمله ۱٪ نیز شناخته میشود. پس از هک شدن یک بخش، هکرها میتوانند معاملات نامعتبر را به شبکه اصلی ارسال کنند و یا ممکن است اطلاعات موجود در آن بخش خاص نیز دیگر فاقد اعتبار شود و برای همیشه از بین بروند. پاسخ پیشنهادی اتریوم به این خطر امنیتی، نمونه گیری تصادفی است، جایی که شارد به طور تصادفی در بخش های مختلف منصوب میشوند تا احراز هویت بلاک را تأیید کنند.
آیا جایگزینی برای شاردینگ وجود دارد؟
دو پیشنهاد توسط توسعه دهندگان برای بهبود عملکرد و سرعت معامله در بلاک چین داده شده است.
اولین مورد این است که اندازه بلاک را افزایش دهید، با این تصور که هرچه اندازه بلاک بزرگتر باشد، تراکنش های بیشتری را میتوان در یک بلوک قرار داد. و بنابراین، تعداد تراکنش ها در ثانیه بیشتر خواهد شد. اگرچه این درست است، اما هرچه اندازه بلاک بزرگتر باشد، قدرت محاسباتی بیشتری هم برای تأیید بلاک مورد نیاز است.
اگر بخواهیم اندازه بلاک به طور نامحدود افزایش یابد، فقط تخصصی ترین تجهیزات رایانه ای نیرومند میتوانند توان پردازشی مورد نیاز برای گره ها را تامین کنند. افزایش هزینه ی این نوع تجهیزات به معنای کوچکتر و متمرکزتر شدن الزامی استخر های گره است که خطر حمله ۵۱٪ افزایش میدهد. افزایش اندازه بلاک نیز به یک هارد فورک نیاز دارد که ریسک تجزیه جامعه را در سابقه ی خود داشته باشد. اگر همه به بلاکچین جدید ارتقا نیابند، استفاده از دو کوین جداگانه، دو بلاکچین جداگانه را به وجود میآورد. به همین دلایل، افزایش اندازه بلاک فقط یک راه حل کوتاه مدت است.
پیشنهاد دوم استفاده از altcoins است تا عملکردهای مختلف و برنامه های مختلف را روی زنجیره خود و با کوین خود اجرا کند. این کار باعث افزایش عملکرد میشود زیرا شما بیش از حد از یک بلاکچین استفاده نمیکنید و تراکنش های بیشتر از حد آن را اجرا نمیکنید، اما این موضوع، خطرات امنیتی را نیز افزایش میدهد زیرا اکنون تمام قدرت هش در چندین بلاک چین تقسیم شده است. باز هم، این کار، هک کردن شبکه را بسیار آسان میکند، زیرا قدرت هشینگ مورد نیاز برای اجرای یک حمله موفق ۵۱٪ بسیار کم است. بنابراین، این راه حل مناسبی نیست.
چه کسی از شاردینگ استفاده میکند؟
برخی از بلاکچین ها قبلاً مکانیزم شاردینگ را اجرا کرده اند، در حالیکه در برخی دیگر، این مکانیزم هنوز در دست توسعه است.
Zilliqa اولین پلتفرم بلاکچین عمومی است که شاردینگ را اجرا کرده است. Zilliqa توانست در آزمایشگاه خود به ۲۸۲۸ معامله در ثانیه (TPS) دست یابد.
اکوسیستم بلاکچین Near به توسعه دهندگان اجازه میدهد تا به راحتی برنامه های غیرمتمرکز را ایجاد و استقرار دهند. این برنامه همچنین خود را “یک بلاک چین پارتیشن بندی شده و سازگار با توسعه و proof-of-stake” میداند و میگوید که فنآوری شاردینگ آن به گره ها اجازه میدهد تا به اندازه کافی کوچک باشند تا روی هاست کلود ها ( میزبان ابری) و حتی روی دستگاه های تلفن همراه در آینده نیز اجرا شوند.