پروتکل اثبات دانش صفر (ZKP) از جمله روشهای احراز هویت و راستیآزمایی اطلاعات است که در آن هیچ اطلاعات حساسی مبادله نمیشود. به همین دلیل، این روش بسیار ایمن تلقی میشود. هیچ کدام از طرفین تبادل اطلاعات هم حتی کاملاً نمیدانند که چه فایلها یا اطلاعاتی را منتقل میکنند.
مکانیزم اثبات دانش صفر به شما اجازه میدهد که بدون افشای اطلاعات حساس به طرف مقابل نشان بدهید که مالک اطلاعات هستید. لفظ «صفر» در نام این مکانیزم به جزئیات و رمزهایی اشاره دارد که مبادله میشود (همانطور که گفته شد، هیچ اطلاعاتی به شخص مقابل افشا نمیشود). با همه اینها، شخص ثانویه یا گیرنده (همان «اعتبارسنج») مطمئن خواهد شد که فرستنده اصل اطلاعات (و شاید رمز مربوطه به آن) را میداند.
اما منظور از رمز اطلاعات در دنیای کریپتو چیست و چرا شما باید بدون بیان آن ثابت کنید که این رمز را میدانید؟ اصلاً اگر به شخص مقابل اعتماد ندارید، چرا نیاز است که او را قانع کنید که چیزی را میدانید؟ این پروسه به چه صورت است و چگونه اعمال میشود؟
تاریخچه اثبات دانش صفر
مکانیزم «دانش صفر» اولین بار در 1985 در مقالهای تحت عنوان «بحران دانش در سیستمهای تعاملی اثبات» (The knowledge complexity of interactive proof systems) بیان شد. در این مقاله به بیان اصول اساسی اثبات دانش صفر اشاره شده است:
«پروتکل دانش صفر یک مکانیزم امن است که در آن یک فرستنده (یا همان اثباتکننده) میتواند ثابت کند که یک دسته اطلاعات درست است. نکته اینجاست که نیازی نیست که گیرنده (یا اعتبارسنج) در این راستا اطلاعات زیادی را افشا کند و فقط تلاش میکند که با کمترین جزئیات نشان دهد که گزاره بالا درست است.»
شرایط گواهی Zkp
اثباتکننده باید از گواهیهای اثبات برای تصدیق اطلاعات خود استفاده کند.

یک گواهی اثبات شامل موارد زیر است:
- شمول: اگر گزاره مورد نظر کاملاً از لحاظ منطقی درست به نظر بیاید، تقریباً اعتبارسنج اطمینان حاصل میکند و متقاعد میشود که جای بحثی وجود ندارد.
- سلامت: اگر گزاره مورد نظر غلط باشد، سیستمهای اثبات اجازه نمیدهند که تقلب به وجود بیاید. این اتفاق باعث میشود که اثباتکننده به هیچ وجه نتواند خلاف این موضوع را نشان بدهد.
- دانش صفر: اگر گزاره درست باشد، اعتبارسنج هیچ اطلاعات مضاعفی را (فارغ از صحت گزاره) به دست نخواهد آورد.
انواع پروتکل دانش صفر
مکانیزم دانش صفر دارای دو نوع حالت کلی است. به طور کلی، نتیجه نهایی یکسان است و هر دو روش تلاش میکنند که با کمترین اطلاعات نشان دهند که در حال ارسال رشته اطلاعات درستی هستند. این دو روش عبارتند از: اثبات دانش صفر تعاملی (Interactive zero-knowledge proof) و اثبات دانش صفر غیر تعاملی (Non-interactive zero-knowledge proof).
اثبات دانش صفر تعاملی
در اثبات دانش صفر تعاملی، هر دو طرف اثباتکننده و اعتبارسنج باید در یک مکالمه شرکت کنند. اثباتکننده در طول این گفتگو نشان میدهد که گزاره درستی را ارسال کرده است.
اثبات دانش صفر غیر تعاملی
در اثبات دانش صفر غیر تعاملی، اثباتکننده باید تنها یک پیام به اعتبارسنج ارسال کند. اعتبارسنج هم باید اعتبار این گواهی را بدون مکالمه بیشتر بسنجد.
نحوه عملکرد اثبات دانش صفر
همان طور که گفتیم در هر دو روش اثبات دانش صفر تلاش میشود که اثباتکننده با کمترین افشای اطلاعات ثابت کند که اطلاعات محرمانه را در اختیار دارد.
اما بیایید با دو مثال شما را بهتر با Zkp آشنا کنیم و هر دو نوع آن را نیز بهتر بررسی کنیم. در مثال اول فرض کنید که مسئله توانایی یک فرد برای باز کردن گاو صندوق مورد بحث باشد. شما میخواهید به دوستتان ثابت کنید که رمز عبور گاو صندوق را در اختیار دارد و در عین حال دو طرف نمیتوانند و نمیخواهند که رمز عبور را مستقیماً از یکدیگر بپرسند. در این حالت، اثبات دانش صفر تعاملی به وجود میآید. هر دو طرف تصمیم میگیرند که به صورت غیر مستقیم این موضوع را حل کنند.

