از زمان ظهور اینترنت چالش حفظ حریم خصوصی یکی از اصلیترین مواردی بوده که پروژههای مختلفی سعی در رسیدگی به آن را داشتهاند. اثبات دانش صفر یا ZKP یکی از قویترین راهکارها برای حل این مشکل اساسی در بستر اینترنت است. اما ZkEVM چیست و چه کاربردی دارد؟
احتمالاً میدانید که EVM درواقع ماشین مجازی اتریوم است که اجرای قراردادهای هوشمند را به عهده دارد. اما حالا دانش صفر یا Zero Knowledge به کمک این شبکه بلاک چین آمده تا کارایی آن را افزایش دهد. در این مطلب به بررسی اهمیت ZkEVM و نحوه کار آن میپردازیم.
این مطلب ترجمهای از دیدگاه کنی لی، یکی از بنیانگذاران شبکه Manta است که یک پروتکل لایه 1 حریم خصوصی قابلبرنامهریزی است و توسط اثبات دانش صفر پشتیبانی میشود. بنابراین تمام موارد بیان شده در این مطلب منعکس کننده دیدگاه این شخص است.
مفهوم ZkEVM چیست؟ نسل جدید ماشین مجازی اتریوم
زمانی که در سال 2014 ویتالیک بوترین و دوستانش به توسعه شبکه بلاک چین مشغول بودند، شاید حفظ حریم خصوصی بهاندازهای که امروز مهم است، اهمیت نداشت، بنابراین ویتالیک و دوستانش نیز توجه زیادی به ZKP یا Zero Knowledge Proof نکردند. در سالهای اخیر شاهد توجه فعالان فناوری به ZKP هستیم و بسیاری از صاحبنظران در این حوزه معتقدند که ZKP نقش بسیار مهمی در فضای بلاکچین ایفا خواهد کرد. به همین دلیل ویتالیک و توسعهدهندگان اتریوم نیز تلاشهایی برای ترکیب ماشین مجازی اتریوم با فناوری ZKP انجام دادهاند.
برای درک ZkEVM ابتدا باید با مفاهیمی مانند ماشین مجازی اتریوم (EVM)، اثبات دانش صفر (ZKP) و zk-rollups آشنا باشید.
ماشین مجازی اتریوم یا EVM چیست؟
ماشین مجازی اتریوم درواقع یک ماشین حالت است. ماشین حالت به ماشینی گفته میشود که پس از دریافت ورودیهای جدید، حالت آن بهروز میشود. EVM نیز یک نوع ماشین حالت است که سیستم حسابهای اتریوم و قراردادهای هوشمند در آن اجرا میشود. هر قرارداد هوشمند جدیدی که اجرا میشود، حالت ماشین مجازی اتریوم را به حالت جدید تغییر میدهد. ماشین مجازی اتریوم یک قاعده مشخص برای محاسبه حالتهای جدید و معتبر برای هر بلوک تعریف کرده است.
حالت یا State در اتریوم یک مفهوم مهم است. درواقع حالت یک ساختار داده به شکل درخت مرکل است که نشاندهنده وضعیت فعلی بلاک چین اتریوم است و به هر شخصی این اجازه را میدهد تا اطلاعات مرتبط با تراکنشهای موجود در بلوک فعلی را از زمان ایجاد بلوک پیدایش ردیابی کند.
تمام نودهایی که در حفظ اتریوم دخیل هستند، برای اطمینان از تداوم و اجماع به هر گره اجازه میدهند وضعیت فعلی هر بلوک را بهطور دقیق ببیند. EVM نقش مهمی در حفظ سازگاری و یکپارچگی این نودها در شبکه دارد.
ZkP یا اثبات دانش صفر چیست؟
اثبات دانش صفر یک روش بسیار کاربردی برای حفظ حریم خصوصی است. درواقع در این روش یک فرد میخواهد به شخص دوم اثبات کند که اطلاعات درست را در اختیار دارد، بدون اینکه اطلاعات را در اختیار شخص دوم قرار دهد.
در ZKP دو نقش اصلی وجود دارد: اثباتکننده و تأییدکننده. اثباتکننده شخصی است که اطلاعات را در اختیار دارد و میخواهد بدون اینکه دادههای اصلی را افشا کند، ثابت کند که دادههای درست را در اختیار دارد. تأییدکننده شخصی است که بدون اینکه به دادههای اصلی دسترسی داشته باشد، باید مطمئن باشد که اثباتکننده واقعاً اطلاعات درست را در اختیار دارد. شاید درک این موضوع کمی گیجکننده و سخت باشد، برای مطالعه بیشتر میتوانید از لینک زیر استفاده کنید.
مطالعه بیشتر: اثبات دانش صفر در بلاکچین چیست؟ آشنایی با الگوریتم Zero Knowledge Proof
Zk-Rollups چیست؟
احتمالاً میدانید که یکی از اصلیترین مشکلات در زمینه فناوری بلاکچین که شبکههای بزرگی مانند اتریوم نیز در رابطه با آن روبهرو هستند، مشکل مقیاسپذیری است. رول آپ یکی از راهکارهای لایه دو برای حل مشکل مقیاسپذیری است. در این روش تعداد زیادی از تراکنشها در یک زنجیره موازی با زنجیره اصلی اجرا و ثبت میشوند و دادهها مجدداً بهصورت فشردهتر و بهعنوان یک تراکنش روی شبکه اصلی ارسال میشوند. با استفاده از این روش توان عملیاتی شبکه افزایش پیدا میکند و البته هزینه اجرای تراکنشها نیز به شکل قابلتوجهی کاهش پیدا میکند.
معمولاً رول آپ ها بهعنوان یک زنجیره جانبی در کنار بلاک چین اتریوم قرار میگیرند، دادههای مربوط به چند تراکنش بهعنوان یک تراکنش به شبکه اصلی اتریوم ارسال میشوند و بهصورت یکجا تأیید میشوند. بهاینترتیب علاوه بر اینکه ازدحام شبکه اصلی کم میشود، هزینه تراکنشها نیز کاهش پیدا میکند. مهمترین نکته شاید این باشد که رول آپ ها با استفاده از این روش از امنیت شبکه اصلی نیز استفاده میکنند.
همانطور که از نام آن پیداست، Zk-rollup نوعی از رول آپ است که از اثبات دانش صفر استفاده میکند. این نوع از فناوری که مبتنی بر رمزنگاری است، ثبت و تأیید اطلاعات را بدون افشای آن، امکانپذیر میکند. Zk-rollup تمام دادههای تراکنش را در شبکه اصلی اتریوم منتشر نمیکنند. درواقع آنها فقط به تفاوتهای حالت (بهعنوانمثال تغییر در وضعیت حساب کاربری) و اثبات اعتبار نیاز دارند تا گس فیها را در فرایند ثبت تراکنشها کاهش دهند.
در این نوع از رول آپ، امنیت تراکنشها مبتنی بر اثبات دانش صفر است، جایی که از ابزارهای رمزنگاری برای تأیید تراکنشها بدون دسترسی به اصل اطلاعات استفاده میشود. همچنین امنیت این روش از نظریه بازیها در اقتصاد نشأت میگیرد که در آن بازیگران بد به دلیل ضررهای احتمالی در صورت تقلب، انگیزهای برای تقلب ندارند.
ZkEVM چگونه کار میکند؟
همانطور که پیشازاین نیز گفته شد، ماشین مجازی اتریوم بهطور پیشفرض از ZKP پشتیبانی نمیکند. هدف از راهاندازی ZkEVM اطمینان از این موضوع است که اتریوم به وضعیت قبلی خود ادامه میدهد با این تفاوت که بهطور همزمان اثبات درستی تمام اطلاعات را نیز ارائه میکند. با استفاده از ZkEVM، عوامل مختلف درگیر در محاسبه این فرآیندها با حفظ امنیت و حریم خصوصی تأیید میشوند.
درواقع zkEVM این کار را با تکرار فرایندهای موجود در شبکه اصلی اتریوم بهصورت zk-rollup انجام میدهد.
روش اجرای zkEVM به این شکل است که ابتدا حالت اولیه را دریافت میکند، همه تراکنشها را محاسبه میکند، سپس یک حالت جدید و بهروز شده را به همراه یک ZKP بهعنوان خروجی ارائه میکند. درنهایت این مدرک به یک قرارداد هوشمند تأییدکننده ارائه میشود که صحت خروجی حالت اولیه و جدید را بدون نیاز به تأیید همه تراکنشها بهصورت جداگانه بررسی میکند.
مزایای zkEVM
ازآنجاییکه zkEVMها مبتنیبر ماشین مجازی اتریوم هستند، این امکان برای توسعهدهندگان وجود دارد که بهسادگی برنامههای غیرمتمرکز و قراردادهای هوشمند اتریوم را بدون نیاز به انجام کارهای مرتبط با ZKP، اجرا کنند.
به بیان سادهتر میتوان گفت که zkEVMها به رول آپ ها اجازه میدهند که علاوهبر انجام مبادله توکنها و پرداختهایی که پیشازاین بدون zkEVM پشتیبانی میشدند، قراردادهای هوشمند را مبتنیبر اثبات دانش صفر اجرا کنند.
به دلیل اینکه zkEVM با ماشین مجازی اتریوم سازگاری دارد، توسعهدهندگان میتوانند با استفاده از ابزارها و زبان برنامهنویسی سالیدیتی، محصولات خود را توسعه دهند، درحالیکه همزمان از امنیت پیشرفتهای که با zkEVM پشتیبانی میشود، بهرهمند میشوند.
این مزایا فقط شامل حال توسعهدهندگان نیست، بلکه کاربران نیز از امنیت پیشرفته بهرهمند خواهند شد، درحالیکه میتوانند از همان برنامههای غیرمتمرکز و ابزارهای آشنایی که تابهحال استفاده میکردند، بهرهمند شوند.
تفاوت شبکههای سازگار با EVM و معادل با EVM
زمانی که درباره یک بلاک چین سازگار با EVM صحبت میکنیم، به این معنی است که شبکه موردنظر فضایی ایجاد کرده که در آن میتوان برنامههای غیرمتمرکز نوشتهشده به زبان برنامهنویسی سالیدیتی را روی آن اجرا کرد. احتمالاً میدانید که سالیدیتی برای توسعه قراردادهای هوشمندی که روی شبکه اتریوم اجرا میشوند، طراحیشده است.
درواقع زمانی که صحبت از شبکههای سازگار با EVM میشود به این معناست که توسعهدهندگان اتریوم میتوانند برنامههایی که از قبل روی شبکه بلاک چین اتریوم ایجاد کردهاند را صرفاً با کپی کردن روی شبکههای سازگار با EVM و بدون هیچگونه تغییری اجرا کنند. در چنین حالتی آدرس زنجیرههای سازگار با ماشین مجازی اتریوم با آدرس اتریوم برای کاربران یک DApp یکسان خواهد بود.
به زبان سادهتر این بدان معناست که آدرسها با کیف پولهای رایج مانند متامسک و تراست ولت سازگار هستند. در حال حاضر، شبکههای بلاک چین اصلی سازگار با EVM عبارتاند از زنجیره هوشمند بایننس (BSC)، آوالانچ، سی چین و پالیگان.
سازگاری EVM را نباید با معادل EVM اشتباه گرفت، به این معنی که از دیدگاه توسعهدهنده DApp، مجموعههای لایه 2 تقریباً با لایه 1 اتریوم یکسان هستند و به همین دلیل معادل با ماشین مجازی اتریوم در نظر گرفته میشوند.
برای مثال یک سیستمعامل را معادل با EVM در نظر بگیرید. معادل EVM شبیه به بازیابی فایلها و تنظیمات از طریق Apple Cloud است اگر رایانه قبلی و رایانه جدید کاربر هر دو بر روی سیستمعامل اپل اجرا شوند.
درحالیکه سازگاری EVM به این معنی است که اگر یک رایانه جدید به سیستم ویندوز سوئیچ شود، فایلهای اصلی باید از طریق فضای ذخیرهسازی ابری دانلود شده و برای بازیابی تنظیمات و دسترسی به فایلهای قدیمی روی سیستم جدید انتقال داده شوند.
انواع مختلف ZkEVM
تولید و تأیید مستقیم ZKP با استفاده از EVM بسیار کند است زیرا اتریوم در ابتدا برای پشتیبانی از فناوری ZKP طراحی نشده بود. در برخی موارد، این فرایند ممکن است چندین ساعت طول بکشد. بااینحال، ایجاد تعادل بین سازگاری EVM و کارایی ZKP ضروری است.
ویتالیک بوترین، بنیانگذار اتریوم، zkEVMها را به چهار نوع زیر دستهبندی کرد. مانند سه فاکتور مهم در بلاک چین، یعنی مقیاسپذیری، غیرمتمرکز بودن و امنیت، هرکدام از 4 دسته zkEVM نیز تفاوتهایی در عملکرد ZKP و سازگاری با EVM ایجاد میکنند.
نوع 1: هم ارزی در سطح اجماع (Consensus-level) – zkEVM که کاملاً معادل اتریوم است
ZkEVM نوع 1 در سطح اجماع کاملاً معادل اتریوم است و وضعیت زنجیره zkEVM و تراکنشهای آن با اتریوم یکسان است. این نوع میتواند بهطور متقابل بلوکها را تأیید کرده و مستقیماً با کلاینتهای اجرای اتریوم اجرا شود.
zkEVM های نوع 1 بلاکچین اتریوم را مقیاسپذیرتر میکنند و میتوانند مستقیماً به شبکه اصلی اتریوم معرفی شوند. نقطهضعف این نوع از zkEVM این است که راندمان ZKP بسیار ضعیف است و برای تأیید نیاز به محاسبات زیادی دارد. این نوع از zkEVM راهحل استفاده از اعتبارسنجی موازی در مقیاس بزرگ یا مدارهای مجتمع تخصصی برای zk-SNARKها در آینده است.
zkEVM های نوع 1 با راندمان ZK بالا ایدهآلترین شکل zkEVM خواهند بود. در حال حاضر، پروژههای زیادی در حال ساخت یا کاوش در این نوع zkEVM هستند.
نوع 2: معادل سطح بایت کد – کاملاً معادل EVM
نوع 2 کاملاً معادل ماشین مجازی اتریوم است اما نمیتوان آن را معادل با اتریوم در نظر گرفت. این نوع از zkEVM از نظر ساختار داده (مانند ساختار بلوک و درخت حالت) با اتریوم متفاوت است و برخی از عملیات پشته را که مناسب با ZK نیستند حذف میکند.
نوع دوم از zkEVM بهطور کامل با DApp های موجود اتریوم، ابزارهای اشکالزدایی و زیرساختهای کاربردی برای توسعهدهندگان سازگار است. هم ارزی در سطح بایت کد میتواند زمانهای اثبات را افزایش دهد، البته نه به شکل قابلتوجه. یک نقطهضعف واضح نوع 2 این است که گران است، با ZK همافزایی ندارد و بازده پایینی دارد.
نوع 2.5: مشابه نوع 2 اما با تغییراتی در گس فی
نوع 2.5 دارای مزایا و معایب نوع 2 است اما هزینه گاز کمتری دارد.
نوع 3: معادل سطح بایت کد – تقریباً معادل EVM
بر اساس نوع 2، نوع 3 سازگاری بیشتری را برای بهبود بازده ZK ایجاد میکند. این نوع از zkEVM توابعی را که پیادهسازی آنها در zkEVM دشوار است، مانند پیشکامپایلها را حذف میکند، بنابراین برخی از کدهای مورداستفاده در DAppهایی که به این تابع نیاز دارند باید بازنویسی شوند.
نوع 4: معادلسازی سطح زبان توسعه – معادل زبان سطح بالا با EVM
EVM های نوع 4 بالاترین عملکرد دانش صفر را دارند اما سازگاری آنها نسبتاً پایین است.
آنچه در ZkEVM” چیست؟ تحولی در مقیاسپذیری اتریوم” خواندیم:
هدف اصلی از پیادهسازی zkEVM استفاده از دانش صفر در اجرای قراردادهای هوشمند اتریوم است. البته که کاربردهای اثبات دانش صفر محدود به اتریوم و بلاکچین نیست. فناوری ZKP بهطور بالقوه میتواند با موارد استفاده در وب 2 سازگار باشد. ترکیب موارد مختلف استفاده از دانش صفر با وب 2 میتواند برنامههای Web3 را روانتر و کاربرپسندتر کند. همچنین به کاربرانی که قبلاً به مرورگرهای اینترنتی سنتی عادت کردهاند اجازه دسترسی به وب 3 را میدهد و بهنوبه خود باعث پذیرش وب 3 خواهد شد.
سؤالات متداول درباره zkEVM
مفهوم zkEVM به زبان ساده چیست؟
ماشین مجازی اتریوم با دانش صفر (zkEVM) یک ماشین حالت اتریوم است که میتواند قراردادهای هوشمند را به روشی سازگار با فناوری اثبات دانش صفر (ZKP) اجرا کند.
کاربرد zkEVM چیست؟
zkEVM ها قابلیتهای رول آپ های دانش صفر (zk-rollups) در اتریوم را برای پشتیبانی از برنامههای غیرمتمرکز (DApps) گسترش میدهند.
مزیت ماشین مجازی اتریوم با دانش صفر یا zkEVM چیست؟
zkEVM ها اجرای پروژههای موجود و جدید اتریوم را با استفاده از ZKP برای بهبود اکوسیستم اتریوم آسان میکنند.