
با ظهور بیتکوین، دنیای تکنولوژی دگرگون شده و بلاکچین جایگاه رفیعی در برطرف کردن نیاز عموم مردم، کسب کرده است. امروزه بلاکچین، غول همه فن حریف تکنولوژی حساب میشود! اکثر پروژههای موفق و بزرگ بر روی این فناوری پایهگذاری شدهاند، و البته روزبهروز هم تعدادشان بیشتر میشود.
این موضوع نشان میدهد که بلاکچین در زندگی روزمره ما نقشی اساسی و حذفنشدنی دارد. تنها نقطه ضعف و یا بهتر بگویم پاشنه آشیل غول عظیم بلاکچین، مسئله مقیاسپذیری است. البته نگران نباشید، تکنیک شاردینگ فوری به کمک آن میشتابد! با ما همراه باشید تا نوشتار “شاردینگ چیست؟” را به انتها برسانیم و با نحوه کارکرد این تکنیک و قصه نجات کشتی بزرگ بلاکچین آشنا شویم!
پیش از ظهور تکنیک شاردینگ، جمع میان سه مولفه “مقیاسپذیری”، “تمرکززدایی” و “امنیت” در یک پروژه مبتنی بر تکنولوژی بلاکچین، قابل تصور نبود. معضل سهگانه بلاکچین، اولین با توسط ویتالیک بوترین (Viltalik Buterin) مطرح شد. طبق گفته او، اگر سیستمی میخواهد مقیاسپذیری بالایی داشته باشد باید از امنیت پروژه خود چشمپوشی کند و یا اگر قصد دارد به تمرکززدایی پایبند باشد باید از مولفه مقیاسپذیری صرف نظر کند. به عبارتی دیگر این سه ضلع مثلث هیچگاه قابل جمع با یکدیگر نیستند.
البته تمام اینها مسائل ماجراهای قبل از ظهور تکنیک شاردینگ بود! حتما در ذهنتان سوال شده که شاردینگ چیست؟ و یا چطور بلاکچین را نجات داد؟ خب باید بگویم پرسشهای ذهنیتان بسیار منطقیست. با ما همراه باشید تا پاسخ تمام سوالاتتان را بدست آورید!
آشنایی با مسئله سه گانه بلاک چین
همانطور که گفته شد سهگانه یا سهراهی بلاکچین شامل تمرکززدایی (Decentralization)، امنیت (Security) و همچنین مسئله مقیاسپذیری (Scalability) میشود. هیچکدام از این سه مورد با همدیگر قابل جمع نیستند برای مثال شبکههای ارز دیجیتال مانند بیت کوین و اتریوم، امنیت و غیرمتمرکز بودن را در اولویت قرار دادهاند و درنتیجه از مقیاسپذیری دست کشیدهاند.

