امنیت اطلاعات و حفظ حریم خصوصی یکی از مهمترین ویژگیهای بلاکچین است و بسیاری از افراد تنها به همین دلیل از این تکنولوژی استفاده میکنند. الگوریتم اثبات دانش صفر یکی از روشهای رمزنگاری دادهها در فضای بلاکچین است. این روش بر اساس ذخیره دادههای حساس به صورت ناشناس کار میکند. یعنی افراد میتوانند بدون اینکه اطلاعات خصوصی خود را فاش کنند، میتوانند آنها را تایید کنند؛ مثل احراز هویت دیجیتال که نیازی به اطلاعات هویت واقعی مثل کد ملی ندارد.
الگوریتمهای اجماع یکی از تخصصیترین بخشهای تکنولوژی بلاکچین هستند، اما در این مقاله مفاهیم مربوط به اثبات دانش صفر را به زبان ساده مورد بررسی قرار میدهیم تا کاربران با هر سطح دانش در زمینه ارزهای دیجیتال بتوانند آن را درک کنند.
الگوریتم اثبات دانش صفر چیست؟
الگوریتم Zero Knowledge Proof که با مخفف ZKP شناخته میشود و برای بسیاری از کاربران بازار ارزهای دیجیتال بسیار مبهم است. به خصوص زمانی که خبرهایی حاکی از استفاده از این الگوریتم در کلاهکهای هستهای میشنویم، جایی که کاملا با بازار ارزهای دیجیتال متفاوت است!
اثبات دانش صفر مفهوم و رویکردی است که در هرجایی به رمزنگاری نیاز باشد، استفاده میشود، به همین دلیل در مواردی به غیر ارزهای دیجیتال هم کاربردهای بسیاری دارد. در این مقاله مرحله به مرحله اثبات هیچآگاهی را بررسی میکنیم تا به درک کاملی از آن برسید.
مفهوم اثبات دانش صفر
ZKP یک روش رمزنگاری است که کاربران در آن میتوانند دادههای مختلف را بدون افشای اطلاعات حساس آن به کاربر دیگر ارسال کند. این یعنی ما میتوانیم اطلاعات خود را بدون نیاز به افشای آنها تایید کنیم.
در حال حاضر این امکان وجود ندارد. تصور کنید قصد دارید یک حساب کاربری در شبکههای اجتماعی مانند اینستاگرام بسازید. برای ایجاد این حساب شما باید احراز هویت انجام دهید و اطلاعاتی مثل شماره تلفن همراهتان را فاش کنید. این موضوع حریم خصوصی و امنیت اطلاعات شما را در خطر قرار میدهد. زیرا یک شرکت متمرکز به اطلاعات شما دسترسی دارد و احتمال سوء استفاده از آن وجود دارد. البته که کمپانیهای بزرگی چون متا اعتماد مخاطبان که سرمایه اصلی آنهاست را بخاطر سوءاستفاده از اطلاعاتشان از دست نمیدهند.
اگر کمی عمیقتر به این موضوع فکر کنید، متوجه میشوید که نقل و انتقالات ساده اطلاعات میتوانند یک فاجعه بزرگ باشند و تنها بخاطر خط قرمزها تاکنون چنین مشکلی پیش نیامده است. اگر روزی کسی بخواهد این خط قرمزها را زیر پا بگذارد چه کسی میتواند جلودار او باشد؟
با استفاده از الگوریتم اثبات دانش صفر میتوانید حسابهایی بسازید که نیازی به افشای اطلاعات هویتی واقعی (شماره ملی، شماره تلفن همراه و…) ندارد. در پروتکلهایی که از این روش استفاده میکنند، کاربران (تولیدکنندگان اطلاعات) نوع خاصی از داده را در اختیار شبکه اجتماعی مورد نظر (تایید کننده) قرار میدهد.
کاربردهای الگوریتم Zero Knowledge Proof چیست؟
این الگوریتم در حوزه امنیت سایبری کاربردهای بسیاری دارد. به عنوان مثال کاربران میتوانند بدون ارائه رمز عبور وارد پلتفرمهای مورد نظر خود شوند. یا به عنوان مثالی دیگر پلتفرمهای مالی نقل و انتقالات مالی را بدون دسترسی به اطلاعات حساب کاربر انجام میدهند. این پلتفرمها تنها میتوانند موجودی حساب کاربر را بررسی کنند تا متوجه شوند آیا این حساب موجودی مورد نیاز برای انجام این تراکنش را دارد یا خیر.
از نظر تئوری، کاربردهای بسیاری برای این الگوریتم اثبات دانش صفر وجود دارد، اما در حال حاضر بیشتر در حوزه بلاکچین مورد استفاده قرار میگیرد. در ادامه بیشتر به کاربرد این الگوریتم در بلاکچین میپردازیم.
مثالی درباره کاربرد الگوریتم اثبات دانش صفر
در کاربرد این الگوریتم دو نقش اثبات کننده و تایید کننده وجود دارد. اثبات کننده کسی است که میداند اصل اطلاعات رمزنگاری شده چیست ولی نمیخواهد آن را فاش کند. تایید کننده کسی است که نمیداند اطلاعات چیست ولی باید از درستی آن مطمئن باشد تا بتواند آن را تایید کند.
به عنوان مثال تصور کنید مهدی یک اثبات کننده است و علی یک تاییدکننده. مهدی میخواهد به علی ثابت کند رمز کارت عابربانکی که در دست دارد را میداند، اما نمیخواهد آن رمز را به علی بگوید. در نتیجه علی و مهدی باهم به یک دستگاه عابربانک مراجعه میکنند. مهدی کارت را داخل دستگاه قرار میدهد و رمز را بدون اینکه علی ببیند، وارد میکند. در نتیجه علی متوجه میشود که مهدی رمز کارت را میداند، بدون اینکه خودش رمز را فهمیده باشد. این مثال ساده تا حدی روش کار الگوریتم اثبات دانش صفر را برای شما مشخص میکند.
چرا بلاکچین به الگوریتم اثبات دانش صفر نیاز دارد؟
بلاکچین به عنوان یک تکنولوژی خصوصی شناخته میشود که در آن افراد بدون اینکه شناخته شوند، فعالیت میکنند. اما متخصصان بلاکچین میدانند که این تکنولوژی نسبت به همه سیستمهای مالی دیگر شفافتر عمل میکند و حتی عمومی است! در یک شبکه بلاکچین مانند بیت کوین اطلاعات مختلف را افشا میکند. دادههایی که به صورت عمومی روی این بلاکچین ذخیره شدهاند، در دسترس هزاران نود قرار دارند و اطلاعات عمومی تراکنشهای آن بین تمام نودهای شبکه توزیع میشود.
زمانی که در بلاکچین یک تراکنش انجام میدهید، سه داده مهم در بلاکچین ذخیره میشود:
- آدرسی که تراکنش را ارسال کرده است.
- آدرسی که تراکنش را دریافت کرده است.
- ارزشی که در این تراکنش مبادله شده است.
شفافیت این سیستم مزیتهای بسیاری دارد که همیشه درباره آن صحبت کردهایم. اما این بار به معایب این شفافیت میپردازیم. تصور کنید یک فرد میلیاردر که شهرت چندانی ندارد، در بلاکچین تراکنشی با مبلغ بالا انجام میدهد. از آنجایی که اطلاعات این تراکنش به صورت عمومی بر بستر بلاکچین ذخیره شده، همه نودهای فعال در شبکه به آن دسترسی دارند و میتوانند آدرس این میلیاردر در بلاکچین را پیدا کنند. در نتیجه امکان پیگیری تراکنشهای بعدی او را هم خواهند داشت. اگر یکی از این نودها، هویت فرد ناشناس در دنیای واقعی را بشناسد و آن را فاش کند، این فرد در معرض تهدیدهای شناخته شدن در دنیای واقعی قرار میگیرد.
اگر بلاکچین از الگوریتم Zero Knowledge Proof استفاده کند، چنین مشکلی هیچوقت به وجود نمیآید. تراکنش مورد نظر بدون اینکه هویت فرستنده و دریافتکننده آن فاش شود، کامل خواهد شد و بلاکچین اطلاعات رمزنگاری را تایید میکند.
کدام بلاکچین ها از الگوریتم اثبات دانش صفر استفاده میکنند؟
بلاکچینهای مختلف اخیرا به استفاده از روش اثبات دانش صفر توجه نشان دادهاند و در تلاشند از آن بهره ببرند. توسعهدهندگان در حال ایجاد پرایوسی کوینها (ارزهای دیجیتال حریم خصوصی) هستند. بلاکچینها متمرکز هستند. بلاکچینهایی مثل مونرو (Monero) و پروتکلهای میمبل ویمبل (Mimblewimble) مانند Grin و Beam مشهورترین پروتکلهایی هستند که از این روش برای رمزنگاری دادههایشان استفاده میکنند.
ZCash اولین پروتکلی ارز دیجیتالی بود که الگوریتم اثبات دانش صفر را استفاده کرد. zk-SNARK روشی بود که ZCash برای استفاده از این الگوریتم استفاده کرد. zk-SNARK به معنی اثبات مختصر و غیرتعاملی دانش صفر است. ZCash بلاکچین اختصاصی ندارد، بنابراین زمانی که با این ارز دیجیتال تراکنش انجام میدهید در عین استفاده از الگوریتم اجماع بلاکچین مورد نظر، میتوانید محافظی رمزنگاری شده برای دادههای خود ایجاد کنید.
zk-SNARK قابلیتهای دیگری هم دارد؛ مثلا در این پروتکل کاربری که دادهها را ایجاد کرده نیازی به تعامل با نود تاییدکننده ندارد. در نتیجه تراکنش در مدت چند میلیثانیه پردازش و تایید میشود. توسعهدهندگان زیکش اعلام کردهاند که الگوریتم اثبات دانش صفر بسیار کمحجم است و برای ذخیره آن فقط به چند صد بایت حافظه نیاز است.
محدودیت های الگوریتم اثبات دانش صفر چیست؟
پیش از این الگوریتم Zero Knowledge Proof به عنوان یک مفهوم انتزاعی و تئوری شناخته میشد، اما در حال حاضر راهکارهای عملیاتی برای استفاده و اجرای آن وجود دارد. در حال حاضر تعدادی از پروتکلهای ارز دیجیتال و شبکههای بلاکچین از این الگوریتم استفاده میکنند، اما هنوز موانع بسیاری در مسیر پذیرش عمومی و استفاده از آن در دنیای واقعی وجود دارد.
موانع موجود برای اجرای الگوریتم هیچ آگاهی به عنوان مکانیزم اجماع عبارت است از:
- در حال حاضر هیچ بلاکچین و سیستمی آنقدر یکپارچه و هماهنگ نیست که بتوان استانداردهای اثبات دانش صفر را روی آن پیادهسازی کرد. در واقع بستری برای ایجاد تعامل بین نودهای این الگوریتم (اثباتکنندهها و تاییدکنندهها) وجود ندارد.
- احتمال اینکه زیرساختهای قدیمی توانایی اجرای الگویتم اثبات دانش صفر را نداشته باشند وجود دارد.
- مقیاسپذیری یکی از موانع مشترک بین اثبات دانش صفر (ZKP) و برخی دیگر از الگوریتمهای اجماع است.
- احتمال اینکه بخاطر ایجاد مشکلات فنی، اثباتهای مختلف بدون دلیل چندین بار تکرار شوند، وجود دارد.
- در پروتکلهایی که از اثبات هیچ آگاهی استفاده میکنند، احتمال از دست رفتن اطلاعات وجود دارد. اگر کاربران اطلاعات رمزنگاری و پنهان خود را از دست بدهند، از هیچ طریقی نمیتوانند آنها را بازیابی کنند.
کلام آخر
در حال حاضر اطلاعات ارزش بالایی دارند و در بسیاری از شرکتها، اطلاعات و دادههایشان مهمترین سرمایهای است که دارند. تنوع روشهای حملات سایبری و افشای اطلاعات محرمانه باعث نگرانی کاربران شده است. آنها همیشه به دنبال بهترین راه برای حفظ اطلاعات و حریم خصوصیشان هستند و الگوریتم اثبات دانش صفر (ZKP) روشی است که امنیت مورد نیاز را در اختیار آنها قرار میدهد.
این روش در حال حاضر به صورت محدود در برخی از بلاکچینها استفاده میشود و احتمال میرود در دنیای آینده کاربردهای بیشتری داشته باشد. کارشناسان داموندمگ اطلاعات تخصصی درباره دنیای ارزهای دیجیتال را به زبان ساده در اختیار کاربران قرار میدهند. دانستن این اطلاعات برای ترید موفق و پیدا کردن فرصتهای بهتر در بازار ارزهای دیجیتال ضروری است.
FAQ
- آیا الگوریتم اثبات دانش صفر در دنیای بلاکچینها وجود دارد؟
پروتکلهایی که از الگوریتم اثبات دانش صفر استفاده میکنند به امکانات خاصی مانند ورودی تعاملی از نود اعتبارسنج نیاز دارند. در حال حاضر همه بلاکچینها امکانات لازم برای استفاده از این الگوریتم اجماع را ندارند، اما برخی از آنها به کمک روشهایی که نیاز به تعامل ندارند، از این الگوریتم استفاده میکنند.
- کاربرد امضای دیجیتال در الگوریتم هیچ آگاهی چیست؟
نودهای اعتبارسنج با تطبیق امضای دیجیتال تراکنشها با کلیدهای عمومی کاربران از صحت تراکنش و اعتبار آن مطمئن میشوند.
- آیا بیت کوین و اتریوم از الگوریتم اثبات دانش صفر استفاده میکنند؟
بلاکچینهای بزرگ هیچکدام از الگوریتم هیچ آگاهی استفاده نمیکنند و برنامهای برای استفاده از آن هم ندارند. زی کش مشهورترین پروتکلی است که از این الگوریتم اجماع برای تایید تراکنشهایش بهره میبرد.