متوسط کریپتو پدیا

همه چیز درباره الگوریتم های zk-SNARK و zk-STARK

مفهوم اثبات دانش صفر (Zero Knowledge Proof) در دنیای بلاکچین در حال توسعه و گسترش است. روش‌های اثبات دانش صفر به ما کمک می‌کند که صحت یک مسئله را به اثبات برسانیم، بدون آنکه اطلاعات و داده‌های محرمانه را منتشر کنیم. به بیان دیگر، ما به کمک این روش ثابت می‌کنیم که یک فرد مورد اعتماد در شبکه هستیم و هم‌زمان محرمانگی اطلاعات را نیز حفظ می‌کنیم. این همان چیزی است که منجر به ایجاد تکنولوژی‌های دانش صفر شده است. دو مورد از مهم‌ترین این تکنولوژی‌ها، الگوریتم zk-SNARK و الگوریتم zk-STARK نام دارند. فارغ از اینکه رویکرد الگوریتم zk-SNARK چیست و چطور کار می‌کند، تفاوت آن با zk-STARK نیز از جمله موارد مهمی است که کسب اطلاعات در مورد آن می‌تواند به درک بهتر ما از فناوری ZKP کمک کند. میهن بلاکچین با رویکردی مقایسه‌ای در این مطلب به شرح و توضیح این دو فناوری مهم می‌پردازد.

این مقاله در تاریخ ۲۹ آذر ۱۴۰۱ به‌روزرسانی شده است.

الگوریتم zk-SNARK چیست؟

آشنایی با zk-SNARK و zk-STARK
منبع: moralis.io

برای آنکه بتوانیم قدم به دنیای فناوری اسنارک و استارک بگذاریم، ابتدا باید در مورد گواه اثبات دانش صفر (Zero-Knowledge Proof) صحبت کنیم. Zero-Knowledge Proof به طور مستقیم توسط پیمانکار سابق سازمان CIA یعنی ادوارد اسنودن (Edward Snowden) در توییتر بر سر زبان‌ها افتاد. اما به طور کلی ایده گواه دانش صفر به تحقیقات چندین محقق MIT در سال ۱۹۸۰ برمی‌گردد.

الگوریتم اثبات دانش صفر روشی منحصربه‌فرد است که در آن کاربر اثبات‌کننده می‌تواند به کاربر تاییدکننده ثابت کند که چیزی را می‌داند؛ بدون اینکه بخواهد اطلاعاتی را افشا کند. در واقع این رویکرد به معنای اثبات داشتن دانش بدون افشای خودِ دانش است. اثبات‌کننده باید به شیوه‌ای به تاییدکننده ثابت کند که اطلاعات را در اختیار دارد، ولی خود اطلاعات را منتشر نکند. گواه‌های اثبات بدون نیاز به دانش، به سرعت قابل تایید بوده و غالبا نسبت به یک تراکنش استاندارد بیت کوین، به داده‌های بسیار کمتری نیاز دارند. این امر باعث ایجاد مسیری جدید برای استفاده از zk-STARKs به عنوان راه حلی برای حریم خصوصی و مقیاس‌پذیری می‌شود.

همین توضیح مختصر هم کافی است تا بتوانیم به سراغ zk-SNARK برویم. این اصطلاح از سرواژه‌های Zero-Knowledge Succinct Non-Interactive Argument of Knowledge گرفته شده است که به معنی گواه اثبات دانش صفر اجمالی غیرتعاملی است. بد نیست هرکدام از این واژه‌ها را به شکلی مختصر بررسی کنیم:

  • Zero-Knowledge: در مورد دانش صفر، می‌توان ساعت‌ها صحبت کرد؛ اما در اینجا با ارائه مثال معروف غار علی بابا، این مفهوم را توضیح می‌دهیم. غاری حلقوی شکل را تصور کنید که یک ورودی دارد. دو مسیر جانبی در سمت چپ و راست این غار وجود دارند که در انتهای غار به کمک یک درب جادویی به هم متصل می‌شوند. برای رد شدن از درب جادویی، باید کلمه رمز صحیح را زمزمه کنید. فرض کنید آلیس می‌خواهد به باب ثابت کند که کلمات رمز را می داند و در عین حال آنها را مخفی نگه دارد. بدین منظور، باب از آلیس می‌خواهد تا وارد غار شود و از یکی از دو مسیر حرکت کند. باب هم خودش بیرون غار منتظر می‌ماند. فرض کنیم آلیس مسیر ۱ را انتخاب می‌کند و باب از او می‌خواهد که از مسیر ۲ برگردد. اگر آلیس رمز را نداند، هرگز نمی‌تواند از مسیر ۲ برگردد. اما اگر آلیس از مسیر ۱ رفته باشد و باب هم از او بخواهد که از همان مسیر برگردد، دیگر نیازی به آن نیست که آلیس رمز را بداند. پس اینجا به طور شانسی آلیس توانسته از غار خارج شود. برای اطمینان از اینکه آلیس همیشه نمی‌تواند با شانس از یک سمت حرکت کند و از همان سمت برگردد، این فرایند چندین بار تکرار می‌شود. با هر بار تکرار، میزان احتمال شانسی بودن فرایند هم کم و کمتر می‌شود. در نهایت آلیس بدون آنکه کلمه رمز را به باب بگوید، به او ثابت می‌کند که آن را می‌داند.
