صفر تا صد اثبات دانش صفر (zero-knowledge proof) در کریپتو

صفرتا صد اثبات دانش صفر

شاید این روزها اصطلاح اثبات دانش صفر (zero-knowledge proof) خیلی به گوشتان خورده باشد اما واقعا این مورد به چه مفهومی اشاره دارد؟ به صورت کلی اثبات دانش صفر یعنی اثبات آگاهی از چیزی بدون فاش کردن جزئیات آن! یا داشتن چیزی بدون نشان دادن آن!

به عنوان مثال می‌خواهید برای یک تراکنش ثابت کنید آن مقدار پول را دارید، بدون این که نشان دهید مقدار داراییتان چقدر است یا مثلا می‌خواهید گواهینامه بگیرید و ثابت کنید که 18 ساله هستید، بدون اینکه کارت ملی خود را نشان دهید.

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

در بخش بعدی اثبات دانش صفر را با چند مثال ساده و دشوار  خدمت شما توضیح می‌دهیم.

فهرست مطالب

توضیح اثبات دانش صفر به زبان ساده به همراه مثال

توضیح اثبات دانش صفر به زبان ساده به همراه مثال

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

 

مثال 1 (ابتدایی)

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

آلیس که  دختر باهوشی است، دو توپ (قرمز و آبی) تهیه می ‌کند و با استفاده از مکانیزم چالش و پاسخ، یک تعامل برای باب ابداع می‌کند.

مثال اثبات دانش صفر

آلیس: من یک توپ قرمز و یک توپ آبی در دست دارم. اکنون دستانم را پشت سرم می‌گذارم. در این مدت، ممکن است توپ‌ها را بین دستانم عوض کنم یا نکنم. پس از آن، من دوباره به شما توپ‌ها را نشان می‌دهم.

باب: باشه، پس میخوای بهت بگم توپ‌ها رو عوض کردی یا نه.

آلیس: درسته، فقط کسی که می‌تواند رنگ را ببیند می‌تواند بگوید که چه کار کردم.

مثال اثبات دانش صفر

آلیس: آیا من توپ‌ها جابجا کردم؟

باب: بله، توپ‌ها را جابجا کردی.

مثال اثبات دانش صفر

آلیس: آیا من توپ‌ها جابجا کردم؟

باب: نه، توپ‌ها در جای خود هستند.

در این اثبات، آلیس و باب این بازی را بارها تکرار می‌کنند تا آلیس متقاعد شود که باب چشمانش باز است.

 

مثال 2 (سطح متوسط)

مثال اثبات دانش صفر کریپتو

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

اثبات دانش صفر

آلیس: من می‌دانم والدو کجاست! من می‌توانم به شما ثابت کنم که او کجاست بدون اینکه مکانش را نشان دهم.

آلیس برای دفاع از حرف خود دو راه حل برای اثبات دانش خود ابداع می‌کند.

 

اثبات 1

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

مثالی از اثبات دانش صفر

اثبات 2

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

اثبات دانش

مثال 3 (سطح متوسط): مثال مدرک عضویت

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

مثال اثبات دانش صفر

تأیید کننده یک پیام مخفی می‌نویسد و آن را در گاو صندوق قفل شده قرار می‌دهد.

مثال اثبات دانش صفر

اثبات‌کننده از کد ترکیبی آگاهی دارد و گاو صندوق قفل شده را باز می‌کند.

مثال اثبات دانش صفر

اثبات کننده پیام مخفی را به تایید کننده می‌گوید.

تأیید کننده متقاعد شده است که اثبات کننده کد ترکیبی را می‌داند، پس بنابراین می‌توان به او اعتماد کرد.

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

مثال اثبات دانش صفر

مثال 4 (سطح پیشرفته)

غار علی بابا

غار علی بابا و اثبات دانش صفر

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

تصور کنید یک غار با یک ورودی اما دو مسیر (مسیر A و B) وجود دارد که توسط یک در مشترک قفل شده توسط یک رمزعبور به هم متصل می‌شوند.

آلیس می‌خواهد  بدون این که رمز را مستقیم به باب بگوید، به او ثابت کند که رمز ورود به در را می‌داند.

برای این کار، باب بیرون از غار می‌ایستد و آلیس در یکی از دو مسیر (بدون اینکه باب بداند کدام مسیر را طی کرده است) در داخل غار قدم می‌زند. سپس باب از آلیس می‌خواهد که یکی از دو مسیر را به سمت ورودی غار (به صورت تصادفی انتخاب شده) طی کند.

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

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

 

