بررسی دنیای راهکارهای اثبات بی‌نیاز به دانش

آیا می‌دانید رول‌آپ‌های بی‌نیاز به دانش (Zero-Knowledge Rollup) یا zkr‌ چیست و چه کاربردی دارد؟ با گذشت زمان و رشد این فناوری، صنعت رو به رشد بلاکچین آماده پذیرای راه‌حل‌های لایه ۲ مانند رول‌آپ بی‌نیاز به دانش می‌شود. هدف از نگارش این مقاله، ارائه مقدمه‌ای سطح بالا برای فناوری اثبات با دانش صفر و اکوسیستم رو به رشد پروژه‌های مرتبط با zkr یعنی ZK-SNARK و ZK-STARK است. برای آشنایی کامل با این فناوری‌ها، در ادامه با میهن بلاکچین همراه باشید.

Zkr به عنوان راه‌حل نهایی مقیاس‌پذیری لایه ۲ برای بهبود اتریوم توسط ویتالیک بوترین معرفی شد. بیشتر کارشناسان (از جمله خود ویتالیک) فکر می‌کردند که با پیاده‌سازی تکونولوژی zkr سال‌ها فاصله داریم. بنابراین، در این میان تمرکز بیشتر روی رول‌آپ‌های (مجموعه‌های) خوش‌بین مانند آپتیمیزم (Optimism) و آربیتروم (Arbitrum) به عنوان گامی در افزایش مقیاس‌پذیری اتریوم بود.

تاریخچه راه‌حل‌های لایه ۲ و تولد راهکار اثبات بی‌نیاز به دانش

بلاکچین‌های لایه ۱ مانند شبکه اصلی اتریوم، در حال دست و پنجه نرم کردن با مفاهیم تمرکز زدایی، امنیت و مقیاس‌پذیری هستند (سه‌گانه بلاکچین). با توجه به سه‌گانه بلاکچین، یک شبکه بلاکچینی از ۳ مورد گفته شده باید یک مورد را قربانی کند تا دو مورد بقیه را داشته باشد.

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

دو راه برای افزایش مقیاس‌پذیری شبکه‌های بلاکچین وجود دارد. راه‌حل اول این است که خود بلاکچین لایه ۱ (شبکه اصلی) را مقیاس‌پذیر کنیم. این کار با ایجاد بلوک‌های بزرگتر یا شاردینگ انجام می‌شود. برای انجام این کار باید تا حدودی تمرکززدایی یا امنیت را قربانی مقیاس‌پذیری شبکه کنیم. راه‌حل دوم انتقال تراکنش‌ها از بلاکچین لایه ۱ به لایه ۲ است. استفاده از راه‌حل‌های مقیاس‌پذیری لایه ۲، به بلاکچین این امکان را می‌دهد تا بدون اینکه تمرکززدایی یا امنیت را قربانی کند، مقیاس پذیر باشد.

راه‌حل‌های لایه دوم، تراکنش‌ها را به صورت دسته‌ای در سطح لایه ۲ جمع‌آوری می‌کنند و سپس برای تسویه حساب و نهایی‌سازی به بلاکچین لایه اول ارسال می‌کنند. به جای پرداخت هزینه گس در هر تراکنش به صورت جداگانه، این هزینه برای کل دسته پرداخت می‌شود. لذا، هزینه گس بین تراکنش‌ها تقسیم می‌شود. با این کار، میزان گس پرداختی هر تراکنش کاهش می‌یابد. در نتیجه، لایه اول به لایه تسویه تراکنش‌های انجام شده در لایه ۲ تبدیل می شود (زیرا شبکه‌‌های لایه ۲ تراکنش‌های بسیار ارزان‌تری ارائه می‌دهند).

راه‌حل‌های لایه ۲ به بلاکچین‌ها کمک می‌کنند تا با هزینه‌های گس بسیار ارزان‌تر و در حالی که تمرکززدایی یا امنیت را قربانی نکنند، مقیاس‌پذیری کل سیستم را افزایش دهند.

بلاکچین‌های ماژولار در مقابل بلاکچین‌های یکپارچه

