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

در اوایل آغاز به کار بیت‌کوین، کاربران آن گاهی اوقات تصور می‌کردند که تراکنش‌هایشان ناشناس است، زیرا هویت آفلاین آنها با کلیدهای عمومی کاربران مرتبط نبود. اما در پایان دهه اول قرن بیست و یکم میلادی، تلاش‌های هماهنگ دانشمندان داده، هکرها و مجریان قانون ثابت کرد که شناسایی مجدد افرادی که داده‌های مستعار را به چندین منبع داده‌اند، نه تنها عملی ممکن می‌باشد، بلکه فرایندی آسان است.

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

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

Zk-SNARKs  مخفف عبارت Zero-Knowledge Succinct Non- Interactive Argument of Knowledge  است. این فناوری ارزشمند به ایجاد اعتمادسازی در هنگام تعامل در یک شبکه بلاکچین کمک بسزایی می‌کند. Zk-SNARKs به طور قابل توجهی به تأیید تراکنش سرعت بخشیده و در عین حال برخی از جزئیات حیاتی تراکنش را پنهان می‌کند.

در این فناوری عبارت Zero Knowledge به این معنی است که یکی از طرفین معامله می‌تواند، صحت برخی از گزاره‌ها را تأیید کند، بدون اینکه دلیل درستی آن را آشکار کند. در هنگام عملیات (از طریق اثبات ریاضی)، کاربر به شبکه نشان می‌دهد که رمز عبور صحیح را در دست خود دارد، بدون اینکه نیازی به افشا کردن رمز عبور باشد. مزایای حریم خصوصی در این شرایط واضح است که اگر رمز عبور خود را در جایی امن ذخیره نگهداری کنید، احتمال هک و سرقت دارایی شما عملی غیرممکن خواهد بود.

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

Succinct: واژه Succinct‌ به معنی اجمالی و مختصر اهمیت فراوانی است. اما منظور از مختصر بودن چیست؟ گواه‌های اثبات دانش صفر مختصر، می‌توانند در چند میلی‌ثانیه تأیید شوند. طول این گواه‌ها هم تنها چند صد بایت است؛ همین کوچک بودن Proof Size می‌باشد که باعث بالا رفتن سرعت این فناوری می‌شود.

Non-Interactive: در نسخه‌های اولیه پروتکل‌های دانش صفر، دو شخص ثابت‌کننده (Prover) و تأییدکننده (Verifier) مجبور بودند چندین دفعه یک فرایند را تکرار کرده و از طریق این تعامل، دسترسی به دانش را اثبات کنند که این مسئله گویای ویژگی تعاملی بودن آن است. اما باید بدانید که در SNARKهایی که از دانش غیرتعاملی بهره می‌برند؛ گواه لازم، تنها شامل پیامی است که از اثبات ‌کننده به تأیید کننده ارسال می‌شود. 

Arguments of Knowledge :Zk-SNARKsها عموماً از لحاظ پردازشی، بی‌نقص شناخته می‌شوند؛ بدین معنی که یک اثبات ‌کننده فریبکار، شانس بسیار کمی در مقابل این دارد که بتواند سیستم را بدون داشتن اطلاعات فریب دهد. این ویژگی با عنوان بی‌نقص بودن شناخته شده و فرض را بر این می‌گذارد که ثابت‌کننده، قدرت پردازشی محدودی دارد. از لحاظ تئوری، اثبات‌کننده با داشتن قدرت پردازش کافی قادر به این است که گواهی‌ جعلی ایجاد کرده و عمل مخرب را انجام دهد که این مسئله، تهدید اصلی سیستم به شمار می‌رود.

ارز دیجیتال

نحوه کارکرد الگوریتم zk-SNARK

برای فهم بهتر از عملکرد zk-SNARK، آن را با مثالی بیان می‌کنیم. Zk-SNARKها برای اثبات هویت فرد در یک شبکه بلاکچین نیز مفید هستند. مثلاً اگر فرد x بخواهد هویت فرد y را تأیید کند، می‌تواند یک پیام مخفی به y بدون اینکه به او بگوید چیست ارسال کرده و از وی بخواهد که پیام را با استفاده از کلید خصوصی خود رمزگشایی کند. سپس y می‌تواند پیام را برای x ارسال نموده و هویت خود را اثبات کند.

Zk-SNARKs اثبات تراکنش‌ها را در گره بلاکچین ثبت نموده و از هویت فرستنده، گیرنده و سایر جزئیات مرتبط با تراکنش محافظت می‌کند.

ایرادات Zk-SNARK  

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

منتقدان پیشنهاد کرده‌اند که بنیان‌گذاران می‌توانند به طور بالقوه از این جنبه از سیستم برای ایجاد تعداد نامتناهی از توکن Zcash استفاده کنند، بدون اینکه کسی از وجود آن توکن‌ها آگاه باشد. به همین دلیل، اطلاع از تعداد دقیق توکن‌های Zcash عملی ناممکن است.