مثال غار علی بابا برای گواه دانش صفر
منبع: cointelegraph.com
  • Succinct: در تعریف اسنارک‌ها، واژه Succinct‌ به معنی اجمالی و مختصر اهمیت فراوانی دارد. اما منظور از مختصر بودن چیست؟ گواه‌های اثبات دانش صفر مختصر، می‌توانند در چند میلی‌ثانیه تایید شوند. طول این گواه‌ها هم تنها چند صد بایت است. همین کوچک بودن Proof Size است که باعث سرعت این فناوری می‌شود. 
  • Non-Interactive: در نسخه‌های ابتدایی پروتکل‌های دانش صفر، دو شخص ثابت‌کننده (Prover) و تاییدکننده (Verifier) مجبور بودند چندین مرتبه یک فرایند را تکرار کنند و از طریق این تعامل، دسترسی به دانش را اثبات کنند؛ این مسئله، ویژگی تعاملی بودن را نشان می‌دهد. اما در SNARKها که از دانش غیرتعاملی بهره می‌برند، گواه تنها متشکل از پیامی است که از اثبات‌کننده به تاییدکننده ارسال می‌شود. 
  • Arguments of Knowledge: حال به سراغ بخش پایانی سرواژه zk-SNARK می‌رویم. Zk-SNARKs عموما از لحاظ پردازشی، بی‌نقص در نظر گرفته می‌شوند؛ بدین معنی که یک اثبات‌کننده فریبکار، شانس بسیار کمی دارد تا بتواند سیستم را بدون داشتن اطلاعات (یا شاهد) فریب دهد. این ویژگی با عنوان بی‌نقص بودن شناخته شده و فرض را بر این می‌گذارد که ثابت‌کننده، قدرت پردازشی محدودی دارد. از لحاظ تئوری، یک اثبات‌کننده با داشتن قدرت پردازش کافی می‌تواند گواه‌های جعلی ایجاد کند. این یکی از دلایلی است که کامپیوترهای کوانتومی را به تهدیدی برای zk-SNARKs (و سیستم های بلاک چین) تبدیل می‌کند.

آشنایی مختصر با zk-STARK

در سمت دیگر zk-STARK را داریم که مخفف Zero-Knowledge Scalable Transparent Argument of Knowledge است. هر دو الگوریتم مذکور، برای افزایش حریم خصوصی مورد استفاده قرار می‌گیرند، اما با هم تفاوت‌هایی دارند. مثلا با وجود آنکه پروژه‌هایی نظیر Starkware از استارک استفاده می‌کنند، این تکنولوژی جامعه‌ای بسیار کوچک‌تر از اسنارک دارد. در این فناوری، دو واژه مقیاس‌پذیری و شفافیت بسیار مهم است که در ادامه به آنها اشاره می‌کنیم:

  • Scalable: استارک به توسعه‌دهندگانش اجازه داده تا محاسبات و ذخیره داده‌ها را به صورت برون‌زنجیره‌ای انجام دهند. گواه‌های STARK به منظور تایید صحت محاسبات خارج از زنجیره، توسط سرویس‌های Off-Chain تولید می‌شوند.  این سازوکار موجب افزایش مقیاس‌پذیری می‌شود. 
  • Transparent: برخلاف اسنارک، در zk-STARK خبری از تنظیمات مورد اعتماد (Trusted Setup) نیست. منظور از تنظیمات مورد اعتماد، فرایندی است که با هدف تولید پارامترهای استاندارد انجام می‌شود و پروتکل‌های رمزنگاری از آن پارامترها استفاده می‌کنند. این فرایند یک مرتبه صورت می‌گیرد و طی آن قطعه‌ای داده تولید می‌شود که با هر مرتبه اجرای پروتکل رمزنگاری، مورد استفاده قرار می‌گیرد. در اسنارک، به یک شخص مورد اعتماد نیاز است تا تنظیمات سیستم zk Proof را انجام دهد؛ اما در استارک‌ها با پارامترهای عمومی و تصادفی سروکار داریم و همین امر شفافیت و ایمنی استارک‌ها را افزایش می‌دهد. 