روش‌های مقیاس‌پذیری لایه ۲ از رویکرد «تقسیم کار» استفاده می‌کنند که به معماری بلاکچین ماژولار معروف است. این مکانیسم با معماری سنتی یکپارچه که شبکه‌های لایه اول با آن کار می‌کنند، متفاوت است.

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

راه‌حل‌های لایه دو، برای افزایش مقیاس‌پذیری لایه اجرا طراحی شده‌اند. این هدف را با با دسته بندی و اجرای تراکنش‌ها در لایه دوم قبل از نهایی سازی در لایه ۱ انجام می‌دهد. راه‌حل‌های دیگری برای بهبود عملکردهای امنیتی و در دسترس بودن داده‌ها (به ویژه انتقال از PoW به PoS و اشتراک گذاری داده‌ها) وجود دارد.

آیا راه‌حل‌های لایه ۲ بهترین گزینه‌اند؟

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

به عنوان نمونه در پی افزایش اخیر فعالیت در شبکه آوالانچ، هزینه گس ۱۰ برابر افزایش یافت. نکته فقط آوالانچ نیست، بلکه نشان دهنده این است که راه‌حل‌های مقیاس‌پذیری لایه ۲ در زمان افزایش تقاضا برای استفاده از شبکه، نه فقط برای اتریوم، بلکه به طور کلی ضروری به نظر می‌رسند.

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

تکامل لایه ۲ اتریوم

تاریخچه راهکارهای افزایش مقیاس‌پذیری لایه ۲ در اتریوم، به ترتیب از کانال‌های حالت (State Channels) شروع شده سپس ایده پلاسما مطرح شد و اکنون تحقیقات روی rollup (تجمیع تراکنش‌ها) در حال انجام است.

کانال‌ها

کانال‌ها (Channel) به کاربران این امکان را می‌دهند که قبل از تسویه تراکنش‌های کانال در زنجیره، تراکنش‌های همتا به‌ همتا (P2P) را خارج از زنجیره انجام دهند.

به عنوان مثال کاربر A و کاربر B برای ایجاد کانالی که امکان تراکنش P2P را فراهم می‌کند، کانال چند امضایی را ایجاد می‌کنند و وجوه را واریز می‌کنند. هنگامی که کانال دیگر مورد نیاز نیست، کانال بسته می‌شود و با شبکه اصلی (لایه ۱) تطبیق داده می‌شود. این باعث صرفه‌جویی در هزینه‌ها می‌شود، زیرا هر تراکنشی در لایه اول پردازش نمی‌شود، اما مختص کاربرد خاصی (پرداخت‌های P2P در این مثال) است.

پلاسما

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

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

منظور از همه منظوره بودن چیست؟

می‌توان بین بلاکچین‌های همه منظوره و اختصاصی انشعابی ایجاد کرد. در رابطه با مقیاس‌پذیری لایه ۲ در اتریوم، همه منظوره بودن اجازه می‌دهد تا یک محیط سازگار با ماشین مجازی اتریوم (EVM) اجرا شود (به یاد داشته باشید، اتریوم یک کامپیوتر بزرگ توزیع شده است که قراردادهای هوشمند را اجرا می‌کند). همه منظوره بودن و امکان اجرای EVM در لایه ۲ به برنامه‌های موجود در اتریوم اجازه می‌دهد تا با کم‌ترین یا حتی بدون تغییر کد، به این لایه منتقل شوند.

Rollup، راه‌حلی برای ایجاد لایه ۲ همه‌منظوره

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

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

داشتن داده هر تراکنش در زنجیره (در دسترس بودن داده) به دو دلیل مهم است:

انواع رول‌آپ‌ها

در حالت کلی دو نوع رول آپ داریم: رول آپ خوش‌بین و رول آپ بی‌نیاز به دانش.

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

برای داوری، تراکنش در بلاکچین لایه ۱ پردازش می‌شود. اگر تقلبی وجود داشته باشد، اعتبارسنجی که تراکنش نادرست را ارسال کرده است، وثیقه‌اش برداشته می‌شود (ولیدتور اترهای قفل شده را از دست می‌دهد). پس از پردازش یک دسته، یک مهلت ۷ روزه برای ایجاد درخواست اختلاف وجود دارد. شیوه عمل رول آپ‌های خوش‌بین را با نام مکانیسم «اثبات تقلب» نیز می‌شناسند.

