یک تحقیق گسترده از سوی گروه تحقیقاتی امنیتی DistriNet در دانشگاه KU Leuven بلژیک، پرده از ناکارآمدی‌های جدی حریم خصوصی در اکوسیستم کیف پول‌های ارز دیجیتال برداشت. پژوهشگران ۸۵ افزونه محبوب مرورگر را مورد آزمایش قرار دادند و متوجه شدند که معماری خودِ این کیف‌پول‌ها، بدون نیاز به هک یا بدافزار، داده‌های حساس کاربران را به سایت‌ها و ردیاب‌ها می‌گزیند.

استفاده از ۳۵ میلیون کاربر در معرض خطر

این ۸۵ افزونه به طور کل حدود ۳۵ میلیون نصب فعال در Chrome Web Store دارند. نتایج این مطالعه که در مقاله‌ای علمی منتشر شده و قرار است در کنفرانس PETS 2026 (کنفرانس بین‌المللی حریم خصوصی و تقویت تکنولوژی‌ها) در کلگری ارائه گردد، نشان می‌دهد که اطمینان کاربران به ناشناس بودن تراکنش‌های بلاکچین، به دلیل طراحیِ ذاتیِ این ابزارها، باطل است.

نمودار نشت حریم خصوصی در افزونه‌های کیف پول کرپت

پنج ضعف حیاتی در تعامل کیف‌پول و وب‌سایت

تیم تحقیق با اجرای کیف‌پول‌های واقعی در برابر اپلیکیشن‌های واقعی Web3، 다섯 دسته از ضعف‌ها را شناسایی کرد. وقتی پراکنده‌ترین این ضعف‌ها به توسعه‌دهندگان گزارش شد، اکثری آن را «باگ» ندانستند و به عنوان «رفتار پیش‌فرض» توضیح دادند.

مشکل ۱: لینک‌شدن آدرس‌های جداگانه (Address Linking)

بسیاری از کاربران برای حفظ حریم مالی، از چند آدرس جداگانه استفاده می‌کنند. اما برای نمایش موجودی، کیف‌پول‌ها به طور مداوم سرورهای RPC یا API را ping می‌کنند. در ۱۷ کیف‌پول (پوشش‌دهنده ~۲۳ میلیون نصب)، این درخواست‌ها حاوی آدرس‌های متعدد کاربر بودند:

  • ۱۳ مورد: دو آدرس در یک درخواست HTTP باندل شده بودند (لینک‌گذاری صریح).
  • ۴ مورد: درخواست‌های جداگانه در فاصله میلی‌ثانیه‌ای ارسال می‌شدند (لینک‌گذاری زمانی).

هر‌کسی که کنترل سرور را داشته باشد یا به لاگ‌های آن دسترسی یابد، می‌تواند پروفایل مالی یکپارچه‌ای از کاربر بسازد.

مشکل ۲: «خروج از سیستم» واقعی انجام نمی‌شود (Stale Permissions)

این مشکل و مشکل بعد، ریشه در فینگرپرینتینگِ نصب افزونه دارند: ۳۶ کیف‌پول (۸۲٪ کاربران) خود را به هر صفحه لودشده اعلام می‌کنند، حتی اگر کاربر هیچ واکنشی نشان ندهد.

وقتی کاربر روی «Disconnect» کلیک می‌کند، دو لایه شکست وجود دارد:

  1. سایت دستور انقضا (revoke) نمی‌فرستد: از ۳۰ اپلیکیشن Web3 تست‌شده، تنها ۱۱ دستور واقعی revoke ارسال کردند؛ بقیه فقط UI را پاک کردند.
  2. کیف‌پول دستور را نادیده می‌گیرد: در ۲۲ از آن ۳۶ کیف‌پول، آدرس کاربر پس از درخواست revoke، پاک‌کردن کوکی و ری‌استارت مرورگر همچنان قابل خواندن بود.

این «مجوز منقضی‌شده» تا حذف دستی از منوی «Connected Sites» در_extension_ باقی می‌ماند و به عنوان یک شناسهٔ جهانی، دائمی و غیرقابل پاک‌سازی (برخلاف کوکی) عمل می‌کند.

مشکل ۳: ردیابی متقاطع سایت‌ها (Cross-Site Tracking via Iframes)

خطرناک‌ترین yếu tố، گسترش سطح tấn công به سایت‌های کاملاً غیرمرتبط است. در ۲۳ کیف‌پول، آدرس کاربر در داخل iframe‌های協力站‌های-person (third-party) نیز در دسترس است. سناریو حمله:

  1. اسکریپت ردیابی مشترک (مثل آنالیتیکس یا تبلیغات) هم در اپلیکیشن کرپتی که قبلاً به آن متصل شده‌اید، و هم در یک سایت خبری/خرید معمولی حضور دارد.
  2. در سایت معمولی، ردیاب به طور نامرئی iframe از اپلیکیشن کرپتی لود می‌کند.
  3. چون کیف‌پول قبلاً به آن اپلیکیشن متصل بوده، آدرس در داخل iframe افشا می‌شود.
  4. ردیاب اکنون هویتِ ناسمی کاربر را در سایت معمولی به آدرسِ مالی‌اش در بلاکچین متصل کرده است.

اگر سایت معمولی دارای اطلاعات PII (نام، ایمیل، IP) باشد، ناشناس بودنِ کرپت به طور کامل شکسته می‌شود.

چرا این یک «باگ» نیست، بلکه یک «ویژگی طراحی» است؟

پاسخ توسعه‌دهندگان بیشتر این بود: «این رفتار استاندارد EIP-1102 / EIP-6963 است.»tocols جاری به کیف‌پول‌ها می‌گویند که آدرس را به هر origin متصل‌شده بدهند، اما مکانیزمی برای انقضای قطعی، منع iframe، یا جدا کردن هویت‌ها تعریف نکرده‌اند. بنابراین مسئولیت در لایه پروتکل و استانداردسازیِ وب۳ قرار دارد، نه فقط در کد یک افزونه.

راهکارهای فوری برای کاربران

  • از پروفایل‌های جداگانه مرورگر (Chrome Profiles / Firefox Containers) برای هر هویت مالی استفاده کنید.
  • به طور منظم منوی Connected Sites کیف‌پول را باز کرده و سایت‌های استفاده‌نشده را حذف کنید.
  • افزونه‌هایی مثل Brave Wallet یا MetaMask Snap‌ها را بررسی کنید که کنترل‌های دقیق‌تری ارائه می‌دهند.
  • استفاده از Hardware Wallet (Ledger, Trezor) برای مبالغ بالا، سطح حمله را کاهش می‌دهد.

آینده: نیاز به استانداردهای حریم خصوصی در وب۳

این مطالعه زنگ هشدار برای cộng đồng Ethereum، EIP editors و مرورگر‌هاست. بدون افزودن پرিমیت‌های انقضای اجباری (mandatory revocation)، انفصال زمینه (storage partitioning) برای iframeها، و مینیمرلایز کردن داده‌های RPC، حریم خصوصی در وب۳ یک توهم باقی خواهد ماند. پژوهشگران KU Leuven کد و داده‌های خام را برای بازتولید در GitHub DistriNet منتشر خواهند کرد.