مفاهیم پایه

صفر تا صد شاردینگ (Sharding) معرفی کامل

خرید و فروش ارزدیجیتال
۵
(۱)

شاردینگ (Sharding) نوعی پارتیشن بندی پایگاه داده است که به آن پارتیشن بندی افقی نیز می‌گویند. این فرایند شامل تجزیه یک پایگاه داده بسیار بزرگ به بخش های کوچکتر و قابل کنترل تر، با ایده بهبود عملکرد و کاهش مدت زمان، پاسخ دهی پایگاه است.

Sharding مفهوم جدیدی نیست و حداقل از اواخر دهه ۱۹۹۰ در مدیریت سنتی و متمرکز پایگاه داده وجود داشته است. این اصطلاح در واقع با نقش آفرینی در یکی از اولین بازی های آنلاین چند نفره (MMORPG)، محبوب شد که در آن توسعه دهندگان برای حل کردن مشکل ترافیک، بازیکنان را در سرورهای مختلف (دنیای مختلف بازی) تقسیم می‌کنند.

تجارت، یک نمونه معمول از تقسیم یک پایگاه داده بزرگ، تجزیه پایگاه داده مشتری به مکان های جغرافیایی است. مشتریانی که در مکان های جغرافیایی یکسان قرار دارند با هم، هم گروه شده و در سرورهای منحصر به فرد قرار می‌گیرند.

شاردینگ از نظر بلاک چین چگونه است؟

در اصل همان تعریف بالا است. شبکه بلاک چین عبارت است از پایگاه داده با گره هایی که سرورهای داده فردی را نشان می‌دهند. اگر شاردینگ را به بلاک چین اعمال کنیم، تجزیه شبکه بلاک چین به بخش های جداگانه (یا shards) اتفاق می‌افتد. هر شارد شامل یک مجموعه منحصر به فرد از قرارداد های هوشمند و موجودی اکانت است.

گره ها به جای این که مسئولیت تأیید هر تراکنش در کل شبکه را داشته باشند، هرکدام برای تایید تراکنش ها و عملیات جداگانه ای اختصاص یافته اند.

با تجزیه بلاکچین به بخش های قابل کنترل تر، می‌توان منجر به افزایش توان معاملات شد و بنابراین بر مشکلات مقیاس پذیری که امروزه بیشتر بلاک چین های بزرگ با آن روبرو هستند، غلبه کرد. در ادامه به این موضوع خواهیم پرداخت.

شاردینگ چگونه کار می‌کند؟

برای توضیح شاردینگ، بیایید از بلاکچین Ethereum به عنوان مثال استفاده کنیم.

بلاکچین اتریوم از هزاران رایانه، یا همان گره تشکیل شده است، طبق اطلاعات ethernodes.org، چیزی حدود ۸،۶۲۲ گره، بلاکچین اتریوم را تشکیل داده است. هرکدام مقدار مشخصی از هش را به شبکه وام می‌دهند. این قدرت هش است که به ماشین مجازی اتریوم (EVM) امکان اجرای قراردادهای هوشمند و اجرای برنامه های غیرمتمرکز (DApps) را می‌دهد.

در حال حاضر، Ethereum بر اساس یک روند ترتیبی کار می‌کند که در آن هر یک از این گره ها باید هر عملیات را محاسبه کرده و تک تک معاملات را پردازش کنند. بنابراین هر معامله، مدت زمان طولانی را برای عبور از این فرآیند تأیید، پشت سر می‌گذارد. در حال حاضر، Ethereum حدود ۱۰ معامله در هر ثانیه را ساپورت می‌کند. برای مقایسه، ویزا به طور متوسط ۲۴۰۰۰ معامله در ثانیه (TPS) را انجام می‌دهد. افزودن رایانه به شبکه لزوماً کارایی را بهبود نمی‌بخشد، زیرا کل دفتر در یک رایانه ی جدا نگهداری می‎شود، بنابراین زنجیره تأیید طولانی تر خواهد شد.

قصد داریم با استفاده از شاردینگ، از یک مدل اجرای خطی، که در آن هر گره باید انواع معاملات را محاسبه کند، به یک مدل اجرای موازی، که در آن گره ها اختصاص داده می‌شوند تا فقط محاسبات خاصی را پردازش کنند، حرکت کنیم. این حرکت، امکان پردازش همزمان برای معاملات چندگانه و موازی را فراهم می‌کند.

بلاکچین به shard (زیر دامنه یا باکت) تقسیم می‌شود. در این جا گره ها به جای اینکه دائماً کل دفتر را حفظ و کنترل کنند، فقط باید بخشی از دفتر را که برای اجرای فرآیندها و اعتبار سنجی معاملات به آن ها اختصاص داده شده است را اجرا کنند.