رول آپ‌های بی‌نیاز به دانش (zkr) به اثبات با دانش صفر متکی هستند که به یک اثبات‌کننده اجازه می‌دهد تا با استفاده از خود اثبات به عنوان مدرک، حقیقت را به تاییدکننده ثابت کند. این مدرک رمزنگاری‌شده در هر دسته از تراکنش‌های لایه ۲ قرار می‌گیرد و می‌تواند به سرعت در بلاکچین لایه ۱ تایید شود. این اثبات‌های رمزنگاری‌شده فناوری پیچیده‌ای داشته و به محاسبات سنگین نیاز دارند.

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

اثبات بی‌نیاز از دانش (zkp)

ایده اثبات بی‌نیاز به دانش یا Zero Knowledge Proof برای اولین بار در یک مقاله دانشگاهی در سال ۱۹۸۰ با عنوان پیچیدگی دانش در سیستم‌های اثبات تعاملی معرفی شد. ایده کلی این است که یک اثبات‌کننده می‌تواند صحت اطلاعات را بدون افشای خود اطلاعات به یک تاییدکننده ثابت کند.

zkp پروتکلی است بین دو طرف، یک اثبات‌کننده و یک تاییدکننده که در آن اثبات‌کننده می‌تواند تاییدکننده را در مورد صحت ادعا متقاعد کند، بدون اینکه چیزی جز اثبات معتبر بودن یک ادعا را فاش کند. این قسمت همان مفهوم بی‌نیاز بودن به دانش در فرآیند اثبات است. غیر از خود دلیل یا برهان، هیچ دانش (یا اطلاعات اضافی) برای اثبات ادعا ارائه نمی‌شود. این مفهوم منطقی به نظر نمی‌رسد و باید غیرممکن باشد و دقیقا به همین دلیل است که zkp بسیار مورد اهمیت واقع شده است.

مثالی که اغلب برای کمک به درک بهتر zkp استفاده می‌شود، بازی «والدو کجاست؟» است. مسئله این است که چگونه یک اثبات‌کننده می‌تواند ادعای دانستن مکان والدو را برای تاییدکننده با دانش صفر اثبات کند. در اثبات سنتی، اثبات‌کننده به سادگی به جایی که والدو در تصویر است اشاره می‌کند (مثلا می‌گوید والدو در کنار چادر راه راه قرمز است). درست است که با این روش، ادعا ثابت می‌شود، اما دانش را نیز به تاییدکننده ارائه می‌کند.

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

اگر تاییدکننده بپرسد «والدو کجاست؟» و اثبات‌کننده یک قایق بادبانی را نشان دهد، تاییدکننده فقط با توجه به خود مدرک ارائه شده، متوجه می‌شود که اثبات‌کننده دروغ می‌گوید.

اثبات با دانش صفر دارای سه ویژگی است:

به عنوان یک خواننده ممکن است بپرسید که چرا این مهم است؟ دو نکته وجود دارد که برای کنار هم قرار دادن همه این موارد باید مد نظر قرار داد:

  • حریم خصوصی: zkp حفظ حریم خصوصی را امکان‌پذیر می‌کند (با توجه به مثال بالا فقط والدو نشان داده شده است و هیچ اطلاعات دیگری ارائه نشده است. بنابراین، اطلاعات مربوط به اینکه والدو دقیقا کجاست، خصوصی باقی می‌ماند).
  • مقیاس پذیری: زمان تایید سریع‌تر از زمان اجرا است.

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

انواع روش‌های اثبات بی‌نیاز به دانش

در ادامه به بررسی فناوری‌های ZK-SNARK و ZK-STARK می‌پردازیم.

معرفی ZK-SNARK به عنوان راهکار اثبات بی‌نیاز به دانش

ZK-SNARK برای اولین بار توسط محققان در سال ۲۰۱۲ نامگذاری شد. SNARK مخفف Succinct Non-Interactive ARgument of Knowledge است.

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