استارک‌ها برخلاف SNARK، تمرکز اصلی و ویژه‌ای روی توابع هش دارند. همین مسئله بود که توانست برخی مزایا را در STARK پیاده کند که اسنارک فاقد آنها بود. به طور کلی، استارک‌ها به این دلیل به وجود آمدند تا کاستی‌ها و معایب SNARKها را برطرف کنند. 

تاریخچه zk-SNARK‌ و zk-STARK

مروری بر تاریخچه اسنارک و استارک
منبع: consensys.net

اسنارک از مفهوم دانش صفر گرفته شده است که نخستین بار در اواخر دهه ۱۹۸۰ معرفی شد. این فناوری که برای رفع مشکل ناشناس ماندن در بلاکچین بیت کوین به وجود آمد، اکنون در رمزارز زی‌کش (Zcash) مورد استفاده قرار گرفته است. در ژانویه سال ۲۰۱۲ (دی ۱۳۹۰)، پروفسور دانشگاه UC Berkeley با نام الساندرو کیه‌زا (Alessandro Chiesa) مقاله‌ای را با همکاری ران کانتی (Ran Canetti)، نیر بیتانسکی (Nir Bitansky) و ارن ترومر (Eran Tromer) منتشر کرد و در آن از اصطلاح zk-SNARK برای تعریف نوع جدیدی از گواه‌های دانش صفر استفاده کرد. 

برای آگاهی از آغاز پیدایش zk-STARK باید به سال ۱۹۹۰ برگردیم؛ تحقیقات ابتدایی در مورد این فناوری به همان زمان برمی‌گردد. البته آن سیستم‌های ابتدایی عملی نبودند. سرانجام در سال  ۲۰۱۸ الی بن ساسون (Eli Ben Sasson)، ایدو بنتوف (Iddo bentov)، ینون هورش (Yinon horesh) و مایکل ریابزف (Michael Ryabzev) اثر مشترک خود را با عنوان “Scalable, transparent, and post-quantum secure computational integrity” منتشر کردند. این اثر در نوع خود بی‌نظیر بود؛ چرا که ساختار رمزنگاری مستحکمی را نشان می‌داد که بسیار بهتر از آزمایش‌های معروف zk-SNARK در زی‌کش بود. این فناوری‌ هم ایمن‌تر از همتایان خود بود و هم پیاده‌سازی آسان‌تری داشت.

هدف از راه‌اندازی اسنارک و استارک چه بود؟

بسیاری از افرادی که به دنبال حریم خصوصی هستند بر این باورند که این ویژگی مهم، بسیار فراتر از یک شاخصه بوده و حتی از آن به عنوان یک حق بنیادی بشر یاد می‌کنند. همین مسئله اهمیت فناوری‌های مبتنی بر دانش صفر را پررنگ می‌کند. به طور مثال می‌توان از zk-SNARK‌ها به عنوان مکانیزم انتقال پول در حریم خصوصی مؤسسات استفاده کرد.

به طور مشابه با درآمیخته شدن zk-SNARK‌ها با شبکه‌های اجتماعی، می‌توان مانع از فروش اطلاعات کاربران این شبکه‌ها به شرکت‌های تبلیغاتی شد. کاربران (به طور مثال موسسات اقتصادی) می‌توانند با بهره‌گیری از پلتفرم‌های تکنولوژی، به تعاملات مالی و دارایی خود به صورت محرمانه دست یابند و امکان اینکه به پروتکل‌های ارزهای دیجیتال حریم خصوصی مثل Zcash دسترسی داشته باشند نیز برایشان فراهم خواهد شد. 

