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