اعتبار سنج یک برگه را درون گاو صندوق قرار میدهد و یک نوشته را بر روی آن مینویسد. شما با باز کردن درب گاو صندوق و تکرار پیام به فرستنده بدون افشای اطلاعات حساس نشان میدهید که رمز عبور را در اختیار داشتهاید.
کشورهای غربی دارای یک آلبوم تحت عنوان «والدو کجاست؟» (Where is Waldo?) هستند. این آلبومها حاوی عکسهایی شلوغ مملو از کاراکترهای مختلف هستند و شما باید شخصیت والدو (با لباس راهراه سفید و قرمز) را در آنها پیدا کنید.
برای درک بهتر اثبات دانش صفر غیر تعاملی میتوانیم همین آلبومها را در نظر بگیریم. شما به عنوان اثباتکننده فقط یک عکس کوچک از کاراکتر والدو را برش میدهید و همین عکس را به اعتبارسنج نشان میدهید. اعتبارسنج نمیداند که والدو کجاست و شاید حتی خودش هم این اطلاعات حساس را الزاماً در اختیار نداشته باشد، ولی هر دو یک نقطه مشترک دارید و اعتبارسنج مطمئن میشود که شما اطلاعات حساس را به صورت کلی در اختیار دارید. در اثبات دانش صفر غیر تعاملی، روند تأیید اطلاعات نیاز به پروسههای طولانی گفتگو ندارد و به یک نمای کلی به نتیجه میرسد.
اثبات دانش صفر اسنارک (zero knowledge SNARK)
«اسنارک» (SNARK) در لفظ به معنای «مباحثه مختصر غیر تعاملی دانش» (Succinct, Non-interactive, ARguments of Knowledge) است. این روش از اجرای دانش صفر را میتوان کاربردیترین نوع آن در جهان کریپتو دانست.

هر دو طرف یک تراکنش (هم اثباتکننده و هم اعتبارسنج) به صورت ضمنی از صحت اجرا و بررسی اطلاعات مطمئن میشوند. این اتفاق از طریق فناوری رمزنگاری و خصوصاً به واسطه کلید خصوصی (و البته بدون افشای آن میان طرفین) انجام میگیرد.
نحوه استفاده از مکانیزم دانش صفر در حوزه کریپتو
اطلاعات در حوزه کریپتو به صورت رمزنگاری در میآیند و یک رشته از اعداد و حروف به نمایندگی از اطلاعات اصلی به وجود میآید. از جمله ویژگیهای مهم توابع هش میتوان به «عدم امکان برگرداندن اطلاعات از مقصد به مبدأ» و «منحصر به فرد بودن اطلاعات» اشاره کرد.
هر کاربر یک کلید خصوصی منحصر به فرد در شبکه دارد و به کمک آن کلید میتواند قرارداد یا تراکنش خود را رمزگشایی کند یا آن را امضای الکترونیکی کند. اثباتکننده در شبکههای اثبات دانش صفر باید بدون افشای اطلاعات تراکنش یا کلید خصوصی خود نشان دهد که دارنده کلید خصوصی است و اطلاعات اصلی را دارد که هش آن همان عبارتی است که اعتبارسنج هم در اختیار دارد.
مکانیزم اثبات دانش صفر در آینده بازار کریپتو
فناوری بلاک چین توانسته فرصتهای بیشماری را در حوزههای مختلف مالی و غیر مالی به وجود بیاورد. بلاک چین در واقع همان دفاتر بایگانی دیجیتال هستند که اطلاعات را به صورت زنجیرهای و پیوسته به یکدیگر متصل میکنند. همه کاربران میتوانند با دانلود این دفاتر به همه اطلاعات دسترسی داشته باشند و آنها را مشاهده و بررسی کنند.
اساساً ماهیت رمز ارزها از همان ابتدا بر پایه تمرکززدایی و عدم انتشار اطلاعات به اشخاص ثالث بنا شد. به همین دلیل است که این مکانیزم یک انتخاب مناسب برای حفظ حریم خصوصی کاربران است که پروسه سنجش اعتبار اطلاعات را هم میتواند با سرعت بیشتر و مقیاسپذیری بهتر به پیش ببرد.

