شاردینگ چیست و چطور مقیاس پذیری بلاک چین اتریوم را بهتر میکند؟
تاریخ انتشار : ۱۴۰۰/۰۹/۲۰
آخرین بروزرسانی : ۱۴۰۰/۰۹/۲۰

حدود 9 دقیقه
حلیه آقامیری
شاردینگ Sharding در بلاک چین فرآیندی است که پایگاه داده را به صورت افقی تقسیم میکند و در شبکه هایی مانند اتریوم و کاردانو استفاده شده است.
شاردینگ یک تکنیک کامپیوتری است که برای افزایش مقیاس پذیری و تمرکززدایی، پایگاه داده یا شبکه را به صورت افقی خرد و تقسیمبندی میکند. Sharding یک استراتژی جالب است که به غلبه فناوری بلاک چین بر مشکل اصلی آن یعنی مقیاس پذیری کمک شایانی میکند.
شاردینگ برای دستیابی به مقیاس پذیری بیشتر در سیستمهای توزیعشده و غیر متمرکز ساخته شد. اما امروزه، کاربردهای شاردینگ در تکنولوژی بلاک چین میتواند مشکلات شبکههایی مانند بیت کوین و اتریوم را بهبود دهد.
شاردینگ دیتابیس چیست؟
شاردینگ نوعی تقسیمبندی یا خرد کردن شبکه است که با عنوان “Horizontal Partitioning” یا «پارتیشنبندی افقی» نیز شناخته میشود. این فرآیند شامل خرد کردن یک دیتابیس بسیار بزرگ به پایگاههای داده کوچکتر و بخشهایی با قابلیت مدیریت بیشتر است که ایده بهبود عملکرد و کاهش مدت زمان پاسخدهی به درخواستها را در خود دارد.
شاردینگ یک مفهوم جدید نیست و از حداقل دهه 90 میلادی تا کنون در مدیریت دیتابیسهای متمرکز و سنتی حضور داشته است. این اصطلاح توسط یکی از اولین بازیهای نقشآفرینی آنلاین بزرگ چند نفره به نام Ultima Online محبوب شد که در آن توسعهدهندگان بازیکنان را در سرورهای مختلف (یا همان «دنیا» در این بازی) تقسیمبندی کردند تا مشکل ترافیک حل شود. اکنون اتریوم یکی از بزرگترین پروژههایی است که میخواهد از شاردینگ نهایت استفاده را داشته باشد.
در کسب و کارها، یکی از مثالهای رایج از شاردینگ یک پایگاه داده بزرگ، شکستن دیتابیس مشتریان به مناطق جغرافیایی است. در این حالت، مشتریان حاضر در مناطق جغرافیایی یکسان گروهبندی شده و در سرورهای منحصربهفرد جای داده میشوند.
شاردینگ در بلاک چین چیست؟
فرآیند Sharding در بلاک چین دقیقا همانند پایگاه داده است. شبکه بلاک چین نیز یک دیتابیس است که نودهای آن نماینده سرورهای داده فردی هستند. با اعمال شاردینگ روی یک بلاک چین، یعنی آن شبکه را به قسمهای فردی یا همان شاردها (Shard) شکستهایم. حالا هر شارد دارای مجموعهای منحصرفهفرد از قراردادهای هوشمند و موجودی حسابهاست.
سپس نودها نیز به جای اعتبارسنجی تمام تراکنشها در کل شبکه، به هر شارد فردی تخصیص داده شده و تنها تراکنشها و عملیات آن شارد را اعتبارسنجی میکنند.
ایده پشت این کار، شکستن بلاک چین به قسمهایی است که قابلت مدیریت آنها بیشتر باشد که به توان عملیاتی بالاتر تراکنشها و در نتیجه، غلبه بر مشکلات مقیاس پذیری که اکثر بلاک چینهای امروزی با آن روبرو هستند، منجر خواهد شد.
شاردینگ اتریوم چگونه کار میکند؟
برای توضیح بهتر شاردینگ، بلاک چین اتریوم را به عنوان مثال در نظر بگیرید. بلاک چین اتریوم از هزاران کامپیوتر (معروف به نود) تشکیل شده است که در حال حاضر به استناد وبسایت etherndes.org، تعداد آنها برابر با 5,822 واحد است. هر کدام از این نودها مقدار مشخصی قدرت هش را در اختیار این شبکه قرار دادهاند. در واقع همین قدرت هش است که به ماشین مجازی اتریوم (EVM) اجازه عملکردهایی همچون اجرای قراردادهای هوشمند و برنامههای غیر متمرکز (DApp) را میدهد.
پیش از تصمیم اتریوم برای مهاجرت به Ethereum 2.0 و افزایش مقیاس پذیری، این شبکه بر اساس اجراهای متوالی کار میکرد و هر کدام از این نودها مجبور به محاسبه تک تک عملیات و پردازش تمامی تراکنشها بودند. بنابراین، گذر هر تراکنش از چنین فرآیند اعتبارسنجی بسیار طولانی بود. در سال 2019 و در شلوغیهای عظیم اتریوم، این شبکه میتوانست حدود 10 تراکنش بر ثانیه (TPS) را پردازش کند. در مقام مقایسه، مثلا شرکت ویزا به طور متوسط دارای 24،000 TPS است. از طرفی، اضافه کردن کامپیوتر بیشتر هم لزوما کارایی را افزایش نمیدهد، چراکه تمام این دفترکل در همه کامپیوترها نگهداری میشود و زنجیره اعتبارسنجیها طولانیتر خواهد شد.
اما با قدم گذاشتن در مسیر اتریوم 2.0 و استفاده از شاردینگ این بلاک چین قادر به پردازش 100,000 تراکنش در ثانیه خواهد بود. ایده استفاده از Sharding، حرکت از یک مدل اجرایی خطی که تمامی نودها مجبور به محاسبه کل عملیات هستند، به یک مدل اجرای موازی است که در آن نودها برای پردازش محاسبات خاص تخصیص داده میشوند. این امر پردازش موازی تراکنشها به صورت همزمان را امکانپذیر میسازد.
بنابراین این بلاک چین به شاردها (سابدامینها یا باکتها)ی مجزا تقسیم خواهد شد. نودها نیز برای پردازش و اعتبارسنجی تراکنشها، تنها بخشی از دفتر کل را که به آنها محول شده اجرا میکنند.
تکنیک Sharding چه مشکلاتی را حل میکند؟
همانطور که در بخش قبل گفتیم، یکی از بزرگترین مشکلات فعلی شبکههای بلاک چینی مسئله مقیاس پذیری است. با افزایش محبوبیت یک شبکه بلاک چینی، کاربران بیشتری به انجام تراکنش، استفاده از اپلیکیشنهای غیر متمرکز و دیگر پردازشها در آن میپردازند.
افزایش فعالیتهای تراکنشی، منجر به ایجاد تقاضای بیشتر روی نودها برای اعتبارسنجی تراکنشها میشود و در نتیجه، تهدید مسدودیت این بلاک چینها را (همانطور که در شبکه اتریوم در هنگام محبوبیت بازی Kryptokitties شاهد بودیم و این بازی 11 درصد تراکنشهای آن را تشکیل میداد) به دنبال دارد. در این حالت، سرعت تراکنشها بسیار کاهش مییابد که شرایط ایدهآلی برای پذیرش بلند مدت و پایدار یک بلاک چین نخواهد بود.
با شکستن یک بلاک چین به قسمهای کوچکتر و تخصیص نودها به هر بخش، هر نود دیگر مجبور به نگهداری کل دفتر کل برای انجام تمام فعالیتها نیست. بنابراین، اعتبارسنجی تراکنش میتواند به جای حالت خطی، به صورت موازی انجام شده و سرعت کل شبکه را افزایش دهد. پس شاردینگ راهحلی برای پرداختن به مسئله مقیاس پذیری پیرامون شبکههای بلاک چینی است که ثبات بیشتر در بلند مدت را به همراه دارد.
ضعف شاردینگ در بلاک چین چیست؟
در حال حاضر، چالش اصلی شاردینگ مربوط به ارتباطات و امنیت است. با شکستن یک بلاک چین به بخشهای مجزا، هر شارد به صورت یک بلاک چین جداگانه ظاهر میشود. در این صورت، کاربران و اپلیکیشنهای یک سابدامین بدون پیادهسازی یک مکانیزم ارتباطی خاص و میان شاردی (Intershard)، قادر به برقراری ارتباط با برنامهها و کاربران یک سابدامین دیگر نخواهند بود. این امر لایه اضافهای از پیچیدگی را برای توسعهدهندگان ایجاد میکند.
در یک بلاک چین بخشبندیشده، از آنجایی که به خاطر کاهش قدرت هش مورد نیاز جهت کنترل بخشهای فردی بهدست گرفتن کنترل یک شارد واحد راحتتر است، امنیت نیز به یک نگرانی تبدیل میشود. به این اتفاق حمله 1 درصد گفته میشود. به محض هک شدن یک شارد، مهاجمان قادر به ثبت تراکنشهای نامعتبر یا حتی باطلسازی اطلاعات فعلی آن قسمت و از بین بردن دائمی آنها در شبکه اصلی خواهند بود. پاسخ پیشنهادی اتریوم به چنین خطر امنیتی در شاردینگ سمپلینگ (Sampling) یا نمونهبردای تصادفی است که در آن نودهای شاردها جهت اعتبارسنجی بلاکها، در بخشهای مختلف منصوب خواهند شد.
آیا جایگزینی برای تکنیک Sharding وجود دارد؟
دو طرح پیشنهادی دیگر برای بهبود عملکرد و سرعت تراکنشها در بلاک چین ارائه شدند. اولین طرح، افزایش سایز و انداز بلاک بود. ایده این بود که در بلاک بزرگتر، امکان جای دادن تراکنشهای بیشتر وجود دارد و از این رو، تعداد تراکنش در ثانیه بیشتر خواهد شد. با اینکه این طرز فکر درست است، اما بلاک بزرگتر به قدرت محاسباتی بیشتری هم برای اعتبارسنجی خود نیاز دارد.
در صورت افزایش نامحدود اندازه بلوک، تنها تجهیزات کامپیوتری پر قدرت و بسیار پیشرفته و تخصصی قادر به مدیریت قدرت پردازش مورد نیاز برای تبدیل شدن به یک نود خواهند بود. بنابراین، افزایش هزینه در این نوع تجهیزات به این معناست که استخرهای نودها الزاما کوچکتر و متمرکزتر شده و خطر حمله 51 درصد را افزایش خواهند داد. افزایش سایز بلاک همچنین نیازمند هارد فورک (Hard Fork) است که ریسک جداسازی جامعه را به همراه دارد. در صورت عدم آپگرید شدن تمام نودهای شبکه در بلاک چین جدید، دو زنجیره مجزا وجود خواهد داشت که از دو کوین جدا هم استفاده خواهند کرد. به همین خاطر، افزایش اندازه بلوک صرفا یک راهحل کوتاه مدت است. به این نکته در شاردینگ اتریوم توجه ویژه شده است.
دومین طرح پیشنهادی جایگزین شاردینگ در بلاک چین استفاده از آلت کوینها بود تا عملکردها و برنامههای مختلف قادر به اجرای زنجیره به همراه رمز ارز خود باشند. این طرح نیز به دلیل عدم اعمال بار بیش از حد روی یک بلاک چین واحد باعث افزایش عملکرد میشود، ولی از طرفی هم به خاطر تقسیم شدن قدرت هشینگ بین چند بلاک چین، خطرات امنیتی را بیشتر میکند. در این صورت، به جهت کمتر شدن هشینگ پاور مورد نیاز برای اجرای موفق حمله 51 درصدی، هک کردن شبکه راحتتر خواهد بود.
کدام بلاک چین ها مثل اتریوم 2.0 از شاردینگ استفاده میکنند؟
برخی از بلاک چینها هماکنون مکانیزم Sharding را به کار گرفته و در برخی دیگر این تکنیک همچنان در حال توسعه است. زیلیکا (Zilliqa) اولین بلاک چین عمومی بود که شاردینگ را پیادهسازی کرد. زیلیکا توانست با این روش در شبکه آزمایشی خود به 2,828 TPS برسد.
اکوسیستم بلاک چینی نیر (Near) امکان ساخت و استقرار راحت اپلیکیشنهای غیر متمرکز را برای توسعهدهندگان فراهم کرده است. این شبکه همچنین خود را «یک بلاک چین شارد شده توسعهدهنده پسند اثبات سهام» نامیده و اظهار داشته است که فناوری شاردینگ به نودها اجازه میدهد برای اجرا روی سرورهای ساده میزبان کلاود و حتی گوشیهای موبایل در آینده، تا جای ممکن کوچک باقی بمانند.
مشابه نیر، اتریوم نیز زیستبوم بلاک چینی را برای پیادهسازی برنامههای مبتنی بر قرارداد هوشمند فراهم کرده است. بنیاد اتریوم مکانیزم شاردینگ را به عنوان بخشی از بهروزرسانی Ethereum 2.0 خود در 1 دسامبر 2020 (11 آذر 99) رسما آغاز کرد.
از دیگر بلاک چین هایی که به دنبال استفاده از شاردینگ به عنوان راهحلی برای بهبود مقیاس پذیری هستند میتوان کاردانو، کوارک چین (QuarkChain) و پی چین (PChain) را نام برد.
آینده شاردینگ در بلاک چین چیست؟
پس از معرفی پروژه رمز ارزی فیس بوک به نام لیبرا (Libra) که بعدا به دیم (Diem) تغییر نام یافت، توجهات به شاردینگ مخصوصا در اتریوم افزایش یافت. در آن زمان فیس بوک حتی تیم توسعهدهنده شرکت Chainspace را برای کار روی این حوزه به خدمت گرفت.
میتوان گفت که هدف شاردینگ، فائق آمدن بر سهگانه بلاک چین (Blockchain Trilemma) است. به گفته ویتالیک بوترین، همبنیانگذار اتریوم، در سهگانه بلاک چین شما قادر به حفظ دو مورد از سه مشخصه اصلی بلاک چین در یک زمان هستید. این سه مشخصه امنیت، تمرکززدایی و مقیاس پذیری هستند. دلیل این اتفاق این است که برای داشتن دو مشخصه، باید حتما یکی از آنها را به خطر بیندازید.
به گفته بنیامین مینکو (Beniamin Mincu)، مدیر عامل شبکه الروند، یک پروتکل بلاک چینی متمرکز بر مقیاس پذیری و تعامل متقابل، اگر بتوان بر چالشهای شاردینگ غلبه کرد، بدون به خطر انداختن تمرکززدایی یا امنیت میتوان مقیاس پذیری را در بلاک چینها حتی شبکههای بزرگ مثل اتریوم با شاردینگ قرار داد. در این حالت، فناوری بلاک چین یک قدم دیگر به پذیرش جمعی نزدیکتر خواهد شد. به گفته مینکو:
شاردینگ پیچیده است، اما نوعی بهبود ظرفیت توان عملیاتی را فراهم میکند که باعث رقابتپذیری بلاک چینها با شبکههایی همچون ویزا میشود. برخی از این چالشها شامل به دست گرفتن کنترل یک شارد واحد، ارتباطات میان شاردی و اعتبارسنجی داده هستند.
تهیه شده در بیت 24
از 1 تا 5 چه امتیازی به این مطلب میدهید؟
نظر خود را بنویسید