بلاک چین یک فناوری قدرتمند است که به کاربران کمک میکند تا بهراحتی از این فناوری استفاده کرده و نیازهای خود را برطرف کنند. با این حال، بلاک چین کاملا شفاف است و میتوان به اطلاعات تراکنشها و... دسترسی داشت. برای حل این مشکل و حفظ حریم خصوصی کاربران راهحلهای مختلفی وجود دارد. اثبات دانش صفر (ZK-proofs) یکی از پروتکلهای قدرتمند است که محرمانگی را برای دنیای بلاک چین به ارمغان میآورد. این فناوری کاربردهای بسیار زیادی دارد و در پروژههای مختلفی به کار میرود. اثبات دانش صفر امکان تایید دادهها را بدون نیاز به افشای اطلاعات خصوصی، فراهم کرده و سطح بالایی از امنیت و حریم خصوصی را ارائه میدهد. در این مقاله از صرافی اکسبیتو، قصد داریم اثبات دانش صفر (ZK-proofs)، انواع، کاربردها و نحوه عملکرد آن را مورد بررسی قرار دهیم.
اثبات دانش صفر (ZK-proofs) چیست؟
اثبات دانش صفر (ZK-proofs) یک پروتکل رمزنگاری است که به اثباتکننده این امکان را میدهد تا بدون افشای جزئیات، یک ادعای خاص را به تاییدکننده ثابت کند. این ایده برای اولینبار در اوایل دهه 1980 توسط پژوهشگرانی با نامهای شفی گلدواسر (Shafi Goldwasser)، سیلویر میکالی (Silvio Micali) و چارلز راکف (Charles Rackoff) ارائه شد. هدف از الگوریتم اثبات دانش صفر متقاعد کردن تاییدکننده، بدون استفاده از اطلاعات خصوصی بوده و بر اساس سه اصل کامل بودن، درستی و دانش صفر بنا شده است.
انواع اثبات دانش صفر (ZKP) چیست؟
اثبات دانش صفر انواع مختلفی داشته که هرکدام از انواع آن، ویژگیهای خاص خود را دارد. بهطور کلی، انواع اثبات دانش صفر (ZKP) عبارتاند از:
اثبات دانش تعاملی (Interactive ZK-proofs)
این نوع از اثبات دانش صفر، به ارتباط دوطرفه بین اثباتکننده و تاییدکننده نیاز دارد. اثبات دانش تعاملی شامل یکسری چالشهای ریاضی است که باید توسط گیرنده حل شوند.
اثبات دانش غیرتعاملی (Non-interactive ZK-proofs)
اثبات دانش غیرتعاملی یک الگوریتم فشرده است که طی یک مرحله تایید میشود. این نوع از اثبات دانش صفر به منابع محاسباتی بیشتری نیاز داشته و حین اجرای آن هیچ تعاملی بین طرفین معامله صورت نمیگیرد.
اثبات ZK آماری (Statistical ZK-proofs)
اثبات ZK از نوع آماری، درستی محاسبات را با کمترین میزان خطا ارائه میدهد.
اثبات دانش (Proof-of-Knowledge) یا PoK
PoK زیرمجموعهای از اثبات ZK است که نشان میدهد، اثباتکننده دانش خاصی در رابطه با اظهارات بیانشده دارد.
اثباتی از مخلوط کردن و محدوده (Proofs of shuffle and range)
این نوع از اثباتهای دانش صفر برای انجام اموری همچون رایگیری الکترونیکی و تراکنشهای مبتنی بر حفظ حریم خصوصی مورد استفاده قرار میگیرند.
پروتکلهای سیگما (Sigma protocols)
پروتکلهای سیگما نوعی از اثبات دانش صفر هستند که طی سه مرحله تعهد، چالش و پاسخگویی اجرا میشوند. این پروتکلها قدرت بسیار زیادی دارند و جزء اثباتهای پرکاربرد به شمار میروند.
ضدگلوله ها (Bulletproofs)
ضدگلوله به مدارک کوتاهی گفته میشود که از اثبات دانش صفر غیرتعاملی استفاده میکند و نیاز به تنظیمات قابل اعتماد ندارد. این الگوریتمها در پروژههای بزرگ و برای فعال کردن تراکنشهای خصوصی ارزهای دیجیتال مورد استفاده قرار میگیرند. از مطرحترین پروژههایی که از این فناوری استفاده میکنند میتوان به StarkNet، zkSync و Loopring اشاره کرد.
اثبات های دانش صفر (ZKP) چگونه کار می کنند؟
اثبات دانش صفر به شما این امکان را میدهد که بتوانید یک ادعا یا بیانیه را بدون آشکار کردن اطلاعات خصوصی ثابت کنید. پروتکل اثبات دانش صفر (ZKP) با استفاده از الگوریتمهایی کار میکند که برخی از دادهها را تحتعنوان ورودی دریافت کرده و درست یا نادرست بودن آنها را بهعنوان خروجی برمیگردانند. یک پروتکل اثبات دانش صفر باید معیارهای زیر را برآورده کند:
کامل بودن (Completeness)
اگر ورودی معتبر باشد، پروتکل دانش صفر همیشه درست را برمیگرداند. بنابراین، اگر گزاره اصلی درست باشد و هر دو عامل یعنی اثباتکننده و تایید کننده بهصورت صادقانه عمل کنند، بهراحتی دلیل پذیرفته خواهد شد.
صحت و درستی (Soundness)
اگر ورودی نامعتبر باشد امکان فریب دادن پروتکل دانش صفر وجود ندارد. یعنی شما نمیتوانید دادهها را بهعنوان درست یا معتبر بازگردانید. با توجه به این قضیه یک اثباتکننده دروغگو نمیتواند یک تاییدکننده صادق را فریب دهد و یک قضیه را به اثبات برساند.
دانش صفر (Zero-knowledge)
تاییدکننده چیزی فراتر از اعتبار یا درستی یک گزاره را یاد نمیگیرد. این ویژگی باعث میشود که تاییدکننده نتواند ورودی اصلی را از اثبات استخراج کند.
عناصر تشکیل دهنده اثبات دانش صفر (ZKP) کدامند؟
اثبات دانش صفر (ZK-proofs) از سه عنصر شاهد، چالش و پاسخ تشکیل میشود. هر یک از این عناصر وظیفه خاص خود را داشته و وجود آنها برای اثبات ورودی ضروری است. در این بخش هر یک از عناصر تشکیلدهنده اثبات دانش صفر را برای شما شرح میدهیم.
شاهد (Witness)
اثباتکننده با استفاده از دانش صفر قصد دارد که چیزی را ثابت کند. اطلاعات محرمانه (شاهد) برهان است و اثباتکننده با داشتن علم و دانش کافی درباره موضوع، سوالاتی را از شاهد میپرسد. در واقع اثباتکننده فرایند اثبات را با انتخاب یک سوال تصادفی، پاسخ دادن و ارسال آن به تاییدکننده شروع میکند.
چالش (Challenge)
تاییدکننده یک سوال تصادفی را انتخاب کرده و از اثباتکننده میخواهد که به آن پاسخ دهد.
پاسخ (Response)
اثباتکننده سوال را قبول میکند، پاسخ آن را محاسبه کرده و به تاییدکننده برمیگرداند. تاییدکننده برای اینکه از پاسخهای اثباتکننده اطمینان حاصل کند، سوالات متعددی را از آن میپرسد. تکرار این فرآیند باعث میشود که دانش شاهد ارزیابی شده و موضوع مورد بحث برای تاییدکننده بهطور کامل ثابت شود.
کاربردهای اثبات دانش صفر چیست؟
اثبات دانش صفر یکی از ابزارهای مهم و کاربردی است که در زمینههای مختلف مورد استفاده قرار میگیرد. از این الگوریتم قدرتمند میتوان برای محافظت از حریم خصوصی دادهها و تامین امنیت مجموعهها استفاده کرد؛ اما این تنها کاربرد اثبات دانش صفر نیست. در این بخش مهمترین کاربردهای اثبات دانش صفر (ZK-proofs) را برای شما شرح میدهیم.
پرداخت های ناشناس (Anonymous payments)
ارزهای دیجیتال بهعنوان یک ابزار ایدئال برای انجام معاملات خصوصی و همتابههمتا شناخته میشوند؛ اما باید به این نکته توجه داشت که اکثر تراکنشهای انجامشده در بلاک چینهای عمومی قابل مشاهده هستند. اگرچه اغلب کاربران از اسمهای مستعار استفاده میکنند؛ ولی با تجزیه و تحلیل آنها میتوان به هویت واقعی افراد پی برد.
در این میان، برخی از ارزهای حریم خصوصی وجود دارند که برای انجام تراکنشهای کاملا ناشناس طراحی شدهاند. بلاک چینهای مبتنی بر حریم خصوصی از جمله زی کش و مونرو جزئیات تراکنشها، آدرس فرستنده و گیرنده، نوع دارایی، مقدار تراکنش و زمان انجام تراکنش را مخفی نگه میدارند تا از حریم خصوصی افراد محافظت کنند.
شبکههای بلاک چین مبتنی بر حریم خصوصی با استفاده از فناوری دانش صفر به گرهها این اجازه را میدهند که تراکنشها را بدون دسترسی به دادههای تراکنش تایید و ثبت کنند. اثبات دانش صفر نیز برای ناشناس کردن تراکنشها در بلاک چینهای عمومی مورد استفاده قرار میگیرد. بهعنوان مثال، تورنادو کش از اثبات دانش صفر استفاده میکند تا جزئیات تراکنش را مخفی نگه دارد و حریم خصوصی مالی کاربران را تضمین کند.
حفاظت از هویت (Identity protection)
سیستمهای مدیریت هویت قدیمی اطلاعات شخصی افراد را در معرض خطر قرار میدهند. الگوریتم اثبات دانش صفر (ZK-proofs) به کاربران این امکان را میدهد که هویت خود را تایید کرده و در عین حال، اطلاعات حساس خود را مخفی نگه دارند. این الگوریتمها در زمینه هویت غیرمتمرکز (Decentralized identity) کاملا موثر هستند. چون به کاربران کمک میکنند که کنترل و دسترسی کاملی به دادههای شخصی خود داشته باشند. اثبات شهروندی بدون فاش کردن اطلاعات مالیاتی یا گذرنامه یک نمونه جالب از هویت غیر متمرکز با استفاده از دانش صفر است.
احراز هویت (Authentication)
احراز هویت یکی از فرایندهای ضروری است که برای استفاده از خدمات آنلاین از کاربران درخواست میشود. در چنین شرایطی کاربران باید اطلاعات شخصی خود همچون نام، نام خانوادگی، تاریخ تولد، آدرس ایمیل و… را در اختیار پلتفرم مربوطه قرار دهند. همچنین، در برخی از مواقع لازم است که یک سری رمزهای طولانی و سخت را به خاطر بسپارند.
اثبات دانش صفر در این زمینه نیز میتواند چارهساز باشد؛ چون فرایند احراز هویت را هم برای کاربران و هم پلتفرمها آسانتر میکند. یک دانش اثبات صفر از ورودیهای عمومی و ورودیهای خصوصی کمک میگیرد تا کاربران بتوانند بهراحتی فرایند احراز هویت را در پلتفرمهای مختلف انجام دهند. دقت داشته باشید که این کار، پلتفرمها را از ذخیره حجم عظیمی از اطلاعات بینیاز کرده و تجربه کاربری افراد را بهبود میبخشد.
محاسبات قابل تایید (Verifiable computation)
محاسبات قابل تایید یکی دیگر از کاربردهای دانش اثبات صفر است. شبکههای اوراکل غیرمتمرکز همانطور که با دسترسی به دادههای خارج از زنجیره، قراردادهای هوشمند را اجرا میکنند؛ میتوانند از دانش اثبات صفر برای اثبات برخی از واقعیتهای خارج از شبکه نیز سود ببرند، بدون اینکه دادههای زیربنایی موجود در زنجیره آشکار شوند.
کاهش رشوه و تبانی در رای گیری های زنجیره ای (Reducing bribery and collusion in on-chain voting)
طرحهای رایگیری بلاک چین مزایای بسیار زیادی دارند؛ چونکه هیچگونه محدودیتی از لحاظ موقعیت جغرافیایی نداشته، در برابر حملات ایمن هستند و میتوان آنها را ارزیابی کرد. بااینحال، طرحهای رایگیری زنجیرهای در برابر رشوه و تبانی مصون نیستند. این موضوع باعث میشود که فرایند رایگیری اثربخشی مطلوب خود را از دست بدهد و عواقب بدی بههمراه داشته باشد.
خوشبختانه این مشکل نیز راهحلی دارد و شما با خیال راحت میتوانید در رایگیریهای زنجیرهای شرکت کنید. برای این کار از MACI (Minimum Anti-Collusion Infrastructure) کمک گرفته میشود که خود MACI نیز برای جلوگیری از رشوه و تبانی، از الگوریتم اثبات دانش صفر استفاده میکنند. MACI به مجموعهای از قراردادها و اسکریپتهای هوشمند گفته میشود که به مدیر اجرایی این امکان را میدهد تا بتواند آرا را بدون افشای جزئیات و بدون این که تبانی در آن صورت بگیرد، جمع آوری کند.
آیا اثبات دانش صفر میتواند در پلتفرم های بلاک چین ادغام شود؟
اثبات دانش صفر را میتوان در پلتفرمهای بلاک چین ادغام کرد و با موفقیت کامل در شبکههای مختلف بلاک چین پیادهسازی نمود. این الگوریتم یک تکنیک موثر برای افزایش امنیت، کارایی و حفظ حریم خصوصی در سیستمهای بلاک چین است. پس از ادغام دانش صفر در بلاک چین، میتوانید از آنها برای انجام کارهای زیر استفاده کنید:
- حریم خصوصی و محرمانه ماندن اطلاعات
- احراز هویت
- مقیاس پذیری
- تایید و بررسی صحت اطلاعات
- همکاری متقابل زنجیرهای
مزایا و معایب اثبات دانش صفر کدامند؟
فناوری اثبات دانش صفر یکی از فناوریهای پرکاربرد است که در صنعت بلاک چین مورد استفاده قرار میگیرد. این فناوری همانند سایر برنامههای تاسیسشده دارای یکسری مزایا و معایب خاص است. برای اینکه بتوانید درک بهتری نسبت به اثبات دانش صفر (ZK-proofs) داشته باشید، لازم است که این مزایا و معایب را بهطور کامل بشناسید.
سخن پایانی
اثبات دانش صفر (ZK-proofs) نیاز به اشتراکگذاری اطلاعات خصوصی از جمله نام، رمز عبور و... را از بین میبرد. الگوریتم اثبات دانش صفر یک راهحل ایدئال برای اثبات موضوعات مهم بدون افشای اطلاعات خصوصی است. این موضوع در کنار استفاده آسان از فناوری بلاک چین سبب شده است که کاربران تجربه کاربری بهتری داشته باشند. با استفاده از ZKP سطح جدیدی از امنیت به تراکنشهای بلاک چین اضافه شده و تمام تراکنشها، توافقنامهها، اطلاعات و تعاملات بهصورت ایمن و خصوصی رد و بدل میشوند. بهخاطر همین، در این مقاله، بررسی کردیم که اثبات دانش صفر چیست، چه انواعی دارد و چگونه کار میکند.