اثبات دانش صفر (ZKP) چیست؟ آشنایی با الگوریتم Zero Knowledge Proof
تاریخ انتشار: 29 خرداد 1402 | آخرین بهروزرسانی: 15 آذر 1402
زمان مطالعه:
7 دقیقه
الگوریتم اثبات دانش صفر، روشی منحصربهفرد برای اثباتِ داشتن دانشی بدون افشای آن است؛ به این معنی که اثباتکننده دانش دارد، اما خود اطلاعات را منتشر نمیکند.
اثبات دانش صفر (ZKP) فناوری پیشرفتهای است که در زمینههای مختلف به ویژه در حوزه بلاک چین مورد توجه قرار گرفته است. این فناوری امکان تایید اطلاعات را بدون نیاز به افشای دادههای اساسی فراهم کرده و سطح بالایی از امنیت و حریم خصوصی را ارائه میدهد. پیشتر در مقاله بلاک چین چیست؟ درباره این فناوری نوظهور، کاربردهای آن و سطوح امنیتی که برای فعالیت در فضای مجازی فراهم میکند، صحبت کردیم، حال در این مقاله از بیت پین، با ما همراه باشید تا با یکی از الگوریتمهای به کاررفته در بلاک چینها به نام اثبات دانش صفر (ZKP)، چرایی ضرورت وجود این الگوریتم و کاربردش در بلاک چین آشنا شویم.
اثبات دانش صفر یا ZKP (مخفف Zero knowledge Proof) تایید اعتبار یک ادعا را بدون افشای هیچ جزئیاتی در مورد ادعای موردنظر، امکانپذیر میکند. درواقع، روشی برای احراز هویت است که در آن هیچ رمز عبوری ردوبدل نمیشود، پس امکان سرقت این رمزهای عبور هم منتفی میشود! با کمک این الگوریتم، امنیت ارتباط شما با دیگری حفظ شده و هیچ شخص دیگری نمیتواند بفهمد در مورد چه موضوعی با هم ارتباط برقرار کردید یا چه فایلهایی را با یکدیگر به اشتراک گذاشتهاید.
مفهوم اثبات دانش صفر برای اولین بار در سال ۱۹۸۵ در مقالهای با عنوان پیچیدگی دانش سیستمهای اثبات تعاملی توسط شفی گلدواسر (Shafi Goldwasser)، سیلویو مایکالی (Silvio Micali) و چارلز راکف (Charles Rackoff) معرفی شد.
در الگوریتم اثبات دانش صفر (ZKP)، هر دو طرفِ اثباتکننده و تأییدکننده، درگیر هستند؛ هدفِ اثباتکننده، ایجاد یک ادعا و اثبات آن است و تأییدکننده هم باید برای تایید آن ادعا پاسخگو باشد. اثباتکننده میتواند بدون افشای هیچگونه اطلاعات تکمیلی در مورد ادعای خود، صحت آن را برای تأییدکننده ثابت کند؛ این فرایند با ارائه مدرک یا اطلاعاتی بسیار ناچیز صورت گرفته و با تایید از سمت تاییدکننده، صحت ادعا، ثابت میشود.
امروزه تعریف اثبات دانش صفر، به طور گستردهای به کار میرود و برای برنامهها و اپلیکیشنهای مختلف در دنیای واقعی بهبود و توسعه مییابد. درواقع، در شرایطی که اطلاعات و دادههای ما مدام زیر ذرهبین هستند و حفظ حریم خصوصی، دغدغهای مهم به حساب میآید؛ اثبات دانش صفر (ZKP) میتواند با افزایش امنیت کاربر در بلاک چین، این نگرانی را تا حد زیادی برطرف کند.
عملکرد الگوریتم اثبات دانش صفر
الگوریتم اثبات دانش صفر (ZKP)، امکان تایید اعتبار یک عبارت را بدون نیاز به فاش کردن اطلاعات اضافی درباره آن، برای اثباتکننده فراهم میکند؛ اثباتکننده، یک مدرک یا مقدار کمی اطلاعات، ارائه میدهد و از سوی دیگر هم تاییدکننده صحت ادعای اثباتکننده را تایید میکند.
صنعت بانکداری، نمونهای واقعی از این الگوریتم است؛ ممکن است مشتری بخواهد هویت خود را بدون افشای هیچگونه اطلاعات شخصی مانند شماره ملی، به بانک ثابت کند. در این فرایند مشتری میتواند با کمک الگوریتم اثبات دانش صفر، هویت خود را برای بانک احراز کند. در این سناریو، مشتری نقش اثباتکننده را بازی میکند و بانک هم در نقش تاییدکننده ظاهر میشود. مشتری مدرکی مانند کارت شناسایی صادر شده توسط دولت ارائه میدهد تا بانک از آن برای تأیید هویت او استفاده کند. بانک هم میتواند بدون افشای اطلاعات حساس، تایید کند که مشتری همان شخصی است که ادعا میکند.
مثال دیگری را میتوان در زمینه سیستمهای رایگیری الکترونیکی معرفی کرد؛ در این سیستمها، رایدهنده میتواند ثابت کند که رای داده، بدون اینکه مشخص کند به چه کسی رای داده است. این فرایند با ارائه مدرکی مانند امضای دیجیتال انجام میشود که میتواند توسط سیستم رایگیری بدون افشای رای واقعی رایدهنده تایید شود. در هر دو مثال، اثباتکننده مدرکی ارائه میدهد که میتواند توسط تأییدکننده و بدون نیاز به فاش شدن اطلاعات اضافی در مورد ادعای مطرح شده، تأیید شود.
مثالی ساده برای درک بهتر الگوریتم اثبات دانش صفر
توضیح برخی مسائل در دنیای کریپتو سخت است، اما توضیح آن مسائل با کلمات ساده، سختتر است. اثبات دانش صفر این امکان را برای شما فراهم میکند تا بدون افشای اطلاعات ثابت کنید که برخی از مسائل را در مورد طرف دیگر رابطه میدانید.
خودِ اصطلاح دانش صفر از این واقعیت سرچشمه میگیرد که هیچ اطلاعاتی (صفر اطلاعات) درباره راز فاش نمیشود، اما طرف دوم رابطه (یا همان تأییدکننده) به درستی متقاعد شده است که طرف اول همان رابطه (یا همان اثباتکننده) راز مورد بحث را میداند. اما چرا باید ثابت کنید که رازی را (بدون گفتن) میدانید؟ آیا به طرف مقابل اعتماد ندارید؟ اگر اینطور است، چرا هنوز باید او را متقاعد کنید که در مورد آن راز اطلاعات دارید؟ در ادامه قصد داریم با مثالی بسیار ساده، به تمام این سوالات پاسخ دهیم.
فرض کنید باب و آلیس، هرکدام تعدادی شکلات برای هالووین تهیه کردهاند و میخواهند بدون فاش کردن تعداد شکلاتهای خود، بدانند که آیا هر دو مقداری مساوی شکلات دارند یا خیر! بیایید فرض کنیم تعداد شکلاتهای موجود در کیسههای آنها یکی از مقادیر ۱۰، ۲۰، ۳۰ یا ۴۰ باشد. باب ۴ جعبه قابل قفل شدن دریافت میکند و روی هر یکی از برچسبهای ۱۰، ۲۰، ۳۰ و ۴۰ را میچسباند. سپس تمام کلیدها، به جز کلید جعبهای که برچسبی مطابق با تعداد شکلاتهای (برای مثال ۲۰ شکلات) او دارد، را دور میاندازد.
آلیس ۴ تکه کاغذ کوچک میگیرد و روی یکی از آنها علامت + و روی بقیه علامت – مینویسد. سپس کاغذی که علامت + دارد را از طریق شکافی داخل جعبهای میاندازد که برچسبی مطابق با تعداد شکلاتهای (برای مثال ۳۰ شکلات) او دارد. او در مرحله بعد، کاغذهایی که علامت – دارند را داخل دیگر جعبهها میاندازد.
باب
آلیس
باب برمیگردد و جعبهای را که هنوز کلیدش را دارد، باز میکند (همان جعبهای که مطابق با مقدار نوشته شده روی آن، شکلات دارد.)! تا بررسی کند که در آن جعبه، کاغذی با برچسب + وجود دارد یا برچسب -!
اگر برچسب روی کاغذ، + باشد، آلیس میفهمد که تعداد شکلاتهایش با باب برابر است، اما اگر روی کاغذ علامت – نوشته شده باشد، به این معنی است که باب و آلیس مقادیر متفاوتی شکلات دارند.
فرض کردیم که باب ۲۰ شکلات و آلیس ۳۰ شکلات دارد؛ پس از باز کردن جعبه و پیدا کردن تکه کاغذی که روی آن علامت – وجود دارد، باب متوجه میشود که او و آلیس مقادیر متفاوتی شکلات دارند، اما او هیچ راهی برای یافتن تعداد دقیق شکلاتهای آلیس ندارد. آلیس هم برمیگردد و میبیند که باب تکهکاغذی با علامت – در دست دارد، پس متوجه میشود که مقادیر شکلاتهایشان با هم متفاوت است. دقت داشته باشید که آلیس و باب، هیچکدام هنوز نمیدانند که دیگری چند شکلات دارد، آنها فقط میدانند تعداد شکلاتهایشان با هم برابر نیست.
مثال بالا شکل دیگری از مسئله میلیونر یائو (Yao’s Millionaires Problem) است در آن دو میلیونر میخواهند بدون فاش کردن مبلغ دقیق، بفهمند که آیا مقدار پول مساوی دارند یا خیر!
از پیوند بلاکچین و هوش مصنوعی، به پول میرسیم؟
جوابت تو شماره ۱۴ ماهنامه دامیننسه!
چرا به اثبات دانش صفر نیاز داریم؟
دلایل متعددی برای اهمیت استفاده از الگوریتم اثبات دانش صفر (ZKP) وجود دارد:
حریم خصوصی و امنیت: اثبات دانش صفر امکان تأیید اطلاعات را بدون افشای دادههای اساسی فراهم کرده و سطح بالایی از امنیت و حریم خصوصی را ارائه میدهد. این موضوع بهویژه در شرایطی مفید است که اطلاعات حساس باید محرمانه بمانند! مانند تراکنشهای مالی یا احراز هویت.
انطباق: ZKP میتواند به رعایت مقررات مختلفی مانند قوانین حفظ حریم خصوصی دادهها در سازمانها کمک کرده و با انطباق هویت، قوانین احراز هویت (KYC) و ضدپولشویی (AML) را پیادهسازی کند.
مقیاسپذیری: اثبات دانش صفر با فراهم کردن شرایطی مورد نیاز برایتأیید تراکنشها بدون نیاز به افشای دادههای اساسی، به بهبود مقیاسپذیری در شبکههای بلاک چین کمک میکند. این الگوریتم میتواند حجم دادههایی را که باید در بلاک چین دخیره شوند، کاهش دهد و باعث افزایش کارایی شبکه شود.
تعاملپذیری: ZKP با ارائه راهکاری امن و خصوصی برای بهاشتراکگذاری اطلاعات در شبکههای مختلف، به تسهیل تعاملپذیری شبکههای بلاک چین کمک کند.
تأیید هویت: اثبات دانش صفر برای تأیید هویت امن و خصوصی هم استفاده میشود. این موضوع برای سناریوهایی که در آن کاربر میخواهد هویت خود را بدون افشای اطلاعات شخصی، ثابت کند، مفید است.
موارد استفاده اثبات دانش صفر
همانطور که اشاره کردیم، الگوریتم اثبات دانش صفر (ZKP)، فناوری رمزنگاری است که به کاربران اجازه میدهد بدون افشای اطلاعات خصوصی خود، ادعایشان را اثبات کنند. این الگوریتم را میتوان در موارد زیر به کار برد:
پیامرسانی امن: اثبات دانش صفر برای رمزگذاری پیامها بهگونهای استفاده شود که فقط گیرنده پیام بتواند آن را بخواند؛ این امر میتواند از شنود پیامهای خصوصی توسط افراد غیرمجاز جلوگیری کند.
احراز هویت امن: اثبات دانش صفر برای احراز هویت کاربران بدون نیاز به افشای اطلاعات شخصی آنها استفاده شود و از سوءاستفاده از اطلاعات شخصی کاربران آنها جلوگیری میکند.
محافظت از اطلاعات حساس: اثبات دانش صفر برای محافظت از اطلاعات حساسی مانند اطلاعات مالی یا پزشکی کاربرد داشته و میتواند از دسترسی غیرمجاز به این اطلاعات جلوگیری کند.
گفتار پایانی
الگوریتم اثبات دانش صفر، ابزار قدرتمند برای افزایش حریم خصوصی و امنیت، تطبیق مقررات، بهبود مقیاسپذیری، تعاملپذیری و تأیید هویت امن است که امکان تأیید اطلاعات را بدون نیاز به افشای دادههای اساسی فراهم میکند. این ابزار سطح بالایی از امنیت و حریم خصوصی را ارائه کرده و بهویژه در زمینههایی مانند امور مالی و شناسایی شخصی، اهمیت فراوانی دارد.
استفاده از روش اثبات دانش صفر در فناوری بلاک چین بسیار ارزشمند است، چرا که امکان تایید تراکنشها را بدون نیاز به افشای دادههای اساسی فراهم میکند و همانطور که اشاره کردیم، به بهبود مقیاسپذیری و حفظ حریم خصوصی در شبکههای بلاک چین کمک میکند. امروزه با افزایش نیاز به حفاظت و حفظ حریم خصوصی در عصر دیجیتال، الگوریتم اثبات دانش صفر (ZKP) هم نقش مهمتری در حوزههای مختلف ایفا خواهد کرد که فناوری بلاک چین یکی از آنها است.
سوالات متداول
اثبات دانش صفر چیست؟
الگوریتم اثبات دانش صفر، روشی منحصربهفرد برای تایید اطلاعات، بدون نیاز به افشای دادههای اساسی است که سطح بالایی از امنیت و حریم خصوصی را ارائه میدهد.
الگوریتم اثبات دانش صفر چه کاربردی در بلاک چین دارد؟
اثبات دانش صفر با کاهش حجم دادهها در شبکه، به بهبود مقیاسپذیری در بلاک چین کمک کرده و با ارائه راهکاری امن و خصوصی برای بهاشتراکگذاری اطلاعات، تعاملپذیری شبکههای بلاک چین را افزایش میدهد.
شبنم توایی
علاقه زیادی به حوزه فناوری و فین تک دارم، درباره ارزهای دیجیتال، بلاک چین، هوش مصنوعی، وب ۳ و سایر موضوعات مرتبط با فناوری مینویسمو تحقیق میکنم.
عاشق سفر و عکاسی هستمو اوقات فراغتم را با کشف جاذبهها و ثبت لحظات زیبا سپری میکنم.
بزرگترین هدفم تو زندگی یاد گرفتنه و لذت میبرم از اینکه یادگرفتههامو دانش و تجربهام را با دیگران به اشتراک بگذارم و از اونها هم یاد بگیرم.