پروتکلهای Zkp مسلماً شاخصترین فناوری در آینده بلاکچینها به شمار میآیند. کاربردهای این فناوری بسیار گسترده است و در حوزههای مختلف همچون اثبات رمز عبور، اثبات هویت و اثبات عضویت میتوانند به کار گرفته شوند.
همین حالا هم رمز ارزهای زیادی هستند که از اثبات دانش صفر به عنوان اصلیترین مکانیزم اجماع خود استفاده میکنند. از جمله این کریپتوکارنسیها میتوانیم به مونرو (Monero) و زی کش (ZCash) اشاره کنیم که اثبات دانش صفر را برای تقویت حریم خصوصی خود به کار میبرند. همچنین رمز ارز دیگری مثل مینا (Mina) از اثبات دانش صفر حتی برای احراز هویت افراد هم استفاده میکند. شما برای احراز هویت از این طریق نیازی به افشای اطلاعات شخصی خود ندارید.
بسیاری از رمزارزها دارای توکن حاکمیتی هم هستند. این توکنها برای رأیگیری نسبت به رویدادهای آتی یک پروژه به کار گرفته میشوند تا مدیریت پروژه ترجیحاً شبیه به یک سازمان مستقل غیر متمرکز (DAO) انجام شود. در این راستا هم مکانیزمهای اثبات دانش صفر میتوانند بستری را فراهم کنند تا کاربران بتوانند به صورت ناشناس رأیهای خود را ثبت کنند و همچنین اطمینان حاصل کنند که رأیشان قطعاً مورد شمارش قرار گرفته است.
با توجه به ماهیت رمزنگاریشده و اهمیت اختفای اطلاعات از شخص مقابل طبیعی است که اثبات دانش صفر را به عنوان یکی از مهمترین مکانیزمهای اجماع بشناسیم.
فواید اثبات دانش صفر
دلایل زیادی وجود دارد که چرا اثبات دانش صفر مهم و کارآمد است و تا این حد در دنیای کریپتو به کار گرفته میشود. از جمله ویژگیهای اثبات دانش صفر باید به موارد زیر اشاره کرد:
- حریم خصوصی و امنیت: این مکانیزم به شما اجازه میدهد که اطلاعات اصلی را بدون افشای اطلاعات حساس با گیرنده در میان بگذارد. این روند باعث میشود که شبکه به امنیت و حریم خصوصی بالایی برسد. در نتیجه، به خوبی میتوان از اثبات دانش صفر در حوزههای مالی و شخصی استفاده کرد.
- سازگاری: مکانیزم ZKP با قوانین مختلف (از جمله پروتکلهای حفظ حریم خصوصی) سازگار است. به همین دلیل است که از این مکانیزم در پروسههای «احراز هویت مشتری» (KYC) یا «جلوگیری از پولشویی» (AML) استفاده میشود.
- مقیاسپذیری: در اثبات دانش صفر مطمئناً تبادل اطلاعات کمتری صورت میگیرد. به همین دلیل است که مقیاسپذیری در شبکه افزایش مییابد.
- تعاملپذیری: پروتکل اثبات دانش صفر باعث میشود که بلاکچینهای مختلف بتوانند با یکدیگر تعامل داشته باشند. به کمک این مکانیزم میتوانیم یک روش امن و اختصاصی را برای بهاشتراکگذاری اطلاعات به وجود بیاوریم.
- احراز هویت: پروتکل ZKP میتواند برای احراز هویت امن و اختصاصی به کار برود و زمانی استفاده میشود که کاربر بخواهد هویت خود را بدون افشای اطلاعات فردی خود ثابت کند.