شاردینگ چه مشکلی را حل خواهد کرد؟

شاردینگ یک راه حل خوب برای مشکل مقیاس پذیری بلاکچین است.

همانطور که در بالا ذکر شد، یکی از بزرگترین مشکلات شبکه های بلاک چین مسئله مقیاس پذیری است. هرچه شبکه بلاکچین محبوبیت بیشتری پیدا کند، کاربران بیشتری، معاملات برنامه های غیرمتمرکز و سایر فرایندهای شبکه را آغاز می‌کنند.

افزایش معاملات باعث افزایش فعالیت گره ها برای تأیید معاملات می‌شود و این یک تهدید واقعی است که منجر به مسدودیت بلاکچین می‌شود (همانطور که در اتریوم هنگام اوج CryptoKitties، زمانی که این بازی ۱۱٪ تراکنش های شبکه را به خود اختصاص می‌داد، مشاهده شد). اگر این اتفاق بیفتد، سرعت معاملات بسیار کند می‌شود، که این وضعیت اصلا برای پذیرش پایدار و طولانی مدت بلاکچین ایده آل نیست.

همانطور که در بالا توضیح داده شد، اگر بلاکچین به بخش های کوچکتر تقسیم شود، و گروه های گره هر مسئولیت را به شارد( بخش های جداگانه ای) اختصاص دهند، هر گره برای اجرای هر عملیات مجبور نیست که کل دفتر را نگه دارد و کنترل کند. بنابراین اعتبار سنجی معامله، می‌تواند به طور موازی اتفاق بیفتد و سرعت کل شبکه را افزایش دهد. این یک راه حل برای مشکل مقیاس پذیری شبکه های بلاکچین ارائه می‌دهد و بنابراین باعث می‌شود در طولانی مدت پایدارتر باشند.

آیا اشکالاتی در شاردینگ وجود دارد؟

در حال حاضر، چالش های اصلی که شاردینگ با آن روبرو است مربوط به ارتباطات و امنیت می‌باشد.

اگر یک بلاکچین را به shard(بخش های جداگانه ای) تقسیم کنید، هر shard (بخش) به عنوان یک شبکه بلاکچین جداگانه ظاهر می‌شود. کاربران و برنامه های یک زیر دامنه بدون اجرای سازوکار ارتباطی ویژه intershard قادر به برقراری ارتباط با کاربران و برنامه های زیر دامنه دیگری نخواهند بود. این یک نمونه از مشکلات برای توسعه دهندگان است.

در یک بلاکچین پارتیشن بندی شده، امنیت نیز به یک موضوع نگران کننده تبدیل می‌شود، زیرا برای هکر ها حمله به یک شارد از بلاکچین آسان تر است و این به دلیل کاهش قدرت هش مورد نیاز برای کنترل شارد است که به عنوان حمله ۱٪ نیز شناخته می‌شود. پس از هک شدن یک بخش، هکرها می‌توانند معاملات نامعتبر را به شبکه اصلی ارسال کنند و یا ممکن است اطلاعات موجود در آن بخش خاص نیز دیگر فاقد اعتبار شود و برای همیشه از بین بروند. پاسخ پیشنهادی اتریوم به این خطر امنیتی، نمونه گیری تصادفی است، جایی که شارد به طور تصادفی در بخش های مختلف منصوب می‌شوند تا احراز هویت بلاک را تأیید کنند.

آیا جایگزینی برای شاردینگ وجود دارد؟

دو پیشنهاد توسط توسعه دهندگان برای بهبود عملکرد و سرعت معامله در بلاک چین داده شده است.

اولین مورد این است که اندازه بلاک را افزایش دهید، با این تصور که هرچه اندازه بلاک بزرگتر باشد، تراکنش های بیشتری را می‌توان در یک بلوک قرار داد. و بنابراین، تعداد تراکنش ها در ثانیه بیشتر خواهد شد. اگرچه این درست است، اما هرچه اندازه بلاک بزرگتر باشد، قدرت محاسباتی بیشتری هم برای تأیید بلاک مورد نیاز است.

اگر بخواهیم اندازه بلاک به طور نامحدود افزایش یابد، فقط تخصصی ترین تجهیزات رایانه ای نیرومند می‌توانند توان پردازشی مورد نیاز برای گره ها را تامین کنند. افزایش هزینه ی این نوع تجهیزات به معنای کوچکتر و متمرکزتر شدن الزامی استخر های گره است که خطر حمله ۵۱٪ افزایش می‌دهد. افزایش اندازه بلاک نیز به یک هارد فورک نیاز دارد که ریسک تجزیه جامعه را در سابقه ی خود داشته باشد. اگر همه به بلاکچین جدید ارتقا نیابند، استفاده از دو کوین جداگانه، دو بلاکچین جداگانه را به وجود می‌آورد. به همین دلایل، افزایش اندازه بلاک فقط یک راه حل کوتاه مدت است.