یکی از چالشهای اصلی تکنولوژی بلاکچین، سرعت روند پردازش اطلاعات در صورت افزایش تعداد دادهها است. اگر تعداد تراکنشهای شبکه زیاد شود، سیستم دچار ایراد شده و روند پردازش اطلاعات در آن کند میشود که اصطلاحا به آن تاخیر یا لتنسی (Latency) شبکه میگویند. مقیاسپذیری اشاره به توانایی مدیریت و پاسخگویی یک سیستم درصورت افزایش تقاضا روی شبکه، دارد. به عبارتی دیگر، این مفهوم نشاندهنده آمادگی و ظرفیت یک سیستم برای پردازش حجم زیادی از دادهها است.
مقیاسپذیری یک ویژگی مثبت برای رشد بلاکچین است؛ زیرا به طور مستقیم مربوط به ارتقاء توان عملیاتی سیستم مورد نظر میشود. برای بلاکچینهایی که مقیاسپذیر هستند، افزایش تعداد کاربران و پردازش تعداد زیادی از دادهها در لحظه، تهدیدی به شمار نمیآید و خللی بر عملکرد شبکه وارد نمیکند.
مسئله تمرکززدایی در بلاکچین هم به انتقال قدرت کنترل و تصمیمگیری از یک نهاد متمرکز، به یک شبکه توزیع شده اشاره دارد. به بیانی سادهتر تمرکززدایی نشان میدهد که یک سیستم بلاکچینی تحت کنترل یک شخص یا یک نهاد مرکزی، یک شرکت و یا دولت نیست و به صورت غیرمتمرکز و توسط یک شبکه پراکندهای از گرهها (Nodes) کنترل میشود.
از سمتی دیگر بلاکچین به عنوان تکنولوژی نوپا در دنیای مدرن، با سازوکارهای پیشرفتهای مانند تکنیکهای رمزنگاری پیشرفته و روشهای الگوریتمی کار میکند. در فناوری بلاکچین امنیت اطلاعات و دادههای ثبت شده از ارزش بسیار بالایی برخوردار است. این امنیت باید به به شکلی باشد که کاربران درمورد عدم دسترسی و سوءاستفاده از اطلاعات شخصیشان توسط دیگران، اطمینان خاطر داشته باشند.
یک قدم به پاسخ سوال “شاردینگ چیست؟” نزدیکتر شدهایم! بیایید ادامه ماجرا را بررسی کنیم…
چیستی شاردینگ به بیانی ساده
کلمه Sharding به معنای تجزیه کردن یک مجموعه عظیم به اجزای خردتر است. ریشه آن، یعنی کلمه Shard نیز به جزء کوچک از یک مجموعه بزرگ اطلاق می شود. شاردینگ یک روشی است که به مبنای آن دیتابیس یا مراکز ذخیره داده به اجزای کوچکتری تجزیه میشوند. این تکنیک به منظور ارتقا و بهبود عملکرد مراکز ذخیره دادهها به کار گرفته میشود.

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

مزایای استفاده از شاردینگ در بلاکچین بسیار است، اما مهمترین آنها عبارتند از:
- عملکرد موازی شاردها باعت افزایش سرعت و ارتقاء بازدهی شبکه میشود.
- نودهای جدید تمام اطلاعات موجود در شبکه را ثبت نمیکنند و در نتیجه تمرکززدایی در شبکه گستر پیدا میکند.
- امنیت و نفوذناپذیری شبکه به شکل قابل توجهی ارتقاء پیدا میکند.
محدودیت ها و چالش های شاردینگ
کاملا درست است که تکنیک شاردینگ در شبکه بلاکچین بسیار کاربردی و موثر است؛ اما از چالشهای پیادهسازی آن نمیتوان چشمپوشی کرد. یکی از مهمترین محدودیتها مربوط به نحوه پیادهسازی فنی و تکنیکی آن میباشد. چون این سیستم از تعداد زیادی اجزاء کوچک تشکیل شده، اگر در کار هر کدام از این جزءها خللی وارد شود، کل شبکه و تمام دادهها با مشکلی جدی مواجه میشوند.
یکی دیگر از چالشهای جدی این تکنیک، مسئله “تصرف شارد (shard takeover)” است. تصور کنید فرد یا نهادی کنترل یکی از شاردهای شبکه را در دست بگیرد، در این صورت او میتواند تراکنشهای دلخواه خود را به به شکل مخربی در شارد ثبت کند. تصرف شارد بسیار راحتتر از نفوذ به شبکههای عادی بلاکچین است. چون اگر فردی بخواهد کنترل شبکه عادی بلاکچین را در دست بگیرد، باید بر ۵۱٪ از شبکه تسلط یابد؛ اما این عدد در شبکه شارد شده به ۱۱٪ تقلیل پیدا میکند و این تهدیدی بزرگ برای تکنیک شاردینگ است!
مسئله بعدی که از آن یاد میکنیم، نحوه توزیع و تعادل دادههای میان شاردها است. بهطور معمول نباید دادههای یک شارد از سایر شاردها بیشتر باشد. چالش اصلی این است که باید نحوه توزیع دادهها میان شاردهای مختلف به شکله انجام شود که متعادلترین حالت برای کل شبکه حفظ شود. این مدیریت تعادل دادهها زمانی که تعداد تراکنشها بسیار بالاست، واقعا کار دشواری است.
برای تسهیل مطالعه مزایا و معایب تکنیک Sharding، آنها را در جدول زیر بهطور خلاصه آوردهایم.
مزایای روش شاردینگ | معایب روش شاردینگ |
پردازش موازی و در نتیجه سرعت بالا و افزایش بازدهی | دشواری پیادهسازی شاردینگ در شبکه |
توسعه تمرکززدایی شبکه | تصرف شارد |
امنیت و نفوذناپذیری کل شبکه | نحوه توزیع و تعادل دادههای میان شاردها |
افزایش قابلیت ثبت حجم بالایی از دادهها | ارتباطات میان شاردی |
شاردینگ در شبکه اتریوم
اتریوم بعد از بیتکوین، دومین ارز دیجیتال محبوب به شمار میآید. این شبکه مانند بیتکوین از الگوریتم اجماع گواه اثبات کار استفاده میکند. اما در شبکه اتریوم ۲ ساختار آن به گواه اثبات تغییر خواهد کرد. طبق اطلاعاتی که منتشر شده اتریوم از ۶۴ شارد مختلف برای توسعه مقیاسپذیری خود استفاده خواهد کرد. در این صورت سرعت پردازشها در هر ثانیه بالا رفته و شبکه تراکم کمتری را تجربه میکند.