موانع مکانیزم ZKP
اگر چه پروسه دانش صفر میتواند یک شبکه غیر متمرکز و بدون نیاز به اعتماد را به وجود آورد که صحت اطلاعات در آن به صورت بهینه تأیید میشود، اما همچنان مشکلاتی هم پیش روی کاربران این نوع شبکهها وجود دارد که در ادامه برخی از این معضلات را بررسی میکنیم.
اول از همه باید گفت که مسئله «اعتماد» هیچ گاه در این مکانیزمها به صورت 100 درصد تضمین نمیشود. با هر کدام از پروسههای غیر مستقیم اثبات دانش صفر مطمئناً احتمال تأیید اشتباه اطلاعات کاهش پیدا میکند. با این وجود نمیتوان 100 درصد مطمئن شد که اثباتکننده قطعاً صادقانه رفتار میکند. به همین دلیل است که مکانیزم Zkp از لحاظ ریاضیاتی یک پروسه اثبات جامع و دقیق به حساب نمیآید.
در این مقاله چندان به پروسه رمزنگاری و ریاضیاتی هشهای اطلاعاتی نپرداختیم که برای تضمین ضمنی اطلاعات مورد نیاز هستند. دلیل عدم اشاره به این موضوع دقیقاً همین مسئله پیچیدگی آنهاست. این پروسه پیچیده باعث میشود که معضل دیگری برای شبکههای دانش صفر به وجود بیاید و اعتبارسنجها در این شبکهها مجبور شوند تعامل زیادی با اثباتکننده داشته باشند یا در اثبات دانش صفر غیر تعاملی مجبور شوند قابلیت محاسباتی زیادی را صرف اطمینان از صحت اطلاعات کنند. این پروسه کاملاً توسط معادلات و فرمولهای ریاضی انجام میشود که نحوه انجام آنها در این مقاله نمیگنجد. اگر بخواهید از روش دیگری برای اطمینان از اطلاعات اثباتکننده استفاده کنید باید آن اطلاعات را در چهارچوب ریاضی وارد نمایید.
دقیقاً در همین رابطه باید بگوییم که اثبات دانش صفر برای تأیید هر تراکنش نیاز به حدود 2 هزار محاسبه ریاضیاتی دارد. از یک سو، نیاز است که برای بهبود مقیاسپذیری حتیالامکان از محاسبات ساده استفاده شود و از سوی دیگر این محاسبات نباید به حدی آسان باشند که بتوان با کامپیوترهای پیشرفته این کدها را رمزگشایی کرد.
سخن پایانی
روزانه اطلاعات ما مرتباً توسط پلتفرمهای متمرکز (همچون گوگل، فیسبوک و غیره) در اختیار اشخاص ثالث (مثلاً شرکتهای تبلیغاتی) قرار میگیرد. آنها از سبک و سیاق رفتار شما برای شناخت شخصیتتان استفاده میکنند تا متناسب با آن به ارائه خدمات بپردازند.
بیت کوین و سایر رمز ارزهای بعد از آن به منظور تمرکز زدایی از حوزه مالی به وجود آمدند. این ارزها با استفاده از فناوری بلاک چین قصد دارند تا یک بستر شفاف و آزاد را برای تبادل اطلاعات و تراکنشها به وجود بیاورند. با این حال، ایجاد اعتماد و اطمینان از حفظ امنیت اطلاعات مسلماً از جمله موانعی هستند که در آینده این پروژه تأثیر میگذارد.
«مکانیزمهای اجماع» در حوزه کریپتوکارنسی نیاز هستند تا یک بستر برای اطمینان از صحت و سنجش اطلاعات به وجود بیاورند. پروتکل اثبات دانش صفر هم یکی از همین مکانیزمهاست که در آن کاربران میتوانند بدون افشای اطلاعات حساس (مثلاً کلید خصوصی آدرس کیف پول خود یا هویتشان) اقدام به ارسال و دریافت اطلاعات کنند. در این مکانیزم، هم فرستنده اطلاعات (اثباتکننده) و هم گیرنده (اعتبارسنج) بدون در میان گذاشتن اطلاعات حساس مطمئن خواهند شد که اطلاعات صحیح میباشد.
مکانیزم اثبات دانش صفر یک ابزار قوی است که برای افزایش امنیت و حریم خصوصی، سازگاری با قوانین، بهبود مقیاسپذیری و تعاملپذیری به کار گرفته میشود.
با ورود و پذیرش هر چه بیشتر بازار کریپتو طبیعتاً نیاز است که یک ساختار منسجم دیجیتال به وجود بیاید که بر این حوزه نظارت بیشتری داشته باشد. مهمترین رکن یک بازار دیجیتال مالی مربوط به حریم خصوصی و حفاظت اطلاعات میشود که مکانیزم اثبات دانش صفر به خوبی میتواند از پس آن بربیاید. با تلفیق این مکانیزم به همراه فناوریهای رمزنگاری و بلاک چین میتوانیم امیدوار باشیم که آینده روشنی پیش روی بازار کریپتو قرار داشته باشد.
ممنون از مطالب به روز و مفیدتون
سپاس از همراهی شما