پیشنهاد دوم استفاده از altcoins است تا عملکردهای مختلف و برنامه های مختلف را روی زنجیره خود و با کوین خود اجرا کند. این کار باعث افزایش عملکرد می‌شود زیرا شما بیش از حد از یک بلاکچین استفاده نمی‌کنید و تراکنش های بیشتر از حد آن را اجرا نمی‌کنید، اما این موضوع، خطرات امنیتی را نیز افزایش می‌دهد زیرا اکنون تمام قدرت هش در چندین بلاک چین تقسیم شده است. باز هم، این کار، هک کردن شبکه را بسیار آسان می‌کند، زیرا قدرت هشینگ مورد نیاز برای اجرای یک حمله موفق ۵۱٪ بسیار کم است. بنابراین، این راه حل مناسبی نیست.

چه کسی از شاردینگ استفاده می‌کند؟

برخی از بلاکچین ها قبلاً مکانیزم شاردینگ را اجرا کرده اند، در حالیکه در برخی دیگر، این مکانیزم هنوز در دست توسعه است.

Zilliqa اولین پلتفرم بلاکچین عمومی است که شاردینگ را اجرا کرده است. Zilliqa توانست در آزمایشگاه خود به ۲۸۲۸ معامله در ثانیه (TPS) دست یابد.

اکوسیستم بلاکچین Near به توسعه دهندگان اجازه می‌دهد تا به راحتی برنامه های غیرمتمرکز را ایجاد و استقرار دهند. این برنامه همچنین خود را “یک بلاک چین پارتیشن بندی شده و سازگار با توسعه و proof-of-stake” می‌داند و می‌گوید که فن‌آوری شاردینگ آن به گره ها اجازه می‌دهد تا به اندازه کافی کوچک باشند تا روی هاست کلود ها ( میزبان ابری) و حتی روی دستگاه های تلفن همراه در آینده نیز اجرا شوند.

مشابه Near، اتریوم نیز اکوسیستم بلاکچین را برای اجرای DApps مبتنی بر قرارداد هوشمند فراهم کرده است. بنیاد اتریوم در حال برنامه ریزی برای معرفی شاردینگ به عنوان بخشی از به روزرسانی در Ethereum 2.0 خود است که برای راه اندازی در ژانویه ۲۰۲۰ تنظیم شده است، همانطور که در تماس با بنیاد Ethereum در ۱۳ ژوئن ۲۰۱۹، این موضوع تأیید شده است.

سایر پروژه های بلاکچین که به شاردینگ به عنوان راه حلی برای مشکلات مقیاس پذیری نگاه می‌کنند، عبارتند از Cardano ،QuarkChain و PChain.

آینده شاردینگ بلاکچین چیست؟

شاردینگ اخیراً به واسطه ی کوین Libra در فیسبوک مورد توجه بیشتری قرار گرفته است.

تیم توسعه دهنده لیبرا بیشتر بر شاردینگ بلاکچین متمرکز بوده اند، و این نشان می‌دهد که بلاکچین Libra نوعی پارتیشن بندی بلاکچین را پیاده سازی می‌کند.

به معنای کلی، شاردینگ می‌تواند راه حلی برای ویژگی های سه گانه ی بلاکچین باشد.

همانطور که توسط ویتالیک بوترین، بنیانگذار Ethereum شرح داده شده است، شما می‌توانید از سه ویژگی اصلی بلاک چین همزمان دو مورد آن ها را حفظ کنید، یعنی امنیت، عدم تمرکز و مقیاس پذیری. شما برای داشتن دو عنصر دیگر همیشه باید از یکی از این عناصر بگذرید.

همانطور که بنیامین مینکو، مدیرعامل شبکه الروند گفته است: که پروتکل بلاکچین متمرکز بر مقیاس پذیری و قابلیت همکاری، در صورت غلبه بر چالش های شاردینگ، مقیاس پذیری را برای بلاکچین ها به همراه خواهد آورد بدون اینکه در تمرکززدایی یا امنیت به خطر بیفتد. این به نوبه خود می‌تواند بلاکچین را یک گام به تصویب جریان اصلی پایدار نزدیک کند. مینکو گفت:

“Sharding پیچیده است، اما ظرفیت توان عملیاتی را بهبود می‌بخشد که بلاک چین های عمومی را قادر به رقابت با شبکه هایی مانند VISA می‌کند. هرچند برخی دیگر از چالش های آن شامل single shard، cross-shard communication و اعتبار داده است. “

میانگین امتیازات ۵ / ۵٫ تعداد رای: ۱

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *