فناوری بلاکچین را میتوان یکی از برجستهترین فناوریهای دیجیتالی به شمار آورد که مزایایی همچون شفافیت و تغییرناپذیری در ماهیت معاملات و شبکههای غیرمتمرکز را به ارمغان آورده است؛ با این وجود مسئله تامین امنیت تراکنشها از جمله اموری بوده که همواره از آن به عنوان پاشنه آشیل این فناوری نوظهور یاد شده و روشن میسازد که برای حفظ امنیت تراکنشها و استانداردهای محافظتی شبکه به گزینههای دیگری نیز نیاز داریم و در همین نقطه است که الگوریتم اثبات دانش صفر (Zero Knowledge Proof) وارد میدان شده و توجهات را به سمت خود جلب میکند. در واقع این پروتکل هنگام ترکیب با سیستم بلاکچین به فرمولی قدرتمند از امنیت و تغییرناپذیری دست پیدا میکند.
حفظ حریم خصوصی در دنیای ارزهای دیجیتالی رهآورد دانش صفر به این عرصه بوده و استفاده از آن بود که محرمانگی اطلاعات را برای دنیای شبکههای بلاکچینی فراهم آورد. طبیعتا بدون آشنایی با دانش صفر امکان دستیابی به یک درک صحیح از عملکرد بلاکچینها وجود نخواهد داشت و برای جا نماندن از قطار تکنولوژی بلاکچین، درک این مفهوم ضروری به نظر میرسد؛ به همین علت ما این مقاله از بلاگ کیف پول من را به معرفی جامع مفهوم دانش صفر اختصاص دادهایم و اگر شما هم در این زمینه کنجکاو هستید، تا انتهای این مطلب با ما همراه باشید.
موضوع 📜 | الگوریتم دانش صفر (ZKP) |
مدت زمان مطالعه ⌛ | 10 دقیقه |
منتشر شده توسط 🙍♂️ | صرافی ارز دیجیتال کیف پول من |
تاریخ انتشار 📅 | 1402/09/11 | 12/02/2023 |
منظور از اثبات دانش صفر چیست؟
در یک تعریف ساده از اثبات دانش صفر میتوان آن را به راهکاری تعریف کرد که تائید اعتبار یک ادعا را بیآن که نیازی به افشای جزئیات داشته باشد، امکانپذیر میسازد و در اصل روشی برای احراز هویت بوده که با حذف مبادله کلیدهای خصوصی و رمزهای عبور، احتمال به سرقت رفتن این کلیدهای خصوصی را منتفی میسازد. این مفهوم برای نخستین بار در سال 1985 در مقالهای با عنوان پیچیدگی دانش سیستمهای اثبات تعاملی که به وسیله چارلز راکف (Charles Rackoff)، شفی گلدواسر (Shafi Goldwasser) و سیلویو مایکالی (Silvio Micali) منتشر گردید، مورد استفاده قرار گرفت. در چنین الگوریتمی، طرفین اثبات کننده و تائید کننده به طور همزمان درگیر هستند؛ به طوری که هدف اثبات کننده، ایجاد یک ادعا و اثبات آن و هدف تائید کننده نیز پاسخگویی برای تائید آن ادعاست.
به بیان بهتر، اثبات دانش صفر یکی از متداولترین روشهای حفظ حریم خصوصی در شبکههای بلاکچین عمومی بوده که در طول آن کاربر قادر است با استفاده از شیوههای رمزنگاری و بدون آن که نیازی به افشای اطلاعات واقعی داشته باشد، به کاربر دیگری ثابت نماید که به محتوای اطلاعات دسترسی دارد. فرض کنید قصد دارید مقدار 1.2 بیت کوین به دوست خود ارسال کنید؛ قبل از آن که تراکنش مورد نظر تائید شود، شبکه باید اطمینان پیدا کند که آیا شما واقعا 1.2 بیت کوین در کیف پول خود دارید یا خیر! یا به عنوان مثال تصور کنید که در یک مسابقه که کیف پول برگزار کرده است کاربران باید ارز دیجیتال مورد علاقه این صرافی را حدس زده و در ازای چنین کاری مقداری از آن را به عنوان پاداش دریافت نمایند. شرکتکنندگان ممکن است در طول روند مسابقه حدسهای مختلفی بزنند؛ اما آنچه که واضح است به این نکته مربوط میشود که کاربران باید از این امر که صرافی در حین مسابقه یا پس از آن، جواب را تغییر نمیدهد، اطمینان حاصل نمایند.
در چنین شرایطی کیف پول من باید یک اثبات داده را برای شرکتکنندگان ارسال کند بیآن که جواب مسابقه را فاش کند؛ برای این کار استفاده از اثبات دانش صفر میتواند بهترین گزینه باشد. در واقع با استفاده از اثبات دانش صفر که گاها از آن با نام اختصاری ZKP یاد میشود، کلیه اطلاعات مهم و شخصی در امان مانده و صرفا اطلاعات ضروری برای شناسایی طرف معامله در دسترس خواهد بود.
نحوه عملکرد اثبات دانش صفر (ZKP)
همان طور که گفته شد، الگوریتم ZKP شرایطی را فراهم آورده که در آن امکان تائید اعتبار یک عبارت بدون نیاز به فاش کردن اطلاعات اضافی در ارتباط با آن وجود دارد و به بیان بهتر، امروزه به لطف وجود اثبات دانش صفر است که کاربران دنیای کریپتوکارنسی میتوانند بدون داشتن نگرانی از حریم خصوصی خود نسبت به خرید بیت کوین و سرمایهگذاری بر روی سایر رمزارزها اقدام نمایند. در طول فرآیند اثبات دانش صفر، اثبات کننده (Prover) یک مدرک یا مقدار اندکی از اطلاعات را ارائه میکند و در طرف دیگر ماجرا نیز تائید کننده (Verifier) صحت ادعای اثبات کننده را تائید مینماید. لازم به ذکر است که استفاده از الگوریتم اثبات دانش صفر صرفا به دنیای کریپتو منحصر نشده و نمونه بارز استفاده از چنین الگوریتمی را میتوان در صنعت بانکداری نیز مشاهده کرد.
ممکن است مراجعه کننده به بانک قصد داشته باشد هویت خود را بدون افشای اطلاعات شخصی همچون کدملی، به بانک ثابت نماید. در چنین فرآیندی مراجعهکننده قادر است با کمک دانش صفر، هویت خود را برای بانک احراز نماید و در چنین سناریویی این فرد مراجعه کننده همان «Prover» و بانک نیز نقش «Verifier» را برعهده خواهد داشت. مراجعه کننده با ارائه کارت شناسایی صادر شده از سوی دولت برای تائید هویت خود استفاده میکند و بانک نیز بدون افشای اطلاعات حساس، تائید میکند که این فرد همان شخصی است که ادعا میکند. رایگیری الکترونیکی نیز بر همین مبنا بنا شده است.
بررسی یک مثال ساده از دانش صفر
عموما تحلیلگران حوزه کریپتو برای ملموسسازی ماهیت اثبات دانش صفر تاکنون از مثالهای مختلفی استفاده کردهاند؛ اما در میان این مثالها تشبیه این روند به غار علی بابا را میتوان یکی از شبیهسازیهای هوشمندانه به شمار آورد که پیچیدگیهای درک نحوه عملکرد اثبات دانش صفر را سادهتر کرده است. فرض کنید که دو شخصیت خیالی به نامهای کامیاب و آسمان در طول یک ماجراجویی در نهایت به غاری میرسند که دارای دو ورودی مجزا به نامهای X و Z است؛ ضمنا یک در بسته نیز در درون این غار وجود دارد که امکان اتصال این دو مسیر را به هم دیگر فراهم میکند.
در این هنگام کامیاب ادعا میکند که از وجود یک کد مخفی برای باز کردن این در اطلاع دارد و به همین علت نقش اثباتکننده را برعهده میگیرد؛ در طرف دیگر ماجرا نیز آسمان قصد دارد که صحت ادعای کامیاب را بسنجد و در نتیجه، نقش تائید کننده را در این سناریو ایفا مینماید. در اینجا کامیاب باید بدون افشای محتوای کد به آسمان ثابت کند که واقعا از این کد اطلاع داشته و دروغ نمیگوید. در ادامه کامیاب از طریق یکی از مسیرهای X و Z وارد غار شده و آسمان بیرون غار منتظر میماند.
اگر چنانچه کامیاب واقعا کد را بداند، در را باز کرده و از مسیر مورد درخواست آسمان به بیرون برمیگردد و در صورتی که ادعای او کذب باشد، مجبور میشود از همان راهی که آمده برگردد؛ از سوی دیگر، اگر کامیاب از مسیر مورد درخواست آسمان از غار خارج شود، آسمان مطمئن خواهد شد که کامیاب دروغ نمیگفته و خروج چندین باره کامیاب از مسیرهای انتخابی آسمان مثال سادهای بوده که در پروتکل اثبات دانش صفر نیز با آن مواجه هستیم.
به طور کلی در کلیه الگوریتمهای اثبات دانش صفر با سه پیشنیاز ضروری مواجه خواهیم بود که عبارتند از:
- کامل بودن و درستی (Completeness): در صورتی که جواب عملیات درست باشد، Verifier میتواند با اطمینان اعلام نماید که Prover مالکیت اطلاعات را در اختیار دارد.
- عدم امکان دستکاری (Soundness): امکان دستکاری یا خرابکاری در جواب عملیات وجود ندارد و به هنگامی که اثبات کننده اطلاعات الزامی را در اختیار نداشته باشد، تائید کننده فریب نخواهد خورد.
- دانش صفر (Zero Knowledge): شخص تائید کننده قادر نخواهد بود به هرگونه اطلاعات اضافی علاوه بر این که جواب عملیات درست است یا نه دسترسی داشته باشد و جزئیات اطلاعات ناشناخته باقی میماند.
مطلب پیشنهادی: الگوریتم اثبات اعتبار( POA )
انواع الگوریتم اثبات دانش صفر
این پروتکل به دو نوع تعاملی و غیرتعاملی تقسیم میشود که توضیح هر یک از آنها به شرح زیر است:
الگوریتم ZKP تعاملی
این نوع از الگوریتم اثبات دانش صفر، شامل مجموعهای از فرآیندها و عملیاتها شده که هر اثبات کنندهای به منظور آن که به تائید کننده اثبات نماید که اطلاعات مورد نظر را در اختیار دارد، باید آنها را به انجام برساند. غالبا عملیاتها و فعالیتهای انجام یافته از سوی اثبات کننده شامل عملیاتهایی در حوزه ریاضیات و احتمالات هستند.
الگوریتم ZKP غیرتعاملی
در این نوع خاص از اثبات دانش صفر، هیچگونه تعاملی میان شخص اثبات کننده و تائید کننده وجود نداشته و اثبات مالکیت اطلاعات در آن، در مراحل بعدی به انجام خواهد رسید. در نوع غیرتعاملی الگوریتم اثبات دانش صفر، به نرمافزار یا سختافزاری جانبی و مستقل از سیستم اجراکننده الگوریتم نیاز خواهیم داشت.
مزایای استفاده از اثبات دانش صفر
اگر به دنبال علت استفاده از دانش صفر هستید، باید بگوئیم که پاسخ این سوال به بررسی مزایای این الگوریتم گره خورده است و به هنگام استفاده از آن، از مزیتهای زیر در دنیای کریپتو بهرهمند خواهید شد:
مقیاسپذیری
با استفاده از اثبات دانش صفر، حجم دادههایی که باید در بلاکچین ذخیره شوند تا حد قابل توجهی کاهش پیدا میکند و ایجاد شرایطی برای تائید تراکنشها بدون نیاز به افشای دادههای رسمی مطمئنا نتیجهای جز مقیاسپذیری بهتر برای شبکههای بلاکچینی نخواهد داشت.
ارتقا سطح امنیت و حریم خصوصی
هنگامی که تراکنشها بدون افشای دادههای اساسی مورد پردازش و تائید قرار میگیرند، سطح بالایی از امنیت تامین میگردد و از این قابلیت میتوان در شرایطی همچون تراکنشهای مالی یا احراز هویت که محرمانگی اطلاعات بسیار حائر اهمیت است، بهره برد.
انطباق و تعاملپذیری
اثبات دانش صفر قادر است در حوزه رعایت قوانینی همچون مبارزه با پولشویی (AML) به سازمانهای متمرکز و غیرمتمرکز کمک کرده و با ارائه راهکارهای امن و خصوصی، تعاملپذیری شبکههای بلاکچینی را تسهیل نماید.
معایب استفاده از اثبات دانش صفر
علیرغم کاربردهای متعدد دانش صفر در زمینه ایجاد تراکنشهای خصوصی، حفاظت از هویت کاربران، احراز هویت، محاسبات قابل تائید و جلوگیری از تبانی در رایگیری تراکنش های درون زنجیرهای، استفاده از این تکنولوژی دارای معایبی نیز میباشد و به علت وجود چنین معایبی است که استفاده از سایر روشهای موجود برای حفظ حریم خصوصی و مقیاسپذیری نیز مورد توجه قرار بگیرد. اولین عیبی که میتوان برای اثبات دانش صفر تصور کرد به هزینههای سختافزاری آن مربوط میشود؛ تولید دانش صفر نیازمند انجام محاسبات پیچیدهای بوده که با استفاده از سختافزارهای خاصی صورت میپذیرد. با توجه به این واقعیت که این سختافزارها گران هستند، افراد عادی امکان دسترسی به آنها را نخواهند داشت.
عیب دیگر این الگوریتم به هزینههای مربوط به تائید اثباتها ارتباط دارد؛ در واقع محاسبات پیچیده این روش سبب شده تا هزینه مرحله اثبات و تائید بسیار بالا باشد، به طوری که رولآپهای (Rollup) مبتنی بر اثبات Zero Knowledge هزینهای معادل 500 هزار گس فی به منظور تائید اثبات ZK-SNARK دریافت میکنند که این هزینه برای ZK-STARK بسیار بیشتر از رقم یاد شده است.
عیب سوم نیز غالبا در ارتباط با روش ZK-SNARK طرح شده که به فرضیات مرتبط با اعتماد افراد در تعیین متغیرهای عمومی پروتکل مربوط میشود. در چنین حالتی، هیچ روشی برای سنجش درستکاری کاربران وجود ندارد، البته روش ZK-STARK چنین مشکلی نداشته و عموما تولید اعداد تصادفی در آن به صورت عمومی قابل تائید هستند. در نهایت آخرین مسئله دانش صفر به تهدیدات محاسبات کوانتومی مربوط میشود که این مشکل نیز مجددا در ZK-SNARK که از الگوریتم منحنی بیضوی استفاده میکند، قابل طرح است و به نظر میرسد که در آینده نزدیک، کامپیوترهای کوانتومی بتوانند امنیت آن را زیر سوال ببرند. البته ZK-STARK در برابر چنین تهدیداتی نیز مصون بوده و از هش مقاوم در برابر آن، استفاده مینماید.
موارد استفاده از اثبات دانش صفر
این الگوریتم برای آن دسته از کاربرانی مفید است که تمایل دارند تسلط بهتری بر اطلاعات و دادههای خود داشته باشند و در ادامه چند مورد از کاربردهای متعدد استفاده از الگوریتم ZKP را مورد بررسی قرار میدهیم:
- اپلیکیشنهای پیامرسان: در چند سال اخیر رمزنگاری سربهسر (End to End) نقش حیاتی را در زمینه خصوصیسازی ارسال پیامهای دیجیتالی ایفا نموده؛ اما باید توجه داشت که عموم اپلیکیشنهای معمول فعال در حوزه پیامرسانی از کاربران خود میخواهند تا اطلاعات خود را در یک سرور مرکزی ذخیره نمایند که کاربران با استفاده از دانش صفر میتوانند بدون درز دادن هرگونه اطلاعات شخصی، هویت خود را در سرور تائید کنند.
- انجام تراکنشهای خصوصی: به طور کلی نگرانیهای زیادی در ارتباط با امنیت و مالکیت در دنیای شبکههای بلاکچینی وجود دارد که همین مسئله سبب شد تا در سال 2019، کمپانی EY راهحلهای بلاکچینی اثبات دانش صفر به نام Nightfall را به بازار عرضه نماید که شرایطی را فراهم کرده تا شرکتها هنگام انجام تراکنشها حریم شخصی خود را حفظ نمایند.
- تبادل اسناد محرمانه: با استفاده از فناوری دانش صفر، افراد قادر خواهند بود در کمال امنیت، اسناد محرمانه و مهم را منتقل نمایند. دانش صفر از این قابلیت برخوردار است که دادهها را در بخشهای کوچک رمزنگاری کرده و دسترسی کاربران دیگر به آن را محدود و کنترل نماید.
دانش صفر؛ راهکاری ایمن برای اعتبارسنجی اطلاعات
ما در این مقاله از بلاگ کیف پول من تلاش نمودیم تا با بیانی ساده شما را با فناوری دانش صفر که امروزه به بخش جدایی ناپذیر دنیای کریپتوکارنسی تبدیل شده است، آشنا سازیم. همان طور که در مطالب فوق مشاهده کردید، امروزه اگر میزان تردیدها در ارتباط با مالکیت داراییهای دیجیتالی کاهش پیدا کرده است و دولتها رویکرد متعادلتری نسبت به ارزهای رمزپایه پیدا کردهاند، به دلیل ورود دانش صفر به حوزه شبکههای بلاکچینی بوده که امنیت تراکنشهای انجام یافته در چنین بستری را بیش از پیش تقویت مینماید. به بیان بهتر، امروزه در سایه دانش صفر است که کاربران میتوانند با خرید اتریوم یا سرمایهگذاری بر روی سایر رمزارزها در یک بستر ایمن به کسب سودهای نجومی برسند.
اثبات دانش صفر امکان مخفی نگه داشتن اطلاعات خصوصی افراد در طول اعتبارسنجی اطلاعات را فراهم میآورد و به نظر میرسد با رشد ابزارهای دانش صفر در آینده نزدیک شاهد توسعه استفاده از فناوری بلاکچین در حوزههای مختلف باشیم. نظر شما در ارتباط با فناوری دانش صفر چیست؟ آیا به نظر شما از این راهکار میتوان برای حفظ حداکثری حریم خصوصی کاربری در بستری همچون بلاکچین کمک گرفت؟
برای دریافت فایل PDF این مقاله اینجا کلیک کنید