ZKEVM یک راه‌حل برای مقیاس‌پذیری شبکه اتریوم است. کاربرد گسترده و سطح بالای تجاری این بلاک چین در مدت‌زمانی طولانی با فشارهای ناشی از مشکلاتی در مقیاس‌پذیری و امنیت، مواجه شده بود. ZKEVM به‌عنوان یک پاسخ جذاب که راهکاری انقلابی برای اجرای قراردادهای هوشمند (Smart Contracts) و با حفظ اطمینان از حفظ حریم خصوصی و کارآیی می‌باشد، مطرح شده است. جذابیت ZKEVM فراتر از قابلیت‌های فنی آن است زیرا مزایای محسوسی برای بنگاه‌های تجاری و توسعه‌دهندگان عرضه می‌کند. در این مقاله به معرفی و تشریح ویژگی‌های گوناگون ZKEVM می‌پردازیم.


تکنولوژی Zk-Rollups چیست؟

تکنولوژی Zk-Rollups چیست؟

فناوری Zk-Rollups نسل بعدی مقیاس‌پذیری بلاک چین است. از لحاظ نظری شبکه‌های بلاک چین دارای یک سه‌گانهٔ دست‌نیافتنی مقیاس‌پذیری هستند که نمی‌توانند همزمان به هر سه مورد دست یابند؛ یعنی به امنیت، غیرمتمرکز بودن و سرعت عملکرد بالا. با این وجود پروژه‌های لایهٔ ۲ نویدبخش‌ترین راه‌حل‌ها برای مقیاس‌پذیری بهتر بلاک چین به شمار می‌روند.


ZK-rollup یک راه‌حل مقیاس‌پذیری لایهٔ ۲ است که به افزایش سرعت تراکنش‌ها کمک می‌کند. این کار با دستکاری تراکنش‌ها در خارج از شبکهٔ بلاک چین اصلی (Off-chain) انجام شده، ولی داده‌های تراکنش در بلاک چین اصلی (On-chain) ذخیره می‌شوند. این روش از اثبات دانش صفر (ZK-proof) برای اطمینان از معتبر بودن تراکنش‌ها، بدون آشکار کردن هر گونه اطلاعات خصوصی، کاربرد دارد.


ماشین مجازی اتریوم (EVM) چیست؟

ماشین مجازی اتریوم (EVM) چیست؟

ماشین مجازی اتریوم (EVM) بخشی از هستهٔ شبکه اتریوم است که به تقویت بلاک چین و قراردادهای هوشمند (Smart Contract) کمک می‌کند. ماشین مجازی اتریوم (EVM) بخشی حیاتی در دستیابی شبکه اتریوم به غیرمتمرکز بودن و جذب کاربران است. در واقع ماشین مجازی اتریوم یک موتور محاسباتی در شبکه اتریوم بوده که وضعیت بلاک چین را مدیریت کرده و عملکرد قراردادهای هوشمند را فعال‌سازی می‌کند. ماشین مجازی اتریوم در نرم‌افزار سمت مشتری (Client Software) قرار داده شده (برای مثال Geth ،Nethermind و غیره) تا یک گره (Node) را در شبکه اتریوم به اجرا درآورد. گره‌ها در شبکه اتریوم حاوی کپی‌هایی از داده‌های تراکنش هستند که ماشین مجازی پردازش کرده تا دفترکل (Ledger) توزیع‌شده را به‌روزرسانی کند. به زبان ساده گره‌ها در شبکه اتریوم به‌طور ذاتی از ماشین مجازی اتریوم به‌عنوان پیاده‌سازی نرم‌افزار سمت کاربر برای اجرای این فرایند، پشتیبانی خواهند کرد.


مفهوم ZKEVM چیست؟

مفهوم ZKEVM چیست؟

یک ماشین دانش صفر مجازی اتریوم (ZKEVM) یک ماشین مجازی است که تراکنش‌های قرارداد هوشمند را به نحوی اجرا می‌کند که هم با محاسبات اثبات دانش صفر (zk-proof) و هم با زیرساخت شبکه اتریوم موجود سازگار باشد. بدین ترتیب، ZKEVM می‌تواند بخشی از رول‌آپ (Rollup) دانش صفر محسوب شود که راه‌حلی برای مقیاس‌پذیری لایه دوم اتریوم بوده و به افزایش عملکرد تراکنش‌ها و درعین‌حال کاهش هزینه‌ها کمک کند.


