اثبات دانش صفر یا Zero Knowledge چیست؟
اثبات دانش صفر چیست؟ / کاربرد روش اثبات با دانش صفر در کوین های محرمانه / انواع روش اثبات با دانش صفر
Zero Knowledge چیست؟
چگونه می توانید به کسی ثابت کنید از رازی مطلع هستید بدون آنکه هیچگونه اطلاعاتی در مورد آن راز فاش نکنید؟ مثلا تصور کنید قصد دارید به یک نفر ثابت کنید که میدانید یک درخت به خصوص چه تعداد برگ دارد بدون آنکه تعداد برگ ها را به او بگویید! آیا اصلا چنین چیزی امکان پذیر است؟ و اصلا ربط این موضوع به ارزهای دیجیتال چیست؟! در جواب باید گفت که بله این کار امکان پذیر است و جواب آن روش اثبات با دانش صفر (Zero Knowledge Proof) است. برای آنکه با روش کار این الگوریتم و با مفهوم «اثبات دانش صفر چیست؟» آشنا شوید آن را در قالب دو مثال برایتان شرح می دهیم:
مثال اول : فرد کور رنگ و گوی های سبز و قرمز
در تمام مثال ها یک شخص اثبات کننده و یک شخص تایید کننده وجود دارند. در این مثال شما فرد اثبات کننده هستید و یک شخص کور رنگ که توانایی تشخیص رنگ ها را از هم ندارد فرد تایید کننده است.
فرض کنید شخص کور رنگی دو گوی سبز و قرمز در هر دست خود دارد و فکر میکند آن ها هم رنگ هستند و شما قصد دارید بدون آنکه به شخص درمورد رنگ گوی ها هیچ گونه اطلاعاتی بدهید به او ثابت کنید که رنگ آن ها با هم متفاوت است. در این روش شما از او می خواهید که گوی ها را پشت خود ببرد و به میل خود آن ها را یا جابجا کند و یا بدون آنکه جابجا کند جلو بیاورد و شما به او بگویید که او نسبت به حالت قبلی گویها را جابجا کرده یا خیر.اما ۵۰ درصد احتمال دارد که شما شانسی چنین حدسی زده باشید ولی شما می توانید از او بخواهید یکبار دیگر این کار را انجام دهد و دوباره شما به او بگویید گوی ها را جابجا کرده یا خیر، با این کار احتمال آنکه دومین حدس شما هم شانسی باشد به ۲۵ درصد کاهش می یابد و شخص کور رنگ، ۷۵ درصد می تواند به صحت ادعای شما اطمینان کند. به همین ترتیب با هر بار تکرار این پروسه احتمال آنکه حدس های شما شانسی درست درآمده باشد نصف میگردد. جالب است بدانید که تنها با ۲۰ بار تکرار این کار احتمال آنکه ادعای شما دروغ باشد و هر ۲۰ بار درست حدس زده باشید به ۰.۰۰۰۱ درصد کاهش می یابد و ضریب اطمینان شخص نسبت به ادعای شما به ۹۹.۹۹۹ درصد افزایش می یابد.
به این ترتیب شما می توانید بدون آنکه به شخص کور رنگ بگویید که هرکدام از گوی ها چه رنگی است، به او ثابت کنید که ادعای شما مبنی بر متفاوت بودن رنگ توپ ها درست است، به همین دلیل به این روش اثبات با دانش صفر یا zero knowledge proof می گویند.
مثال دوم : غار عجیب
در این مثال سارا شخص ثابت کننده و حمید شخص تایید کننده است، به این ترتیب که سارا قصد دارد به حمید اثبات کند که از یک رمزعبور مطلع است بدون آنکه آن رمز را در اختیار حمید بگذارد. فرض کنید همانند تصویر زیر غاری با دو ورودی A و B وجود دارد که در انتها به هم می رسند و یک درب در انتهای آن وجود دارد که تنها با رمز عبوری که سارا از آن مطلع است و حمید از آن بیخبر است باز میشود.
سارا برای آنکه به حمید اثبات کند رمز عبور را در اختیار دارد وارد غار میشود و به صورت اتفاقی مسیر A یا B را انتخاب میکند و در انتهای غار پشت درب می ماند، بعد حمید که بیرون غار بوده و از مسیر انتخابی سارا بی اطلاع است، وارد این غار عجیب می شود و از همان جلوی ورودی ها از سارا می خواهد از مسیر A یا B بازگردد. بعد از بازگشت سارا از مسیری که حمید خواسته، به حمید با ضریب اطمینان ۵۰ درصد ثابت می شود که سارا رمز عبور از درب را در اختیار دارد، زیرا اگر سارا از مسیر A رفته باشد و حمید هم از او بخواهد از همان مسیر A بازگردد، آنگاه سارا بدون نیاز به وارد کردن رمز عبور و باز کردن درب انتهای غار می تواند از مسیر A بازگردد، بدین ترتیب شانس با سارا یار بوده و سارا می توانسته از رمزعبور بی اطلاع باشد، ولی اگر مسیری که سارا از آن رفته با مسیری که حمید می خواهد از او بازگردد متفاوت باشند آنگاه حتما سارا از رمز عبور مطلع بوده است. با هر بار تکرار این روند احتمال بی اطلاعی سارا از رمز عبور نصف می شود و با اطمینا بالاتری به حمید اثبات می کند که از رمز عبور مطلع است، بدون آنکه رمز عبور را در اختیار حمید قرار دهد.
کاربرد روش اثبات با دانش صفر در کوین های محرمانه
در ارزهای دیجیتال غیر متمرکز، فردی که قصد انجام تراکنش را دارد، باید بتواند مالکیت خود بر کوین هایی که قصد خرج کردن آن ها را دارد را به ماینرها اثبات کند. برای این کار شخص باید اطلاعات تراکنش خود شامل آدرس فرستنده، آدرس گیرنده، مبلغ تراکنش و … را در شبکه ی عمومی منتشر کند (همانند اتفاقی که در بیت کوین میفتد). این امر منجر به از بین رفتن حریم خصوصی در تراکنش ها می شود.
برخی از کوین های محرمانه از روش zero knowledge proof استفاده میکنند تا فرد بدون نیاز به منتشر کردن اطلاعات تراکنش خود در شبکه عمومی بتواند به ماینرها اثبات کند که مالک واقعی ارزی هستند که قصد خرج کرد آن را دارند. از جمله کوین هایی که از این روش جهت تامین حریم خصوصی برای کاربرانشان استفاده می کنند می توان به زی کش و Bitcoin Private که یک فورک بیت کوین است، اشاره کرد. اتریوم هم قصد دارد از Zero Knowledge Proof در آینده در تراکنش های خود استفاده کند.
اما در این بین زی کش و فناوری پشت تراکنش های محرمانه ی آن یعنی ZK-SNARKS اصلی ترین پیاده سازی این روش در زمینه ی ارزهای رمزنگاری شده به شمار می رود. ZK-SNARKS و نسخهی به روز تر آن یعنی ZK-STARKS که در برابر الگوریتمهابی کوانتومی هم مقاوم است توانسته اند با استفاده از ریاضیات و رمزنگاری های پیشرفته، روش اثبات با دانش صفر را وارد صنعت رمزارزها کنند و با استفاده از این روش تراکنشهای با حریم خصوصی بالا را برای کاربران زی کش فراهم کنند. اما مسئله اصلی که این نوع تراکنش ها هنوز با آن روبرو هستند، بالا بودن حجم این نوع تراکنشهاست که منجر به افزایش حجم بلاک چین زی کش و مقیاس پذیری پایین آن می شود و باید دید زی کش این مشکل را در آینده چگونه حل واهد کرد. مسئلهی دیگر هم زمانبر بودن تولید این تراکنش ها بر روی کامپوترهای معمولی و موبایل هاست که به صورت میانگین تولید یک تراکنش محرمانه زی کش بر روی این کامپوترهای معمولی بین ۲ تا ۳ دقیقه زمان می برد، زیرا این نوع تراکنش ها به حجم محاسبات زیادی نیاز دارند. به همین دلایل در حال حاضر تنها یک درصد از تراکنش های زی کش از نوع محرمانه هستند که از Zero Knowledge Proof بهره می برند.
البته باید گفت که روش zero knowledge proof تنها برای تراکنش های محرمانهی رمزارزها کاربرد ندارد و می توانند در صنایع نظامی، فرآیند لاگین شدن به سرورها، انتخابات الکترونیکی و در کل هر جایی که نیاز به ارائهی اطلاعات حساس برای اثبات چیزی باشد، به کار روند.
انواع روش اثبات دانش صفر چیست؟
در کل دو نوع روش zero knowledge proof وجود دارد، روش تعاملی (Interactive) و روش غیر تعاملی (Non-Interactive). در روش تعاملی نیاز به تعامل مستقیم بین فرد اثبات کننده و تاییدکننده وجود دارد. روش های ارائه شده در مثال های فرد کوررنگ و غار عجیب از نوع تعاملی بودند؛ زیرا مثلا اگر شما به عنوان شخص ثابت کننده بخواهید غیر همرنگ بودن گوی ها را به یک فرد کوررنگ دیگر اثبات کنید باید کل فرآیندی که گفته شد را برای او هم تکرار کنید. بنابراین این روش در شبکه های غیر متمرکز ارزهای دیجیتال نمی تواند کاربردی باشد، زیرا شخصی که قصد انجام تراکنش را دارد، به عنوان فرد ثابت کننده باید صحت تراکنش خود را تک به تک برای تعداد زیادی گره ی تایید کننده اثبات کند و این فرآیند زمان زیادی می برد.
در پابان مقاله «اثبات دانش صفر چیست؟» باید گفت که در شبکههای غیرمتمرکز مانند شبکهی زیکش از روش غیر تعاملی (Non-Interactive) اثبات با دانش صفر استفاده می شود. در واقع ZK-SNARKS از این روش که اثبات کننده تنها یکبار نیاز است صحت ادعای خود را برای تمام تایید کنندگان ثابت کند، بهره می برد.
منبع: میهن بلاکچین
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.