در zkp اولیه، اثبات‌کننده و تاییدکننده چندین بار برای ایجاد اعتبار با هم تعامل دارند. مسئله این است که هر چه تعامل بیشتر باشد، فرآیند ناکارآمدتر می‌شود (چراکه سرعت zkp را کاهش می‌دهد و به مقیاس‌پذیری آسیب می‌رساند). در zkp غیر تعاملی (Non-Interactive)، فرآیند اثبات صرفا یک پیام واحد از طرف اثبات‌کننده به تاییدکننده است (این فرآیند بسیار کارآمدتر است).

با توجه به مکانیسم اسنارک (SNARK)، کارآمدترین راه برای تولید zkp غیر تعاملی و به اندازه کافی کوچک در یک بلاکچین، ایجاد یک رشته مرجع بین اثبات‌کننده و تاییدکننده است. این فناوری پیچیده است، اما به روش زیر می‌توان این مفهوم را ساده سازی کرد:

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

در سال ۲۰۱۷، زی کش (Zcash) اولین پروژه بزرگ در حوزه ارزهای دیجیتال بود که از ZK-SNARK استفاده کرد. این ارز دست به کار شد تا کلید خصوصی را از فرآیند حذف کند. مشکل در حصول اطمینان از ناشناخته بودن کلید خصوصی، به عنوان یک آسیب پذیری امنیتی برای ZK-SNARK است.

جمع بندی این می‌شود که ZK-SNARKها شکلی از zkp هستند. از این نظر مختصر هستند که می‌توانند به سرعت تایید شوند و زمان تایید به صورت خطی با افزایش میزان محاسبات در شبکه افزایش نمی‌یابد. از آنجا که تعامل محدودی بین اثبات‌کننده و تاییدکننده وجود دارد، ZK-SNARKها غیر تعاملی هستند. این مکانیسم کارآمدی SNARK را افزایش می‌دهد، اما برای انجام این کار، به یک راه‌انداز قابل اعتماد نیاز است که باعث ایجاد آسیب پذیری امنیتی در سیستم می‌شود.

معرفی ZK-STARK به عنوان راهکار اثبات بی‌نیاز به دانش

فناوری ZK-STARK در ابتدا در یک مقاله دانشگاهی در سال ۲۰۱۸ پیشنهاد شد. نویسندگان مقاله در ادامه StarkWare را پیاده‌سازی کردند. فناوری دانش صفر استارک سعی در بهبود روش قبلی (اسنارک) آنها دارد. STARK مخفف Scalable Transparent ARgument of Knowledge است.

هدف استارک (STARK) این است که مقیاس پذیرتر از SNARK باشد. مقیاس‌پذیری در استارک شامل ۲ جزء است:

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

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

مجبور نیستیم در مورد بهتر بودن SNARK یا STARK فرضیه سازی کنیم. چراکه هر دو فناوری آینده روشنی دارند. به عنوان مثال، استارک ور (StarkWare) به تازگی استارک نت (StarkNet) را راه‌اندازی کرده است که یک پلتفرم همه‌منظوره بوده و روی استارک اجرا می‌شود و  راهکار zkSync در حال حاضر در حال ساخت یک پلتفرم همه‌منظوره قابل اجرا روی فناوری اسنارک است.

سخن پایانی

در این مقاله، پس از ارائه مقدمه‌ای بر راه‌حل‌های لایه ۲ و روش اثبات با دانش صفر، به بررسی فناوری‌های ZK-SNARK و ZK-STARK پرداختیم. به طور خلاصه، SNARKها اولین پیاده‌سازی‌های روش‌های اثبات با دانش صفر یا zkp بودند. نمی‌توان در مورد بهتر بودن یا نبودن این فناوری‌های مبتنی بر zkr اظهار نظر قطعی کرد؛ چراکه هر دو فناوری در مسیر رشد و افزایش محبوبیت قرار دارند. در انتها، نظرات خود درباره روش اثبات با دانش صفر را با میهن بلاکچین به اشتراک بگذارید.

نظر شما !!