ماشین مجازی ZKEVM چگونه کار می‌کند؟

یک لایه دوم اتریوم به شرطی سازگار با ماشین مجازی اتریوم خواهد بود که بتواند برنامه‌های نوشته‌شده برای محیط‌های اتریوم را بدون دستکاری در منطق قرارداد هوشمند موجود در آن اجرا کند. این قابلیت باعث می‌شود که لایه دوم اتریوم با الگوهای موجود قرارداد هوشمند شبکه اتریوم، استانداردهای توکن و ابزارها سازگار باشد. سازگار بودن با ماشین مجازی اتریوم برای سازگاری گستردهٔ این برنامه‌های لایه دوم اتریوم ضروری است؛ چراکه توسعه‌دهندگان آشنا به زبان برنامه‌نویسی سالیدیتی (Solidity) شبکه اتریوم را قادر به ساخت برنامه‌های کاربردی بسیار مقیاس‌پذیری می‌سازد که با همان ابزارهای قبلا آزمایش‌شده ساخته شده‌اند.


محیط اجرایی ZKEVM

محیط اجرایی ZKEVM

ماشین مجازی اتریوم قراردادهای هوشمند را اجرا کرده و وضعیت شبکه اتریوم را پس از اضافه شدن هر بلاک جدید به زنجیره محاسبه می‌کند. این کار کد نوشته‌شده به زبان سالیدیتی (Solidity) را بررسی نموده و آن را به بایت‌کد (Bytecode) مناسب برای کامپیوتر تبدیل کرده و سپس وضعیت شبکه اتریوم را به‌روزرسانی می‌کند. ماشین مجازی اتریوم قوانین مشخصی را برای تغییر وضعیت مشخص کرده و قراردادهای هوشمندی که توسعه‌دهندگان می‌توانند بنویسند را تعریف می‌کند.


یک ZKEVM نوع جدیدی از ماشین مجازی اتریوم است که قراردادهای هوشمند در آن قابل اجرا هستند. ZKEVM وضعیت اولیه را دریافت نموده، تراکنش‌ها را محاسبه کرده و وضعیت جدید به‌روزرسانی‌شده را برگردانده و با اثبات دانش صفر (zk-proof) همراهی می‌کند. چون ZKEVM ها مبتنی بر ماشین مجازی اتریوم هستند، توسعه‌دهندگان می‌توانند به سادگی برنامه‌های کاربردی غیرمتمرکز (dApps) و توکن‌ها را به ZKEVM منتقل کنند.


مدار اثبات ZKEVM

مدار اثبات ZKEVM

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


قرارداد تأییدکننده ZKEVM

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


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


مزایای ZKEVM چیست؟

مزایای ZKEVM چیست؟

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


مقیاس‌پذیری امن

ZKEVM برخلاف شبکه اتریوم ناچار نیست که از قوانین پروتکل اجماع اتریوم تبعیت کند. به‌هر‌حال، همهٔ تراکنش‌های لایه دوم اتریوم در یک ZKEVM هنوز از طریق اثبات‌ اعتبار موجود در لایه اول تأیید می‌شوند؛ یعنی ZKEVM ها می‌توانند بدون مختل کردن امنیت به بهینه‌سازی سرعت و کارایی تراکنش بپردازند.


هزینهٔ پایین

هزینهٔ پایین

رول‌آپ‌های لایه دوم دسته‌هایی از تراکنش‌ها را به یک بلاک چین لایه اول مثل اتریوم ارسال می‌کنند. رول‌آپ‌های خوشبینانه (Optimistic) باید کلیه داده‌های روی زنجیرهٔ (شامل امضاها) کلیه تراکنش‌ها را پست کنند که می‌تواند به هزینه‌های گس (Gas Fee) بالایی منجر شود. به‌هر‌حال، ZKEVM ها تنها نیاز به منتشر کردن وضعیت تغییرات نهایی در زنجیره دارند؛ چراکه اثبات‌های دانش صفر اعتبار کلیهٔ تراکنش‌های درون دسته را تضمین می‌کنند.


