آنچه خواهید خواند:
مکانیسم اثبات دانش صفر (ZK) یک پروتکل رمزنگاری است که یک شخص (اثباتکننده) را قادر میسازد تا دیگری (تأییدکننده) را متقاعد کند که یک ادعای خاص درست است بدون اینکه جزئیاتی درمورد خود ادعا افشا کند.
محققین شفی گلدواسر (Shafi Goldwasser)، سیلویو میکالی (Silvio Micali) و چارلز راکف (Charles Rackoff) این ایده را برای اولین بار در اوایل دهه 1980 ارائه کردند.
هدف اصلی یک مکانیسم دانش صفر(ZK-proof) ، متقاعد کردن تأییدکننده است که یک ادعا بدون افشای هیچ اطلاعاتی درست است و تنها اطلاعاتی که ارائه میشود، دلیل درست بودن ادعا است.
یک مکانیسم ZK-proof خوب، باید سه معیار را برآورده کند
کامل بودن: اگر گزاره درست باشد، تأییدکننده به احتمال زیاد اثبات را میپذیرد و هم اثباتکننده و هم تأییدکننده به پروتکل پایبند هستند.
صحت: اگر ادعا نادرست باشد، هیچ اثباتکنندهای نباید بتواند تأییدکننده خلاف آن را متقاعد کند، مگر در شرایط بسیار بعید.
دانش صفر: حتی پس از برقراری ارتباط با اثباتکننده، تأییدکننده فقط صحت گفته را درک میکند و اطلاعات دیگری از راز ندارد.
اثباتهای دانش صفر (ZK) چگونه کار میکنند؟
بدون وارد شدن به جزئیات فنی، در این بخش به نحوه عملکرد مکانیسم دانش صفر میپردازیم.
همانطور که قبلاً اشاره کردیم، یک اثباتکننده (طرفی که ثابت میکند اطلاعاتی در اختیار دارد) و یک تأییدکننده (طرفی که اثباتکننده را تأیید میکند که اطلاعات را دارد) در این مکانیسم وجود دارد.
در مرحله اول فرآیند، اثباتکننده و تأییدکننده توافق میکنند که از چه پارامترها و الگوریتمهای رمزنگاری استفاده شود.
سپس اثباتکننده یک تعهد رمزنگاریشده ایجاد میکند که بیانیه تأیید شده را بدون افشای محتوای بیانیه نشان میدهد.
تأییدکننده بهطور تصادفی اثباتکننده را به چالش میکشد و اثباتکننده پاسخی را براساس چالش و بیانیه ارائه شده ایجاد میکند.
سپس تأییدکننده آن پاسخ را در مقایسه با چالش و تعهد ارائه شده بررسی میکند تا مشخص کند که آیا این بیانیه واقعاً معتبر است یا خیر.
مراحل بعد از مشخص شدن چالش را میتوان چندین بار تکرار کرد تا اطمینان حاصل شود که این عبارت با سطح بالایی از اعتبار درست است.
اساساً 3 مرحله اصلی در فرآیند اثبات دانش صفر (ZK) وجود دارد تعهد، چالش و پاسخ.
برای یک مثال ساده، دستور تهیه بهترین کلوچههای شکلاتی جهان را فرض کنیم.
باب و آلیس توافق میکنند که برای نشان دادن کیفیت این دستورپخت کلوچه، آلیس کلوچهها را بپزد و باب آنها را بچشد (چشیدن کلوچهها چالشبرانگیز خواهد بود).
آلیس کلوچهها را میپزد، باب آنها را میخورد و در صورت باکیفیت بودن میگوید که طعم آنها شبیه بهترین کلوچههای دنیاست.
برای اطمینان از اینکه فرایند پخت اتفاقی نبوده، باب از آلیس میخواهد که چندین بار کلوچه بپزد و اگر هر بار طعم آنها شبیه بهترین کلوچههای دنیا بود، باب میتواند با درجه بالایی از اطمینان نتیجه بگیرد که آلیس دستورپخت را دارد، در اینجا باب از دستورپخت اطلاعی ندارد و فقط میتواند کیفیت کلوچه را تأیید کند.
مثال بالا یک اثبات تعاملی مکانیسم دانش صفر(ZK) را نشان میدهد که در آن اثباتکننده برای تکمیل اثبات، با تأییدکننده تعامل میکند و ممکن است چندین دور تعامل وجود داشته باشد.
بااینحال، مکانسیمهای دانش صفر (ZKP) غیرتعاملی نیز وجود دارند که در آنها اثبات میتواند توسط اثباتکننده بدون هیچگونه تعامل اضافی با تأییدکننده ایجاد شود.
انواع اثبات دانش صفر (ZKP)
– ZK-proofهای تعاملی (Interactive)
اثباتهای دانش صفر تعاملی، نیاز به ارتباط رفت و برگشتی بین اثباتکننده و تأییدکننده دارند.
– ZK-proofهای غیرتعاملی (Non-interactive)
اثباتهای دانش صفر غیرتعاملی، اثبات فشردهای را ارائه میدهند که میتواند در یک مرحله تأیید شود.
– ZK-proofهای اثبات آماری(Statistical)
اثباتهای آماری دانش صفر، صحت محاسباتی را با احتمال کمی خطا ارائه میدهند.
– PoK یا اثبات دانش (Proof-of-knowledge)
PoK زیرمجموعهای از اثباتهای دانش صفر است که نشان میدهد اثباتکننده دارای دانش خاصی در رابطه با عبارت است.
– اثبات shuffle and range
این ZK-proofها در رأیگیری الکترونیکی و تراکنشهای حفظ حریم خصوصی استفاده میشود.
– پروتکلهای سیگما (Sigma)
پروتکلهای سیگما، کلاسی از ZK-proofها هستند که شامل سه مرحله تعهد، چالش و پاسخ است.
– ضدگلوله (Bulletproofs)
ضدگلولهها بهگونهای طراحی شدهاند که برای مجموعههای بزرگی از مقادیر، مدارهای کارآمد را ارائه دهند.
انواع اثبات دانش صفر (ZKP) در بلاکچین
چندین نوع اثبات دانش صفر وجود دارد که در این بخش محبوبترین ZKPها در بلاکچین را معرفی میکنیم
ZK-SNARKs: مخفف عبارت Zero-Knowledge Succinct Non-Interactive Argument of Knowledge است.
این مکانیسم نوعی اثبات دانش صفر (ZK) است که نیازی به تعامل بین اثباتکننده و تأییدکننده ندارد. آنها “مختصر” هستند زیرا اندازه اثبات کوچک بوده و تأیید سریع است.
اکثر ZK-SNARKS از رمزنگاری منحنی بیضوی و یک راهاندازی قابلاعتماد برای تولید پارامترهای ZKPها استفاده میکنند.
SNARKها درحالحاضر یکی از رایجترین انواع اثبات ZK در کریپتو هستند.
ZK-STARKs: این نوع اثبات، استدلالهای شفاف و مقیاسپذیر دانش صفر و مشابه SNARKها هستند اما با چند تفاوت.
STARKها از توابع هش بهجای منحنیهای بیضوی استفاده میکنند و برخلافSNARK ها، به یک تنظیم قابلاعتماد متکی نیستند و شفافتر میباشند.
آنها همچنین با سیستم پساکوانتومی(post-quantum) ایمن میشوند؛ به این معنی که حتی در مواجهه با پیشرفتهای محاسبات کوانتومی، ایمن باقی میمانند.
STARKها مقیاسپذیرتر از SNARKها هستند (آنها میتوانند محاسبات بزرگتری را انجام دهند) اما به هزینههای کارمزد بیشتری نیاز دارند.
اهمیت اثباتهای دانش صفر (ZK)
دو دلیل اصلی برای استفاده از ZKP وجود دارد که عبارتند از حریم خصوصی و مقیاسپذیری.
حریم خصوصی و شفافیت یکسان نیستند. بسیاری از موقعیتها در زندگی واقعی نیاز به ناشناس بودن و حفاظت از دادههای افراد دارند. در دنیایی که شرکتهای بزرگ از دادههای شخصی ما پولهای هنگفتی به دست میآورند، حفاظت از اطلاعات با مکانیسم دانش صفر اهمیت بالایی دارد.
ZK-proofs ابزارهای مفیدی هستند که کاربردهای زیادی در زمینههای مختلف دارند و به مسائل مهم حریم خصوصی و امنیتی میپردازند.
ZK-proofها در دنیای ارزهای دیجیتال برای بهبود حریم خصوصی تراکنشها و مقیاسپذیری بسیار مهم هستند. آنها امکان تراکنشهای ناشناس را بدون افشای جزئیات تراکنش یا هویت کاربران فراهم میکنند. برای مثال، ارز دیجیتال متمرکز بر حریم خصوصی Zcash با توکن zec را میتوانیم نام ببریم.
از ZK-proofs میتوان در زمینههای احراز هویت و کنترل دسترسی برای اعتبارسنجی رمز عبور یا کلید رمزنگاری بدون افشای رمز یا کلید خود استفاده کرد. این امر منجر به تکنیکهای احراز هویت کاربرپسند و امنتر میشود.
ZK-proof همچنین در سیستمهای رأیگیری الکترونیکی استفاده میشود، جایی که به رأیدهندگان اجازه میدهد تا مشروعیت رأی خود را بدون افشای رأی واقعی ثبت کنند و از حریم خصوصی رأیدهندگان و یکپارچگی فرآیند انتخابات محافظت کنند.
ZK-proofها همچنین پیامدهایی برای انتقال و تأیید امن دادهها دارند و به یک طرف قرارداد، امکان نشان دادن دقت محاسبات روی دادههای خصوصی بدون افشای خود دادهها را میدهند.
اثبات دانش صفر میتواند حریم خصوصی تراکنشها را در ارزهای دیجیتال بانک مرکزی (CBDCs) با تسهیل تراکنشهای خصوصی و حفظ ناشناس بودن کاربران بهبود بخشد. با متعادل کردن حریم خصوصی و شفافیت در معاملات CBDC، مکانیسم دانش صفر قابلیت ممیزی را بدون افشای جزئیات تراکنش امکانپذیر میکند.
معایب اثبات دانش صفر چیست؟
مکانیسمهای دانش صفر (ZK-proof) مزایای حفظ حریم خصوصی و امنیتی را ارائه میدهند، اما میتواند از نظر محاسباتی فشرده و پیچیده باشند.
توسعه و تأیید اثباتهای ZK میتواند از نظر منابع و محاسبات فشرده باشد، بهویژه برای اثباتهای پیچیدهتر. این امر میتواند منجر به زمان پردازش طولانیتر تراکنشها و کارهای محاسباتی بیشتر شود که ممکن است مقیاسپذیری سیستمهای بلاکچین را دشوارتر کند.
علاوهبر این،ZK-proofs ممکن است لایهای از پیچیدگی را اضافه کند که ممکن است ممیزی و تأیید پروتکل را دشوارتر کند و نگرانیهایی را درمورد نقص یا باگهای امنیتی احتمالی ایجاد کند. علاوهبر این، درحالیکه ZK-proofها حریم خصوصی را با پنهان کردن اطلاعات بهبود میبخشند، ممکن است فعالیت غیرقانونی را در برخی شرایط تسهیل کنند و مشکلاتی را برای انطباق با مقررات ایجاد نمایند. همچنین، احتمال دارد که ZK-proofها برای همه موارد یا بخشها مناسب نباشند، زیرا برای پیادهسازی صحیح، به آموزش و تجربه خاصی نیاز دارند و ممکن است از استفاده گسترده و پذیرش آنها در بسیاری از زمینهها جلوگیری کند.
اگرچه ZK-proof ویژگیهای مفیدی برای حفظ حریم خصوصی و امنیتی ارائه میکند، اما معایب آنها مستلزم مطالعه و ارزیابی دقیق مبادلات مرتبط قبل از پذیرش آنها در سیستمها یا برنامههای خاص میباشد.