خیلی خب، 4 مثال را بررسی کردیم و برویم که باقی مطالب را در خصوص اثبات دانش صفر خدمت شما بیان کنیم.

درک اثبات دانش صفر

در خصوص اثبات دانش صفر خدمت شما عزیزان توضیح دادیم، اما اثبات دانش صفر شامل چه اجزایی است؟

اثبات دانش صفر چه اجزایی دارد؟

اثبات کننده (Prover): شما دارای برخی اطلاعات محرمانه هستید (به عنوان مثال، دانستن رمز عبور، داشتن پول کافی).

تأیید کننده (Verifier): شخصی می‌خواهد متقاعد شود که شما آن اطلاعات را دارید، اما نه با نشان دادن مستقیم آن.

پروتکل (Protocol): با استفاده از تکنیک‌های رمزنگاری هوشمندانه، درگیر یک فرآیند رفت و برگشتی خاص با تایید کننده هستید.

نتیجه (Outcome): اگر واقعاً اطلاعات را در اختیار دارید، می‌توانید تایید کننده را متقاعد کنید، اما تایید کننده چیزی در مورد خود جزئیات اطلاعات نمی‌داند. مثل این است که ثابت کنید می‌توانید یک در قفل شده را بدون فاش کردن کلید و رمز آن باز کنید.

 

اصول و مفاهیم اثبات دانش صفر

-کامل بودن (Completeness): در صورت داشتن اطلاعات، همیشه می‌توانید تأیید کننده را متقاعد کنید.

-درستی (Soundness): اگر اطلاعاتی ندارید، متقاعد کردن تأییدکننده بسیار دشوار است.

-دانش صفر (Zero-Knowledge): حتی پس از اثبات، تأیید کننده جزئیاتی در مورد اطلاعات مخفی یا محرمانه شما متوجه نمی‌شود.

 

کاربردها و موارد استفاده اثبات دانش صفر در کریپتو

کاربردها و موارد اثبات دانش صفر

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

اگر بخواهیم مثال‌هایی ملموس و کاربردی از zkp بیاوریم می‌توانیم به موارد زیر اشاره کنیم: 

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

  1. حفظ حریم خصوصی تراکنش‌های مالی: ZKPها می‌توانند جزئیات خاصی مانند مبالغ تراکنش یا طرف‌های درگیر را پنهان کنند و در عین حال مشروعیت خود را تایید کنند، حریم خصوصی و امنیت را در ارزهای دیجیتال و امور مالی غیرمتمرکز (DeFi) افزایش دهند.
  2. به اشتراک گذاری داده‌های پزشکی: بیماران می‌توانند ثابت کنند که معیارهای واجد شرایط بودن برای مطالعات تحقیقاتی را بدون افشای اطلاعات حساس پزشکی دارند و امکان به اشتراک گذاری امن داده‌ها برای تحقیقات پزشکی را فراهم می‌کند.

کنترل هویت و دسترسی

  1. راستی‌آزمایی سن: کاربران می‌توانند بدون فاش کردن تاریخ تولد خود ثابت کنند که شرایط سنی را برای سرویس‌های آنلاین دارند.
  2. بررسی‌های «احراز هویت» (KYC): مؤسسات مالی می‌توانند هویت کاربر را تایید کنند و فرآیندهای ورود را ساده و از حریم خصوصی کاربر محافظت می‌کنند.

مدیریت زنجیره تامین

ZKPها را می‌توان برای اثبات منشاء و اصالت محصولات بدون افشای داده‌های حساس تولید، افزایش شفافیت و اعتماد در زنجیره تامین استفاده کرد.

بالابردن امنیت دائوها

رای گیری ناشناس: ZKPها می‌توانند ناشناس بودن رای‌دهندگان و در عین حال انتخابات قابل تایید و غیرقابل دستکاری را تضمین و اعتماد و مشارکت در فرایندهای دموکراتیک را تقویت کنند.

قراردادهای هوشمند

  1. قراردادهای هوشمند می‌توانند از ZKPها برای افشای اطلاعات خاص بر اساس شرایط خاص استفاده کنند. این امکان کنترل دقیق‌تری بر دسترسی به داده‌ها را فراهم می‌کند و می‌تواند برای مواردی مانند بررسی‌های ضد پولشویی و احراز هویت (KYC/AML) یا الزامات انطباق استفاده شود.
  2. -محاسبات قابل تأیید: از ZKP می‌توان برای اثبات اینکه محاسبات پیچیده به درستی خارج از زنجیره انجام شده است، بدون افشای جزئیات آن محاسبات استفاده کرد. این مورد برای ادغام داده‌ها و خدمات خارجی در قراردادهای هوشمند و در عین حال حفظ شفافیت و اعتماد مفید است.

