ارز دیجیتال
اثبات صفر-دانش (ZKP)
تعریف
اثبات صفر-دانش (ZKP) یک روش رمزنگاری است که صحت یک بیان را بدون افشای دادههای مخفی زیرین اثبات میکند.
مدل اثبات صفر-دانش (ZKP) چیست؟
یک اثبات صفر-دانش (ZKP) روشی است برای اینکه یک طرف (اثباتکننده) دیگری (تأییدکننده) را قانع کند که یک ادعا درست است—بدون اینکه اطلاعات خصوصی که آن را درست میکند، فاش شود. به عبارت دیگر، تأییدکننده فقط یک چیز را میآموزد: بیانیه درست است. این موضوع بهویژه در رمزنگاری مفید است زیرا بلاکچینها بهگونهای طراحی شدهاند که شفاف باشند، اما بسیاری از معاملات و کاربردهای دنیای واقعی به حریم خصوصی، افشای انتخابی یا محرمانگی نیاز دارند.
مدل اثبات صفر-دانش (ZKP) چگونه کار میکند؟
در سطح بالا، یک ZKP عبارت «به من اعتماد کن» را به «من را تأیید کن» تبدیل میکند. اثباتکننده یک راز (مانند یک رمز عبور، موجودی حساب یا یک امضای معتبر) دارد و میخواهد ثابت کند که شرایطی را برآورده میکند (مانند «من مجاز به برداشت هستم» یا «این معامله مطابق قوانین است») بدون اینکه خود راز را فاش کند.
بیشتر سیستمهای ZKP حول سه تضمین اصلی ساخته شدهاند:
1. کامل بودن: اگر بیانیه درست باشد و اثباتکننده پروتکل را دنبال کند، تأییدکننده اثبات را قبول خواهد کرد. 2. صحت: اگر بیانیه نادرست باشد، یک اثباتکننده تقلبی نباید بتواند بهطور مداوم تأییدکننده را فریب دهد. 3. صفر-دانش: اثبات هیچ رازی را فاش نمیکند—فقط حقیقت بیانیه را.
یک روش ساده مرحله به مرحله برای فکر کردن به آن در اصطلاحات رمزنگاری به این شکل است:
1. تعریف بیانیه: به عنوان مثال، «من یک کلید مخفی دارم که این آدرس را کنترل میکند»، یا «این انتقال سکههایی از هوا ایجاد نمیکند.» 2. کدگذاری قوانین: بیانیه بهعنوان مجموعهای از محدودیتهای ریاضی بیان میشود (که اغلب بهعنوان «مدار» در سیستمهای ZK توصیف میشود). 3. تولید یک اثبات: اثباتکننده از ورودیهای خصوصی خود (راز) و ورودیهای عمومی (چیزی که همه میتوانند ببینند) برای محاسبه یک اثبات فشرده استفاده میکند. 4.
تأیید اثبات: تأییدکننده اثبات را با استفاده از اطلاعات عمومی بررسی میکند. اگر تأیید شود، تأییدکننده قانع میشود که قوانین رعایت شدهاند—بدون اینکه ورودیهای خصوصی را یاد بگیرد.
یک تشبیه مفید: تصور کنید که میخواهید ثابت کنید که به اندازه کافی بزرگ هستید تا وارد یک مکان شوید بدون اینکه تاریخ تولد خود را نشان دهید. به جای ارائه شناسنامهتان (که جزئیات اضافی را فاش میکند)، یک اثبات رمزنگاری «بله/خیر» ارائه میدهید که نشان میدهد سن شما حداقل به آستانه مورد نیاز میرسد. نگهبان فقط میآموزد که شما واجد شرایط هستید، نه سن دقیق یا جزئیات هویتی شما.
در سیستمهای بلاکچین، ZKPها معمولاً در دو الگوی کلی ظاهر میشوند:
- اثباتهای حریم خصوصی: جزئیات معامله (مانند مقادیر یا شرکتکنندگان) را پنهان کنید در حالی که هنوز اثبات میکنید که معامله معتبر است.
- اثباتهای اعتبار: اثبات کنید که یک دسته از محاسبات یا معاملات به درستی اجرا شده است، به طوری که دیگران بتوانند به نتیجه اعتماد کنند بدون اینکه تمام کار را دوباره انجام دهند.
مدل اثبات صفر-دانش (ZKP) در عمل
ZKPها در حال حاضر در بخشهای مختلفی از استک رمزنگاری استفاده میشوند.
- ZK رولآپها (مقیاسپذیری): بسیاری از شبکههای لایه 2 از ZKPها برای اثبات اینکه دستههای بزرگ معاملات به درستی خارج از زنجیره پردازش شدهاند، استفاده میکنند و سپس یک اثبات مختصر را به یک بلاکچین لایه 1 ارسال میکنند. این هزینهها را کاهش میدهد و توان عملیاتی را افزایش میدهد در حالی که امنیت زنجیره پایه را به ارث میبرد.
- معاملات خصوصی و دادههای محافظتشده: پروتکلهای متمرکز بر حریم خصوصی از ZKPها برای نگهداشتن جزئیات حساس معاملات پنهان در حالی که هنوز قوانین اصلی را اجرا میکنند (هیچ دوبارهخرجی، موجودیها جمع میشوند، هزینههای مجاز، و غیره).
- هویت و انطباق با افشای انتخابی: ZKPها میتوانند از جریانهای کاری «اثبات یک ویژگی، نه داده» پشتیبانی کنند—مانند اثبات اینکه شما در لیست تحریمها نیستید، یا اینکه بالای یک سن خاص هستید، بدون اینکه هویت کامل خود را فاش کنید. این ایده بهطور فزایندهای برای هویت زنجیرهای، کنترل دسترسی و موارد استفاده تحت نظارت مرتبط است.
- [اوراکلها](internal:glossaryEntry:yS625NFNj2jCznNNnSYETH) و دادههای خارج از زنجیره [تأییدیهها](internal:glossaryEntry:JlhB0rwM152rmYoMoGl0Oh): برخی از طراحیهای اوراکل از تکنیکهای رمزنگاری مرتبط با صفر-دانش برای اثبات اینکه دادهها از یک منبع خاص آمدهاند یا شرایط خاصی را برآورده میکنند، در حالی که دادههای زیرین را خصوصی نگه میدارند، استفاده میکنند. این میتواند زمانی مهم باشد که قراردادهای هوشمند نیاز به واکنش به اطلاعات مالکیتی یا حساس دارند.
چرا اثبات دانش صفر (ZKP) مهم است
اثباتهای دانش صفر مهم هستند زیرا به حل یک تنش اصلی در دنیای کریپتو کمک میکنند: قابلیت تأیید عمومی در مقابل حریم خصوصی.بلوکچینها بهخاطر این که هر کسی میتواند تأیید کند که قوانین رعایت شدهاند، قدرتمند هستند—اما همان شفافیت میتواند رفتار کاربران، روابط تجاری و دادههای مالی حساس را افشا کند.
ZKPها یک مسیر میانه عملی ارائه میدهند:
- کاربراناز حریم خصوصی بهتر و احراز هویت ایمنتر بهرهمند میشوند (به معنای این که دادههای شخصی کمتری به اشتراک گذاشته میشود، به معنای نشت دادههای کمتر است).
- توسعهدهندگانمیتوانند برنامههایی بسازند که به محرمانگی نیاز دارند—مانند رأیگیری خصوصی، موقعیتهای خصوصی DeFi یا جریانهای کاری شرکتی—بدون اینکه از قابلیت تأیید صرفنظر کنند.
- شبکههامیتوانند زمانی که ZKPها به عنوان اثباتهای صحت استفاده میشوند، به طور مؤثرتری مقیاسپذیر شوند، زیرا یک اثبات کوچک میتواند جایگزین مقدار زیادی محاسبات شود.
بدون ZKPها، بسیاری از سیستمها باید بین (الف) افشای اطلاعات بیش از حد برای اثبات صحت یا (ب) اتکا به واسطههای مورد اعتماد و پایگاههای داده خصوصی انتخاب کنند. ZKPها این تعادل را با ایجاد «حریم خصوصی بدون اعتماد» و «محاسبات قابل تأیید» بر روی زیرساخت عمومی کاهش میدهند.
پرسشهای متداول
اثبات عدم دانش (ZKP) به زبان ساده چیست؟
اثبات عدم دانش به شما این امکان را میدهد که چیزی را بدون نشان دادن جزئیات مخفی که آن را درست میکند، اثبات کنید. تأییدکننده فقط میفهمد که ادعای شما معتبر است، نه دادههای زیرین.
اثبات عدم دانش چگونه بر روی یک بلاکچین کار میکند؟
یک کاربر یک اثبات رمزنگاری تولید میکند که یک تراکنش یا محاسبه طبق قوانین انجام شده است، سپس شبکه آن اثبات را با استفاده از اطلاعات عمومی تأیید میکند. زنجیره میتواند نتیجه را بدون دیدن ورودیهای خصوصی مانند مقادیر، هویتها یا مراحل میانی بپذیرد.
سه ویژگی اثباتهای عدم دانش چیست؟
این ویژگیها شامل کامل بودن (بیانیههای درست میتوانند اثبات شوند)، صحت (بیانیههای نادرست نمیتوانند توسط متقلبان اثبات شوند) و عدم دانش (اثبات هیچ اطلاعات مخفی فراتر از اعتبار را فاش نمیکند) هستند. این ویژگیها تعریف میکنند که چه چیزی یک اثبات را هم قابل اعتماد و هم خصوصی میسازد.
آیا ZKPها فقط برای حفظ حریم خصوصی هستند؟
خیر—ZKPها همچنین به طور گستردهای برای مقیاسپذیری و کارایی استفاده میشوند. اثباتهای اعتبار میتوانند تأیید کنند که بسیاری از تراکنشها به درستی پردازش شدهاند بدون اینکه هر تأییدکننده مجبور باشد تمام محاسبات را دوباره انجام دهد.
تفاوت بین عدم دانش و عدم اعتماد چیست؟
عدم دانش یک تکنیک رمزنگاری برای اثبات بیانیهها بدون فاش کردن اسرار است. عدم اعتماد یک مدل امنیتی است که فرض میکند هیچ کاربر یا دستگاهی به طور پیشفرض نباید مورد اعتماد باشد و نیاز به تأیید مداوم دارد؛ ZKPها میتوانند یکی از ابزارهای مورد استفاده در یک سیستم عدم اعتماد باشند.