مفهوم الگوریتم zk-SNARK در دنیای بلاک چین در حال تکامل و گسترش است. روشهای اثبات دانش صفر به ما کمک میکنند تا صحت یک موضوع را بدون افشای اطلاعات و دادههای محرمانه اثبات کنیم. به عبارت دیگر با کمک این روش ثابت می کنیم که در شبکه یک فرد قابل اعتماد هستیم و در عین حال محرمانه بودن اطلاعات را حفظ می کنیم. این منجر به فناوریهای دانش صفر شده است. دو مورد از مهم ترین این فناوری ها، الگوریتم zk-SNARK هستند. صرف نظر از اینکه رویکرد الگوریتم zk-SNARK چیست و چگونه کار می کند، تفاوت آن با zk-STARK نیز یکی از موارد مهمی است که کسب اطلاعات در مورد آن می تواند به ما در درک بهتر فناوری ZKP کمک کند.
الگوریتم zk-SNARK چیست؟
برای ورود به دنیای فناوری اسنارک و استارک، ابتدا باید در مورد اثبات دانش صفر صحبت کنیم. اثبات دانش صفر مستقیماً توسط ادوارد اسنودن، کارمند سابق سیا در توییتر تبلیغ شد. اما به طور کلی، ایده اثبات دانش صفر به تحقیقات چندین محقق MIT در سال 1980 برمی گردد.
الگوریتم zk-SNARK یک روش منحصر به فرد است که به کاربر تأیید کننده اجازه می دهد تا ثابت کند که چیزی را می داند. بدون اینکه بخواهد اطلاعاتی را فاش کند. در واقع این رویکرد به معنای اثبات دانش بدون افشای خود دانش است. تأیید کننده باید به نوعی نشان دهد که آنها اطلاعات را دارند اما خود اطلاعات را منتشر نمی کنند. شواهد ناآگاهی به سرعت قابل تأیید است و اغلب به داده های بسیار کمتری نسبت به یک تراکنش استاندارد بیت کوین نیاز دارد. این یک راه جدید برای استفاده از الگوریتم zk-STARK به عنوان راه حل حفاظت از داده و مقیاس پذیری باز می کند.
همین توضیح کوتاه کافی است تا به سراغ الگوریتم zk-SNARK برویم. این اصطلاح از کلمه کلیدی Zero-Knowledge Succinct Non-Interactive Argument of Knowledge گرفته شده است که به معنای چیزی شبیه اثبات شواهد برای دانش صفر غیرتعاملی است. بد نیست هر یک از این کلمات را به اختصار تکرار کنیم:
- دانش صفر(Zero-Knowledge): ما می توانیم ساعت ها در مورد دانش صفر صحبت کنیم اما در اینجا با ارائه نمونه معروف غار علی بابا به توضیح این مفهوم می پردازیم. یک غار مدور با ورودی را تصور کنید. دو مسیر فرعی در سمت چپ و راست این غار وجود دارد که به کمک دری جادویی در انتهای غار به هم متصل می شوند. برای عبور از در جادویی، باید رمز عبور صحیح را زمزمه کنید.
- Succinct: در الگوریتم zk-SNARK به معنای اجمالی و مختصر است اما منظور از مختصر بودن چیست؟ اثبات مختصر دانش صفر را می توان در چند میلی ثانیه تأیید کرد. طول این گواهی ها تنها چند میلی ثانیه است. اندازه اثبات کوچک است که این فناوری را بسیار سریع می کند.
- Non-Interactive: در نسخههای اولیه پروتکلهای دانش صفر، دو نفر، اثباتکننده و تأییدکننده، مجبور بودند یک فرآیند را چندین بار تکرار کنند و دسترسی به دانش را از طریق این تعامل ثابت کنند. این مشکل تابع تعاملی را نشان می دهد اما در SNARK هایی که از دانش غیر تعاملی استفاده می کنند، اثبات فقط شامل پیام ارسال شده از طرف اثبات کننده به تأیید کننده است.
- Arguments of Knowledge: حالا بیایید به قسمت آخر کلمه کلیدی الگوریتم zk-SNARK برویم. Zk-SNARK ها عموماً از نظر پردازش بی عیب و نقص در نظر گرفته می شوند. به این معنی است که بدون هیچ گونه اطلاعات (یا شاهد) یک جستجوگر تقلب شانس بسیار کمی برای فریب دادن سیستم دارد. این ویژگی به عنوان بی نقص بودن شناخته می شود و فرض می کند که ثابت کننده قدرت پردازش محدودی دارد. در تئوری، یک اثبات کننده با قدرت محاسباتی کافی می تواند شواهد جعلی ایجاد کند. این یکی از دلایلی است که محاسبات کوانتومی را تهدیدی برای zk-SNARK ها و سیستم های بلاک چین می کند.
معرفی مختصری از الگوریتم zk-STARK
از سوی دیگر، zk-STARK را داریم که مخفف عبارت Zero-Knowledge Scalable Transparent Argument of Knowledge است. هر دو الگوریتم ذکر شده برای افزایش حریم خصوصی استفاده می شوند اما تفاوت هایی با هم دارند. به عنوان مثال، اگرچه پروژه هایی مانند Starkware از Stark استفاده می کنند اما این فناوری جامعه بسیار کوچک تری نسبت به Snark دارد. در این فناوری دو کلمه مقیاس پذیری و شفافیت بسیار مهم است که در ادامه به آنها اشاره می کنیم:
اگر نیاز به اطلاعات بیشتری در حوزه رمزارزها دارید، می توانید آموزش ارز دیجیتال را از وب سایت تهیه کنید.
- مقیاس پذیر: Stark به توسعه دهندگان خود اجازه می دهد تا محاسبات خارج از زنجیره و ذخیره داده ها را انجام دهند. گواهیهای STARK توسط خدمات خارج از زنجیره تولید میشوند تا اعتبار محاسبات خارج از زنجیره را تأیید کنند. این مکانیسم مقیاس پذیری را افزایش می دهد.
- Transparent: برخلاف Snark، هیچ راهاندازی قابل اعتمادی در الگوریتم zk-STARK وجود ندارد. تنظیمات قابل اعتماد فرآیندی با هدف تولید پارامترهای پیش فرض است و پروتکل های رمزنگاری از این پارامترها استفاده می کنند. این فرآیند یک بار انجام می شود، در این مدت یک آیتم داده تولید می شود که هر بار که پروتکل رمزگذاری اجرا می گردد استفاده شود. در Snark، یک شخص مورد اعتماد برای پیکربندی سیستم zk Proof مورد نیاز است اما در استارکس با پارامترهای کلی و تصادفی سروکار داریم و این باعث افزایش شفافیت و امنیت استارکس می شود.
استارک ها برخلاف SNARK تمرکز ویژه ای روی توابع هش دارند. همین مسئله بود که به استارک اجازه داد تا برخی از مزایایی را که اسنارک فاقد آن بود اجرا کند. به طور کلی، STARKS برای رفع معایب SNARK ها ایجاد شد.
هدف از معرفی اسنارک و استارک چه بود؟
بسیاری از افرادی که به دنبال حفظ حریم خصوصی هستند، بر این باورند که این ویژگی مهم بسیار فراتر از یک ویژگی است، حتی از آن به عنوان یکی از حقوق اساسی انسان یاد می کنند. این موضوع بر اهمیت فناوریهای مبتنی بر دانش صفر تأکید میکند. به عنوان مثال، zk-SNARK ها می توانند به عنوان مکانیزم انتقال پول در حریم خصوصی موسسات مورد استفاده قرار گیرند. به همین ترتیب با ادغام zk-SNARK ها با شبکه های اجتماعی می توان از فروش اطلاعات کاربران این شبکه ها به شرکت های تبلیغاتی جلوگیری کرد. کاربران (به عنوان مثال موسسات اقتصادی) می توانند با استفاده از پلتفرم های فناوری به صورت محرمانه به تراکنش های مالی و املاک خود دسترسی داشته باشند و همچنین می توانند به پروتکل های حفظ حریم خصوصی ارزهای دیجیتال مانند Zcash دسترسی داشته باشند.
بنابراین اگر بخواهیم با ایده و اهداف این فناوریها ارتباط برقرار کنیم، باید پاسخ را در حریم خصوصی جستجو کنیم. طرفداران الگوریتم zk-SNARK می خواستند که مکانیسم جدید رویکرد بسیار ریشه ای تری برای ایجاد آزمون های دانش صفر داشته باشد. آنچه به نظر می رسد با اصول امنیتی ارزهای دیجیتال در تضاد است در این سیستم جدید اعمال شده است (عدم شفافیت)؛ اما در عین حال، این تصمیمات پیچیدگی سیستم را کاهش داد و اجرای آن را بدون به خطر انداختن امنیت آسان کرد. بلکه راه های جدیدی را برای افزایش امنیت ارائه کرد. این سیستم به محققان اجازه داد تا این فناوری جدید را با استفاده از رمزنگاری همومورفیک، محاسبات چند جانبه ایمن و آزمایشهای تعاملی طراحی کنند.
به طور کلی، هدف هر دو پروتکل کمک به حفظ حریم خصوصی است اما STARK با هدف بهینه سازی SNARK ایجاد شد. البته این بدان معنا نیست که استارک بهتر از اسنارک است. بهتر یا بدتر بودن یک عامل نسبی است. به طور خاص، zk-SNARK جامعه بزرگتری داشته و محبوبیت بیشتری دارد اما نمی توان آن را با قطعیت تأیید یا رد کرد. در قسمتهای بعدی که این دو الگوریتم را با هم مقایسه میکنیم، این مشکل با جزئیات بیشتری تعریف میشود.
روش کار با الگوریتم zk-SNARK
Snark و Stark هر دو بر اساس Zero Knowledge Proof هستند. ساختار Zk-Snarks به پارامترهایی گره خورده است که سعی در اندازه گیری اعتبار یک رکورد دارند. برای تولید این پارامترها به راه اندازی مورد اعتماد نیاز داریم. با این حال، اگر این پارامترها به درستی مدیریت نشوند، یک عامل مخرب در شبکه میتواند تعداد نامحدودی توکن بومی را بدون اطلاع دیگران در شبکه استخراج کند.