پس اگر بخواهیم به ایده و اهداف این تکنولوژی‌ها اشاره کنیم، باید پاسخ را در حریم شخصی جستجو کنیم. ارائه‌دهندگان استارک می‌خواستند سازوکاری جدید را با رویکردی بسیار اساسی‌تر در مورد چگونگی ایجاد آزمون‌های دانش صفر انجام بدهند. آنچه که به نظر با اصول امنیتی در رمزارزها مغایرت دارد، در این سیستم جدید اعمال شد (عدم شفافیت)؛ اما در همان زمان، این تصمیمات پیچیدگی سیستم را کم کرد، پیاده‌سازی آن را آسان‌کرد و در عین حال امنیت را فدا نکرد؛ بلکه راه‌های جدیدی را برای امنیت بالاتر فراهم کرد. اینگونه بود که محققان توانستند به کمک رمزنگاری هم‌ریختی (Homomorphic Encryption)، محاسبات چندجانبه امن (MPC) و آزمایش‌های تعاملی، این فناوری جدید را طراحی کنند.

به طور کلی هدف هر دو پروتکل کمک به حریم شخصی است؛ اما STARK با هدف بهینه‌سازی SNARK به وجود آمد. البته این به آن معنا نیست که استارک از اسنارک بهتر است. بهتر یا بدتر بودن یک فاکتور نسبی است. به ویژه آنکه zk-SNARK هم جامعه بزرگ‌تری دارد و هم از محبوبیت بیشتری برخوردار است اما نمی‌توان با قطعیت آن را تایید و یا انکار کرد. در بخش‌های بعدی که این دو الگوریتم را با هم مقایسه کردیم، این مسئله بهتر مشخص می‌شود.

نحوه کارکرد zk-SNARK 

ساختار اسنارک
منبع: dcvx.io

هم اسنارک و هم استارک هر دو بر اساس Zero Knowledge Proof عمل می‌کنند. ساختار Zk-Snarkها با پارامترهایی گره خورده است که به دنبال سنجش اعتبار مجموعه‌ای از داده‌ها هستند. برای تولید این پارامترها نیاز به Trusted Setup داریم؛ اما اگر این پارامترها به درستی مدیریت نشوند، یک بازیگر مخرب در شبکه این امکان را دارد که تعداد نامحدودی توکن بومی را بدون اطلاع سایر افراد حاضر در شبکه، مینت کند.

با اینکه تنظیمات ابتدایی مورد اعتماد در پیاده‌سازی zk-SNARKs ضروری هستند، محققان به دنبال یافتن جایگزین‌های دیگری به منظور کاهش میزان اعتماد مورد نیاز در این فرآیند هستند. اگر کسی بتواند به ایجاد تصادفی پارامترها دسترسی پیدا کند، می‌تواند گواه‌های جعلی ایجاد کند که در نظر تایید‌کننده معتبر به نظر بیایند. 

zk-SNARKها با مجموعه متمایزی از پارامترهای شبکه،‌ بر یک‌سری از توابع ریاضی تکیه می‌کنند. این توابع عمل محاسبات را به مدارهای حسابی (Arithmetic Circuits) تقسیم می‌کنند که مجموعه ورودی‌های جداگانه‌ای را دریافت می‌کنند. در نتیجه، استفاده از تکنیک‌های نسبتا متفاوت رمزنگاری مانند تعهدات هم‌ریختی (Homomorphic Commitment)، ارزیابی بی‌چون‌وچرای چندجمله‌ای‌ها (Blind Evaluation of Polynomials) و جفت منحنی‌های بیضوی با نگاشت‌های دوخطی (Bilinear Pairings of Elliptic Curves)، منجر به جدا شدن ارتباطات میان دو طرف تراکنش در یک شبکه رمزارزی می‌شود.

مثلا اگر آلیس و باب بخواهند در یک شبکه رمزارزی با هم تراکنش داشته باشند و به حریم خصوصی تمام و کمال دست پیدا کنند، نیاز به پنهان‌سازی این عناصر در تراکنش خواهند داشت:

  • فرستنده
  • گیرنده
  • میزان تراکنش
  • آدرس IP