نهایی کردن سریع

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


اثرات شبکه‌ای

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


انواع ZKEVM کدامند؟

انواع ZKEVM کدامند؟

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


نوع ۱: کاملا سازگار با اتریوم

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


نوع ۲: کاملا سازگار با ماشین مجازی اتریوم

هدف ZKEVM های نوع ۲ این است که کاملا با برنامه‌های کاربردی شبکه اتریوم موجود سازگار باشند؛ ولی تغییرات جزئی برای سریع‌تر کردن تولید اثبات‌ها و آسان‌تر کردن توسعه ایجاد کنند. با این که زمان اثبات سریع‌تر می‌شود، این پیاده‌سازی‌ها هنوز خیلی کند به نظر می‌رسند.


نوع ۲.۵ سازگار با ماشین مجازی اتریوم به‌جز در هزینه‌های گس

نوع ۲.۵ سازگار با ماشین مجازی اتریوم به‌جز در هزینه‌های گس

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


نوع ۳ تقریبا سازگار با ماشین مجازی اتریوم

ZKEVM‌های نوع ۳ برخی ویژگی‌های ماشین مجازی اتریوم را برای فعال کردن ساده‌تر توسعه برنامهٔ کاربردی و تولید اثبات حفظ می‌کنند. برای مثال تغییراتی در پیش‌کامپایل، حافظهٔ ماشین مجازی، پشته (Stack) و نحوهٔ کار با قراردادهای هوشمند را با ویژگی‌های ماشین مجازی اتریوم منطبق می‌سازند. با اینکه بیشتر برنامه‌های کاربردی شبکه اتریوم در این محیط کار می‌کنند، ممکن است برخی نیازمند بازنویسی باشند.


نوع ۴: سازگار با زبان سطح بالا

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


چالش‌های ساخت ZKEVM چیست؟

چالش‌های ساخت ZKEVM چیست؟

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


معماری مبتنی بر پشته (Stack)

ماشین مجازی اتریوم از یک معماری مبتنی بر پشته استفاده می‌کند که اصل «ورود آخری، خروج اولی» (LIFO) را به کار می‌گیرد. بدین ترتیب که با اضافه شدن آخرین داده به پشتهٔ فراخوانی، اولین مورد باید خارج شود. این مدل به سادگی قابل استفاده است. با‌این‌حال وقتی یک ZKEVM بسازیم، یک مدل مبتنی بر ثبت‌نام که در آن داده در یک ثبت‌کنندهٔ پردازشگر مجازی ذخیره شده است، می‌تواند بسیار کارآمدتر در محاسبات با کارایی بالا و محاسبات دانش صفر مورد نیاز یک ZKEVM نوعی ظاهر شود.


پیچیدگی اوپیکد (Opcode)

ماشین مجازی اتریوم برخلاف ماشین‌های مجازی معمول از اوپیکدهای (Opcodes) خاصی برای دستور دادن به ماشین مجازی اتریوم جهت انجام دادن کار در هنگام اجرای یک قرارداد هوشمند استفاده می‌کند؛ مثلا می‌تواند از CALL ،DELEGATECALL ،REVERT و INVALID بهره بگیرد. این کار پیچیدگی را افزایش می‌دهد که باعث مشکل‌تر شدن درک کاری که واقعا ماشین مجازی اتریوم دارد انجام می‌دهد، خواهد شد.


سربار ذخیره‌سازی

ماشین مجازی اتریوم از یک درخت مرکل (Merkle) برای سازماندهی داده و از یک تابع هش کیکاک (Keccak) برای ردیابی آن داده از طریق تبدیل آن به هش‌ها استفاده می‌کند. این کار دارای سربار اثباتی سنگینی است و محاسبات بسیاری را برای کنترل کردن درست بودن هش‌ها نیاز دارد.


هزینه‌های اثبات

