چرا اثباتهای دانش صفر بهتنهایی برای حفاظت از حریم خصوصی کاربر کافی نیستند
اثباتهای دانش صفر اغلب بهعنوان پاسخ کامل به مسئله حریم خصوصی معرفی میشوند. در فناوری مدنی این وعده جذابتر است: یک فرد میتواند ثابت کند واجد شرایط مشارکت است، یکتا است، از سنی مشخص بالاتر است یا در یک حوزه قضایی زندگی میکند، بدون آنکه محتوای کامل سند هویتی خود را افشا کند.
این وعده واقعی است. اما از آنچه به نظر میرسد محدودتر است.
اثبات دانش صفر از اثبات محافظت میکند. بهصورت خودکار نشانی IP، اثر انگشت مرورگر، شماره تلفن، ایمیل، پیادهسازی کیف پول، دستگاه، سیستمعامل یا زمانمهرها و سیگنالهای رفتاری پیرامون اثبات را محافظت نمیکند. اگر این لایهها با دقت طراحی نشوند، تأییدکننده هنوز میتواند بفهمد کاربر کیست.
این مقاله از ارائهای برای NGI TrustChain در سپتامبر 2024 اقتباس شده است. ادعای اصلی ساده است: اثباتهای دانش صفر یک بلوک مهم برای مشارکت مدنی خصوصی هستند، اما حریم خصوصی کاربر ویژگی کل پشته است.
چرا هویت وارد پلتفرمهای مدنی میشود
همه فضاهای آنلاین به تأیید هویت نیاز ندارند. برای جوامع کاملا ناممستعار، که افراد با شناسههای پایدار و اعتبار اجتماعی مشارکت میکنند نه با مدارک رسمی، کاربردهای مشروعی وجود دارد.
پلتفرمهای مشارکت مدنی با مسئله دیگری روبهرو هستند. اگر هدف جمعآوری ورودی عمومی معنادار، مقاومت در برابر اسپم، کاهش تبلیغات محاسباتی یا پشتیبانی از فرایندهای یک نفر، یک صدا باشد، سیستم به نوعی مقاومت در برابر Sybil نیاز دارد. در عمل ممکن است لازم باشد بداند مشارکتکننده یک شخص واقعی است، به جامعهای مرتبط تعلق دارد یا یک قاعده اهلیت مدنی را برآورده میکند.
راههای مختلفی برای مقاومت در برابر Sybil وجود دارد، اما هر کدام هزینههایی دارند:
- سامانههای بیومتریک میتوانند یکتایی بدهند، اما خطرات جدی برای حریم خصوصی و ایمنی ایجاد میکنند.
- سامانههای گراف اجتماعی در برخی زمینهها مفیدند، اما مقیاسپذیری دشوار و تضمینهای حریم خصوصی ضعیف دارند.
- مدلهای ترکیبی web of trust برای برخی جوامع کار میکنند، اما معمولا یکتایی ضعیفتری میدهند.
- مدارک دولتی یا نهادی تضمینهای قویتری میدهند، اما نباید به لایه نظارت تبدیل شوند.
اینجاست که هویت خودحاکم و اثباتهای دانش صفر جذاب میشوند. آنها راهی برای تأیید اهلیت پیشنهاد میکنند، بدون اینکه کاربران بیش از حد لازم داده شخصی افشا کنند.
اثباتهای دانش صفر چه کاری را خوب انجام میدهند
در یک جریان ساده credential سه طرف وجود دارد:
- صادرکننده چیزی را درباره یک فرد تأیید میکند و credential صادر میکند.
- دارنده آن credential را نگه میدارد و تصمیم میگیرد چه زمانی از آن استفاده کند.
- تأییدکننده اثباتی را که از credential مشتق شده بررسی میکند.
فناوری دانش صفر به دارنده اجازه میدهد ادعایی مشخص را بدون آشکارکردن credential زیربنایی ثابت کند. مثلا کاربر میتواند ثابت کند بالای 18 سال است بدون اینکه تاریخ تولدش را فاش کند، یا ثابت کند از صادرکنندهای مورد اعتماد credential دریافت کرده بدون اینکه همه محتوای آن را نشان دهد.
چند رویکرد فنی این الگو را پشتیبانی میکنند. credentialهای BBS+ امکان افشای انتخابی و اثباتهای غیرقابلپیوند را فراهم میکنند. رویکردهای دیگر credentialهای قابلپیوند را merkelize میکنند و با ZK-SNARKs خصوصیتر میسازند. zkVMهای عمومی نیز شاید در آینده اثبات حقایق درباره credentialهای امنیتمحور موجود را آسانتر کنند.
ارزش این ابزارها در این است که میتوانند در سطح اثبات، غیرقابلپیوندی صادرکننده را فراهم کنند. یعنی صادرکننده نباید بفهمد credential کجا استفاده شده است، و استفادههای مختلف از همان credential نباید از طریق خود اثبات بهآسانی به هم پیوند بخورند.
این یک مسئله مهم را حل میکند. اما همه مسائل حریم خصوصی را حل نمیکند.
مدل تهدید: دارنده در مرکز
در مشارکت مدنی، مدل حریم خصوصی باید از دید دارنده شروع شود. کسی که credential را استفاده میکند باید کنترل کند چه چیزی را به چه کسی افشا میکند.
این به مدلی سختگیرانهتر از بسیاری از شبکههای اجتماعی امروز نیاز دارد:
- تأییدکننده، یعنی پلتفرمی که اثبات را درخواست میکند، نباید کورکورانه مورد اعتماد باشد. ممکن است تلاش کند کاربر را شناسایی کند، مگر اینکه سیستم این کار را دشوار و قابلممیزی کند.
- صادرکننده برای شناسایی دارنده و صدور credential معتبر مورد اعتماد است، اما نباید بداند credential بعدا کجا، چه زمانی یا چرا استفاده میشود.
- صادرکننده و تأییدکننده نباید بتوانند با تبانی کاربران را از طریق ارائه اثباتها شناسایی کنند.
- کد کلاینت بسته، کد کیف پول و frontend تأییدکننده باید سطح ریسک محسوب شوند، مگر اینکه متنباز، قابل بررسی و ترجیحا ممیزیشده باشند.
این با مدل رایج شبکههای اجتماعی بسیار متفاوت است؛ مدلی که در آن معمولا به پلتفرمها اعتماد میشود دادههای شخصی را مسئولانه جمعآوری، ذخیره و محافظت کنند. تاریخ پلتفرمهای آنلاین دلایل زیادی برای تردید در این اعتماد به کاربران داده است.
بقیه کوه یخ حریم خصوصی
آسانترین اشتباه این است که اثبات دانش صفر را کل سیستم حریم خصوصی بدانیم. در واقع، اثبات فقط یک لایه است.
افشای بیش از حد
حتی وقتی اثبات در دانش صفر ساخته میشود، تأییدکننده میتواند ویژگیهایی بیش از حد دقیق، زیاد یا نادر درخواست کند. کاربر ممکن است سند کامل خود را نشان ندهد، اما ترکیب ویژگیها هنوز میتواند او را شناسایی کند.
برای نمونه، اثبات سن دقیق، شهر، شغل و وضعیت عضویت ممکن است در یک جامعه کوچک برای مشخصکردن فرد کافی باشد. سامانههای حافظ حریم خصوصی باید گزارههای درشتتر و حداقل افشای لازم را ترجیح دهند.
فراداده شبکه
تأییدکننده میتواند اثبات را از طریق IP، اثر انگشت مرورگر، فراداده دستگاه یا زمان درخواستها به کاربر پیوند دهد. اگر اثبات از همان نشست مرورگری فرستاده شود که ورود یا تأیید ایمیل در آن رخ داده، حریم خصوصی ریاضی اثبات ممکن است دیگر کافی نباشد.
دانش صفر لایه شبکه را بهصورت پیشفرض پنهان نمیکند. حریم خصوصی انتقال، پراکسیها، سیاستهای لاگ و جداسازی نشستها هم مهم هستند.
کوکیها و کارگزاران داده
کوکیهای شخص ثالث، اسکریپتهای تحلیل، شناسههای تبلیغاتی و دادههای خریداریشده میتوانند حریم خصوصی اثبات را تضعیف کنند. اگر تأییدکننده کد رهگیری را دور جریان اثبات بگذارد، میتواند اثبات ناشناس را با هویت وب شناختهشده مرتبط کند.
در یک پلتفرم مدنی، جریان اثبات باید کاملا از رهگیرهای شخص ثالث دور باشد. حریم خصوصی نمیتواند همزمان به پروتکل رمزنگاری تکیه کند و از طریق صفحه وب معمولی هویت را نشت دهد.
ایمیل، تلفن و بازیابی حساب
ایمیل و شماره تلفن راحت هستند، اما شناسههایی قویاند. اگر تأییدکننده آنها را با اثبات دانش صفر پیوند دهد، اثبات میتواند بخشی از پروفایل هویتی گستردهتر شود.
این به معنای ممنوعیت همیشگی ایمیل یا تلفن در پلتفرم مدنی نیست. یعنی این شناسهها باید تا حد ممکن از رویدادهای اثبات جدا شوند، فقط هنگام نیاز استفاده شوند و سیاست نگهداری روشن داشته باشند.
شناسههای دائمی
اگر همان شناسه دائمی اطراف اثبات ظاهر شود، اثبات دانش صفر هنوز میتواند قابل پیوند باشد. آدرس کیف پول، DID، شناسه موضوع credential، شناسه دستگاه یا حساب پایدار میتواند نقطه همبستگی شود.
سیستمهایی که به ناممستعاری نیاز دارند باید از شناسههای زمینهای یا pairwise استفاده کنند، نه شناسههای جهانی. کاربر نباید ردپای یکسانی را بهطور پیشفرض میان فضاهای مدنی نامرتبط حمل کند.
همبستگی زمانی
حتی اگر شناسهها پنهان باشند، زمان میتواند رابطهها را آشکار کند. تأییدکننده ممکن است لحظه تولید اثبات را با درخواست دیگری مانند ورود، کلیک اعلان یا بارگذاری صفحه مرتبط کند.
طراحان باید زمانمهرها را حساس بدانند. دستهبندی، ارسال با تأخیر، کمینهسازی لاگ و جداسازی احراز هویت از ارائه اثبات خطر همبستگی را کاهش میدهد.
کیف پول، دستگاه و زنجیره تأمین
اثبات ممکن است از نظر رمزنگاری درست باشد، اما کیف پول یا کلاینت همچنان داده حساس را نشت دهد. کیف پول بسته ممکن است telemetry بفرستد. SDK آلوده ممکن است ویژگیها را آشکار کند. frontend مخرب ممکن است بیش از آنچه کاربر میفهمد درخواست کند.
متنبازبودن این خطرها را جادویی حذف نمیکند، اما کد بسته بررسی آنها را بسیار سختتر میکند. برای سامانههای مدنی با اعتماد بالا، کلاینتهای متنباز، buildهای قابل بازتولید، ممیزی مستقل و telemetry حداقلی باید زیرساخت اصلی محسوب شوند.
استنتاج رفتاری
یادگیری ماشین میتواند از الگوهایی که بهتنهایی بیخطر به نظر میرسند هویت را استنتاج کند. سبک نوشتن، زمانهای فعالیت، رفتار دستگاه، الگوهای مکان و تاریخچه تعامل میتوانند مجموعه ناشناسی را کوچک کنند.
به همین دلیل حریم خصوصی را نمیتوان به اثبات فروکاست. مشارکت ناشناس همچنین به تصمیمهای محصول، مدیریت محتوا و نگهداری داده نیاز دارد تا پروندههای رفتاری غیرضروری ساخته نشود.
معماری بهتر برای تعاملات ZK بهطور معتبر ناشناس
جریان credential حافظ حریم خصوصی باید با این فرض طراحی شود که تأییدکننده میخواهد بیش از حد مجاز بداند.
حداقل، یک پلتفرم مدنی که از اثباتهای دانش صفر استفاده میکند باید این اصول را در نظر بگیرد:
- کمدقیقترین اثباتی را بخواهد که نیاز مدنی را برآورده میکند.
- ارائه اثبات را با جریانهای حساب شناساییکننده ترکیب نکند.
- شماره تلفن، ایمیل، آدرس کیف پول یا DID دائمی را به رویداد اثبات وصل نکند، مگر اینکه واقعا لازم باشد.
- کوکیهای شخص ثالث، تحلیل و رهگیرها را از جریان اثبات بیرون نگه دارد.
- لاگها، بهویژه IP، زمانمهر و فراداده درخواست را کمینه کند.
- در صورت نیاز به مشارکت پایدار، از ناممستعارهای مخصوص زمینه استفاده کند.
- frontend تأییدکننده، منطق درخواست اثبات، یکپارچهسازی کیف پول و SDKها را متنباز و قابلممیزی کند.
- درخواستهای اثبات را برای کاربر قابل فهم کند تا بداند چه چیزی ثابت و چه چیزی افشا نمیشود.
- callbacks به صادرکننده یا هر مکانیزمی را که به او اجازه دهد محل استفاده credential را بفهمد، منع کند.
هدف فقط اثباتهای ناشناس نیست. هدف ناشناسی معتبر است: سیستمی که کاربران، ممیزان و جامعه مدنی بتوانند بررسی کنند وعدههای حریم خصوصی پلتفرم با رفتار واقعی آن همخوان است.
چالشهای باز
هنوز کار دشواری باقی مانده است.
نخست، تجربه کاربر کافی نیست. بیشتر مردم نمیتوانند درباره schemaهای credential، افشای انتخابی، درخواست اثبات، غیرقابلپیوندی صادرکننده یا حملات همبستگی استدلال کنند. محصول امن باید ویژگیهای حریم خصوصی را توضیح دهد، بدون آنکه از کاربران بخواهد رمزنگار شوند.
دوم، اکوسیستم credential تکهتکه است. BBS+، SD-JWT، گواهینامههای موبایل، تراشه گذرنامه، credentialهای merkelized و اثباتهای مبتنی بر zkVM هر کدام مصالحههای متفاوتی دارند. پلتفرمهای مدنی به تعاملپذیری نیاز دارند، اما نباید به ضعیفترین مخرج مشترک حریم خصوصی سقوط کنند.
سوم، مقاومت Sybil و حریم خصوصی همچنان در تنشاند. یکتایی قویتر اغلب شاهد هویتی قویتری میخواهد. چالش این است که فقط آنچه لازم است تأیید شود و این تأیید به گراف هویتی عمومی تبدیل نشود.
چهارم، جلوگیری از سوءاستفاده نباید نظارت را بازسازی کند. فضاهای ناشناس یا ناممستعار هنوز به مدیریت محتوا، محدودیت نرخ و سازوکار پاسخگویی نیاز دارند. اما این سازوکارها نباید در سکوت همه را دوباره شناسایی کنند.
در نهایت، متنبازبودن لازم است اما کافی نیست. کد منتشرشده کمک میکند، اما کاربران به buildهای قابل بازتولید، ممیزی مستقل، حکمرانی روشن و تضمین زمان استقرار نیاز دارند که کدی که بررسی کردهاند همان کدی است که استفاده میشود.
نتیجهگیری
اثباتهای دانش صفر قدرتمندند. آنها اجازه میدهند افراد حقایق را بدون افشای داده زیربنایی ثابت کنند و میتوانند جلوی ردیابی محل استفاده credential توسط صادرکنندگان را بگیرند.
اما اثباتها کل سیستم حریم خصوصی نیستند. تأییدکننده هنوز میتواند به لایههای اطراف حمله کند: ویژگیها، فراداده، کوکیها، ایمیل، تلفن، شناسههای دائمی، زمان، کیف پول، دستگاه و الگوهای رفتاری.
برای فناوری مدنی، این تفاوت مهم است. اگر هویت دیجیتال بخشی از مشارکت عمومی شود، نباید به راه دیگری برای زیر نظر گرفتن شهروندان تبدیل شود. اثباتهای دانش صفر میتوانند بخشی از پاسخ باشند، اما فقط وقتی در معماری گستردهتری قرار گیرند که بر کمینهسازی داده، غیرقابلپیوندی، ممیزی متنباز و کنترل کاربر بنا شده باشد.
درس عملی روشن است: از دانش صفر استفاده کنید، اما همانجا متوقف نشوید.