استفاده از zk-SNARK هر ارتباط معناداری میان گیرنده، فرستنده و میزان تراکنش را کمرنگ می‌کند. همچنین می‌تواند با بهبوددهنده‌های حریم شخصی لایه شبکه مانند TOR یا ++Dandelion ترکیب شود. این کار موجب مخفی شدن لوکیشن آی پی کاربر خواهد شد. 

تراکنش‌ها در بیشتر انواع رمزارزها از طریق بررسی شبکه اعتبارسنجی می‌شوند؛ یعنی باید شرایط خاصی برقرار شود و الزامات مشخصی وجود داشته باشد تا بتوان یک تراکنش را معتبر نامید. مهم است که فرستنده واقعا مبلغی را که قصد ارسال آن را دارد، در اختیار داشته باشد و با ارائه کلید خصوصی صحیح نشان دهد که وجوه برای اوست. فناوری zk-SNARK به فرستنده تراکنش اجازه می‌دهد که این کار را با دانش صفر انجام دهد؛‌ یعنی بدون آنکه میزان وجوه یا آدرس‌ها را افشا کند، ثابت کند که دارایی را در اختیار دارد و خودش مالک آنهاست. در طی فرایند تراکنش، اسنارک‌ها اطلاعات مورد نیاز برای اثبات را به معادله تبدیل می‌کنند. در چنین بستری، این معادله بدون افشای هرگونه اطلاعاتی حل می‌شود. 

تصویر زیر تفاوت رمزنگاری بین اسنارک‌ها و استارک‌ها را نشان می‌دهد. همان‌طور که مشخص است، Snark از زوج‌های منحنی بیضوی استفاده می‌کند؛ در حالی که Stark با توابع هش سروکار دارد.

منبع: minaprotocol.com

مقایسه zk-SNARK با دیگر پروتکل‌های حریم خصوصی

نام zk-SNARKها با زی‌کش گره خورده است. حال سوالی که پیش می‌آید این است که فناوری اسنارک و Zcash تا چه حد قوی هستند؟ هر کدام از پروتکل‌های حریم خصوصی، از یک استراتژی متفاوت برای مخفی کردن اطلاعات تراکنش استفاده می‌کنند. همانطور که در مورد Zcash گفتیم، این رمزارز از zk-SNARK استفاده می‌کند. اما پروتکل رقیب زی‌کش یعنی مونرو (Monero)، از یک فناوری به نام Ring Signature استفاده می‌کند تا هویت امضاکنندگان دیجیتال را مخفی نگه دارد. همچنین رمزارز PIVX از پروتکل Zero Coin استفاده می‌کند؛ یک پروتکل حریم خصوصی که به عنوان افزونه‌ای برای پروتکل بیت کوین طراحی شده است تا به ناشناس تراکنش‌ها در این شبکه کمک کند. هرچند این پروتکل اکنون با بیت کوین سازگاری ندارد. 

هرکدام از این تکنولوژی‌ها طرفداران خود را دارند؛ اما با این همه، این‌طور به نظر می‌رسد که افراد بی‌طرف zk-SNARKs را گزینه‌ای بهتر می‌دانند. البته نباید این‌طور تصور کرد که زی‌کش با تکیه بر اسنارک، کاملا بی‌عیب و نقص است. Zcash با یک عیب بالقوه متولد شد. تمام بلوک‌های ایجاد شده برای چند سال اول شامل ۲۰ درصد «مالیات» هستند که به طور خودکار به بنیان‌گذاران این رمزارز تعلق می‌گیرد. این مسئله با نام «مالیات بنیانگذار» شناخته می‌شود. علاوه‌بر این، به دلیل ماهیت zk-SNARK، اثبات شده‌ است که اگر بنیان‌گذاران این رمزارز با هم تبانی کنند، می‌توانند تعداد نامحدودی از توکن‌ها را بدون اطلاع سایرین بدست آورند. این به این دلیل است که در حال حاضر هیچ راهی برای دانستن میزان دقیق Zcash وجود ندارد.

ورود اسنارک به دنیای ارز دیجیتال