از سال ۲۰۱۹، برخی از توسعه‌دهندگان برای بهبود zk-SNARK فعالیتی را آغاز کردند. در این بین تیمی به نام Suterusu سیستمی به نام zK-ConSNARK  را توسعه دادند که ادعایی مبنی بر این ایجاد کرد که می‌تواند، حفاظت از حریم خصوصی را برای بلاک‌چین‌های اصلی مانند بیت‌کوین فراهم آورده و کمترین تورم را برای ارزهای دیجیتال به همراه داشته باشد.

الگوریتم ارز دیجیتال چیست

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

zk-STARK مخفف عبارت Zero-Knowledge Scalable Transparent Argument of Knowledge است. zk-STARK در واقع فناوری توسعه یافته Zk-SNARK بوده که به دلیل پیچیدگی الگوریتمی، ریاضی و رمزنگاری بسیار زیادی که اثبات‌های zk-SNARKs از آنها برخوردارند، به وجود آمد. ممکن است این ادعا کمی ناباورانه باشد؛ اما حقیقت این است که زمانی این قضیه آشکار شد که تیم توسعه‌دهندگان زی کش در کدنویسی‌های خود دچار یک اشتباه بسیار جدی شدند. بر اساس این اشتباه، هر کاربری می‌توانست از ابتدا بر روی این بلاکچین، اقدام به ایجاد ارزهای دیجیتال دلخواه خود کند. پس در واقع علت به وجود آمدن zk-STARKها را می‌توان حاصل از وقوع آن اتفاق دانست. چند مورد از اصطلاحات مهم الگوریتم zk-STARK شامل موارد زیر است.

Scalable: فناوریاستارک به توسعه‌دهندگان خود این اجازه را می‌دهد که ذخیره‌سازی داده‌ها و محاسبات موجود را به صورت برون زنجیره‌ای انجام دهند. گواه‌های STARK به منظور تأیید صحت محاسبات خارج از زنجیره، توسط سرویس‌های  Off-Chainتولید می‌شوند که این عمل باعث افزایش مقیاس‌پذیری می‌گردد.

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

استارک و اسنارک چیست

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

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

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

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

الگوریتم اسنارک

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

برای اینکه درک بهتری از نوع کارکرد فناوری‌های اسنارک و استارک پیدا کرده و بتوان تفاوت بین آنها را متوجه شد؛ خوب است که به مزایا و معایب آنها بپردازیم.

مزایای zk-SNARK 

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

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

امنیت بالا: گواه zk-SNARK به لحاظ پردازشی و محاسباتی از ساختار پایداری برخوردار بوده که از عوامل مخرب اکوسیستم جلوگیری می‌نماید. همین مسئله است که موجب افزایش ایمنی zk-SNARK می‌شود. 

معایب zk-SNARK 

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

احتمال قرار گرفتن در معرض حملات کامپیوترهای کوانتومی: اسنارک‌ها بر اساس منحنی‌های بیضوی فعالیت می‌کنند. این قضیه باعث این می‌شود که آنها بتوانند، گواه‌های اثبات اعتبار را تولید کنند. حتی با اینکه رمزنگاری منحنی بیضوی (ECC) از ایمنی کافی برخوردار است، اما محاسبات کوانتومی می‌توانند بر ساختار امنیتی این رمزنگاری‌ها غلبه کنند.

مزایای zk-STARK 

متکی نبودن بر تنظیمات قابل اتکا: استارک‌ها برعکس اسنارک‌ها به تنظیمات قابل اتکا نیازی ندارند؛ چرا که با تنظیمات تصادفی عمومی قادر به فعالیت بوده و دیگر خبری از Trusted Setup‌ در آنها نیست. با در نظر گرفتن این قضیه امنیت بیشتری را می‌توان برای استارک‌ها متصور بود.

مقیاس پذیری: zk-STARKها نسبت به zk-SNARKها از امکان محاسبات سریع‌تری برخوردارند. 

توان عملیاتی حداکثری: استارک‌ها هم مثل اسنارک‌ها قادر به این هستند که با انجام محاسبات برون زنجیره‌ای قابل اتکا و ایمن، حداکثر توان عملیاتی را از خود نشان دهند.

امنیت سازی پیشرفته: به‌کارگیری هش‌های پایدار در برابر Collision Resistance منجر به افزایش امنیت استارک‌ها شده است. منظور از Collision Resistance این است که میان ورودی و خروجی تابع هش، امکان وجود دو ورودی با خروجی یکسان وجود ندارد.

معایب zk-STARK  

اندازه‌های بزرگ‌تر گواه: شاید زمانی که به طور کلی zk-STARKها و Zk-SNARKها را با یکدیگر مقایسه کنیم برتری خاصی برای zk-STARKها به چشم آید، اما استثنایی مانند بزرگ‌تر بودن گواه zk-STARKها وجود دارد که این مسئله منجر به تأیید گواه‌های طولانی‌تر و در نتیجه‌ گران‌تر می‌شود. این مسئله در بلاکچین اتریوم کاملاً قابل مشاهده است. این مسئله یکی از معایب اصلی zk-STARKها به شمار می‌رود.

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

الگوریتم اسنارک

چگونه اسنارک به دنیای ارز دیجیتال وارد شد؟ 

نحوه ورود سنارک به دنیای ارزهای دیجیتال را می‌توان به دلایل مختلفی  تفسیر کرد که مهم‌ترین آنها شامل موارد زیر است.

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

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

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

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

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