همانطور که میدانید یکی از روشهای دیگر برای حل مشکل مقیاسپذیری، افزایش سایز دیتابیس کنونی اتریوم است. اما هزینه پیادهسازی این روش از تکنیک بسیار پرهزینهتر و زمانبرتر محاسبه شده است. در چنین حالتی هر فرد میتواند با تلفن همراه و سیستم خانگی خود، نود خود را راه اندازی کنند، در این فرآیند هیچ نیازی به سیستمهایی با قدرت پردازش بالا نیست. اما توجه داشته باشید که چون شبکه اتریوم کاربران و استخراجکنندگان زیادی را جذب کرده است، پیادهسازی تکنیک جدید روی شبکه آن عملی چالش برانگیز و دشوار خواهد بود.
سخن آخر
همانطور که در بخشهای قبلی گفته شد، تکنیک شاردینگ یکی از راهحلهای موثر برای مشکل مقیاسپذیری است. مزایا و فواید پیادهسازی این تکنیک در شبکهها، قابل توجه و سودمند هستند اما از طرفی معایب آن را هم نمیشود نادیده گرفت. به هرحال امیدواریم هرچه زودتر روش Sharding بر روی شبکه اتریوم ۲ پیادهسازی شود تا بهطور مستقیم نحوه کارکرد و میزان بازدهی آن را مورد بررسی قرار دهیم.
امیدواریم که این نوشتار برای شما مفید و سودمند واقع شده باشد، اگر تجربه و یا اطلاعاتی در زمینه استفاده از تکنیک شاردینگ دارید، با ما به اشتراگ بگذارید!
شاردینگ چیست؟
کلمه Sharding به معنای تجزیه کردن یک مجموعه عظیم به اجزای خردتر است. ریشه آن، یعنی کلمه Shard نیز به جزء کوچک از یک مجموعه بزرگ اطلاق می شود. شاردینگ یک روشی است که به مبنای آن دیتابیس یا مراکز ذخیره داده به اجزای کوچکتری تجزیه میشوند. این تکنیک به منظور ارتقا و بهبود عملکرد مراکز ذخیره دادهها به کار گرفته میشود.
مشکلات سهگانه بلاکچین چیست؟
مشکلات سهگانه یا سهراهی بلاکچین شامل تمرکززدایی (Decentralization)، امنیت (Security) و همچنین مسئله مقیاسپذیری (Scalability) میشود. هیچکدام از این سه مورد با همدیگر قابل جمع نیستند.
مزایاد استفاده از تکنیک شاردینگ چیست؟
۱. پردازش موازی و در نتیجه سرعت بالا و افزایش بازدهی
۲. توسعه تمرکززدایی شبکه
۳. امنیت و نفوذناپذیری کل شبکه
۴. افزایش قابلیت ثبت حجم بالایی از دادهها