به جز Zcash در رمزارزهای دیگری نیز از فناوری zk-SNARK استفاده شده است. دو نمونه از مهم‌ترین این موارد را در ادامه با هم مرور می‌کنیم.

  • Bitcoin Private: در پاسخ به مالیات بنیانگذار و با توجه به ریسک این امر، گروهی از افراد فورکی از Zcash را با نام Zclassic معرفی کردند. توسعه‌دهندگان هم تحت یک پروژه بازسازی، نام Zclassic را به Bitcoin Private تغییر دادند. Bitcoin Private از بلاک چین اصلی بیت کوین استفاده می‌کند و برخی از به‌روزرسانی‌ها و تغییرات از جمله پیاده‌سازی zk-SNARK را نیز شامل می‌شود. 
  • اتریوم: زمانی که اتریوم وارد فاز متروپلیس شد، zk-SNARK را به بلاک چین خود اضافه کرد. هرچند در حال حاضر zk-SNARK برای همه تراکنش‌های اتریوم استفاده نمی‌شود و فقط یک ابزار در جعبه ابزار است. اگر اتریوم بتواند این تکنولوژی را برای استفاده‌های گسترده‌تر پیاده‌سازی کند،  همه‌ی تراکنش‌های آن به طور یکسان، محرمانه خواهند بود.

ویژگی‌ الگوریتم‌های دانش صفر SNARK و STARK

با توضیحاتی که در مورد سازوکار این دو تکنولوژی اثبات دانش صفر بیان کردیم، تا حدودی با ویژگی‌های آنها هم آشنا شدیم. از آنجا که این دو فناوری از دانش صفر استفاده می‌کنند، می‌توان ویژگی‌های Zero-Knowledge را برای آنها نیز بیان کرد. از جمله این موارد می‌توان به تمامیت (Completeness) و صحت (Soundness) اشاره کرد. اما جدول زیر ویژگی‌های این دو فناوری را به صورت مقایسه‌ای به خوبی نشان می‌دهد:

ویژگی‌هاSNARKSTARK
فناوریرمزنگاری منحنی بیضویتوابع هش
نیاز به تنظیمات مورد اعتمادداردندارد
اندازه گواهکوچک‌تر از استارکبسیار بزرگ‌تر از اسنارک
پیچیدگی اثبات‌کننده و تاییدکنندهکمزیاد
هزینه گس تایید روی اتریومپایینبالا
مقاومت در برابر حملات کامپیوترهای کوانتومیاحتمال حمله کامپیوترهای کوانتومی وجود دارد؛ چرا که اسنارک‌ها از جفت کلیدهای عمومی و خصوصی استفاده می‌کنند.بله
مقیاس‌پذیریکمتر از zk-STARKبیشتر از zk-SNARK
اندازه تخمینی برای ۱ تراکنشتراکنش: ۲۰۰ بایت، کلید: ۵۰ مگابایت۴۵ کیلوبایت
اندازه تخمینی برای ۱۰ هزار تراکنشتراکنش:‌۲۰۰ بایت، کلید: ۵۰۰ گیگابایت۱۳۵ کیلوبایت

کاربرد zk-STARKها و zk-SNARKها

دو فناوری مذکور بر مبنای گواه دانش صفر عمل می‌کنند؛ پس جزو راهکارهای لایه دوم هستند که به دنبال مقیاس‌پذیری بلاکچین اتریوم هستند. همچنین به طور ویژه کاربرد فناوری‌های استارک و اسنارک، در افزایش حریم خصوصی خلاصه می‌شود. 

بررسی مزایا و معایب اسنارک و استارک

مزایا و معایب zk-snark و zk-stark
منبع: medium.com

در این بخش، نگاهی به مزایا و معایب zk-SNARK‌ و zk-STARK‌ می‌اندازیم تا دیدگاه بهتری نسبت به این دو فناوری داشته باشیم. ابتدا به سراغ اسنارک می‌رویم.

