شاردینگ چیست؟


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

مخصوصا اتریوم (Ethereum) که برای مقیاس‌پذیری، بر تمرکززدایی و امنیت متمرکز شده است. استفاده از شاردینگ به همراه اجرای اجماع اثبات سهام (Proof of Stake) به عنوان مکانیزم مورد نیاز است، زیرا شبکه از طریق آن ارتقا می یابد و در عین حال عدم تمرکز و امنیت خود را حفظ میکند.

شاردینگ (Sharding) یک موضوع پیچیده است. به خصوص در یک شبکه غیرمتمرکز همتا به همتا مانند اتریوم که وضعیت جهانی شبکه به طور مداوم به روز رسانی می شود.

بنابراین، شاردینگ چیست و چگونه می‌تواند به مقیاس‌پذیری شبکه‌های بلاک چین کمک کند؟

تاریخچه

شاردینگ در واقع بسیار قدیمی‌تر از فناوری بلاک‌چین است و در سیستم‌های مختلفی مانند بهینه‌سازی پایگاه داده کسب‌ و کار و پایگاه‌داده جهانی Spanner Google پیاده‌سازی شده است.

  • اساسا، شاردینگ یک روش خاص برای تقسیم افقی داده ها، در یک پایگاه داده است.
  • پایگاه داده به قطعات کوچکی به نام “شارد” تقسیم می شود که وقتی در کنار هم جمع می شوند پایگاه داده اصلی را تشکیل می دهند.
  • در شبکه‌های بلاک چین غیرمتمرکز، شبکه، از مجموعه‌ای از گره‌ها تشکیل می‌شود که بدون هیچ مرجع مرکزی در ساختار همتا به همتا متصل هستند.
  • مانند سیستم های بلاک چین فعلی، هر گره تمام حالت های شبکه را ذخیره می کند و همه تراکنش ها را پردازش می کند.
  • شاردینگ با تمرکززدایی امنیت سطح بالایی فراهم می کند، به خصوص در سیستم های Proof of Work مانند بیت کوین و اتریوم.

شاردینگ اتریوم

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

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

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

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

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

به گفته ویتالیک بوترین:« تصور کنید که اتریوم به هزاران جزیره تقسیم شده است. هر جزیره می تواند کار خود را انجام دهد. هر یک از جزایر ویژگی های منحصر به فرد خود را دارند و همه افراد آن جزیره، یعنی حساب ها، می توانند با یکدیگر تعامل داشته باشند. و اگر بخواهند با جزایر دیگر تماس بگیرند، باید از نوعی پروتکل استفاده کنند.»

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


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

اتریوم، شناخته شده ترین و دشوارترین شاردینگ انجام شده در عرصه بلاک چین است، زیرا توسعه دهندگان اتریوم در حال پیاده سازی چیزی هستند که به عنوان «حالت شاردینگ» شناخته می شود.

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

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

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

عنوان

  • شناسه شارد گروه تراکنش
  • تخصیص اعتباردهنده ها از طریق نمونه گیری تصادفی (تأیید تراکنش ها در شارد)
  • ریشه حالت (وضعیت ریشه مرکل شارد قبل و بعد از اضافه شدن تراکنش ها)

بدنه

  • کلیه معاملاتی که متعلق به گروه معاملاتی هستند و بخشی از شارد خاص هستند.

تراکنش‌های مختص هر شارد بین حساب‌های بومی آن شارد اتفاق می‌افتد.

هنگامی که تراکنش ها تأیید می شوند، وضعیت شبکه تغییر می کند و موجودی حساب، ذخیره سازی و غیره به روز می شود. برای اینکه گروه تراکنش اعتبار تراکنش را تأیید کند، ریشه اولیه‌ی گروه تراکنش باید با ریشه شارد در حالت جهانی مطابقت داشته باشد. اگر مطابقت داشته باشند، گروه تراکنش اعتبار سنجی می شود و وضعیت جهانی از طریق ریشه حالت شناسه شارد خاص به روز سانی می شود.

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

اساساً یک ریشه مرکل از همه شاردهای مختلف وجود دارد که شامل گروه‌های تراکنش به‌روز و تأیید شده است. این ریشه به همراه ریشه حالت به روز شده در بلاک چین، ذخیره می شود.

استفاده از مفاهیم درخت مرکل در این ساختار برای اطمینان از اعتبار بلاک چین حیاتی است. درک نحوه عملکرد درخت مرکل و ریشه مرکل، می تواند به شما کمک کند تا این مفاهیم را بسیار راحت تر درک کنید.

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

قدرت هش مورد نیاز برای غلبه بر یک شارد اختصاصی در یک شبکه شارد شده اجماع اثبات کار به شدت کاهش می یابد و همچنین توانایی یک عامل مخرب برای تصاحب یک شارد از طریق قدرت محاسباتی امکان پذیر است.

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

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

پروتکل ارتباطی برای عملکرد صحیح معماری شاردینگ در سیستم حیاتی است. شما می توانید پروتکل ارتباطی را به عنوان زبان جهانی در نظر بگیرید که در بین ایالات به عنوان بخشی از ایالات متحده بزرگتر سازگار است.

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

ارتباطات میان شاردی از طریق استفاده از مفهوم رسید تراکنش به دست می آید. رسید یک تراکنش در یک ریشه مرکل ذخیره می شود و به راحتی قابل تأیید است اما بخشی از ریشه حالت نیست.

شاردی که تراکنش را از شارد دیگری دریافت می کند، ریشه مرکل را بررسی می کند تا مطمئن شود که رسید منقضی نشده باشد. اساساً، رسیدها در یک حافظه مشترک ذخیره می شوند که می تواند توسط سایر شارد ها تأیید شود، اما تغییر نمی کند. بنابراین، از طریق یک ذخیره سازی غیرمتمرکز از رسید، شارد ها قادر به ارتباط با یکدیگر هستند.

پیشرفت شاردینگ

انتظار می رود شاردینگ در اتریوم پس از ارتقاء Casper PoS پیاده سازی شود. اخیراً پیشرفت هایی در مورد اتریوم 2.0 صورت گرفته است که شامل پیاده سازی Casper و Sharding می شود.

شاردینگ همچنین در چند پلتفرم دیگر، از جمله Zilliqa، اجرا شده است. با این حال، Zilliqa در حال حاضر حالت شاردینگ را اجرا نمی کند و در عوض بر روی ارائه یک بلاک چین با توان عملیاتی بالا با استفاده از تراکنش و شاردینگ محاسباتی تمرکز می کند.

نتیجه گیری

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

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

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

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