هویت غیرمتمرکز

-هویت خودمختار: ZKPها به افراد اجازه می‌دهند بدون افشای داده‌های اساسی ثابت کنند که دارای ویژگی‌های خاصی هستند (مانند سن و شهروندی). این امر به افراد قدرت می‌دهد تا کنترل بیشتری بر اطلاعات شخصی خود داشته باشند و اتکا به مقامات متمرکز را کاهش می‌دهد.

-اشتراک گذاری انتخابی اعتبار: کاربران می‌توانند به طور انتخابی ویژگی‌های خاصی را از هویت غیرمتمرکز یا DID خود بر اساس نیازهای خاص به اشتراک بگذارند. این مورد اجازه می‌دهد تا تعاملات آگاهانه از حریم خصوصی بیشتر شود و خطر سرقت هویت به حداقل برسد.

 

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

 

چگونه اثبات‌ دانش صفر امنیت ارزهای دیجیتال را افزایش می‌دهند؟

اثبات‌ دانش صفر (ZKP) امنیت ارزهای دیجیتال را از چند طریق افزایش می‌دهند:

تراکنش‌های محرمانه

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

افشای انتخابی

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

محاسبات

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

تطابق با احراز هویت (KYC)

کاربران می‌توانند بدون افشای اطلاعات شخصی حساس، حفظ حریم خصوصی داده‌ها و انطباق با مقررات، ثابت کنند که الزامات خاصی (مانند تأیید سن) را برآورده می‌کنند.

مقاومت بهبود یافته در برابر حملات خاص

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

امنیت پیشرفته

ساختارهای خاص ZKP امنیت قوی‌تری را در برابر پیشرفت‌های آینده در  رمزنگاری ارائه می‌دهند.

با این حال، توجه به این نکته مهم است که ZKPها هنوز در حال توسعه هستند.

انواع اثبات دانش صفر

انواع اثبات دانش صفر

چندین نوع اثبات دانش صفر در رمزنگاری یا کریپتو مورد استفاده قرار می‌گیرد که هر کدام ویژگی‌های خود را دارند. به صورت کلی اثبات دانش صفر به دو دسته تعاملی (Interactive) در مقابل غیرتعاملی (Non-Interactive) تقسیم می‌شود:

ZKPهای تعاملی (IZKPs)

 به ارتباط رفت و برگشتی بین اثبات‌کننده و تأیید کننده نیاز دارند. به عنوان مثال می‌توان به اثبات‌های Fiat-Shamir و Schnorr اشاره کرد.

ZKPهای غیرتعاملی (NIZKPs)

 یک مدرک مستقل ایجاد می‌کند که تأیید کننده بتواند بدون تعامل بیشتر آن را بررسی کند. در این خصوص می‌توان به zk-SNARK و zk-STARK اشاره کرد.

  • zk-SNARKها به دلیل اندازه فشرده و تأیید کارآمد شناخته شده‌اند. آنها شامل رمزنگاری پیچیده و تنظیمات قابل اعتماد هستند و عملکرد خوبی را ارائه می‌دهند.
  •  zk-STARK نیز به شفافیت و امنیت بدون نیاز به اعتماد (Trustless) دست یافته‌اند. آنها از نظر محاسباتی سنگین‌تر از zk-SNARKها هستند اما پتانسیلی برای کاربردهای گسترده‌تر دارند.
  • بولت پروف (Bulletproof) نیز جزو دسته غیرتعاملی است که مدارک کوتاه و غیر تعاملی حریم خصوصی را برای کارهای خاصی مانند تراکنش‌های ارز دیجیتال ارائه می‌کند. آنها نسبت به zk-SNARKها یا zk-STARKها کارآمدتر هستند اما کاربرد عمومی کمتری دارند.
  • -اثبات گروت-ساهای (Groth-Sahai proof): در این مورد اثبات دانش صفر انعطاف‌پذیر و شفاف است که برای اثبات عبارات پیچیده استفاده می‌شوند. آنها از نظر محاسباتی گرانتر از گزینه‌های دیگر هستند.

