وانفینکس

کلاینت سبک (Light Client)

15 آبان 1405

318

زمان تقریبی مطالعه: 3 دقیقه

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

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

advertise blog post start

کلاینت سبک چگونه کار می‌کند؟

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

در بیت‌کوین، یک روش شناخته‌شده «تأیید ساده پرداخت» یا SPV است. کلاینت سرآیندهای بلوک‌ها را دنبال می‌کند و با شاخه مرکل می‌سنجد که تراکنش موردنظر در بلوکی مشخص گنجانده شده است. این بررسی به‌تنهایی ثابت نمی‌کند که همه تراکنش‌های آن بلوک مطابق قوانین بیت‌کوین معتبرند. بنابراین تأیید گنجانده‌شدن تراکنش را نباید با اعتبارسنجی کامل بلوک یکی دانست.

در اتریومِ مبتنی بر اثبات سهام، کلاینت سبک می‌تواند سرآیندها و امضاهای کمیته همگام‌سازی را بررسی کند تا زنجیره را دنبال کند. داده‌ای که برای نمایش موجودی یا وضعیت حساب می‌خواهد، ممکن است از ارائه‌دهنده‌ای بیرونی برسد و همراه با مدرکی باشد که کلاینت بتواند آن را در برابر اطلاعات تأییدشده بررسی کند. جزئیات این فرایند به نوع کلاینت و لایه‌ای که بررسی می‌کند بستگی دارد. مکانیزم اجماع هر شبکه نیز تعیین می‌کند کلاینت با چه شواهدی وضعیت زنجیره را دنبال کند.

یک مثال ساده

فرض کنید کاربری با گوشی خود می‌خواهد بداند پرداختی که انتظارش را دارد در یک بلوک بیت‌کوین ثبت شده است یا خیر. کیف پولی که از روش SPV استفاده می‌کند، کل تاریخچه تراکنش‌های شبکه را دانلود نمی‌کند. در عوض، سرآیند بلوک‌ها را نگه می‌دارد و از گره‌ای دیگر اطلاعات تراکنش و شاخه مرکل مربوط به آن را می‌خواهد. اگر این شاخه با ریشه مرکلِ سرآیند بلوک سازگار باشد، کیف پول می‌تواند گنجانده‌شدن تراکنش در آن بلوک را بررسی کند.

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

کاربردهای عملی

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

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

محدودیت‌ها و نکات امنیتی

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

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

آیا مطالعه این مقاله برای شما مفید بود؟!

advertise blog post end