مزایای SNARK

  • توان عملیاتی بالا: توان عملیاتی بالا در پی کاهش پردازش روی شبکه اتریوم، افزایش پیدا می‌کند. در نتیجه ازدحام در بلاکچین اصلی کمتر، تراکنش‌ها سریع‌تر و متعاقب آن هزینه‌های گس هم کمتر می‌شود.
  • ابعاد کوچک‌تر گواه: گواه‌های SNARK به دلیل اندازه متوسطی که دارند، در زنجیره اصلی ساده‌تر تایید می‌شوند. در اتریوم این مسئله منجر به کاهش کارمزد برای تایید تراکنش‌های برون‌زنجیره‌ای می‌شود. اتفاقی که خود به کم شدن هزینه‌های رولاپ منتهی می‌شود.
  • ایمنی: روال‌های امنیتی رمزنگاری که در zk-SNARKها به کار گرفته می‌شوند، دلیل اصلی امنیت بالای رولاپ‌های دانش صفر در مقایسه با سایر پروژه‌های مقیاس‌پذیری هستند. گواه zk-SNARK به لحاظ محاسباتی و پردازشی بی‌نقص است و نمی‌توان به صورت تصادفی به آن دست یافت؛‌ به این ترتیب تاییدکنندگان گمراه و رفتارهای بدخواهانه را به چالش می‌کشد و اجازه نمی‌دهد به سادگی دست به تخریب اکوسیستم بزنند.

معایب SNARK

  •  مشکلات مربوط به تنظیمات مورد اعتماد: این بزرگ‌ترین ایرادی است که می‌توان به zk-SNARKها گرفت. در طول این مقاله بارها به این مورد اشاره کردیم و گفتیم که این پارامترها به صورت خصوصی باید ایجاد شوند؛ پارامترهایی که امکان ایجاد ارتباط خصوصی میان تاییدکننده و ثابت‌کننده را فراهم می‌کنند. مشکل اینجاست که وجود یک بازیگر مخرب در شبکه، می‌تواند منجر به تولید گواه اثبات اعتبار (Validity Proof) نادرست شود. دقت کنید این امر با آنچه که در مورد بی‌نقص بودن اسنارک‌ها به لحاظ محاسباتی گفتیم، متفاوت است.
  • احتمال قرار گرفتن در معرض حملات کامپیوترهای کوانتومی: اسنارک‌ها بر اساس منحنی‌های بیضوی عمل می‌کنند تا بتوانند گواه‌های اثبات اعتبار را تولید کنند. درست است که رمزنگاری منحنی بیضوی (ECC) ایمن است، اما محاسبات کوانتومی می‌تواند در برابر معماری امنیتی این رمزنگاری‌ها پیروز شود.

مزایای STARK

  • عدم نیاز به تنظیمات قابل اعتماد:‌ استارک‌ها در این مورد، نقطه مقابل SNARK هستند؛ چرا که به تنظیمات تصادفی عمومی (Publicly Randomness) نیاز دارند و دیگر خبری از Trusted Setup‌ در آنها نیست. این مسئله منجر به افزایش ایمنی استارک‌ها می‌شود. 
  • ویژگی‌های مقیاس‌پذیری: STARKها در مقایسه با اسنارک‌ها می‌توانند به سرعت محاسبه و تایید شوند.
  • توان عملیاتی حداکثری: استارک‌ها هم مثل اسنارک‌ها می‌توانند با فراهم کردن محاسبات برون‌زنجیره‌ای قابل اعتماد و ایمن، حداکثر توان عملیاتی را به کار بگیرند.
  • تضامین امنیتی پیشرفته: استفاده از هش‌های مقاوم در برابر برخورد (Collision Resistance) امنیت استارک‌ها را بالا می‌برد. منظور از Collision Resistance عدم وجود تناظر میان ورودی و خروجی تابع هش است؛ به این معنا که نمی‌توان دو ورودی را با خروجی یکسان پیدا کرد.

معایب STARK

  • اندازه‌های بزرگ‌تر گواه: تا اینجا که مزایای استارک‌ها را بررسی کردیم، به نظر بهتر از SNARK بودند. اما مسئله مهم این است که در zk-STARK گواه‌ها اندازه‌های بزرگ‌تری دارند. این مسئله باعث می‌شود که تایید گواه‌های استارک در اتریوم طولانی‌تر و در نتیجه‌ گران‌تر باشد.
  •  پذیرش کمتر: از وقتی که zk-SNARKها نخستین بار در بلاکچین به کار گرفته شدند، سهم بازار بیشتری نسبت به zk-STARKها به دست آوردند. محیط توسعه و ابزارهای اسنارک بر اساس گواه‌های اثبات دانش صفر بزرگ‌تر است. همچنین zk-SNARKها به شکل عمده در رولاپ‌های zk مورد استفاده قرار می‌گیرند. در سمت مقابل، zk-STARKها پذیرش کمتری دارند. توسعه‌دهندگان هم ممکن است هنگام ایجاد پروژه‌های ZK، با ابزارها و پشتیبانی‌های کمتری مواجه شوند.  

