پروتکل اثبات دانش صفر؛ آشنایی با الگوریتم اثبات با دانش صفر (ZKP)
سیستم بلاکچین یکی از برجستهترین فناوری های ارز دیجیتال است که مزایای مهمی همچون شفافیت و تغییرناپذیری در ماهیت معاملات و شبکههای غیرمتمرکز را برایمان به ارمغان آورده. با تمامی این اوصاف، هنوز هم مسئله امنیت تراکنشها یکی از معایبی است که تکنولوژی بلاکچین دارد و در بسیاری از موارد، خبری از مولفههای حریم خصوصی نیست. پروتکل اثبات دانش صفر (ZKP)، فناوری نوینی است که در ترکیب با سیستم بلاکچین، فرمولی قدرتمند از تغییرناپذیری و امنیت را فراهم میکند. در این مقاله از والکس قرار است که بهصورت ویژه سراغ مبحث پروتکل اثبات دانش صفر برویم و آن را واکاوی کنیم.
الگوریتمهای پروتکل اثبات دانش صفر یا همان Zero Knowledge Proof شامل تکنیکهای رمزنگاریشدهای هستند که برای تایید تراکنشها آن بدون امکان افشای اطلاعات معاملهگران مورد استفاده قرار میگیرند. برای اطلاع بیشتر در مورد پروتکل ZKP با ما همراه شوید.
فناوری بلاکچین؛ مروری بر مفهوم DLT
بلاکچین همواره در قالب یک فناوری برای قدرتبخشی به بازار کریپتوکارنسی و دنیای ارزهای دیجیتال شناخته میشود. این فناوری که دیگر تنها مختص بازار ارزهای دیجیتال نیست، درواقع باعث تحول و انقلاب در دنیای تجارت شده است. سیستم بلاکچین در اصل یک فناوری پیشرفته با عنوان دفتر کل توزیعشده (DLT) است که اطلاعات مربوط به تراکنشها را در شبکهای از کامپیوترهای همتابههمتا ذخیره میکند. تمامی این توضیحات بدین معنا هستند که هیچیک از طرفین معامله در شبکه بلاکچین، مالک و کنترلکننده معامله نخواهند بود.
در سیستم بلاکچین، هر یک از طرفین معامله بهصورت بالقوه دارای حقوق برابر در رابطه با کنترل و تایید تراکنش مورد نظر هستند. برای چند لحظه این سیستم را با یک سیستم رایج و سنتی در بانک مقایسه کنید که تمام دادههای مربوط به معاملات در اختیار آن هستند و ذخیره هم میشوند.
در سیستم شبکههای بلاکچین از الگوریتمهای رمزنگاریشده برای اعتبارسنجی تراکنشها و معاملات استفاده میشود. این کار باعث میشود تا واسطهها و هزینههای پردازش یا کارمزد حذف شوند و تا حد امکان کاهش پیدا کنند. حوزههای مختلفی همچون سیستمهای بانکداری، املاک و مستغلات، کانونهای بهداشتودرمان و غیره به کاربردهای شبکه بلاکچین پی بردهاند و در بسیاری از موارد، شاهد همکاری این سیستمهای سنتی با الگوریتمهای DLT هستیم.
پروتکل اثبات دانش صفر (ZKP) چیست؟
الگوریتمهای پروتکل اثبات دانش صفر شامل فرمولهایی هستند که معاملات و تراکنشها را از حالت یکطرفه خارج میکنند و نیاز به افشای اطلاعات کاربران یا معاملهگران را از بین میبرند. سیستم مربوط به پروتکل اثبات دانش صفر شبیه به این است که مثلاً از یک توریست که از کشور آلمان دیدن کرده، چندین سوال در مورد این کشور بپرسید. اگر بخواهیم الگوریتمهای این سیستم را در این پرسشنامه قرار دهیم، نیازی نیست اطلاعاتی در مورد افرادی که از کشور آلمان بازدید کردهاند، داشته باشید. شما صرفاً چندین سوال اساسی در مورد کشور آلمان میپرسید تا مطمئن شوید، این شخص واقعاً از آنجا دیدن کرده است.
با توجه به سیستم پروتکل اثبات دانش صفر، همه اطلاعات مهم و شخصی در امان خواهند ماند و تنها اطلاعات ضرورری برای شناسایی طرف معامله در دسترس باقی میماند. در یک سیستم معمولی از شبکههای بلاکچین، همین که یک کاربر بخواهد مقداری ارز دیجیتال به کیف پول دیجیتالی کاربری دیگر انتقال دهد، اطلاعات موجودی کیف پول او برای همه کاربران قابل مشاهده خواهد بود. بدینترتیب، هیچ حریم خصوصی و امنیتی برای کاربران وجود نخواهد داشت و اطلاعات غیرضروری و حساس معاملهگران در اختیار دیگران قرار خواهد گرفت.
تاریخچه پروتکل ZKP و معرفی الگوریتمهای آن
الگوریتمهای ZKP شامل مجموعهای از پازلهای ریاضی هستند که وقتی به درستی توسط گیرنده حل شوند، ثابت میشود که طرف گیرنده، واقعی است و قصد معامله دارد. برای مثال، اگر شما بخواهید ۰.۵ بیت کوین (BTC) به آدرس یک کاربر دیگر ارسال کنید و سیستم ZKP در این میان جریان داشته باشد، آدرس شما برای شخص گیرنده ظاهر خواهد شد و طبق الگوریتمهای پروتکل اثبات دانش صفر، مشخص میشود که هر دو طرف معامله واقعی هستند.
سیستم ZKP در دهه ۸۰ میلادی و توسط ۳ محقق MIT بنیانگذاری شد. شفی گلدواسر (Shafi Goldwasser)، چارلز راکف (Charles Rackoff) و سیلویو مایکالی (Silvio Micali) 3 محققی بودند که شاکله اولیه این الگوریتمها را با عنوان «پیچیدگی دانش سیستمهای اثبات تعاملی یا Knowledge Complexity Interactive Proof system» ارائه کردند. پروتکل اثبات دانش صفر شامل ۲ الگوریتم اساسی زیر است:
- الگوریتمهای تعاملی پروتکل ZKP: این الگوریتمها شامل یکسری چالش از معماهای ریاضی هستند که طرف گیرنده باید آنها را حلوفصل کند.
- الگوریتمهای غیرتعاملی پروتکل ZKP: این الگوریتمها شامل هیچ تعاملی در بین طرفین معامله نمیشوند و فرایند تایید و اعتبارسنجی در مرحله نهایی انجام میشود. این دست از الگوریتمهای ZKP به منابع محاسباتی بهمراتب بیشتری نیاز دارند.
۳ ویژگی برجسته پروتکل اثبات دانش صفر
- کامل بودن اطلاعات: کامل بودن، اولین مشخصه مهم در مثالهای مربوط به پروتکل ZKP است. سیستم ZKP باید این قابلیت را داشته باشد که تاییدکننده را در مورد آنچه که اثباتکننده ادعا میکند، متقاعد کند.
- سلامت اطلاعات: صحت اطلاعات یک معامله را در سیستم ZKP نمیتوان جعل کرد. بهعبارت سادهتر اگر طرف تاییدکننده، اطلاعتی را در اختیار نداشته باشد، نمیتوان او را فریب داد و معاملهای جعلی برقرار کرد.
- دانش صفر: این پروتکل از این بابت با عنوان «دانش صفر» شناخته میشود که هیچ اطلاعاتی را از کسی برای دیگران فاش نمیکند. بهعبارت سادهتر، وقتی که یک تراکنش در جریان پروتکل ZKP انجام میشود، میزان دانش دیگر کاربران در مورد اطلاعات مهم طرفین معامله، صفر خواهد بود.
الگوریتم اثبات با دانش صفر چگونه کار میکند؟
فرض کنید شما میخواهید وارد یک دانشگاه معتبر شوید و برای ورود به نیاز است که نمره معدلتان بالای ۱۹ باشد. سیستم الگوریتم اثبات با دانش صفر میتواند در چنین شرایطی با اثبات اینکه نمره معدل شما بالای ۱۹ است، بدون افشا کردن این مسئله باعث ورودتان به دانشگاه مورد نظر شود. در نتیجه شما باید بهخوبی بدانید که در سیستم ZKP، مسئله اصلی، تایید صحت و سلامت دادهها و اطلاعات و همچنین امنیت کامل آنهاست.
سیستم پروتکل اثبات دانش صفر ابزاری نوآورانه در مقوله توابع هش دنیای کریپتوگرافی محسوب میشود که مولفههای سنتی و قدیمی تبادل اطلاعات را دگرگون کرده است. مهمترین جنبههای سیستم ZKP، ۲ مولفه «تاییدکننده یا verfier» و «اثباتکننده یا prover» هستند که در همه مثالهای مربوط به فهم آن وجود دارند. در تراکنشهایی که پروتکل اثبات دانش صفر در آنها جریان دارد، اثباتکننده یا prover میتواند بدون افشای اطلاعات دیگران، هدف خود از انجام معاملات را اثبات کند.
بارزترین مثال برای درک بهتر پروتکل ZKP
برای اینکه بتوان از کاربردهای الگوریتم اثبات با دانش صفر بهرهمند شد، باید پیچیدگیهای عملکرد آن را با مثالهای ملموس و ساده درک کرد. از زمان ظهور این پروتکل تاکنون مثالهای متعددی برای نشان دادن نحوه عملکرد آن ارائه شدهاند. برای نمونه، مثال غار علیبابا یکی از آن شبیهسازیهای هوشمندانه است که درک عمیقی از پروتکل اثبات دانش صفر ارائه میدهد.
مثال غار علیبابا
در این مثال، شما باید ۲ شخصیت خیالی رضا و بهار را در نظر داشته باشید. حالا فرض کنید که رضا و بهار هر دو در حال ماجراجویی هستند که در نهایت به یک غار میرسند. آنها با ۲ ورودی متفاوت و مجزا یعنی مسیر X و مسیر Y روبهرو میشوند. ضمناً یک در بسته هم در داخل غار علیبابا وجود دارد که امکان اتصال هر دو مسیر یادشده را فراهم میکند.
با تمامی این اوصاف، رضا ادعا میکند که یک کد مخفی برای باز کردن در داخل غار میداند و در نتیجه، نقش آزمایشکننده را برعهده میگیرد. از سوی دیگر، بهار هم میخواهد ادعای رضا را بسنجد؛ بنابراین، او نقش تاییدکننده را بازی خواهد کرد. بهار میخواهد به واقعیت این مسئله برسد که رضا واقعاً کد مخفی را میداند و دروغ نمیگوید؛ بنابراین، ما میتوانیم هر ۲ نقش «اثباتکننده» و «تاییدکننده» را در مثال ZKP مشاهده کنیم. حالا وقت آن رسیده که هر دو طرف معامله ZKP به اهداف خود برسند. برای این کار، رضا باید به بهار ثابت کند که بدون افشای محتوای کد، آن را میداند و دروغ نمیگوید. در ادامه، بهار باید بیرون از غار منتظر بماند و این در حالی است که رضا با استفاده از یکی از مسیرهای X یا Y وارد غار میشود.
در این وضعیت، بهار به دهانه غار نزدیک و رضا هم از طریق یکی از مسیرهای X یا Y وارد غار میشود. اگر با توجه به پروتکل اثبات دانش صفر، رضا کد را بداند، در را باز میکند و از مسیری که بهار درخواست میکند، برمیگردد. اگر رضا کد را نداند، احتمالاً مجبور میشود تا از همان مسیری که وارد شده، برگردد. از طرفی، اگر رضا از همان مسیر انتخابی بهار خارج شود، بهار مطمئن میشود که او کد مخفی را میدانسته.
با تمامی این اوصاف، ممکن است بهار این تصور را داشته باشد که رضا احتمالاً با تکیه بر شانس در این آزمون موفق شده. بهعبارت سادهتر، در این عملیات ۵۰ درصد احتمال دارد که طرفین، یک مسیر یکسان را انتخاب کنند. از طرفی، اگر این عملیات چندینبار تکرار شود، احتمال خروج رضا بدون برخورداری از کد مخفی، از همان مسیری که بهار انتخاب کرده بهمیزان قابل توجهی کاهش مییابد. همچنین، اگر رضا کد مخفی را نداند، احتمال خروج او از مسیر انتخابی بهار تقریباً صفر است. این مثال پروتکل اثبات دانش صفر نشان میدهد که رضا میتوانست با خروج از غار از طریق مسیری که چندینبار توسط بهار انتخاب شده بود، صحت ادعای خود را اثبات کند.
موارد استفاده از پروتکل اثبات دانش صفر
پروتکل اثبات دانش صفر بسیاری از ضعفهای امنیتی مرتبط با سیستمهای احراز هویت مبتنی بر رمز عبور را برطرف میکند و پوشش میدهد. توسعهدهندگان پروتکل اثبات دانش صفر، الگوریتمهای آن را در کاربرد بلاکچین در امنیت اطلاعات ترکیب میکنند تا امکان حفظ دادههای سری و حیاتی کاربران در حین معاملات فراهم شود. در ادامه به موارد استفاده از این پروتکل اشاره خواهیم کرد.
کاربرد ZKP در برنامههای پیامرسان
برنامهها و اپلیکیشنهای پیامرسان برای ایمنسازی محیط ارتباطی کاربران به سیستم رمزگذاری هوشمند متکی هستند. این امر مستلزم آن است که کاربران، اطلاعات هویتی خود را با استفاده از رمزهای عبور قدرتمند تایید کنند. پروتکلهای سیستم ZKP میتواند اعتبار رمز عبور کاربران را بدون افشای آنها مورد تایید قرار بدهد.
مدیریت اطلاعات هویتی
عملیات راستیآزمایی هویت کاربران در حوزههای تایید گذرنامه، گواهینامه رانندگی و غیره، آن هم بدون نیاز به رمز عبور از جمله کاربردهای پروتکل اثبات دانش صفر است. همچنین، پروتکلهای ZKP میتوانند اعتبار کاربران را در سیستمهای قانونی مورد تایید قرار دهند و در عین حال هیچ دادهای را در مورد آنها فاش نکنند.
شکلدهی سیستم بانکداری نوین
اپلیکیشنی را تصور کنید که توسط پروتکل اثبات دانش صفر و با جریان zksync مدیریت میشود. در چنین سیستمی، بررسی موجودی کافی طرف معامله در یک تراکنش بانکی بدون نشت اطلاعات مربوط به موجودی حساب او صورت می۱گیرد. این در حالی است که در سیستم رایج شبکههای بلاکچین، تمامی تراکنشهای ارزهای دیجیتال با نشان دادن کیف پول گیرنده و فرستنده و همچنین مقدار ارز دیجیتال معاملهشده ثبت میشوند.
تامین امنیت بینالملل
در حال حاضر، وزارت دفاع ایالات متحده آمریکا از برنامهای با عنوان SIEVE برای تایید اطلاعات استفاده میکند. این برنامه در پی پیشبرد اهداف پروتکل اثبات دانش صفر در کاربردهای پیچیده دفاعی ساخته و راهاندازی شده است. هدف SIEVE بررسی قابلیتهای مختلف، بدون افشای اطلاعات حساس و سری است.
برای مثال، وزارت دفاع ایالات متحده، با تکیه بر پروتکل اثبات دانش صفر میتواند منشا یک قطعه اطلاعاتی را بدون فاش کردن نحوه بهدستآوری آن، مورد تایید قرار بدهد. همچنین با استفاده از این الگوریتم میتوان یک حمله سایبری را به نهاد یا کشوری خاص نسبت داد، آن هم بدون اینکه نشان داده شود، اطلاعات مورد نیاز چگونه بهدست آمدهاند. ضمناً با تکیه بر سیستم پروتکل اثبات با دانش صفر میتوان توان هستهای کشورها را بدون نیاز به بازرسی فیزیکی تسلیحات، مورد بررسی و تایید قرار داد.
جیپیمورگان و استفاده از فناوری دانش صفر
برنامههای توسعهیافته در حوزه بلاکچین معمولاً با اسناد حساس و مهم سروکار دارند. الگوریتمهای ZKP، برنامههای بلاکچین را قادر میسازند تا دسترسی به دادههای درون بلاکچین محدود شوند و اطلاعات حساس در امنیت کامل قرار بگیرند. قراردادهای هوشمند، دادههای منابع مختلف را برای راهاندازی رویدادهای متعدد ترکیب میکنند.
پروتکل اثبات با دانش صفر، این امکان را برای قراردادهای هوشمند فراهم میکند تا تمامی رویدادها بدون نیاز به دسترسی به اطلاعات حساس اجرا شوند. این ویژگی دقیقاً شبیه به ساختار برنامههای غیرمتمرکز (DApps) است که منشا دادههای آنها توسط الگوریتمهای رمزنگاریشده تایید میشوند.
در همین راستا، پلتفرمی با عنوان Quorum توسط سازمان JPMorgan Chase طراحی شده که بر اساس قراردادهای هوشمند خصوصی پیش میرود. این پلتفرم، امکان تسویه خصوصی داراییهای دیجیتال را فراهم میکند و باعث میشود حریم خصوصی کاربران بانک جیپیمورگان در پیشرفتهترین حالت وجود داشته باشد.
تراکنشهای مطمئن در سایه امنیت ZKP
با کمک مثالهایی که در این مقاله ارائه شدند، احتمالاً حالا درک خوبی از اساس پروتکل اثبات دانش صفر دارید. مزایای فناوری بلاکچین در تمامی ابعاد تجاری و دنیای ارزهای دیجیتال گسترش یافته و با ترکیب پروتکل ZKP با آن میتوان مسئله امنیت و حریم خصوصی را هم تقویت کرد.
کلاسهای تخصصی بسیاری در مورد اموزش پروتکل ZKP در سطح بینالملل اجرا میشوند و علاقهمندان میتوانند برای درک بهتر آن به منابع مختلف مراجعه کنند. راستی، نظر شما در مورد این پروتکل و نحوه عملکرد آن چیست؟ آیا با طرح مقال غار علیبابا توانستید ساختار این پروتکل را درک کنید یا هنوز هم دچار پیچیدگیهای این فناوری هستید؟ نظراتتان را همینجا در والکس با ما در میان بگذارید!