مقیاسپذیری و حفظ حریم خصوصی دو ویژگی مهم پروژههای مبتنی بر بلاکچین است. در سالهای گذشته بسیاری از پروژهها از روشهای متنوعی برای افزایش مقیاسپذیری شبکهها استفاده کردهاند که منجر به کاهش زمان تائید و کارمزد ثبت تراکنشها بوده است. حفظ حریم خصوصی در بالاترین سطح مانند اثبات دانش صفر، یک ویژگی مهم بلاکچین است که از ابتدای پیدایش ارزهای دیجیتال مورد توجه عموم بوده است.
اگرچه عمومی بودن اطلاعات بلاکچین یک ویژگی مثبت برای آن به شمار میرود اما در برخی از موارد حفظ حریم خصوصی اهمیت بسیار زیادی دارد. اثبات دانش صفر (Zero Knowledge) یک روش برای رسیدن همزمان به هر دو این ویژگیها است که در سالهای اخیر در تعداد زیادی از پروژههای ارز دیجیتال بهخصوص در پروژههای لایه دوم اتریوم مورداستفاده قرارگرفته است. در این مقاله به بررسی کامل مفهوم این روش و انواع پیادهسازی آن میپردازیم.
اثبات دانش صفر (Zero Knowledge Proof) چیست؟
به زبان ساده، اثبات دانش صفر (ZKP) از رمزگذاری برای اثبات درستی چیزی استفاده میکند، بدون اینکه اطلاعاتی بیشازحد لازم فاش شود و حریم خصوصی را تا حد زیادی بهبود میبخشد. این روش در سال 1985 اختراع شد و بهطورکلی به این صورت تعریف میشود:
پروتکل دانش صفر روشی است که در آن، یک طرف (اثباتکننده) میتواند به طرف دیگر (تأییدکننده) ثابت کند که چیزی درست است، بدون اینکه هیچ اطلاعاتی به غیر از این واقعیت فاش شود. این روش ممکن است تعاملی (Interactive) یا غیرتعاملی (Non-interactive) باشد.
اثبات دانش صفر تعاملی
در اثبات دانش صفر تعاملی، اثباتکننده و تأییدکننده اجازه دارند چندین بار باهم تعامل داشته باشند. تائید کننده، اثباتکننده را به چالش میکشد که تا زمانی که تائید کننده متقاعد شود، به این چالشها پاسخ میدهد.
اثبات دانش صفر غیرتعاملی
اثبات دانش صفر غیرتعاملی به وجود آمدهاند تا نشان دهند که اثباتکننده از اطلاعات خاصی بدون افشای واقعی آن آگاه است.
یک مثال محبوب از اثبات غیرتعاملی بازی والی کجاست؟ «Where’s Wally» است. بازی والی کجاست را تصور کنید، هیچکس نمیداند والی کجاست. هرکسی که بتواند ثابت کند که والی وجود دارد یک جایزه دریافت میکند. در اثبات دانش صفر غیرتعاملی شما والی را پیدا کردید اما نمیخواهید او را نشان کسی دهید؛ زیرا این کار موقعیت والی را به همه نشان میدهد و بلافاصله مسابقه را پایان مییابد.
این روش به صورت غیرتعاملی همچنین باعث میشود که اثباتکننده و تأییدکننده یک کلید به اشتراک بگذارند تا تأیید توسط شخص دیگری غیر از تأییدکننده و تأییدکننده انجام شود. ازآنجاییکه تأییدکننده میتواند اطلاعات را فقط یکبار در زمان معین بررسی کند، این کار نسبت به اثبات دانش صفر تعاملی قدرت پردازش بیشتری میگیرد.
اثبات دانش صفر (ZKP) چگونه کار میکند؟
اثبات دانش صفر به کاربران اجازه میدهد بدون ارائه هیچ اطلاعات اضافی، صحت چیزی را ثابت کنند. برای دستیابی به این هدف، این فناوری از الگوریتمهایی استفاده میکند که دادههای خاصی را بهعنوان ورودی میپذیرند و «درست» یا «نادرست» را بهعنوان خروجی تولید میکنند تا اعتبار ادعاهای ارائهشده توسط اثباتکننده را نشان دهد.
مواردی که باید در یک پروتکل دانش صفر رعایت شوند
کامل بودن (Completeness)
اگر اطلاعات واقعاً درست باشد و هر دو کاربر صادق باشند، تأییدکننده بدون هیچ اطلاعات اضافی متقاعد میشود.
صحت (Soundness)
اگر اطلاعات نادرست باشد، یک اثباتکننده دروغگو نباید بتواند یک تأییدکننده راستگو را فریب دهد تا اطلاعات نامعتبر را معتبر بداند.
دانش صفر (Zero-knowledge)
تأییدکننده نمیتواند چیزی در مورد فراتر از اعتبار اطلاعات (درست از نادرست) به دست بیاورد، به این معنی که آنها هیچ اطلاعی از موضوع ندارند. این باعث میشود تأییدکننده نتواند بفهمد ورودی اصلی بر اساس اثبات چیست.
سه مؤلفه وجود دارد که اثبات دانش صفر را تشکیل میدهد:
شاهد
برای نشان دادن آگاهی از برخی اطلاعات مخفی، اثباتکننده از این فناوری استفاده میکند. «شاهد» اثبات، اطلاعات سری است و فرض اثباتکننده مبنی بر آگاهی شاهد از شواهد، مجموعهای از سؤالات را ایجاد میکند که تنها توسط طرفی که به اطلاعات دسترسی دارد، میتواند پاسخ دهد؛ بنابراین، اثباتکننده یک سؤال را بهطور تصادفی انتخاب میکند، پاسخ را محاسبه میکند و سپس آن را برای تأییدکننده ارسال میکند تا فرایند اثبات را آغاز کند.
چالش
سؤال دیگری از مجموعه بهطور تصادفی توسط تأییدکننده انتخاب میشود که سپس از اثباتکننده میخواهد که پاسخ دهد.
پاسخ
سؤال توسط اثباتکننده پذیرفته میشود و سپس پاسخ را مشخص میکند و آن را به تأییدکننده برمیگرداند. تأییدکننده میتواند بر اساس پاسخ اثباتکننده تعیین کند که آیا اثباتکننده واقعاً به شاهد دسترسی دارد یا خیر. تأییدکننده سؤالات دیگری را برای پرسیدن انتخاب میکند تا مطمئن شود که اثباتکننده بهطور تصادفی پاسخهای درست را حدس نمیزند و به آنها نمیرسد. اگر این تعامل بارها تکرار شود تا زمانی که تأییدکننده راضی شود، احتمال جعل مدرک توسط اثباتکننده به میزان قابلتوجهی کاهش مییابد.
اثبات دانش صفر در برنامههای بلاکچین
دو برنامه بلاکچین محبوب وجود دارد که از این فناوری استفاده میکنند:
زیکیسینک (ZkSync)
استارکنت (StarkNet)
این موارد ZK-rollup هایی هستند که از این روش استفاده میکنند که به مقیاسپذیری شبکه اتریوم کمک میکند.
موارد استفاده از اثبات دانش صفر
پرداختهای ناشناس
همانطور که در ابتدای مقاله ذکر شد، پرداختها بر روی بلاکچین، تراکنش و کیف پول شما را فاش میکند. اگرچه نظارت مالی برای جلوگیری از فعالیتهای مالی غیرقانونی مفید است، اما میتواند مورد سوءاستفاده قرار گیرد و همچنین حریم خصوصی شهروندان عادی را به خطر بیندازد. در بلاکچینهای عمومی، از اثبات دانش صفر نیز برای ناشناس کردن تراکنشها استفاده میشود.
تورنادوکش (Tornado Cash) نمونهای از یک سرویس غیرمتمرکز و غیر حضانتی است که کاربران را قادر میسازد تا تراکنشهای خصوصی اتریوم را با استفاده از اثبات دانش صفر برای پنهان کردن جزئیات تراکنش و اطمینان از ناشناس بودن انجام دهند؛ اما متأسفانه این تراکنشها با فعالیت غیرقانونی هم مرتبط هستند. برای جلوگیری از این کار، حریم خصوصی باید به تنظیمات پیشفرض در بلاکچینهای عمومی تبدیل شود که در استارکنت انجام میشود.
امنیت هویت
راهحلهای مدیریت هویت، دادههای حساس را در معرض خطر قرار میدهد. اثبات دانش صفر میتواند به افراد در تأیید هویت خود و درعینحال محافظت از اطلاعات آنها کمک کند.
احراز هویت
استفاده از خدمات اینترنتی مستلزم ایجاد حقوق شناسایی و دسترسی است. بیشتر اوقات، این به معنای دادن اطلاعات شخصی مانند نام، آدرس ایمیل، تاریخ تولد و غیره است.
بااینحال، اثبات دانش صفر میتواند احراز هویت را برای پلتفرمها و کاربران بهطور یکسان ساده کند. هنگامیکه یک اثبات دانش صفر با استفاده از اطلاعات عمومی (بهعنوانمثال، دادههایی که ثابت میکند کاربر عضو پلتفرم است) و خصوصی (مثلاً جزئیات کاربر) ساخته شد، کاربر میتواند بهراحتی آن را در صورت نیاز به سرویس ارسال کند تا ثابت کنند که چه کسی هستند.
اثبات رمز عبور با دانش صفر
این فناوری برای رمزهای عبور نیز قابلاستفاده است. این یک طرف (اثباتکننده) را قادر میسازد تا به طرف دیگر (تأییدکننده) نشان دهد که رمز عبور را میداند بدون اینکه چیزی را برای تأییدکننده فاش کند – به غیر از این که اثباتکننده رمز عبور را میداند.
چالشهای اثبات دانش صفر
درحالیکه ZKPها راهحلی عالی برای حفظ حریم خصوصی در بلاک چین به نظر میرسند، اما با چالشهای متعددی همراه هستند که در زیر به آنها خواهیم پرداخت.
تایید، ضمانت نیست
ZKPها اطمینان 100٪ از صحت ادعا را ارائه نمیدهند – حتی اگر احتمال تأیید در زمانی که اثباتکننده دروغ میگوید ممکن است بسیار کم باشد.
سختافزار گرانقیمت
باتوجهبه محاسبات بسیار دشوار موردنیاز برای تولید ZKP، دستگاههایی که قادر به اجرای این پروتکلها هستند، گرانتر هستند و همه توان خرید آنها را ندارند. برنامههایی که قصد استفاده از فناوری دانش صفر را دارند باید هزینههای سختافزاری را نیز در نظر بگیرند که میتواند قیمتها را برای کاربران افزایش دهد.
نتیجهگیری
حفظ حریم خصوصی برای کسبوکارها و سازمانها برای رقابتی ماندن بسیار مهم است. ماهیت باز بودن بلاکچین و عدم استفاده آسان از ویژگیهای حریم خصوصی میتواند یکی از دلایل اصلی استفاده از فناوری بلاکچین باشد. این امکان وجود دارد که موج بعدی پذیرش انبوه ارزهای دیجیتال آغاز شود که ناشی از تقاضای دنیای واقعی برای راحتی است که فناوری دانش صفر میتواند هم به کاربران و هم برای کسبوکارها بدهد.
منبع coingecko