امروز قصد داریم درباره یک ایده امنیتی در بلاکچین معروف به “اثبات دانش صفر” صحبت کنیم.
اثبات دانش صفر توانایی اثبات وجود یک راز بدون فاش کردن آن است.
بیایید موضوع را با یک مثال مرور کنیم:
بگذارید بگوییم دو ماشین اسباب بازی وجود دارد، از لحاظ شکل و اندازه دقیقا یکسان هستند، با این تفاوت که یکی قرمز است و دیگری آبی. جیمی که کور رنگ است، ماشین های اسباب بازی را پشت سر خود نگه می دارد و یکی از اتومبیل ها را به دیوید نشان می دهد. بعد دوباره آن ماشین را پشت سر خود پنهان می کند و اتومبیل دیگر را به دیوید نشان می دهد. دیوید می تواند به سادگی تغییر را تشخیص دهد زیرا رنگهای ماشین ها، متفاوت است، اما او اصلا مجبور نیست این راز را به جیمی بگوید.
این دقیقاً همان چیزی است که اثبات دانش صفر را نشان می دهد، به من اجازه می دهد به طرف دیگری ثابت کنم که دانش خاصی دارم بدون اینکه فاش کنم این دانش چیست.
از اثبات دانش صفر غالباً به عنوان zk-SNARK یاد می شود که مخفف “Zero-Knowledge Succinct Non-Interactive Knowledge of Knowledge” یا به اختصار zk-SNARK است. اما بیائید خیلی سخت نگیریم و فقط آن را اثبات دانش صفر صدا کنیم.
یک نمونه عالی از اثبات دانش صفر همان چیزی است که قیاس درب غار نامیده می شود.
فرض کنید یک غار مدور وجود دارد، فقط با یک ورودی / خروجی و در پشت این غار دایره ای، یک درب وجود دارد که می تواند با استفاده از یک رمز مخفی وارد شده روی صفحه کلید قفل را باز شود.
اگر بخواهم به شما ثابت کنم که کد باز کردن قفل را دارم، لازم نیست آنرا برای شما فاش کنم، تنها چیزی که باید نشان دهم این است که می توانم از یک سر مسیر دایره ای غار وارد شوم، در را باز کنم و از انتهای دیگر مسیر بیرون بیایم.
اگر من آن را با موفقیت به اثبات رسانده ام، بدون شک می دانید که من توانسته ام آن قفل را باز کنم، اما هرگز کد را برای شما آشکار نکرده ام.
این تشبیه ساده درب درون غار برای اثبات دانش صفر است و اگر می توانید این تشبیه را به خاطر بسپارید، می فهمید که چرا Zero-Knowledge Proofs در بلاکچین بسیار مهم است.
به عنوان مثال، یک کاربر ممکن است درخواستی را برای ارسال مقداری پول به کاربر دیگر انجام دهد.
بلاکچین به طور طبیعی می خواهد قبل از انجام این معامله اطمینان حاصل کند که کاربر ارسال کننده، پول برای ارسال کافی دارد.
با این حال، بلاکچین واقعاً نیازی به دانستن یا اهمیت دادن به این که چه کسی پول را خرج می کند یا کل دارائی او دقیقا چقدر است، ندارد.
توانایی پاسخگویی به سوال “آیا کاربر پول کافی برای ارسال به کاربر دیگری دارد” بدون دانستن اینکه کاربر چه کسی است یا دقیقاً مقدار دارئی او چقدر است، یکی از موارد اصلی استفاده برای اثبات دانش صفر در بلاکچین است.
بنابراین از این پس، وقتی درباره zk-SNARK می شنوید، مرعوب نشوید.
این موضوع ایده پیچیده ای نیست فقط به اثبات دانش صفر و درب غار فکر کنید، به این فکر کنید که در بلاکچین چقدر مهم است که بتوانید ادعایی را بدون فاش کردن اطلاعات پشت این ادعا ثابت کنید، به همین سادگی شما مفهوم اثبات دانش صفر را خواهید فهمید.
Hyperledger ،Fabric و Ethereum استفاده از ZKP را در دستور کار دارند.
یکی از سیستم های مبتنی بر بلاکچین که از Zero-Knowledge Proofs استفاده می کند، ZCash است.
نظر خود را بگوئید
پیغام بگذارید