قبل از اینکه شاردینگ در ارزهای دیجیتال ظهور پیدا کند تصور عموم بر این بود که هرگز امکان تجمع سه ویژگی امنیت، مقیاس پذیری و تمرکززدایی وجود ندارد. و لازم است هر بار یکی از این ویژگی ها قربانی دیگر ویژگی ها شود. هر سه این ویژگی ها یک مفهوم به نام سه گانه مقیاس پذیری ایجاد می کنند. این مفهوم سه گانه برای اولین بار توسط ویتالک بوترین مطرح شد. به بیانی دیگر برای داشتن مقیاس پذیری بالا لازم است تمرکززدایی و امنیت قربانی شوند.در صورتی که یک پروژه تصمیم دارد پایبند به ویژگی تمرکززدایی بماند لازم است از مقیاس پذیری بگذرد.
با توجه به اینکه شاردینگ باعث افزایش سرعت و ظرفیت شبکه می شود به عنوان یکی از راهکارهای ممکن برای ایجاد مقیاس پذیری در شبکه بلاک چین محسوب می گردد. استفاده از تکنولوژی شاردینگ برخلاف وجود چالش های مهم در پیاده سازی خود، قابلیت چیره شدن بر چالش سه گانه مقیاس پذیری را داراست. از زمان پیدایش شاردینگ، توسعه دهندگان بلاک چینی توانستند علاوه بر حفظ امنیت و تمرکززدایی، مقیاس پذیری پروژه های خود را نیز افزایش دهند. در ادامه این مطلب می خواهیم بدانیم شاردینگ چیست و در پروژه های بلاک چینی چه کاربردی دارد.
بیشتر بخوانید: بلاک چین چیست؟
شاردینگ (Sharding) چیست؟
شاردینگ به زبانی ساده تر به مفهوم تقسیم یک پردازش بزرگ به پردازش های کوچک تر است. در نظر بگیرید می خواهید یک پازل هزار تکه را بچینید. به جای اینکه کل 1000 تکه را روی میز بریزید می توانید آنها بر اساس رنگ تکه ها آنها را در دسته بندی های جداگانه قرار دهید. سپس به تکمیل چیدمان پازل بپردارید. این دسته بندی به شما کمک می کند بتوانید سریع تر پازل خود را بچینید.
در واقع شاردینگ با تقسیم کردن بار پردازش به قسمت های کوچک تر منجر به افزایش ظرفیت و سرعت شبکه می شود. شاردینگ یک راهکار است که امکان غلبه به چالش های مقیاس پذیری بلاک چین را با کمترین هزینه فراهم می کند.
شارد (shard) در لغت به معنای تکه یا قطعه است و به تکه تکه کردن یا قطعه قطعه کردن یک چیز از نظر واژگانی شاردینگ می گویند.
برای اینکه بهتر بتوانیم مفهوم شاردینگ را درک کنیم لازم است نقش شاردینگ را در فناوری بلاک چین مورد بررسی قرار دهیم.
تاریخچه شاردینگ
واژه شاردینگ یک واژه قدیمی است که قبلا در اواخر دهه 90 میلادی از آن برای مدیریت پایگاه های داده متمرکز استفاده می شد. در یکی از بازی های نقش آفرینی آنلاین به نام اولتیما آنلاین(Ultima Online) به منظور مدیریت ترافیک ورودی توسعه دهندگان این بازی تصمیم به تقسیم بازیکنان در سرورهای مختلف گرفتند. در آن زمان استفاده از اصطلاح شاردینگ رایج شد.
یکی از کاربردهای شاردینگ در پایگاه داده های بزرگ این بود که بر اساس مناطق جغرافیایی پایگاه داده مشتریان را تقسیم بندی می کردند. به این صورت که مشتریان قرار گرفته در یک مکان جغرافیایی با هم در یک گروه قرار گرفته و روی سرورهای جداگانه ای قرار می گیرند.
بیشتر بخوانید: ارز دیجیتال یا کریپتوکارنسی چیست؟
شاردینگ در بلاک چین
بر اساس تعریفی که از شاردینگ کردیم حتما دانستید استفاده از تکنولوژی شاردینگ چه کاربرد مهمی در دنیای بلاک چین و ارزهای دیجیتال دارد. در حالت کلی مفهوم شاردینگ در حوزه بلاک چین تقسیم بندی یک مجموعه به چندین قسمت و قابلیت ذخیره آن در چندین پایگاه داده است.
شبکه های بلاک چینی همان پایگاه داده ها به شمار می روند. هر نود در شبکه گویای یک سرور مجزا است که در شبکه کار می کند. با اجرای شاردینگ در بلاک چین در واقع شبکه را به اجزای کوچک تری به نام شارد تقسیم کرده ایم. هر یک از شاردها تعدادی از قراردادهای هوشمند جداگانه را به همراه موجودی حساب ها در خود نگهداری می کند. در حوزه بلاک چین مفهوم شاردینگ یعنی تقسیم بندی یک مجموعه داده به چندین قسمت و قابلیت ذخیره آن در چندین پایگاه داده است.
به منظور تایید تراکنش ها نودها در شاردهای جداگانه ای قرار می گیرند. در واقع در تکنولوژی شاردینگ دیگر نودها مسئولیت تایید تراکنش ها را بر عهده ندارند.
برای درک بهتر مفهوم شاردینگ از یک مثال در رابطه با بلاک چین اتریوم استفاده می کنیم:
روی بلاک چین اتریوم هزاران کامپیوتر قرار دارند که به آنها نود می گویند. هر نود یک میزان قدرت محاسبه و هش در اختیار شبکه قرار می دهد. در این صورت ماشین مجازی اتریوم(EVM) می تواند با قدرت هشی که در اختیار دارد وظایف محول شده خود شامل اجرای قراردادهای هوشمند و برنامه های غیرمتمرکز را انجام دهد.
اجرای بلاک چین اتریوم به صورت ترتیبی و یا خطی است. به این صورت که هر نود در آن کلیه تراکنش ها و عملیات را پردازش می کند. به همین خاطر زمان زیادی طول می کشد تا تراکنش ها از این فرآیند عبور کنند. هم اکنون بلاک چین اتریوم قادر است تعداد 13 تراکنش را در ثانیه پردازش کند.
به طور نمونه سیستم پرداخت ویزا قادر است تعداد 24 هزار تراکنش در ثانیه را پردازش کند.
شادرینگ با تغییر مدل اجرای خطی به موازی این امکان را برای نودها فراهم می کند که هر نود بتواند تعداد مشخصی از تراکنش ها را پردازش کند. این کار منجر به اجرای تراکنش ها به صورت موزای و در خطوط چندگانه خواهد شد. این اتفاق سرعت اجرای تراکنش ها را افزایش می دهد.
یک بلاک چین به شاردهای مختلفی تقسیم می شود که باکت و یا زیردامنه نام دارند. در چنین حالتی نودها تنها بخشی از دفتر کل را برای تایید تراکنش ها اجرا خواهند کرد و دیگر نیازی است کل تراکنش ها را نگهداری و یا به روزرسانی کنند.
شاردینگ به نوعی قسمت بندی افقی نیز نامیده می شود زیرا جایگزینی برای قسمت بندی عمودی محسوب می گردد. روش قسمت بندی افقی امکان ذخیره داده های کاربران را در شاردهای مختلف فراهم می کند. اما در روش قسمت بندی عمودی هر از یک از مشخصات یک کاربر نظیر موجودی حساب، آدرس کیف پول و... وی در یک شارد جداگانه قرار می گیرد.
بر اساس اطلاعات به دست آمده روش قسمت بندی افقی در فناوری بلاک چین دارای مزیت های بیشتری است.
دلیل آن این است که امکان پیاده سازی مقیاس پذیری با کارایی بیشتر در آن فراهم شده است. در روش قسمت بندی افقی به محض ورود تعداد کاربران جدید به شبکه می توان به راحتی یک شارد جداگانه برای ذخیره اطلاعات آنها ایجاد کرد. به این مفهوم که با بالا رفتن تعداد کاربران تعداد شاردها نیز افزایش می یابد. این اتفاق برای مقیاس پذیری مشکلی ایجاد نخواهد کرد.
اما در روش عمودی با مشکل مقیاس پذیری مواجه می شویم. دلیل آن این است که تعداد شاردهای ایجاد شده ثابت است و بر اساس دسته بندی اطلاعات تعیین شده است. در این روش با افزایش تعداد کاربران برخی از شاردها مانند شاردی که اطلاعات مربوط به کیف پول کاربران را در خود ذخیره می کند دچار مشکل مقیاس پذیری خواهند شد.
بیشتر بخوانید: قرارداد هوشمند در ارز دیجیتال چیست؟
استفاده از بلاک چین با تکنولوژی شاردینگ قابلیت های زیر را به همراه دارد:
- افزایش ظرفیت تراکنش ها با اجرای تراکنش های بیشتر در چندین شارد به صورت موازی
- در این روش نیازی به ذخیره کل تاریخچه تراکنش ها توسط نودهای جدید وجود ندارد. در این صورت هیچ مانعی برای ورود نودهای جدید به شکل دیتابیس های شارد شده وجود ندارد که در نهایت منجر به گسترش دامنه تمرکززدایی می شود.
- امنیت بلاک چین های شارد شده نسبت به بلاک چین های چندزنجیره ای بیشتر است. دلیل آن این است که در سیستم های شارد شده نیاز به تایید تراکنش ها در سراسر شبکه داریم. اما در اکوسیستم هایی که به صورت چند زنجیره ای هستند تراکنش های مربوط به یک زنجیره تنها در همان زنجیره تایید می شوند.
لازم به ذکر است شاردینگ نیز چالش ها و مشکلات خاص خود را دارد. در ادامه می خواهیم بدانیم کدام رمزارزها از تکنولوژی شاردینگ استفاده می کنند.
رمزارزهایی که از شاردینگ استفاده می کنند کدامند؟
در حال حاضر برخی از شبکه های بلاک چین توانسته اند از تکنولوژی شاردینگ در شبکه خود بهره ببرند. می خواهیم با تعدادی از رمزارزها که از تکنولوژی شاردینگ استفاده می کنند آشنا شویم.
ارز دیجیتال نیر(Near)
این بلاک چین در شبکه خود از الگوریتم اثبات سهام استفاده می کند. همچنین فرآیند شاردینگ را در شبکه بلاک چین خود اجرا می کند. اجرای شاردینگ باعث می شود نودها تا حد ممکن کوچک شده و قابل اجرا روی گوشی های هوشمند باشند.
ارز دیجیتال زیلیکا(Zilliqa)
اولین شبکه بلاک چین عمومی که قادر شده تکنولوژی شاردینگ را روب شبکه خود اجرا کند رمزارز زیلیکا است. استفاده از این فرآیند منجر به افزایش تعداد تراکنش های این شبکه به 2828 تراکنش در ثانیه شده است.
ارز دیجیتال اتریوم(Ethereum)
اتریوم نیز با به روزرسانی خود به اتریوم 2.0 یا ETH2 وعده داده است با استفاده از قابلیت شاردینگ قرار است تعداد تراکنش های خود را در بستر بلاک چین غیرمتمرکز اتریوم افزایش دهد.
بیشتر بخوانید: الگوریتم اثبات سهام چیست؟
جمع بندی
تکنولوژی شادرینگ یک روش برای بهبود مقیاس پذیری است که در برخی بلاک چین ها نظیر بلاک چین اتریوم از آن استفاده شده است. با توجه به اینکه مشکل مقیاس پذیری در بلاک چین ها یکی از چالش های جدی به شمار می رود لازم است به دنبال راهکاری برای حل این مشکل و افرایش پذیرش فناوری بلاک چین در بین مردم باشیم. شاردینگ یکی از این راهکارها به شمار می رود که با هدف افزایش مقیاس پذیری ارائه شده است.