نمونه‌های از zkp که هم اکنون در دسترس هستند

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

 

زیکش و سایر ارزهای دیجیتال متمرکز بر حفظ حریم خصوصی

  • Zk-SNARKها برای تأیید سن: توسط سرویس‌هایی مانند AgeChecked برای تأیید سن کاربر برای دسترسی به محتوای آنلاین استفاده می‌شود.
  • هوش مک کنزی (McKenzie Intelligence): از ZKPها برای بررسی‌های KYC و در عین حال محافظت از حریم خصوصی داده‌های کاربر استفاده می‌کند.
  • فایل کوین: از ZKPها برای ذخیره سازی کارآمد بلاکچین و بازیابی داده‌ها استفاده می‌کند.

چالش‌های اثبات دانش صفر

چالش‌های اثبات دانش صفر

علاوه بر مزیت‌های اثبات دانش صفر، آن‌ها با چالش‌های متعددی نیز روبرو هستند که باید برای پذیرش گسترده‌تر مورد توجه قرار گیرند:

پیچیدگی محاسباتی

تولید و تایید ZKPها می‌تواند از نظر محاسباتی فشرده باشد و به قدرت پردازش و زمان قابل توجهی نیاز دارد. این مورد می‌تواند برای برنامه‌ها یا سیستم‌هایی با حجم تراکنش‌های بالا یک مانع باشد.

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

مقیاس پذیری و عملکرد

پروتکل‌های فعلی ZKP ممکن است برای استقرار در مقیاس بزرگ با کاربران و تراکنش‌های متعدد مناسب نباشند.

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

عدم وجود ابزار مناسب برای توسعه‌دهندگان

منحنی یادگیری برای توسعه برنامه‌های کاربردی ZKP می‌تواند شیب دار باشد و به تخصص در رمزنگاری و ریاضیات نیاز دارد.

استاندارد سازی

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

ادغام با سیستم‌های موجود

ادغام ZKPها با سیستم‌های قدیمی موجود به دلیل الزامات فنی و مدل‌های امنیتی متفاوت می‌تواند چالش برانگیز باشد.

موانع قانونی و مقرراتی برای پیاده سازی اثبات دانش صفر

چارچوب‌های نظارتی پیرامون راه‌حل‌های مبتنی بر ZKP هنوز در حال تکامل هستند که نیاز به بررسی دقیق برای موارد استفاده خاص دارد.

انطباق با مقررات در پیاده سازی‌های اثبات دانش صفر

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

لازم است که در مسیر رشد zkpها، آن‌ها با موارد مختلفی مثل:

  • قابلیت حسابرسی یا آدیت کردن و تأییدپذیری
  • عدم قطعیت‌های حقوقی

دسته و پنجه نرم کنند.

نگذار دارایی هات از دست بره

روندهای آینده، تحقیق و توسعه در فناوری اثبات دانش صفر

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

افزایش کارایی و مقیاس پذیری

  • طرح‌های جدید ZKP با کارایی و مقیاس پذیری قابل توجهی در مقایسه با طرح‌های موجود هستند. برخی از این نمونه‌ها عبارتند از zk-STARKs، FRI و PLONK.
  • سخت‌افزار: سخت‌افزارهای تخصصی مانند SGX اینتل و تراشه‌های SEV AMD را می‌توان برای محاسبات ZKP، تسریع پردازش و فعال کردن برنامه‌ها بهینه کرد.
  • رمزنگاری پساکوانتومی: ادغام ZKP با رمزنگاری پساکوانتومی امنیت طولانی مدت را در برابر پیشرفت‌های آینده در تحلیل تضمین می‌کند.

تجربه توسعه‌دهنده و استانداردسازی بهبود یافته

  • ایجاد ابزارها و کتابخانه‌های کاربرپسند
  • فعال کردن سیستم‌های هویت غیرمتمرکز (DID)
  • امکان ایجاد قراردادهای هوشمند مقیاس‌پذیر
  • امکان انجام محاسبات حفظ حریم خصوصی

حوزه‌های تحقیقاتی نوظهور

در زیر می‌توانید لیستی از آخرین حوزه‌های تحقیقاتی نوظهور در زمینه zkp را مشاهده کنید:

  • ZKPهای مقاوم در برابر کوانتومی.
  • محاسبات چند جانبه پیشرفته (MPC)
  • رمزگذاری همورفیک و ZKP

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

 

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

اشتراک گذاری

پیام شما

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *