قبل از ظهور شاردینگ، تصور میشد که سه ویژگی «غیرمتمرکز»، «مقیاسپذیری» و «امنیت» را هرگز نمیتوان در یک پروژه بلاک چین ترکیب کرد و همیشه باید فدای دیگری شود. این سه ویژگی با هم مفهومی به نام مقیاس پذیری سه گانه را تشکیل می دهند که اولین بار توسط Vitalik Buterin ارائه شد. این مفهوم می گوید که اگر پروژه ای بخواهد بسیار مقیاس پذیر باشد باید تمرکززدایی و در نتیجه امنیت را قربانی کند و اگر پروژه ای قصد دارد به ویژگی های تمرکززدایی پایبند باشد، باید از مقیاس پذیری فراتر رود.
شاردینگ یکی از راه حل های بالقوه مقیاس پذیری در بلاک چین است که بار محاسباتی و ذخیره سازی داده ها را به بخش های کوچکتر تقسیم می کند تا سرعت و ظرفیت شبکه را افزایش دهد. این راه حل با وجود چالش های قابل توجهی که در اجرای آن وجود دارد، توانایی غلبه بر چالش «بی اهمیتی» را دارد.
شاردینگ چیست و چگونه به مقیاس پذیری بلاک چین های مختلف کمک می کند؟
با تولد Sharding، به نظر می رسد توسعه دهندگان بلاک چین راه را برای افزایش مقیاس پذیری پروژه های خود و در عین حال حفظ امنیت و عدم تمرکز هموار کرده اند. در این مقاله که با کمک مقاله ای از Block Research گردآوری شده است، به بررسی تاریخچه و مفهوم Sharding می پردازیم و نگاهی به کاربرد این نوآوری در پروژه های بلاک چین خواهیم داشت.
شاردینگ چیست و چگونه به مقیاس پذیری بلاک چین های مختلف کمک می کند؟
شاردینگ چیست؟
به بیان ساده، تقسیم به معنای تقسیم یک فرآیند بزرگ به فرآیندهای کوچکتر است. فرض کنید می خواهید یک پازل 1000 قطعه ای را کامل کنید. به جای اینکه همه 1000 قطعه را روی میز بیندازید و شروع به جمع آوری آنها کنید، می توانید آنها را بر اساس رنگ قطعات جدا کنید و سپس کار را تمام کنید.
این دسته بندی همچنین مرور سریع بخش هایی را که مختص یک بخش هستند آسان تر می کند.
شاردینگ راه حلی است که بار پردازش را به قطعات کوچکتر تقسیم می کند و در نتیجه ظرفیت و سرعت شبکه را افزایش می دهد. شاردینگ راه حلی است که از نظر تئوری می تواند بر چالش های مقیاس پذیری بلاک چین با کمترین هزینه غلبه کند.در لغت «شَرد» به معنای قطعه یا قطعه است و خرد کردن در لغت به معنای یک قطعه یا تکه چیزی است.
برای درک بهتر مفهوم شاردینگ، ابتدا به تاریخچه آن می پردازیم و سپس نقش آن را در فناوری بلاک چین بررسی می کنیم.
یکی از چالش های شاردینگ این است که احتمال حمله مخرب به حداقل برسد. برای رسیدن به این هدف، توزیع قدرت رای باید تصادفی و کاملاً برابر بین تمام قطعات موجود باشد یا تدابیری برای جلوگیری از تمرکز مخرب قدرت هش روی یک قطعه اندیشیده شود.
شاردینگ
ارتباطات داخلی
چالش دیگر، به نام ارتباط مقطعی، زمانی است که یک تراکنش نیاز به تغییر وضعیت یا فراخوانی یک تابع از یک بخش به قسمت دیگر دارد. شبکه ای را در نظر بگیرید که دارای 5 قسمت بود و فرض کنید کاربر A در قسمت 1 می خواهد تراکنش را برای کاربر یا قرارداد B در قسمت 2 ارسال کند. نحوه برقراری ارتباط چالش بزرگی است که هر شبکه به نوعی آن را حل کرده است.ملاحظات مختلفی برای تراکنش های متقابل وجود دارد، از محدود بودن تا اتمی بودن. به عنوان مثال، زمانی که کاربر A تراکنشی را برای کاربر یا قرارداد B ارسال می کند، تراکنش را در موجودی حساب کاربری A و کاربر یا قرارداد B ایجاد می کند.
بنابراین در شاردینگ ، گره هایی که مسئول ثبت تغییرات حالت هستند باید این تغییرات را در سطوح چندگانه اعمال کنند یا الگوریتمی را بیابند که از مطابقت حالت با قطعات اطمینان حاصل کند.مهمتر از آن، یک تراکنش غیرمستقیم نیاز دارد که ابزار استخراج تراکنش بتواند تغییرات وضعیت را با سرعت های متعدد نمایش دهد. این شکستن را پیچیده می کند. این به این دلیل است که هر گره معمولاً یک تراکنش را فقط برای بخشی که به آن تعلق دارد ذخیره و پیشنهاد می کند. این مشکل فقط از طریق معماری شبکه قابل حل است. یعنی شبکه خرد شده باید کاملا ساخته شود.
دیکشنری بر پایه شاردینگ
محدودیت ها
شاردینگ نیز مانند راه حل های دیگر، محدودیت هایی دارد. در پروتکل هایی مانند Zilika که از سایه زنی شبکه استفاده می کنند، سه گانه مقیاس پذیری به طور کامل حل نشده است. زیرا گره های Zilika هنوز باید وضعیت کل شبکه بلاک چین را ذخیره کنند.از طرف دیگر تصویر واضحی از پروتکل هایی مانند Nier که از روش سایه زنی وضعیت استفاده می کنند در دسترس نیست. الگوریتم Nightshade که اشتراکگذاری حالت Ner را مدیریت میکند، در حال حاضر کمتر از دو سال قدمت دارد. بنابراین، هنوز زود است که در مورد آسیب پذیری مردان صحبت کنیم.
مهمترین مسئله این است که پروتکل های کدگذاری شده نیاز به افزایش تعداد گره ها برای مقیاس پذیری دارند، به این معنی که موفقیت آنها به افزایش پذیرش بستگی دارد. بسیاری این را یکی از ویژگی های Sharding می دانند. یعنی از نظر آنها افزایش پذیرش پروتکل باعث افزایش تعداد گره ها می شود. این در حالی است که چنین فرضی نادرست است; زیرا تعداد گره ها مستقل از تعداد کاربران یا تراکنش هاست.
اگر پس از مدتی، تعداد گرهها در بلاک چین به میزان قابل توجهی کاهش یابد تا تعداد خردهها کاهش یابد، ظرفیت عملیاتی شبکه برای انجام تراکنشها کاهش مییابد. در چنین شرایطی اگر تعداد کاربرانی که در این مدت تراکنش انجام می دهند به شدت افزایش یابد، کارمزدها افزایش می یابد یا زمان انتظار طولانی می شود که برای کاربران نامطلوب است.خوشبختانه تاکنون این اتفاق نیفتاده است، اما حاکی از آن است که نمی توان عواقب چنین سناریویی را به درستی پیش بینی کرد. با این حال، درک وقوع احتمالی این سناریو و ایجاد انگیزه های مناسب برای گره ها برای جلوگیری از آن مهم است.
شکل شاردینگ
آیا جایگزینی برای سایه زدن وجود دارد؟
یکی از راه حل هایی که گاهی برای افزایش مقیاس پذیری پیشنهاد می شود، افزایش اندازه بلوک است. با این ایده که هر چه بلاک ها بزرگتر باشند، تراکنش های بیشتری در آن ها انجام می شود و تعداد تراکنش هایی که در هر ثانیه می توان انجام داد بر همین اساس افزایش می یابد.اگرچه این راه حل قابل پیاده سازی است، اما باید در نظر داشت که بلوک های بزرگتر به معنای نیاز به قدرت محاسباتی بیشتر برای اعتبارسنجی آنهاست.اگر اندازه بلوک به طور نامحدود افزایش یابد، تنها تجهیزات و سخت افزار بسیار تخصصی می توانند پردازش تراکنش را به عنوان گره انجام دهند و تعداد گره های شبکه به میزان قابل توجهی کاهش می یابد.هزینه خرید این تجهیزات به این معنی است که گره ها متمرکز هستند و خطر حمله تا 51 درصد افزایش می یابد. همچنین، افزایش اندازه بلوک به هاردفورک نیاز دارد که خطر ایجاد دوگانگی در جامعه پروژه را به همراه دارد.
اگر همه افراد در بلاک چین به نسخه جدید ارتقاء ندهند، دو زنجیره مجزا با سکه های جداگانه ایجاد می شود. بنابراین، افزایش اندازه بلوک تنها یک راه حل موقت است.
کدام ارزهای دیجیتال از اشتراک گذاری استفاده می کنند؟
در حال حاضر، تنها چند پروتکل وجود دارد که اشتراک گذاری را با موفقیت پیاده سازی کرده است. زیلیکا، نیر و الروند معروف ترین نمونه ها هستند. هنگامی که اتریوم 2.0 به طور کامل عملیاتی شود، شبکه به جمع شبکه هایی خواهد پیوست که از اشتراک گذاری استفاده می کنند.
دیدگاه شما