وضعیت فعلی فناوری‌های zk-STARK و zk-SNARK

در حال حاضر zk-SNARKها محبوبیت و پذیرش بیشتری نسبت به zk-STARKها دارند. یکی از دلایل این امر قدمت بیشتر اسنارک‌ها و البته پیچیدگی کم آنهاست. با اینهمه، zk-STARKها را می‌توان آینده فناوری‌های مبتنی بر دانش صفر دانست. بسیاری از افراد معتقدند که استارک‌ها می‌توانند به مرور زمان راه خود را پیدا کنند و به محبوبیت و مقبولیت قابل توجهی دست پیدا کنند.

پرسش و پاسخ (FAQ)

  • zk-SNARK چیست؟
    یکی از تکنولوژی‌های اثبات دانش صفر (Zero Knowledge Proof یا به اختصار ZKP) است که مخفف عبارت Zero-Knowledge Succinct Non-Interactive Argument of Knowledge به معنای دانش صفر مختصر غیرتعاملی است.
  • zk-STARK چیست؟
    نوع دیگری از فناوری‌های مبتنی بر ZKP است که از سرواژه‌های Zero-Knowledge Scalable Transparent Arguments of Knowledge به معنای دانش صفر مقیاس‌پذیر و شفاف است.
  • منظور از تکنولوژی دانش صفر در رمزارزها چیست؟
    دانش صفر به معنای اثبات یک مسئله بدون افشای اطلاعات است. یعنی ثابت‌کننده باید به تاییدکننده موضوعی را ثابت کند و این کار را بدون ارائه هیچ اطلاعاتی انجام دهد.
  • تفاوت stark‌ و snark چیست؟
    این دو فناوری هر دو بر مبنای دانش صفر عمل می‌کنند اما تفاوت‌هایی دارند. مهم‌ترین تفاوت این است که اسنارک‌ها نیاز به تنظیمات مورد اعتماد دارند و در برابر حملات کامپیوترهای کوانتومی آسیب‌پذیر هستند؛‌ اما استارک‌ها به چنین تنظیماتی نیاز ندارند و نسبت به حملات کامپیوترهای کوانتومی مقاوم هستند. همچنین مقیاس‌پذیری zk-STARKها بیشتر از zk–SNARKهاست. 
  • فناوری استارک بهتر است یا اسنارک؟
    هر کدام از این دو فناوری مزایا و معایبی دارند که باعث می‌شود نتوانیم یکی را بهتر یا بدتر از دیگری بدانیم. به طور کلی zk-STARKها برای بهبود zk-SNARKها به وجود‌ آمدند و هنوز راه زیادی تا پذیرش عمومی و گسترده دارند.

جمع‌بندی

در این مطلب توضیح دادیم که الگوریتم zk-SNARK چیست و چه کاربردهایی دارد. همچین تفاوت آن را با zk-STARK بیان کردیم و توضیح دادیم که هر دو فناوری به دنبال ارائه راهکارهایی برای افزایش حریم خصوصی هستند. این راهکارها به کمک گواه اثبات دانش صفر، سعی در عدم ارائه اطلاعات و افشای آنها دارند. هیچ‌گاه نمی‌توان گفت که کدام یک از این دو فناوری بهتر از دیگری هستند؛ این امر بستگی به نیاز کاربران و توسعه‌دهندگان دارد. اکنون پروژه‌هایی مانند زی‌کش از اسنارک استفاده می‌کنند و Starkware از استارک بهره می‌برد. به نظر شما آیا فناوری zk-STARK می‌تواند در آینده به جایگاه بالاتری دست پیدا کند؟ آیا پروژه‌هایی که از الگوریتم اسنارک استفاده می‌کنند موفق‌تر خواهند بود؟ پاسخ این سوالات، نیازمند گذر زمان است.

منبع
CointelegraphConsensysMedium

نوشته های مشابه

اشتراک
اطلاع از
2 دیدگاه
جدید ترین
قدیمی ترین محبوب ترین
Inline Feedbacks
View all comments
دکمه بازگشت به بالا