بررسی جامع ZKP الگوریتم اثبات دانش صفر
یک تراکنش معمولی بلاک چین آدرس کیف پول طرفین و مبلغ درگیر را نشان می دهد. اگر کسی در زندگی واقعی یکی از طرفهای پشت آدرس را بشناسد، میتواند بداند که چقدر ارزش دارد یا در چه کاری است.
به همین دلیل است که حفظ حریم خصوصی در صنعت بلاک چین در اولویت قرار دارد. اثباتهای دانش صفر لایهای از حریم خصوصی را اضافه میکنند تا فعالیتهای زنجیرهای محتاطانهتر شوند. شرکتهای بلاک چین با سرعت بالایی از اثبات دانش صفر استفاده میکنند. این امر در راه اندازی اخیر ZKEVM ها و ZK-rollup ها مشهود است.
در میان همه هیاهوها، کل ایده ZK باید برای بسیاری از مردم روشن شود. این مقاله به طور کامل هر چیز مهمی را که باید در مورد آن بدانید توضیح می دهد.
اثبات دانش صفر چیست؟
اثبات دانش صفر تکنیکی است که در رمزنگاری مورد استفاده قرار میگیرد که به یکی از طرفین امکان میدهد بدون افشای خود اطلاعات به دیگری ثابت کند که اطلاعات خاصی را میداند.
اگرچه دانش صفر ممکن است یک مفهوم رایج در حال حاضر باشد، اما از سال 1985 وجود داشته است.
این اصطلاح در یک مقاله دانشگاهی با عنوان “پیچیدگی دانش سیستم های اثبات تعاملی” توسط Goldwasser، Micali و Rackoff (1985) ظاهر شد. انگیزه اصلی اثبات اعتبار یک چیز بدون ارائه اطلاعات اضافی در مورد آن بود. این باعث شد که آنها مفهوم الگوریتم اثبات دانش صفر را از طریق چند جمله ای ها و جبر مدرن کشف کنند.
در رمزنگاری، اثبات دانش صفر یا پروتکل اثبات دانش صفر روشی است که توسط آن یک طرف (A) می تواند به طرف دیگر (B) ثابت کند که یک عبارت داده شده درست است، در حالی که A از انتقال هر گونه اطلاعات اضافی در مورد خود، اجتناب می کند.
این به همه طرفها اجازه میدهد بدون نیاز به تبادل رمز عبور یا دادههای شخصی احراز هویت را انجام دهند، به این معنی که نمیتوان آنها را به سرقت برد. به این ترتیب، هیچ طرف دیگری نمی تواند بداند که شما با چه چیزی در ارتباط هستید یا چه فایل هایی را با یکدیگر به اشتراک می گذارید.
الگوریتم اثبات دانش صفر چگونه کار می کند؟
اثبات دانش صفر (ZKP) راهی برای تأیید صحت اطلاعات بدون افشای هیچ چیز دیگری در مورد خود اطلاعات یا اثبات کننده آن اطلاعات است.
خود اصطلاح “دانش صفر” از این واقعیت سرچشمه می گیرد که هیچ اطلاعاتی (“صفر”) درباره راز فاش نمی شود، اما طرف دوم (به نام “تأیید کننده”) (به درستی) متقاعد شده است که طرف اول (به نام “Prover”) راز مورد بحث را می داند.
این به همه طرفها اجازه میدهد بدون نیاز به تبادل رمز عبور یا دادههای شخصی احراز هویت را انجام دهند، به این معنی که نمیتوان آنها را به سرقت برد. به این ترتیب، هیچ طرف دیگری نمی تواند بداند که شما در مورد چه چیزی در ارتباط هستید یا چه فایل هایی را با یکدیگر به اشتراک می گذارید.
اثبات های دانش صفر چگونه کار می کنند؟
اجازه دهید از مثال رایج دوست کور رنگی چارلی و دوستش دیو استفاده کنیم.
تصویری از چارلی و دیو برای توضیح ZKP
بیایید بگوییم دیو (اثبات کننده) یک دوست کوررنگ دارد، چارلی (تأیید کننده) که نمی تواند توپ سبز و قرمز را از یکدیگر تشخیص دهد (در مورد رنگ های مختلف توپ ها اطلاعات صفر دارد).
دیو باید ثابت کند که رنگ توپ ها متفاوت است اما چارلی برای متقاعد شدن به چیزی بیشتر از کلمات شما نیاز دارد. یک روش ZKP برای این مشکل به صورت زیر است:
چارلی هر دو توپ را می گیرد و به دیو اجازه می دهد تا ببیند کدام توپ در کدام دست است (سبز در سمت چپ، قرمز در سمت راست).
سپس، چارلی یا توپ ها را بین دستانش جابه جا می کند یا پشت سرش نمی گذارد.
سپس توپها را به دیو میدهد و از دیو میپرسد که آیا توپها را عوض کرده یا نه. از آنجایی که دیو می تواند توپ سبز را از قرمز تشخیص دهد، به راحتی می تواند پاسخ صحیح را بدهد.
چارلی قانع نشده است. این به این دلیل است که دیو 50٪ شانس دارد که به درستی حدس بزند که آیا توپ ها را عوض کرده است یا نه و توپ ها همچنان می توانند همان رنگ باشند.
با این حال، اگر چارلی چندین بار این کار را تکرار کند، در نهایت، احتمال اینکه دیو به درستی حدس بزند که آیا آنها هر بار توپ ها را عوض کرده اند یا نه، بسیار کم خواهد بود. این به دیو امکان میدهد تا بدون دانستن رنگ واقعی توپها، بررسی کند که رنگهای توپها متفاوت است.
بنابراین، میتوانیم ZKPها را در برنامههای دنیای واقعی اعمال کنیم تا تأیید یک عبارت را فعال کنیم. به عنوان مثال، با استفاده از روشهای ZKP، گیرنده پرداخت میتواند بدون دریافت اطلاعات دیگری در مورد موجودی پرداختکننده، تأیید کند که پرداختکننده موجودی کافی در حساب بانکی خود دارد.
چه معیارهایی برهان های الگوریتم اثبات دانش صفر را تشکیل می دهند؟
یک روش اثبات دانش صفر (ZKP) باید معیارهای زیر را برآورده کند:
- کامل بودن: اگر اطلاعات ارائه شده توسط پروور درست باشد، یک روش ZKP باید تأیید کننده را قادر سازد تا تأیید کند که اثبات کننده حقیقت را می گوید.
- درستی: اگر اطلاعات ارائه شده توسط پروور نادرست است، یک روش ZKP باید به تأیید کننده اجازه دهد که اثبات کننده حقیقت را رد کند.
- دانش صفر: روش ZKP باید هیچ چیز دیگری را به تأیید کننده نشان ندهد جز اینکه آیا اثبات کننده حقیقت را می گوید یا نه.
انواع مختلف اثبات دانش صفر چیست؟
دو نوع اصلی اثبات دانش صفر وجود دارد:
- اثبات های دانش صفر تعاملی: در این نوع ZKP ها، اثبات کننده و تایید کننده چندین بار با هم تعامل دارند. تأییدکننده، اثباتکنندهای را که به این چالشها پاسخ میدهد تا زمانی که تأییدکننده متقاعد شود، به چالش میکشد.
- اثبات های دانش صفر غیر تعاملی: در این نوع از ZKP ها، اثبات ارائه شده توسط اثبات کننده تنها یک بار در هر زمان می تواند توسط تأیید کننده تأیید شود. این نوع ZKP ها به قدرت محاسباتی بیشتری نسبت به ZKP های تعاملی نیاز دارند. آنها همچنین به دلیل سهولت تجربه کاربری بیشتر ترجیح داده می شوند
انواع اثبات دانش صفر
توسعه عظیمی در فضای اثبات دانش صفر صورت گرفته است. در نتیجه، اکنون طرحهای متفاوتی با دانش صفر وجود دارد.
-
ZK-STARK
در سال 2018، الی بن ساسون از Starkware و سه محقق دیگر، STARK – یک استدلال شفاف مقیاس پذیر از دانش را طراحی کردند. اعتبار شهود خارج از زنجیره را ثابت می کند و پاسخ های تایید شده را در زنجیره برمی گرداند.
STARK اندازههای اثبات بزرگتری ایجاد میکند اما به دلیل محاسبات خارج از زنجیره و روشهای تصادفی عمومی، سریعتر، مقیاسپذیرتر و شفافتر از سایر طرحهای ZK است.
-
ZK-SNARK
یکی دیگر از طرحهای محبوب دانش صفر، SNARK مخفف عبارت Succinct Non-Interactive Argument of Knowledge است. SNARK یک پروتکل که برای اثبات دانش در مورد یک مجموعه از اطلاعات به صورت خلاصه و غیر فعال استفاده می شود. این پروتکل برای حفظ حریم خصوصی و امنیت در برخی از برنامه های کاربردی استفاده می شود، از جمله بلاکچین و رمزنگاری.
SNARK ها معمولاً برای اثبات دانش در مورد یک مجموعه از داده ها، مانند اثبات این که یک شخص دارای حق دسترسی به یک سرویس است، استفاده می شود. SNARK ها به صورت خلاصه و غیر فعال عمل می کنند، به این معنی که نیازی به تعامل با سایر اطراف ندارند.
بر خلاف STARK، اندازه های اثبات نسبتاً کوچکتر را کنترل می کند. عدم تعامل یک ویژگی تاثیر اثبات ZK-SNARK است. هم اثبات کننده و هم تأیید کننده فقط یک بار باید با هم تعامل داشته باشند. اینجاست که مراسم راه اندازی مورد اعتماد نیز وارد می شود
«مراسم راهاندازی قابل اعتماد رویهای است که یک بار برای تولید یک داده انجام میشود که باید هر بار که پروتکل رمزنگاری اجرا میشود، استفاده شود.»
هر یک از طرفین باید مقادیر تصادفی یا پارامترهای عمومی را برای شروع مراسم راه اندازی مورد اعتماد ارائه دهند. اما یک خطر وجود دارد، مقادیر تصادفی نباید به یک اثبات کننده نادرست درز کند تا شواهد نادرست ایجاد نکنند. بنابراین، یکی از طرفین باید مقادیر تصادفی خود را حذف کند تا از صحت در تراکنش اطمینان حاصل شود.
-
ZK-SNORK
SNORK مخفف عبارت Succinct Non-Interactive Ecumenical (Universal) Arguments of Knowledge است.
SNORK ها اقتباسی از SNARK با چند تفاوت هستند. اول، آنها جهانی هستند به طوری که یک راه اندازی واحد می تواند برای چندین برنامه کار کند، و پارامترها در یک کتابخانه ذخیره می شوند. ثانیا، تنظیمات مورد اعتماد آنها قابل به روز رسانی هستند.
SNORK ها در حال حاضر دارای 3 تنوع هستند – Sonic، PLONK و Marlin.
-
Sonic (سونیک)
مالر و همکاران (2019) با سونیک آمد. راه اندازی آن پس از اولین مشارکت خاتمه نمی یابد. درعوض، میتواند به اضافه کردن حلقههایی با بیشترین سهم ممکن ادامه دهد. Sonic از شکل قابل توجهی پارامترهای جهانی استفاده می کند. بنابراین کاربر می تواند پارامترها را حتی در لپ تاپ ذخیره و تأیید کند.
-
PLONK
PLONK. Ariel Gabizon، Zachary J. Williamson و Oana Ciobotaru (2022) جایگشتهایی را روی پایههای لاگرانژ برای استدلالهای غیرتعاملی دانش (PLONK) توسعه دادند تا مشکل اصلی Sonic را برطرف کنند: هزینههای سربار ساخت و ساز مقاوم.
PLONK دارای زمان اثبات سریعتر و تأیید کاملاً مختصر است.
-
Marlin (مارلین)
مارلین یک نوع جدید از SNORK ها است. این برای سیستم هایی طراحی شده است که به به جای تأیید فردی به تائید دسته ای نیاز دارند. به طور خلاصه، مارلین به دنبال رفع نارسایی های سونیک است.
-
Bulletproofs
Bunz و همکاران (2017) Bulletproofs را به عنوان یک طرح بدون اعتماد با اثبات های کوتاه معرفی کرد. بر خلاف سایر طرحهای SNARK، این در مورد اعتبار یک عبارت خاص نیست. در عوض، ثابت می کند که یک قطعه از اطلاعات پنهان در محدوده خاصی قرار دارد. برای مثال، Bulletproofs میتواند تأیید کند که آیا جین ژنرال Z است یا خیر، اما سن دقیق را پنهان میکند.
Bulletproof | SNORK | SNARK | STARK | ویژگی ها |
خیر | آره | آره | خیر | راه اندازی قابل اعتماد |
خیر | خیر | خیر | آره | امنیت پس کوانتومی |
محدوده | داده های واقعی | داده های واقعی | داده های واقعی | اثبات |
خیر | آره | خیر | خیر | جهان شمول بودن |
بستگی دارد | یک بار | یک بار | چندین بار | تعامل اثباتکننده و تأییدکننده |
کوچک | کوچک | کوچک | بزرگ | ثابت کردن اندازه |
مزایا و معایب اثبات دانش صفر
مزایای ZKP
اثباتهای دانش صفر، نوآوریهای زیادی را وارد فضای بلاک چین کردند، از جمله؛
- حریم خصوصی داده ها: هیچ افشای داده های مبادله ای وجود ندارد. ناشناس بودن کامل را اجرا می کند.
- امنیت سختتر: ZK از مکانیزمهای رمزنگاری عمیقتر استفاده میکند. در نتیجه امنیت معاملات را افزایش می دهد.
- تراکنشهای سریعتر: منجر به ایجاد نوآوریهای دیگری مانند ZK-rollupها شد که تراکنشهای سریعتر را تسهیل میکنند.
معایب ZKP
اثبات دانش صفر اگرچه در ظاهر خیره کننده نیست، اما دارای محدودیت ها و کاستی هایی است.
- قطعی نیست: هیچ اطمینان 100 درصدی وجود ندارد که مقادیر تولید شده درست باشند. فقط احتمال زیادی وجود دارد که باشند.
- از دست دادن تماس با راز واقعی: از آنجایی که ZK بدون اینکه لزوما اطلاعات پنهان را فاش کند تأیید می کند، ممکن است کسی از راز اصلی واقعی هرگز مطلع نشود.
- پاسخها میتوانند خراب شوند: یک اثباتکننده ناصادق ممکن است جلسات چالش و پاسخ را دستکاری کند تا نتیجه جعلی را بازگرداند.
برخی از برنامه های دنیای واقعی و استفاده از موارد اثبات دانش صفر
مدارک دانش صفر را می توان برای محافظت از حریم خصوصی داده ها در مجموعه ای از موارد مختلف استفاده کرد، مانند:
- فناوری بلاک چین: شفافیت بلاک چین های عمومی مانند بیت کوین و اتریوم، تأیید عمومی تراکنش ها را امکان پذیر می کند. با این حال، این امر همچنین به حفظ حریم خصوصی کمی دلالت دارد و می تواند منجر به نامشخص شدن کاربران شود. اثبات دانش صفر می تواند حریم خصوصی بیشتری را به بلاک چین های عمومی و کاربران آنها معرفی کند.
- امور مالی: ZKP ها می توانند به مشتریان اجازه دهند ثابت کنند که شماره مخفی آنها در محدوده مشخصی قرار دارد. به عنوان مثال، یک متقاضی وام مسکن می تواند ثابت کند که درآمد خود در محدوده قابل قبول است بدون اینکه حقوق دقیق خود را اعلام کند.
- رای گیری آنلاین: ZKP ها می توانند به رای دهندگان اجازه دهند به صورت ناشناس رای دهند و تأیید کنند که رای آنها در شمارش نهایی لحاظ شده است.
- احراز هویت: از ZKP ها می توان برای احراز هویت کاربران بدون تبادل اطلاعات مخفی مانند رمز عبور استفاده کرد.
- یادگیری ماشینی: ZKP ها می توانند به صاحب یک الگوریتم یادگیری ماشین اجازه دهند دیگران را در مورد نتایج مدل بدون افشای هیچ اطلاعاتی در مورد خود مدل ML متقاعد کند.
در پایان
اثبات دانش صفر (ZKP) راهی برای تأیید صحت اطلاعات بدون افشای هیچ چیز دیگری در مورد خود اطلاعات یا اثبات کننده آن اطلاعات است.
رشد استفاده از اینترنت و فعالیتهای آنلاین به کسبوکارها این امکان را میدهد تا مقادیر زیادی از دادههای مشتری را برای به دست آوردن بینش جمعآوری کنند و از داراییهای دادههای کاربر کسب درآمد کنند. از یک طرف، این امکان تجربه کاربری بهتر و شخصی تر را فراهم میکند. اما از سوی دیگر، از آنجایی که این داده ها معمولاً در یک سرور “متمرکز” ذخیره می شوند، می توانند در برابر تهدیدات سایبری و نقض داده ها آسیب پذیر شوند.
فناوریهای تقویتکننده حریم خصوصی (PETs) مانند الگوریتم اثبات دانش صفر (ZKPs) راههایی را برای کسبوکارها فراهم میکنند تا از دادههای حساس خود محافظت کنند.
دیدگاهتان را بنویسید