اثبات zk-STARK نوعی آزمون رمزنگاری ایمن است که از اصول اثبات دانش صفر جهت ایجاد نوعی بخصوص از دادههای رمزگذاری شده استفاده میکند.
مقدمه
zk-STARK نوعی آزمون رمزنگاری بسیار ایمن است که از اصول اثبات دانش صفر (ZKP) جهت ایجاد نوعی از دادههای رمزگذاری شده استفاده میکند که بهراحتی و بدون افشای اطلاعات حساس آنها، تأیید میشوند. از این مهمتر، با مقاومتی که این اثبات ها در برابر محاسبات کوانتومی دارند، در آیندهای نهچندان دور امنیت این دادهها را نیز تضمین میکنند.
در واقع اثبات ها یا پروتکلهای ZKP از زمان پیدایش خود، تا حد بسیار زیادی تکامل یافتهاند، و یکی از این تکاملها پروتکل zk-STARKs است.
اساساً اصطلاح اثبات zk-STARK مخفف عبارت انگلیسی Zero-Knowledge Scalable Transparent Arguments of Knowledge است. در حقیقت این مفهوم بهنوعی از اثباتهای معروف ZK-snark اشاره دارد که پروژههایی مانند زی کش (Zcash) جهت دستیابی به درجه بالایی از حریم خصوصی و ناشناس بودن، در بلاک چین خود استفاده میکنند.
بااینحال، zk-STARK ها مفهومی فراتر از یک مشتق جزئی از ZK-snark هستند؛ در حقیقت، این مفهوم یک پیشرفت قابلتوجه در zk-SNARK ها بهحساب میآید. درواقع این موضوع نه فقط به این دلیل است که از پیچیدگی کمتری جهت اجرا برخوردار است، بلکه به این دلیل نیز هست که از امنیت بیشتری نیز برخوردار بوده و در برابر محاسبات کوانتومی نیز مقاوم هستند.
به بیان سادهتر، zk-STARK ها آینده اثبات دانش صفر بهحساب میآیند؛ بهخصوص اگر بخواهیم در مواجهه با فناوری محاسبات کوانتومی پیشرفتهتر، از ایمنی بیشتری برخوردار باشیم.
حال سؤالات اساسی که در اینجا مطرح میشوند این است که اثبات zk-STARK چگونه کار میکند؟ مزایا و معایب آن چیست؟ در آیندهای نزدیک، چه پروژههای بلاک چینی از آن استفاده خواهند کرد؟ در این مطلب از فکت کوینز قصد داریم ضمن معرفی این مفهوم، به این سؤالات نیز پاسخ دهیم.
اثبات zk-STARK، ارتقاء در مفهومی که به خودی خود غافلگیرکننده است
همانطور که در مقدمه نیز اشاره داشتیم،
zk-STARK یک پیشرفت بزرگ به نسبت پروتکلهای شناختهشده zk-SNARK بهحساب میآید؛ البته پیشرفتی ضروری که به دلیل پیچیدگی الگوریتمی، ریاضی و رمزنگاری بسیار زیادی که اثباتهای zk-SNARKs از آنها برخوردارند، حاصل شد. مسلماً zk-SNARK ها اثباتهایی عالی و بسیار ایمن هستند، اما نباید از این نکته نیز غافل شویم که در سطح الگوریتمی بسیار پیچیده هستند. در حقیقت این پیچیدگی به حدی است که حتی متخصصان حوزه رمز ارزها نیز در تشخیص خطا در آنها با مشکل برمیخورند.
ممکن است این ادعا کمی دور از باور باشد، ولی خب این حقیقت است که این موضوع زمانی آشکار شد که تیم توسعهدهندگان زی کش (Zcash) در کد نویسی های خود یک اشتباه بسیار جدی را مرتکب شدند. درواقع بر اساس این اشتباه عجیب در کد نویسی زی کش، هر کاربری میتوانست تا از ابتدا بر روی این بلاک چین اقدام به ارزهای دیجیتال دلخواه خود کند.
بهاینترتیب، موضوعی که همگان به آن باور داشتند که عملاً رخ دادن آن در رمز ارزها غیرممکن است (تولید یک کوین از قدم صفر)، حال با بروز این ایراد کوچک در zk-SNARK ارز دیجیتال زی کش، اتفاق افتاده بود. بااینحال، موضوعی که تا حد زیادی توسعهدهندگان زی کش به آن اطمینان داشتند این بود که تشخیص این ایرادات بهقدری پیچیده بود که تنها تعداد کمی از مردم در جهان از دانش لازم برای شناسایی و سوءاستفاده از آن برخوردار بودند.
بیشتر بخوانید: هارمونی بلاکچینی برای تقویت اثبات سهام
ازاینرو، تیم توسعهدهندگان زی کش احتمال بروز فاجعه بزرگی مثل پیدایش رمز ارزهای جعلی بر بستر شبکه خود را تنها با این توجیه که بلاک چین این پروژه بهقدری پیچیده است که تنها تعداد کمی از افراد واقف به ایرادات آن هستند، غیرممکن خواندند. اما عملاً این وضعیت کاملاً از ایده آل دور بوده و به هر قیمتی باید به از انجام چنین کاری اجتناب کرد؛ چراکه هیچگاه امنیتی که در آن ابهام باشد، یک امنیت واقعی بهحساب نمیآید.
پیچیدگی بیشازحد = دشمن امنیت
از سوی دیگر، بد نیست این وجه از قضیه را نیز در نظر داشته باشیم که zk-SNARK ها در شرایطی نیز میتوانند بدترین دشمن کوینهای حفظ حریم خصوصی مثل Zcash به حساب بیایند. در حقیقت این موضوع درست است که یک سیستم امنیتی رمزنگاریشده بسیار پیچیده، گزینه خوبی برای رفع اشکالزدایی شبکه است، اما عملاً بهترین گزینه روی میز نخواهد بود.
نتیجتاً اینکه خوشبختانه این حقیقت مدتها قبل از پیدایش این خطا در شبکه زی کش شناختهشده بود و این همان چیزی بود که منجر به توسعه zk-STARK شد. ازاینرو، در ادامه با جزئیات بیشتری در مورد منشأ پیدایش zk-STARK ها و اینکه چگونه میتوانند امنیت بیشتری را (با میزان پیچیدگی کمتر) برای ما ارائه کنند، صحبت خواهیم کرد.
اثبات zk-STARK؛ پیدایش رمز ارزی قدرتمند ولی ساده
جهت درک پیدایش zk-STARK ها، بایستی به سال ۱۹۹۰ (۱۳۶۹-۷۰) برگردیم. درواقع این سالی است که اولین قدمها جهت ساخت این اثباتها برداشته شد. در حقیقت باوجود اینکه تحقیقات اولیه و توسعه فناوری zk-STARK در آن زمان شروع شد، ولی دستیابی به این سیستمهای اولیه، در آن زمان عملاً ممکن نبود.
این موضوع به همین منوال پیش رفت تا اینکه الی بن ساسون (Eli Ben Sasson)، آیدو به نتوف (Iddo bentov)، یینون هورش (Yinon horesh) و مایکل ریابزف (Michael Ryabzev)، در سال ۲۰۱۸ نتیجه همکاری مشترک خود را در قالب مقالهای با عنوان “یکپارچگی محاسباتی ایمن، مقیاسپذیر، شفاف و پسا کوانتومی” ارائه کردند.
همچنین بخوانید: ادوارد اسنودن: یکی از سازندگان زی کش هستم
اساساً تمامیت کاری که این گروه در آن زمان ارائه کردند، در نوع خود بینظیر بود. در حقیقت این مقاله ساختار رمزنگاری مستحکمی را نشان میداد که از بسیاری از جهات برتر از اثباتهای شناخته شدهای مثل zk-SNARK های زی کش عمل میکردند. اما برتر از همه این موارد، راهحلی که این گروه ارائه داده بودند، بسیار سادهتر و ایمنتر از موارد مشابه خود بود.
درواقع آنها این کار را با رویکردی اساسیتر در مورد چگونگی ایجاد یک آزمون دانش صفر انجام داده بودند. از طرفی، صرفنظر از ساخت یک فضای کاری رمزنگاریشده بسیار قابلاعتماد (مشابه یک جعبه سیاه)، آنچه که این گروه در اثباتهای خود پیادهسازی کرده بود، مغایر با هر اصل امنیتی است که در حوزه رمز ارزها وجود دارد.
ولی درعینحال، تصمیم این گروه، پیچیدگی سیستم و توان لازم جهت اجرای آن را کاهش داد و درعینحال، امنیت شبکه را نیز تأمین کرد؛ اما در عوض مسیری را به وجود آورد که دیگر افراد نیز بتوانند راهکارهای خود را در این زمینه ارائه کنند.
با توجه به این تفاسیر و با تکیهبر قابلیتهایی مثل رمزنگاری هومومورفیک (Homomorphic encryption)، MPC یا محاسبات چندجانبه ایمن (Secure multi-party computation) و تستهای تعاملی، این گروه از محققان موفق به طراحی zk-STARK ها شدند.
به بیان سادهتر، zk-STARK، نماینده تحقیقاتی به قدمت حداقل ۵۰ سال در حوزه رمز ارزها بهحساب میآید. اثری که در آن، فعالیت افرادی مثل شفریرا گلدواسر (Shafrira Goldwasser) و سیلویو میکالی (Silvio Micali) بسیار درخشان است.
نتیجتاً اینکه، با توجه به چنین رویکرد مخاطرهآمیزی، zk-STARK ها سفر خود را جهت بدل گشتن به یک رقیب شایسته برای zk-SNARK آغاز میکنند؛ سفری که هدف آن تبدیلشدن به نوعی سیستم رمزنگاری است که بسیاری از ارزهای دیجیتال در آینده از آن استفاده خواهند کرد؛ آیندهای که احتمالاً تحت سلطه رایانههای کوانتومی خواهد بود.
بیشتر بخوانید: پالیگان ماشین مجازی خود را برای dApp با استفاده از zk-STARK راه اندازی کرد
اثبات zk-STARK مخفف چه چیزی است؟
اساساً اصطلاح zk-STARK را میتوان طبق تقسیمبندی زیر معنی کرد:
ZK
S: مخفف مقیاسپذیر (Scalable)
از آنجاییکه ابعاد اثبات نسبتاً کوچک (یا حداقل قابلقبول) بوده و تأیید نیز به شکل نمایی به زمان کمتری نسبت به اجرای محاسبات ساده نیاز دارد (یعنی حتی برای اثباتهای بزرگ نیز تقریباً آنی است)، ازاینرو، مقیاسپذیری کاملاً دسترس است.
T: مخفف شفاف (Transparent)
از آنجاییکه مثل سیستمهای zk-SNARK، هیچگونه الزامی جهت پیکربندی قابلاعتماد (reliable configuration) وجود ندارد، این اثبات نیز کاملاً شفاف است.
AR: مخفف برهان یا استدلال (Argument)
این اثبات درست مثل رویه یک آزمون محاسباتی رمزنگاریشده ایمن است که به یکپارچگی و استحکام یک زبان منحصربهفرد دست پیدا میکند.
K: مخفف دانش (Knowledge)
این اثبات مبتنی بر اظهارات مربوط به اطلاعاتی است که در دسترس قرار دارد.
کاربردهای سیستمهای zk-STARK
اساساً کاربرد اصلی سیستمهای اثبات دانشی مثل zk-STARK، ایجاد سیستمهایی بسیار ایمن، خصوصی و البته متمرکز است؛ سیستمهایی که در آنها تمرکززدایی کامل از اطلاعات وجود داشته و تنها تحت یک سری شرایط است که بهطور کامل قابلدسترسی هستند. البته دستیابی به این شرایطی که در اینجا منظور ما است، با روشهایی غیرمتعارف مثل هک کردن، بسیار دشوار خواهد بود.
همچنین بخوانید: راه حل مقیاس پذیری لایه 2 اتریوم
بدیهی است که سیستمهای اثبات دانش zk-STARK، نوعی از سیستمهای ارزهای دیجیتال است که در آنها استفاده از رمزنگاری نهتنها باعث فراهم شدن امنیت شبکه میشود، بلکه از کاربران نیز محافظت کرده و حریم خصوصی و ناشناس بودن آنها را در صورت امکان فراهم میسازد.
البته که در مورد گزینه دوم (حفظ حریم خصوصی و ناشناس بودن کاربران) است که zk-SNARK عملکرد درخشان خود را به رخ میکشند؛ چراکه درست مثل دیگر اثباتهای دانش صفر، این اثباتها نیز در خصوص حفظ حریم خصوصی و ناشناس ماندن کاربران، به درجهای از تکامل رسیدهاند تا بههیچوجه اطلاعات کاربران خود را فاش نکنند.
درعینحال، این اثباتها ابزارهایی جهت تأیید قطعی تراکنشها را نیز در اختیار ما قرار میدهند. این یعنی اینکه zk-STARK ها بههیچوجه اطلاعاتی را که رمزگذاری میکنند فاش نمیکنند، ولی ما در هر شرایطی قادر خواهیم بود تا صحت تراکنشها را بدون توجه به هر اتفاقی، تأیید کنیم.
بهبود مقیاسپذیری بلاک چین
یکی دیگر از کاربردهای احتمالی سیستم اثبات zk-STARK، در تقویت مقیاسپذیری بلاک چین است. درواقع این سیستم این قابلیت را در اختیار اثباتهای رمزنگاری قرار میدهد تا فضای کمتری را اشغال کنند. دقت داشته باشید که در خصوص ارزهای دیجیتالی مثل بیت کوین که اندازه بلاکها برابر با محدودیت تعداد تراکنشهایی است که میتوان در هر ثانیه پردازش کرد، وجود چنین قابلیتی بسیار حیاتی است.
ازاینرو، در اینجا و با تکیهبر تستهای رمزنگاری کوچکتر، تراکنشها فضای کمتری را اشغال کرده و درنتیجه تراکنشهای بیشتری میتوانند در هر بلاک جای بگیرند. حال تصور کنید که با اعمال این ویژگی بر روی هزاران تراکنش، این اثر تا چه اندازه بزرگتر شده و بهواسطه آن، مقیاسپذیری تا چه حد بهبود خواهد یافت.
همچنین بخوانید: رول آپ ها؛ برترین راهحل لایه ۲ جهت رفع مشکل مقیاسپذیری اتریوم
بااینحال، این تنها بخش کوچکی از یک راهحل مقیاسپذیری است؛ چراکه اثباتهای رمزنگاری تا این حد کوچک باعث نخواهند شد تا یک بلاک چین عملکرد خود را به شکلی چشمگیر ارتقاء دهد.
از دیگر کاربردهای این نوع سیستمها میتوانیم به سیستمهای پخش یا استریم کاملاً رمزگذاری شدهای اشارهکنیم که هم دارای قانون حق پخش یا کپیرایت (copyright) هستند و هم کاملاً ایمن بهحساب میآیند. درواقع این قابلیت هیچگونه نیازی به سیستمهای رمزگذاری فعلی که مبتنی بر رمزنگاری متقارن هستند نخواهد داشت.
از طرفی، سیستمهای رأیگیری الکترونیکی نیز بهاحتمالزیاد میتوانند از مزایای این نوع سیستمها برخوردار شوند. این موضوع به این دلیل است که این سیستمها به رأیدهنده ها اجازه میدهند تا رأی خود را به صندوق بیندازد و این رأی ها نیز توسط سیستم تأیید شوند، اما بههیچعنوان مشخص نشود که چه هر فرد به کدام گزینه رأی داده است.
همانطور که میبینید پتانسیلهای zk-STARK ها نهفقط محدود به عرصه بلاک چین، بلکه بسیار فراتر از اینها است.
برخی از تفاوتهای بین zk-STARK و zk-SNARK
در این بخش قصد داریم تا به چند مورد از اساسیترین تفاوتهای میان اثباتهای zk-STARK و zk-SNARK پرداخته تا بیشتر با این مفهوم مهم در حوزه بلاک چین آشنا شویم:
- اساساً Zk-SNARK ها نیاز به یک مرحله پیکربندی قابلاعتماد (reliable configuration) دارند؛ درحالیکه zk-STARK ها از یک تأیید عمومی تصادفی (publicly verifiable randomness) جهت ایجاد سیستمهای محاسباتی قابلتأیید بدون اعتماد خود استفاده میکنند.
- در قیاس با zk-SNARK ها، Zk-STARK ها ازنظر سرعت و ابعاد محاسباتی، بهمراتب مقیاسپذیرتر هستند.
- Zk-SNARK ها به علت استفاده از سیستم رمزنگاری منحصربهفرد خود، در برابر حملات رایانههای کوانتومی، بسیار آسیبپذیر هستند. این در حالی است که zk-STARK ها در مقابل حملات رایانههای کوانتومی مقاوم هستند.
دیگر جنبههای مهمی که وجه تمایز این ۲ دسته از اثباتها را تشکیل میدهند، در جدول زیر گنجانده شدهاند.
ایمنی پسا کوانتومی | شفافیت (تصادفی بودن عمومی) | مقیاس پذیری تأییدکننده (زمان چند لگاریتمی) | مقیاس پذیری اثبات کننده (زمان شبه خطی) | |
ندارد | ندارد | تنها در محاسبات پی در پی وجود دارد | دارد | hPKC |
ندارد | دارد | ندارد | دارد | DLP |
ندارد | دارد | ندارد | دارد | IP |
دارد | دارد | ندارد | دارد | MPC |
ندارد | ندارد | دارد | دارد | IVC+hPKC |
دارد | دارد | دارد | دارد | ZK+STARK |
سخن پایانی
قطعاً هر آنچه که در این مطلب از فکت کوینز در خصوص zk-STARK بیان کردیم، شگفتانگیز به نظر میرسد. اما متأسفانه این فناوری بسیار جدید (زمان پیدایش آن سال ۲۰۱۸ میلادی است)، تا الآن بهصورت گسترده مورد آزمایش و مطالعه قرار نگرفته و هنوز در هیچ سیستم تولید واقعی (چه در عرصه رمز ارزها و چه دیگر عرصهها) اعمال نشده است.
در حال حاضر، تنها کاربرد شناختهشده اثبات zk-STARK، توسط استارک ور (Starkware) است؛ شرکتی که توسط طراحان zk-STARK ایجاد شده و روزبهروز نیز در حال توسعه بیشتر است. در حقیقت هدف این شرکت طراحی یک بستر آزمایشی است که این فناوری را برای استفاده در بلاک چینها، صرافیهای غیرمتمرکز و دیگر موارد امکانپذیر کند.
بااینحال، هنوز چند سال دیگر بایستی منتظر بمانیم تا شاهد بهکارگیری این فناوری در عرصههایی باشیم که پیشتر به آنها پرداختیم. اما نتیجهای که بهطورقطع میتوانیم آن را بیان کنیم این است که سیستم zk-STARK از آینده بسیار روشنی برخوردار بوده و بهزودی توسط بسیاری از پروژههای فعال در حوزه ارزهای دیجیتال مورداستفاده قرار خواهد گرفت.