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