در روزهایی که اطلاعات ما مدام کنترل میشود و حریم خصوصی به یک دغدغه تبدیل شده است،روش اثبات با دانش صفر Zero Knowledge Proof محرمانگی را به دنیای بلاکچین آورده است. اگر در دنیای ارز دیجیتال فعال هستید، احتمالا دیدهاید که روش اثبات با دانش صفر به خصوص در سالهای اخیر در پروژههای زیادی به کار رفته است.
برای جانماندن از قطار تکنولوژی بلاک چین، درک مفهوم و کاربرد این الگوریتم ضروری است. در این مقاله ضمن پرداختن به این که روش اثبات با دانش صفر چیست، انواع آن و مثالهایی برای درک بهتر را ارائه کردهایم. با صرافی سیمیا همراه باشید.
فهرست محتوا
روش اثبات با دانش صفر چیست؟
فرض کنید میخواهید ۰.۱ بیت کوین برای دوست خود ارسال کنید. قبل از اینکه تراکنش شما تایید شود، شبکه باید بداند که آیا شما واقعا ۰.۱ بیتکوین دارید یا خیر. اگرچه بسیاری از بلاک چینها به شکل متفاوتی این قانون را پیاده میکنند، اما در همه موارد کل افراد در شبکه متوجه میشوند که شما ۵۰ دلار دارید.
این کار به حفظ اعتبار داراییهای شما و دوستتان در هنگام دریافت پول کمک میکند، ولی شما حریم خصوصی خود را به خاطر این فرآیند اعتبارسنجی قربانی میکنید.
در بلاک چین شما یک نام شناسایی معمولی مانند حمید نخواهید داشت. در عوض آدرسهایی را برای تراکنشها دریافت خواهید کرد که شامل رشتهای از حروف و اعداد انگیسی است. این به معنی حفظ کامل حریم خصوصی شما نیست، چون هنوز راههای زیادی برای کشف ارتباط بین دو کاربر و پیدا کردن آدرسهای آنها وجود دارد.
زمانی که کاربری بخواهد داراییهایی را روی بلاکچین معامله یا ارسال کند، باید آدرس گیرنده را بداند. بنابراین وقتی مثلا بیتکوین ارسال میکنید، میتوانید ببینید که به کدام آدرس میرود. از طرف دیگر اگر کسی برای شما بیتکوین بفرستد، میتوانید ببینید که آن BTC از کجا میآید.
اگر یک کاربر اطلاعاتی در مورد کاربر دیگری در دنیای واقعی بداند، میتواند به راحتی در مرورگر بلاکچینی ردیابی کند و بفهمد که آن فرد دیگر از چه آدرسهایی استفاده میکند، چه مبادلاتی داشته و چقدر موجودی داشته است. به همین دلیل است که داشتن آدرس به جای نام، به حفظ حریم خصوصی شبکه کمک زیادی نمیکند.
الگوریتم اثبات با دانش صفر روشی منحصربهفرد است که در آن کاربر اثباتکننده میتواند به کاربر تاییدکننده ثابت کند که مقدار z را میداند، بدون اینکه اطلاعات دیگری از جمله مقدار z را به او بدهد. ماهیت اصلی پشت این مفهوم، اثبات داشتن دانش بدون افشای آن است.
چالش اصلی این است که نشان دهید مقدار z را میدانید، بدون اینکه بگویید z چیست یا اطلاعات دیگری بدهید. بنابراین چیزی که اعلام میشود همیشه باید شامل این باشد که اثباتکننده دانش دارد، اما خود اطلاعات منتشر نمیشود.
الگوریتم روش اثبات با دانش صفر Zero Knowledge Proof باید دارای سه ویژگی مختلف باشد که عبارتند از:
- کامل بودن: اگر عبارتی واقعا درست باشد و هر دو کاربر قوانین را به درستی رعایت کنند، آنگاه تاییدکننده بدون هیچ کمکی متقاعد میشود.
- صحت: در صورت نادرست بودن عبارت، تاییدکننده در هیچ سناریویی قانع نخواهد شد (این روش به صورت احتمالی بررسی میشود تا اطمینان حاصل شود که احتمال نادرستی برابر با صفر است).
- دانش صفر: در همه موارد تاییدکننده اطلاعات بیشتری نمیداند.
مثالهایی برای درک بهتر الگوریتم Zero Knowledge Proof
همانطور که گفتیم در روش اثبات با دانش صفر به دنبال اثبات آگاهی از اطلاعات هستیم، اما از فاش شدن دادهها جلوگیری میکنیم. دو مثال معروف برای توضیح این الگوریتم وجود دارد که در ادامه این مقاله میهن بلاکچین، آنها را مطرح میکنیم.
مثال اول : فرد کور رنگ و گوی های سبز و قرمز
در تمام مثالها یک شخص اثباتکننده و یک شخص تاییدکننده وجود دارند. در این مثال شما فرد اثباتکننده هستید و یک شخص کوررنگ که توانایی تشخیص رنگ ها را از هم ندارد، فرد تاییدکننده است.
فرض کنید شخص کوررنگی دو گوی سبز و قرمز در هر دست خود دارد و فکر میکند آنها همرنگ هستند. شما قصد دارید بدون آنکه به شخص درمورد رنگ گویها هیچگونه اطلاعاتی بدهید، به او ثابت کنید که رنگ آنها با هم متفاوت است.
در این روش شما از او میخواهید که گویها را پشت خود ببرد و به میل خود آنها را یا جابجا کند و یا بدون آنکه جابجا کند جلو بیاورد و شما به او بگویید که او نسبت به حالت قبلی گویها را جابجا کرده یا خیر.
۵۰ درصد احتمال دارد که شما شانسی درست حدس زده باشید، ولی شما میتوانید از او بخواهید یک بار دیگر این کار را انجام دهد و دوباره شما به او بگویید گویها را جابجا کرده یا خیر.
با این کار احتمال آنکه دومین حدس شما هم شانسی درست باشد به ۲۵ درصد کاهش می یابد و شخص کوررنگ، ۷۵ درصد میتواند به صحت ادعای شما اطمینان کند. به همین ترتیب با هر بار تکرار این پروسه، احتمال آنکه حدسهای شما شانسی درست درآمده باشد نصف میگردد.
جالب است بدانید که تنها با ۲۰ بار تکرار این کار احتمال آنکه ادعای شما دروغ باشد و هر ۲۰ بار درست حدس زده باشید، به ۰.۰۰۰۱ درصد کاهش و ضریب اطمینان شخص نسبت به ادعای شما به ۹۹.۹۹۹ درصد افزایش مییابد. به این ترتیب شما میتوانید بدون آنکه به شخص کور رنگ بگویید که هر کدام از گویها چه رنگی است، به او ثابت کنید که ادعای شما مبنی بر متفاوتبودن رنگ توپها درست است.
مثال دوم : غار علیبابا
در این مثال سارا شخص ثابتکننده و حمید شخص تاییدکننده است. سارا قصد دارد به حمید اثبات کند که از یک رمز عبور مطلع است، بدون آنکه آن رمز را در اختیار حمید بگذارد. فرض کنید همانند تصویر فوق غاری با دو ورودی A و B وجود دارد که در انتها به هم می رسند و یک درب در انتهای آن وجود دارد. این در تنها با رمز عبوری که سارا از آن مطلع و حمید از آن بیخبر است، باز میشود.
سارا برای آنکه به حمید اثبات کند رمز عبور را در اختیار دارد، وارد غار میشود و به صورت اتفاقی مسیر A یا B را انتخاب میکند و در انتهای غار پشت درب میماند. بعد حمید که بیرون غار بوده و از مسیر انتخابی سارا بیاطلاع است، وارد این غار میشود و از همان جلوی ورودیها از سارا میخواهد از مسیر A یا B بازگردد.
بعد از بازگشت سارا از مسیری که حمید خواسته، به حمید با ضریب اطمینان ۵۰ درصد ثابت میشود که سارا رمز عبور از درب را در اختیار دارد؛ زیرا اگر سارا از مسیر A رفته باشد و حمید هم از او بخواهد از همان مسیر A بازگردد، آنگاه سارا بدون نیاز به وارد کردن رمز عبور و باز کردن درب انتهای غار میتواند از مسیر A بازگردد. بدین ترتیب شانس با سارا یار بوده و سارا میتوانسته از رمز عبور بیاطلاع باشد.
اگر مسیری که سارا از آن رفته با مسیری که حمید میخواهد از او بازگردد متفاوت باشند، آنگاه حتما سارا از رمز عبور مطلع بوده است. با هر بار تکرار این روند احتمال بیاطلاعی سارا از رمز عبور نصف میشود و با اطمینان بالاتری به حمید اثبات میکند که از رمز عبور مطلع است، بدون آنکه رمز عبور را در اختیار حمید قرار دهد.
انواع روش اثبات با دانش صفر
به طور کلی الگوریتم Zero Knowledge Proof میتواند ۲ نوع مختلف داشته باشد که تفاوت بزرگی بین آنها وجود دارد. این دو عبارتند از روش تعاملی (Interactive) و روش غیر تعاملی (Non-Interactive) که در ادامه در رابطه با هر کدام توضیحاتی ارائه میکنیم.
مبانی الگوریتم اثبات با دانش صفر تعاملی
در این روش نیاز به تعامل بین کاربران یا سیستمهای رایانهای وجود دارد. با تعامل، اثباتکننده میتواند دانش را اثبات کند و تاییدکننده میتواند آن را تایید کند. این روش معمولیترین سناریوی اثبات با دانش صفر است.
در این حالت شما بدون افشای دانستهتان اثبات خواهید کرد، اما دانش خود را برای کاربری که با او در تعامل هستید آشکار میکنید. بنابراین اگر کسی فقط شما دو نفر را تماشا کند، نمیتواند دانش شما را تایید کند. اگرچه این یکی از بهترین پروتکلهای حفظ حریم خصوصی است، اما وقتی میخواهید آن را به بیش از یک نفر ثابت کنید،
به تلاش بسیار زیادی نیاز دارید. دلیلش این است که باید همان فرآیند را بارها و بارها برای هر فردی تکرار کنید، زیرا آنها با تماشای شما نمیتوانند شما را تایید کنند.
این پروتکل برای اجرا به هر نوع پاسخ تعاملی از سوی تاییدکننده نیاز دارد، در غیر این صورت اثباتکننده هرگز نمیتواند آن را به تنهایی ثابت کند. بدیهی است که فرآیند باید تاییدکننده را در مورد اطلاع از دانش متقاعد کند.
به همین دلیل است که اثبات دانش صفر Interactive برای تعداد کم مشارکتکنندگان نسبت به گروه های بزرگ کارآمدتر است. دو مثال گویهای رنگی و غار علیبابا هر دو از نوع اثبات تعاملی بودند.
الگوریتم اثبات با دانش صفر غیر تعاملی
در بلاک چینهایی که از روش اثبات با دانش صفر غیرتعاملی استفاده میکنند، گفتههای یک کاربر برای گروه بزرگتری از کاربران تایید میشود. این روش میتواند بهترین راه برای اثبات اظهارات یک شخص به افراد زیادی، بدون افزایش منابع مورد نیاز و هزینهها باشد.
یک مثال ساده میتواند بازی سودوکو باشد که طبق قانونش باید در هر سطر، ستون و مربع کوچک ۳ در ۳، اعداد ۱ تا ۹ بدون تکرار باشد. شما میخواهید پاسخ را به دیگران بفروشید. باید اثبات کنید که جواب را میدانید، اما از افشای آن جلوگیری کنید.
راهحل به این صورت است که ۲۴۳ کارت شامل ۲۷ کارت با عدد یک،۲۷ کارت با عدد دو و همینطور تا ۲۷ کارت با عدد ۹ برمیدارید.
روی خانههایی که از قبل در بازی عدد آنها مشخص شده است، اگر عدد آن مثلا ۷ است سه کارت ۷ به صورتی که عدد آن مشخص باشد میگذارید. در ادامه روی هر خانه خالی، سه کارت از عدد جواب که خودتان به دست آوردهاید را میگذارید، مثلا اگر جواب یک خانه ۵ است، سه کارت ۵ طوری که عدد آن مشخص نباشد میگذارید.
حالا برای اطمینان از درستی پاسخ شما، هر شخصی میتواند کارت رویی یکی از ستونها، سطرها یا مربعهای کوچک را بردارد. پس ۹ کارت برمیدارد که اگر شامل اعداد ۱ تا ۹ بدون تکرار بود، میتواند از درستی پاسخ شما مطمئن شود. در این روش دیگر نیازی به تعامل بین کاربران وجود ندارد.
zk-SNARKS مخفف عبارت Zero-Knowledge Succinct Non-Interactive Argument of Knowledge فناوریای است که از مفهوم اثبات دانش صفر غیرتعاملی استفاده میکند و در پروژههای زیادی به کار رفته است.
معرفی چند پروژه که از اثبات با دانش صفر استفاده میکنند
با توجه به اهمیت بحث حریم خصوصی، پروژههای مختلفی در این زمینه کار میکنند و اثبات با دانش صفر روشی است که در اکثر آنها به کار میرود. درادامه تعداد از پروژهها و شرکتهایی که از این روش برای افزایش محرمانگی استفاده میکنند را معرفی میکنیم.
Zcash
بیشتر پلتفرمهای بلاکچینی، تراکنشهای بین دو نفر را آشکار میکنند. زیکش میتواند در مورد تراکنشها، حریم خصوصی کامل را فراهم کند. Zcash پلتفرم بلاک چینی متنباز و بدون مجوز است که از اثبات با دانش صفر استفاده میکند و جزء دسته کوینهای محرمانه است. Zcash همچنین به دلیل معرفی zk-SNARKS مشهور است و پس از آن افراد بسیاری این روش را دنبال کردند.
ING
ING یک بانک مستقر در هلند است که بلاک چین دانش صفر جدید خود را راهندازی کرده است. آنها نسخه اصلاحشده سیستم دانش صفر را راهاندازی کردند که به آن اثبات محدوده دانش صفر میگویند و به توان محاسباتی بسیار کمتری نیاز دارند. ING به طور مستقیم با بخش مالی مانند ارزش وام مسکن مرتبط است.
میتوانید بدون افشای میزان حقوق خود ثابت کنید که مقدار واجد شرایط برای دریافت وام مسکن را دریافت میکنید.
PIVX
این شرکت میخواهد روشهای معمولی را که در دنیا کار میکند، تغییر دهد. در سیستمی که همه چیز توسط دیگران کنترل و مدیریت میشود، PIVX قصد دارد پناهگاه امنی برای صورتهای مالی شما معرفی کند. آنها در حال کار بر روی یکپارچگی جدیدی هستند که در آن از Zero Knowledge Proof استفاده خواهند کرد.
در سیستم این شرکت تنها چیزی که عمومی است، تایید پول ارسال شده است؛ یعنی میبینید که شخصی پول ارسال کرده است، اما آدرس یا زمان آن پنهان میشود.
StarkWare
StarkWare یکی دیگر از شرکتهای بزرگی است که به طور کامل از اثبات با دانش صفر برای فناوری استفاده میکند. آنها پروتکل SNARKهای معمولی را تغییر میدهند و به جای SNARK از فناوری STARK استفاده میکنند. هدف StarkWare بهبود حریم خصوصی و مشکل مقیاسپذیری بلاک چین با روش تراکنش شفاف است.
آنها در حال توسعه پشتیبانی سختافزاری و نرمافزاری برای اطمینان از خروجی بهتر از فناوری STARK خود هستند.
QED-it
QED-it یکی از استارتاپهایی است که از اثبات دانش صفر برای تامین امنیت استفاده میکند. QED-it یک شرکت اسرائیلی است که قادر به مدیریت دادههای محرمانه بدون نظارت شخص ثالث است. برخی از مشتریان محبوب QED-it عبارتند از BNP Paribas و Deloitte. هدف اصلی QED-it، ارائه حریم خصوصی به شرکتها است.
موارد استفاده الگوریتم ZKP
حفظ حریم خصوصی در موارد متعددی ضروری است و الگوریتم اثبات با دانش صفر یکی از روشهای پراستفاده برای افزایش محرمانگی است. در ادامه به تعدادی از مواردی که الگوریتم ZKP در آنها کاربرد دارد اشاره میکنیم:
- پیامرسانی. رمزگذاری سرتاسری در پیامرسانی ضروری است، طوری که هیچکس نتواند پیامهای خصوصی شما را جز گیرنده بخواند. دو کاربر باید اعتماد خود به سرور را تایید کنند و بالعکس. به کمک ZKP، هیچکس نمیتواند دیگر پیام شما را هک کند.
- احراز هویت. اثبات دانش صفر میتواند به انتقال اطلاعات حساس مانند اطلاعات احراز هویت با امنیت بیشتر کمک کند. ZKP میتواند کانال امنی برای کاربر ایجاد کند تا بدون افشای اطلاعات شخصیاش احراز هویت کند.
- بالابردن امنیت اطلاعات حساس و مالی. اطلاعات حساس مانند صورتحسابهای بانکی یا اطلاعات کارت اعتباری به سطح حفاظتی بیشتری نیاز دارند. بانک تاریخچه کارت اعتباری را حفظ میکند. زمانی که شما این اطلاعات را از آنها درخواست میکنید، باید با سرور آنها ارتباط برقرار کنید. اثبات با دانش صفر میتواند امنیت این ارتباط را افزایش دهد.
- حفاظت از فضای ذخیرهسازی. اثبات دانش صفر میتواند محافظت بیشتری برای ابزار ذخیرهسازی شما ایجاد کند. ZKP به پروتکلی برای دور نگهداشتن هکرها مجهز شده است و با این کار نهتنها کل فضای ذخیرهسازی شما، بلکه اطلاعات درون آن نیز رمزگذاری میشود. همچنین از کانال دسترسی به اطلاعات نیز به خوبی محافظت میکند.
جمعبندی
به کمک بلاکچین عدم تمرکز، شفافیت و بسیاری مزایای دیگر در اختیار ما قرار میگیرد، اما صرفا استفاده از آدرسها بجای هویت افراد حریم خصوصی را تضمین نمیکند. با پیگیری و رصد تراکنشهای یک شخص روی بلاکچین و ارتباطات او، هر چند سخت و زمانبر اما میتوان به اطلاعات وی دسترسی پیدا کرد.
همچنین شرکتهای زیادی هستند که اطلاعات آنها محرمانه است و تمایلی ندارند روی بلاکچین برای همگان قابل دسترسی باشد. الگوریتم Zero Knowledge Proof که اثبات اطلاعات بدون افشای آن را ممکن میسازد، محرمانگی را افزایش میدهد و میتواند منجر به استفاده بیشتر بلاکچین توسط شرکتها و مراکز حساس شود.
در این مقاله در مورد اینکه که روش اثبات با دانش صفر چیست و انواع آن صحبت و مثالهایی برای درک بهتر ارائه کردیم. به نظر شما ZKP استفاده از بلاکچین را افزایش میدهد؟ نظر خود را با میهن بلاکچین به اشتراک بگذارید.