تولید کردن اثبات‌های دانش صفر یک فرایند بسیار نیازمند منبع است که سخت‌افزارهای تخصصی خود را نیاز دارد.


آیا ZKEVM نسبت به سایر راه‌حل‌های مقیاس پذیری بهتر است؟

آیا ZKEVM نسبت به سایر راه‌حل‌های مقیاس پذیری بهتر است؟

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


  • نهایی کردن سریع

  • امنیت

  • حفظ حریم خصوصی

  • قابلیت برنامه‌نویسی

  • مقیاس‌پذیری

چند مورد از ZKEVM‌های کاربردی کدامند؟

تا کنون چندین نوع ZKEVM به بازار عرضه شده‌اند که سه نوع آن را به‌اختصار بررسی می‌کنیم.


Polygon ZKEVM

Polygon ZKEVM

پالیگان (Polygon) تلاش دارد یک ZKEVM نوع ۲ باشد؛ گرچه هنوز به نوع ۳ نزدیک‌تر است. پالیگان یک شبکهٔ لایه دوم اتریوم غیرمتمرکز برای مقیاس‌پذیری شبکه اتریوم محسوب می‌شود. این شبکه در ۲۷ مارس ۲۰۲۳ فعال شد. این شبکه از اثبات دانش صفر رمزنگاری‌شده استفاده کرده و سازگاری اوپیکد (Opcode) با ماشین مجازی اتریوم را حفظ می‌کند. در نتیجه توسعه‌دهندگان می‌توانند از ابزارهای موجود شبکه اتریوم و زیرساخت آن برای ساختن قراردادها و برنامه‌های کاربردی جدید بر ZKEVM پالیگان استفاده کنند. از طرفی هر چیزی که بر شبکه اتریوم ساخته شده باشد قابل ساخت بر پولیگان نیز هست. این شبکه سرعت تراکنش بالایی دارد.


ConsenSys ZKEVM

ConsenSys یک ZKEVM بسیار شبیه پالیگان است و سازگاری ۱۰۰ درصدی با بایت‌کد ماشین مجازی اتریوم داشته و همکاری ماکسیمم با کلیه زنجیره‌های سازگار با ماشین مجازی اتریوم را ارائه می‌کند. ConsenSys مدعی است که توسعه‌دهندگان می‌توانند dAppهای فعلی خود بر ZKEVM را در چند دقیقه بدون تغییر بر آن پیاده‌سازی کنند.


zkSync ZKEVM

zkSync ZKEVM

zkSync 2.0 یک ZKEVM نوع چهارم است و توسط شرکت Matter Labs ساخته شده و در مسابقهٔ ZKEVM پیشرو است. شبکه اصلی نسخه لایت Lite Mainnet) zkSync) به‌عنوان نسخه اولیه شبکه قدرت گرفته از دانش صفر در دسامبر ۲۰۲۰ فعال شد. نسخه لایت zkSync تنها پرداخت‌های ساده را پشتیبانی می‌کرد. شرکت Matter Labs در اکتبر ۲۰۲۲ محیط کامل ZKEVM را به روی توسعه‌دهندگان گشود و در ۲۴ مارس ۲۰۲۳، شبکه اصلی zkSync در دسترس قرار گرفت.


سخن پایانی


تراکنش‌های محدودشده و هزینه‌های بالاس گس قابلیت اتریوم و دیگر بلاک چین‌ها برای مقیاس‌پذیری موفق را محدود کرده‌اند. ZKEVM ها با تولید اثبات‌های روی زنجیره، به شبکه اتریوم و زیرساخت‌های موجود آن تجربهٔ مقیاس‌پذیری بالا و رول‌آپ‌های کم‌هزینهٔ لایه دوم اتریوم را در حین حفظ امنیت اضافه می‌کنند. در نهایت ZKEVM‌ها با ترکیب کردن اثبات‌های دانش صفر و یک ماشین مجازی اتریوم بر محدودیت‌های قبلی غلبه کرده و زیرساخت مقیاس‌پذیر مورد نیاز برای دستیابی به مطابقت گسترده با وب ۳ را فراهم خواهند کرد.