اثبات با دانش صفر از آن دست فناوریهایی است که تحول ایجاد کرده است و حالا در کنار ماشین مجازی اتریوم قرار گرفته است؛ اتفاقی که میتواند دستاوردی بزرگ برای اکوسیستم اتریوم و پروژههای سازگار با ماشین مجازی اتریوم باشد. ایجاد ZKEVM کار بسیار سختی است که به نوعی در گذشته دور از دسترس بود، اما پیشرفتهای اخیر در اثبات دانش صفر دوباره پروژهها را به سمت این ماشین مجازی برده است. در این مقاله به اینکه مفهوم ZKEVM چیست، نحوه کارکرد و پیادهسازی، معماری و مزایای آن میپردازیم و در انتها پروژههایی که روی این مفهوم کار میکنند را معرفی میکنیم. با صرافی سیمیا همراه باشید.
فهرست محتوا
مفهوم ZKEVM چیست؟
در یک ماه گذشته سه پلتفرم پالیگان، Scroll و zkSync ادعا کردند که برای اولین بار ZKEVM را توسعه دادهاند؛ شاید هیچکدام فکر نمیکردند که پروژه دیگری هم روی این موضوع کار کرده باشد. ZKEVM مخفف عبارت Zero Knowledge Ethereum Virtual Machine و یک ماشین مجازی است که از اثبات دانش صفر برای بررسی صحت برنامهها استفاده میکند. نگران پیچیدگی این موضوع نباشید، در ادامه همه این اصطلاحات و مفاهیم را یک به یک بررسی میکنیم.
ZKEVM طوری طراحی شده که برای اجرای قراردادهای هوشمند از اثبات دانش صفر پشتیبانی کند و به نوعی بخش از راهکار مقیاسپذیری ZK Rollup است. برای این که مفهوم ZKEVM را به خوبی درک کنیم، باید ابتدا با مفاهیمی مثل ماشین مجازی اتریوم، روش اثبات دانش صفر و ZK رول آپها آشنا شویم.
ماشین مجازی اتریوم چیست؟
اتریوم در اصل یک ماشین حالت مبتنی بر تراکنش است. در علوم کامپیوتر ماشین حالت ماشینی است که با خواندن یک سری ورودی، از حالت قدیمی به حالت جدید انتقال پیدا میکند. از زمان بلاک اولیه (Genesis Block)، حالت اتریوم با هر بلاک از تراکنشها تغییر پیدا کرده، تا به حالت فعلی رسیده است. حالت فعلی شامل تمام آدرسها و نقشه حالتهای آنها است.
ماشین مجازی اتریوم یا EVM، مسئول اجرای تراکنشها است. EVM یک محیط زمان اجرا (Runtime) است که در آن قراردادهای هوشمند مستقر در شبکه اتریوم اجرا میشود. EVM به عنوان یک کامپیوتر جهانی عمل میکند که برنامههای غیرمتمرکز در حال اجرا بر روی بلاک چین اتریوم به آن متکی هستند.
اگر یک ماشین مجازی بتواند برنامههایی که برای اجرا در محیط EVM ایجاد شدهاند را اجرا کند، به آن «سازگار با EVM» میگوییم.
چنین ماشینهای مجازی میتوانند قراردادهای هوشمند نوشته شده در Solidity یا سایر زبانهای سطح بالای مورد استفاده در توسعه اتریوم را اجرا کنند. ZKEVMها با ماشین مجازی اتریوم سازگار هستند؛ زیرا میتوانند اسمارت کانترکتهای اتریوم را بدون تغییرات گسترده در منطق اساسی اجرا کنند.
ماشین مجازی اتریوم چیست؟ آشنایی با EVM و نحوه کارکرد آن
روش اثبات با دانش صفر چیست؟
به زبان ساده اثبات با دانش صفر روشی است که در آن یک نفر میتواند به نفر دیگر اثبات کند که از موضوعی آگاه است، اما در عین حال آن موضوع را به او نگوید. فرض کنید به یک شخص نابینا میخواهید اثبات کنید که دو گویی که در دست دارد، دارای رنگهای متفاوت هستند؛ در عین حال رنگ گویها را نیز نمیخواهید به او بگویید.
از او میخواهید که پشت سرش با هر ترتیبی که میخواهد گویها را جابجا کند و سپس شما به او میگویید که آیا او گویها را جابهجا کرده است یا خیر. به طور شانسی، ۵۰ درصد احتمال دارد پاسخ درست بدهید. اگر فرآیند تکرار شود و باز هم درست بگویید، احتمال پاسخ شانسی شما کاهش مییابد. با چند مرحله تکرار بدون این که رنگ گویها را گفته باشید، فرد نابینا مطمئن خواهد شد که رنگ گویها متفاوت است.
الگوریتم Zero Knowledge Proof محرمانگی را افزایش میدهد و میتواند استفاده شرکتها از بلاکچین را افزایش دهد. بهتر است بدانید که EVM هرگز برای پشتیبانی از اثبات دانش صفر طراحی نشده است؛ این موضوع ساخت ماشینهای مجازی سازگار با EVM و دانش صفر را دشوار میکند. پروژههای ZKEVM مختلف، رویکردهای متفاوتی را برای ترکیب EVM با محاسبات اثبات دانش صفر اتخاذ میکنند که در بخش بعدی به بررسی آنها میپردازیم.
ZK Rollups و Optimistic Rollups
مشکل مقیاسپذیری اتریوم بر کسی پوشیده نیست و پروژههای مختلفی برای حل این معضل ارائه شدهاند. در کنار بلاکچینهای رقیب، راهکارهای لایه ۲ به دنبال افزایش مقیاسپذیری خود شبکه اتریوم هستند. آنها محاسبات تراکنشهای کاربران را به فضایی خارج از شبکه اصلی میبرند، اما در عین حال از امنیت شبکه اتریوم استفاده کرده و دادهها را به شکل بسیار فشردهتری روی آن ثبت میکنند. یکی از روشهای لایه ۲، رولآپها هستند که به دو دسته Optimistic Rollups و ZK Rrollups تقسیم میشوند.
پروژههایی که از رولآپ Optimistic استفاده میکنند مثل آپتیمیزم و آربیتروم، ریشههای (Roots) حالت را به صورت دورهای در شبکه اصلی منتشر میکنند و برای اطمینان از درستی حالت، به مکانیزم اثبات تقلب (Fraud Proofs) تکیه میکنند. در اصل آنها فرض را بر درستی تراکنشها و صداقت اعتبارسنجها میگذارند؛ در صورت اثبات خلاف این امر ولیدیتور از مبلغی که استیک کرده است، جریمه خواهد شد.
ZK رول آپها مانند Loopring و Starkware، ریشههای حالت را در شبکه اصلی منتشر میکنند، با این تفاوت که شامل اثباتهای اعتبار رمزنگاری نیز میشوند. ZK Rollups امنیت بیشتری ارائه داده و سریعتر هستند، اما یک چالش برای آنها وجود دارد. توسعهدهندگان باید در زبانهای برنامهنویسی پیچیده، اقدام به نوشتن مدارها یا چرخههای (Circuits) سفارشی کنند. همچنین ایجاد یک تغییر کوچک، ممکن است نیاز به تغییرات گستردهای در Circuit اصلی داشته باشد.
برای مقایسه دو راهحل مقیاسپذیری Optimistic و ZK Rollups، بهتر است سراغ ویتالیک بوترین یکی از بنیانگذاران اتریوم برویم. او معتقد است که احتمالا در کوتاهمدت، برای محاسبات EVM عمومی، آپتیمیستیک رولاپها برنده رقابت باشند؛ اما در بلندمدت ZK رولآپها با بهبود تکنولوژی ZK-SNARK در همه سناریوها پیروز خواهند بود. بهبود تکنولوژی ZK-SNARK در صحبت ویتالیک، احتمالا اشاره به موفقیت و پیشرفت ZKEVM دارد.
ZK رول آپهای اولیه فاقد توانایی اجرای قراردادهای هوشمند بودند و به مبادله توکنها و پرداختهای ساده محدود میشدند. با معرفی ماشینهای مجازی سازگار با اتریوم و اثبات دانش صفر، پروتکلهای ZK Rollup میتوانند از برنامههای غیرمتمرکز اتریومی نیز پشتیبانی کنند.
ZKEVM چطور کار میکند؟
ZKEVM نیز یک ماشین مجازی است که در نتیجه اجرای برنامهها بین حالتها جابهجا میشود؛ با این تفاوت که با تولید یک گواه تایید صحت همه بخشهای محاسبات، یک گام فراتر رفته است. مکانیزم به کار رفته در ZKEVM اثبات میکند که مراحل اجرا از قوانین پیروی کردهاند. برای این که نحوه عملکرد ZKEVM را بهتر درک کنیم، ابتدا مروری بر نحوه کارکرد ماشین مجازی اتریوم خواهیم داشت.
نحوه کارکرد ماشین مجازی اتریوم
همانطور که گفتیم، EVM ماشین حالتی است که در نتیجه هر ورودی، از حالت قبلی به حالت جدید منتقل میشود. هر قرارداد هوشمندی که اجرا میشود، باعث ایجاد تغییر در حالت میشود. آن چه که در طول یک تراکنش قرارداد هوشمند اتفاق میافتد، شامل مراحل زیر است:
۱) بایتکد قرارداد (که از کدهای منبع کامپایل شده است) از فضای ذخیرهسازی EVM لود و توسط نودهای همتا به همتای ماشین مجازی اتریوم اجرا میشود. نودها از ورودیهای تراکنش یکسانی استفاده میکنند، که تضمینکننده رسیدن گرهها به نتیجه یکسان است (در غیر این صورت اجماع حاصل نمیشود).
۲) آپکدهای (Opcodes) ماشین مجازی اتریوم که در بایتکد موجود هستند، با بخشهای مختلف حالت EVM مثل مموری، فضای ذخیرهسازی و پشته (Stack) تعامل برقرار میکنند. آپکدها عملیات خواندن و نوشتن را انجام میدهند؛ خواندن (دریافت) مقادیر از فضای ذخیرهسازی حالت و نوشتن (ارسال) مقادیر جدید در فضای ذخیرهسازی EVM.
۳) اپکدهای EVM قبل از بازگرداندن مقادیر جدید، محاسبات را بر روی مقادیر به دست آمده از فضای ذخیرهسازی حالت انجام میدهند. این آپدیت منجر به انتقال EVM به یک حالت جدید میشود (به همین دلیل به تراکنشها “گذر حالت” گفته میشود). این حالت جدید توسط نودهای دیگر تکرار میشود و تا زمانی که تراکنش دیگری اجرا شود، باقی میماند.
ZKEVM برای تایید عناصر مختلف در هر محاسبات، اثباتهای دانش صفر تولید میکند و به سوالات همچون سوالات زیر پاسخ میدهد:
- دسترسی بایت کد: آیا کد برنامه مناسب به درستی از آدرس درست لود شده است؟
- عملیات خواندن و نوشتن: آیا برنامه مقادیر درستی را از پشته، فضای ذخیرهسازی و مموری قبل از محاسبه دریافت کرده است؟ آیا برنامه پس از اتمام اجرا مقادیر صحیح خروجی را نوشته است؟
- محاسبات: آیا آپکدها به درستی (پشت سر هم، بدون رد شدن از مراحل) اجرا شدند؟
معماری ZKEVM
ساختار ZKEVM به سه بخش تقسیم میشود: یک محیط اجرا، مدار یا چرخه (Circuit) اثبات و قرارداد تاییدکننده. هر جزء به اجرای برنامه ZKEVM، تولید اثبات و تایید اثبات مشارکت میکند.
محیط اجرا (The Execution Environment): همانطور که از نام آن پیداست، محیط اجرا جایی است که برنامهها (قراردادهای هوشمند) در ZKEVM اجرا میشوند. محیط اجرای ZKEVM بسیار شبیه به EVM عمل میکند: یک حالت اولیه داریم، تراکنش فعلی منجر به یک خروجی و نهایتا حالت جدید میشود.
چرخه یا مدار اثبات (The Proving Circuit): مدار اثبات، شواهد دانش صفر را تولید میکند که اعتبار تراکنشهای محاسبه شده در محیط اجرا را تایید میکند. فرآیند تولید شواهد با استفاده از پیشحالت (Pre-State)، ورودیهای تراکنش و اطلاعات پسحالت (Post-State) به عنوان ورودی تکمیل میشود. پس از آن، اثباتکننده یک اثبات اعتبار مختصر از آن گذار حالت خاص به دست میآورد.
قرارداد تاییدکننده (The Verifier Contract): ZK رولآپها گواهیهای اثبات اعتبار را به یک قرارداد هوشمند که برای اعتبارسنجی روی زنجیره لایه ۱ (اتریوم) مستقر شده است، ارائه میکنند. ورودی (اطلاعات پیشحالتها و تراکنش) و خروجی (حالتهای نهایی) نیز به قرارداد تاییدکننده ارائه میشود. سپس تاییدکننده محاسبات را بر روی گواهی اثبات ارائه شده اجرا میکند و تایید میکند که خروجیهای ارسال شده به درستی از ورودیها محاسبه شدهاند.
آپکدهای ZKEVM چه هستند؟
آپکدهای ZKEVM دستورالعملهای ماشینی سطح پایینی هستند که برای اجرای برنامهها در یک ZK رولآپ سازگار با EVM استفاده میشوند. همانند EVM، قراردادهایی که به زبانهای سطح بالا نوشته میشوند، باید به زبان سطح پایینی که ماشین مجازی میتواند تفسیر کند کامپایل شود (بایت کد). این بایتکد آپکدهای مورد استفاده در اجرای برنامه زمانی که در ماشین مجازی مستقر میشود را مشخص میکند.
از آن جایی که کدهای EVM معمولی برای استفاده در مدارهای اثبات دانش صفر ناکارآمد هستند، ما به آپکدهای ZKEVM نیاز داریم. به طور کلی دو رویکرد برای ایجاد آپکدها برای ZKEVM وجود دارد که در ادامه معرفی میکنیم.
ساخت مدارهای ZK برای آپکدهای بومی EVM
این رویکرد مستلزم پیادهسازی تمام مجموعههای دستورالعمل EVM در یک مدار محاسباتی است، که کاری پیچیده و زمانبر است. مزیت این کار این است که توسعهدهندگان میتوانند با استفاده از ابزارهای توسعه بلاکچین موجود، قراردادهای هوشمند ایجاد کنند، یا قراردادهای موجود اتریوم را بدون تغییرات گسترده به ZK رولآپها منتقل کنند.
ایجاد زبانهای جدید برای محاسبات اثبات دانش صفر
این رویکرد مستلزم ساخت یک زبان جدید (طراحی شده برای پشتیبانی از شواهد اعتبار) و توسعه آپکدهای سفارشی است. توسعهدهندگان باید قراردادها را مستقیما به زبان جدید بنویسند، یا کد منبع سالیدیتی را به آپکدهای سفارشی ZKEVM کامپایل کنند.
در حالی که اجرای این روش اغلب سادهتر از روش اول است، اما دارای اشکالاتی است. به عنوان مثال، توسعهدهندگان ممکن است نتوانند به زیرساختها و منابع موجود اتریوم دسترسی داشته باشند.
چه چیزی ساخت ZKEVM را دشوار میکند؟
از آنجایی که در ساخت ماشین مجازی اتریوم محاسبات اثبات دانش صفر در نظر گرفته نشده است، ویژگیهایی در آن وجود دارد که مورد پسند مدارهای اثبات (Proving Circuit) نیست. ۴ موردی که ساخت ZKEVMها را دشوار میکند عبارتند از:
۱) آپکدهای مخصوص: برخلاف یک ماشین مجازی معمولی، EVM از کدهای عملیاتی ویژه برای اجرای برنامه (CALL و DELEGATECALL) و مدیریت خطا (REVERT و INVALID) در میان سایر عملیاتها استفاده میکند. این امر به پیچیدگی فرآیند طراحی مدار اثبات برای عملیات EVM اضافه میکند.
۲) معماری مبتنی بر پشته (Stack-Based): ماشین مجازی اتریوم از معماری مبتنی بر استک استفاده میکند که اگرچه سادهتر از ساختار مبتنی بر ثبت (Register-Based) است، اما دشواری اثبات محاسبات را افزایش میدهد. به همین دلیل است که ماشینهای مجازی با دانش صفر برجسته مانند ZkSync و استارکنت از یک مدل مبتنی بر ثبت استفاده میکنند.
۳) سربار فضای ذخیرهسازی: چیدمان فضای ذخیرهسازی EVM به توابع هش Keccak و Merkle Patricia Trie متکی است که هر دو دارای سربار اثبات بالایی هستند. برخی از ماشینهای مجازی دانش صفر مانند ZkSync، تلاش میکنند که با جایگزین کردن تابع KECCAK256 از این مشکل دوری کنند؛ اما این موضوع میتواند سازگاری با ابزار و زیرساخت موجود اتریوم را از بین ببرد.
۴) هزینههای اثبات: حتی اگر مشکلات ذکر شده حل شود، هنوز فرآیند تولید اثبات وجود دارد که باید با آن مبارزه کرد. تولید شواهد دانش صفر به سختافزار تخصصی همراه با سرمایهگذاری قابل توجه در زمان، پول و تلاش نیاز دارد.
شاید این لیست جامع نباشد، اما نشاندهنده برخی از مشکلاتی است که مانع تلاش برای ساخت ZKEVMهای سازگار با ماشین مجازی اتریوم میشوند. با این وجود، چندین پیشرفت در فناوری دانش صفر کاهش این مشکلات را ممکن کرده و منجر به علاقه مجدد به راهحلهای ZKEVM شده است.
ZKEVM چه مزایایی به همراه خواهد داشت؟
ساخت یک zkEVM کاملا کاربردی، افراد را به توسعه پروژههای ZK-Rollup سازگار با EVM ترغیب میکند. این موضوع چندین مزیت را ایجاد میکند که در این بخش به ۴ مورد از آنها اشاره میکنیم.
۱) مقیاسپذیری ایمن
طبق قوانین هر پروتکل، تمام نودهای اعتبارسنجی باید تمام محاسبات انجام شده در ماشین مجازی اتریوم را دوباره اجرا کنند. این رویکرد امنیت را تضمین میکند، زیرا گرههای اتریوم میتوانند به طور مستقل صحت برنامهها را تایید کنند؛ اما محدودیتهایی برای مقیاسپذیری ایجاد میکند و شبکه اتریوم میتواند تنها ۱۵ تا ۲۰ تراکنش در ثانیه را مدیریت کند.
ZK رول آپهای سازگار با EVM میتوانند مشکلات خروجی اتریوم را بدون تضعیف امنیت شبکه برطرف کنند. مانند سایر پروتکلهای مقیاسپذیری، ZK-Rollupها تحت فشار قوانین پروتکل اجماع اتریوم نیستند و میتوانند برای سرعت اجرا بهینه شوند. برخی برآوردها نشان میدهند که ZK-Rollupها میتوانند ۲۰۰۰ تراکنش در ثانیه را بدون متحمل شدن هزینههای بالای اتریوم پردازش کنند.
همچنین ZK-Rollupها دارای ضمانتهای امنیتی بالاتری در مقایسه با سایر پروژههای مقیاسپذیری هستند. آنها صحت محاسبات خارج از زنجیره را با اثبات اعتبار تایید میکنند. این بدان معناست که تراکنشهای انجام شده توسط قراردادهای هوشمند در لایه ۲ را میتوان به طور قابل اعتماد در لایه ۱ (اتریوم)، بدون نیاز به اجرای مجدد عملیات توسط گرهها تایید کرد. این امر میتواند به طور قابل توجهی سرعت پردازش اتریوم را بدون کاهش امنیت افزایش دهد.
۲) هزینههای پایینتر
رولآپها با نوشتن دادههای تراکنش در اتریوم تحت عنوان CALLDATA، امنیت را از میننت اتریوم میگیرند. تفاوت رولآپهای اپتیمیستیک و ZK-Rollupها در میزان دادهای است که در اتریوم ثبت میکنند.
از آنجایی که رولآپهای اپتیمیستیک برای تراکنشهای خارج از زنجیره اثبات اعتبار ارائه نمیکنند، باید تمام دادههای مربوط به تراکنش را در زنجیره منتشر کنند (از جمله امضاها و پارامترهای تراکنش). بدون قرار دادن همه دادهها در زنجیره، چالشگرها نمیتوانند اثبات تقلب را بسازند؛ اثبات تقلبی که برای اعتراض به تراکنشهای رولآپ نامعتبر استفاده میشود.
برعکس حالت قبل، ZK رولآپها میتوانند حداقل دادهها را به اتریوم ارسال کنند، زیرا اثباتهای اعتبار از قبل قابل اعتماد بودن انتقال حالت را تضمین میکنند. ZKEVM حتی ممکن است ورودیهای تراکنش را حذف کند و فقط تغییرات حالت نهایی را منتشر کند؛ در نتیجه نیازهای CALLDATA کاهش پیدا میکند.
این موضوع هم برای توسعهدهندگان و هم برای کاربران مفید است؛ زیرا درصد زیادی از هزینههای رولآپ از ثبت دادهها روی زنجیره حاصل میشود. با کاهش CALLDATA به حداقل، ZK-Rollup میتواند استفاده از برنامههای غیرمتمرکز مانند صرافیهای غیرمتمرکز، بازارهای NFT و بسیاری موارد دیگر را ارزانتر کند.
۳) نهایی شدن (Finality) سریعتر و کارایی سرمایه
علاوه بر امنیت بهتر، ZK رولآپها مزیت دیگری نسبت به رولآپهای اپتیمیستیک دارند و آن نهایی شدن یا فاینالیتی سریعتر است. نهایی شدن در بلاک چین، مدت زمانی است که طول میکشد تا یک تراکنش برگشتناپذیر شود. یک تراکنش تنها در صورتی میتواند نهایی شود که مشارکتکنندگان در شبکه اثبات صحت آن را داشته باشند.
با ZK-Rollups، تراکنشهای اجرا شده در zkEVM اغلب بلافاصله پس از ارسال در اتریوم نهایی میشوند. از آنجایی که هر دسته از تراکنشها با یک مدرک معتبر که فورا قابل تایید است همراه هستند، زنجیره اصلی اتریوم میتواند بهسرعت بهروزرسانیهای حالت را اعمال کند.
با توجه به این که رولآپهای اپتیمیستیک فقط تراکنشهای ماشین مجازی را بدون اثبات ارسال میکنند، دوره چالش باید قبل از نهایی شدن تراکنشها سپری شود. دوره چالش یک دوره ۱ تا ۲ هفتهای است که در طی آن، هر کسی میتواند یک تراکنش را پس از ارسال به اتریوم به چالش بکشد. نهایی شدن کندتر، پیامدهای زیادی برای تجربه کاربری دارد. به عنوان مثال کاربران نمیتوانند داراییها را تا زمانی که دوره چالش به پایان برسد، از رول آپ برداشت کنند.
یک ZKEVM هیچیک از مشکلاتی که در بالا توضیح داده شد را ندارد. نهاییسازی سریعتر برای کاربران حرفهای مانند معاملهگران NFT، سرمایهگذاران دیفای یا آربیتراژکنندگان که نیاز به جابجایی پیوسته داراییها دارند (به ویژه بین L1 و L2) عالی است.
۴) اثر شبکه
مهم ترین دلیل ساخت ماشینهای مجازی دانش صفر سازگار با EVM، استفاده از اثرات شبکه اتریوم است. به عنوان بزرگترین پلتفرم قراردادهای هوشمند جهان، اتریوم دارای یک اکوسیستم بزرگ است که هم برای توسعهدهندگان و هم برای پروژهها ارزش ارائه میکند.
به عنوان مثال توسعهدهندگان میتوانند به کتابخانههای کد آزمایش شده و بازبینی شده، ابزارهای گسترده، اسناد و غیره دسترسی داشته باشند. ایجاد یک ZKVM جدید که با زیرساختهای اتریوم ناسازگار است، پروژهها و تیمهای توسعه را از اثرات شبکه اتریوم محروم میکند.
چه پروژههایی روی ZKEVM کار میکنند؟
پروژههای ZKEVM فعلی به دو دسته اصلی تقسیم میشوند؛ دسته اول از آپکدهای بومی EVM پشتیبانی میکنند و دسته دوم از آپکدهای EVM سفارشیسازی شده استفاده میکنند. در ادامه پروتکلهای مختلف ZKEVM را با هم مقایسه میکنیم و نحوه کار آنها را توضیح میدهیم.
پالیگان
Hermez پالیگان یک ZK-rollup با ماشین مجازی دانش صفر است که سازگار با EVM طراحی شده است. برای انجام این کار، بایت کد EVM به «میکرو آپکدها» کامپایل میشود و در uVM اجرا میشود؛ uVM یک ماشین مجازی است که از اثباتهای SNARK و STARK برای تایید صحت اجرای برنامه استفاده میکند.
تصمیم برای ترکیب دو نوع اثبات، استراتژیک است. اثباتهای استارک (Scalable Transparent Argument of Knowledge به معنی استدلال شفاف مقیاسپذیر دانش) سریعتر تولید میشوند، اما اثباتهای اسنارک (Succinct Non-Interactive Argument of Knowledge به معنی استدلال مختصر غیرتعاملی دانش) کوچکتر و تاییدشان در اتریوم ارزانتر است. ZKEVM پالیگان از مدار اثبات STARK برای ایجاد اثبات اعتبار انتقال حالت استفاده میکند.
ZkSync
ZkSync یک ZK رول آپ سازگار با ماشین مجازی اتریوم است که توسط Matter Labs توسعه یافته و از ZKEVM که خودش طراحی کرده استفاده میکند. ZkSync با استفاده از استراتژی زیر با اتریوم سازگاری دارد:
- کامپایل کد قرارداد نوشته شده در سالیدیتی به Yul، یک زبان میانی که میتواند به بایت کد برای ماشینهای مجازی مختلف کامپایل شود.
- کامپایل مجدد بایت کد Yul (با استفاده از چارچوب LLVM) به یک مجموعه بایت کد سفارشی و سازگار با مدار، که به طور خاص برای ماشین مجازی دانش صفر ZkSync طراحی شده است.
مانند هرمز پالیگان، ZKEVM در zkSync به سازگاری با ماشین مجازی اتریوم در سطح زبان دست مییابد، نه در سطح بایت کد. برای مثال آپکدهای ضرب و جمع سنتی (ADDMOD، SMOD، MULMOD) توسط ماشین مجازی دانش صفر ZKSync پشتیبانی نمیشوند.
Scroll ZKEVM
Scroll در حال توسعه یک پیادهسازی جدید EVM با دانش صفر است. تیم اسکرول قصد دارد مدارهایی با دانش صفر برای هر آپکد EVM طراحی کند. این امر به توسعهدهندگان اجازه میدهد که قراردادهای هوشمند بومی اتریوم را بدون نیاز به تغییر بایت کد EVM زیربنایی، در Scroll مستقر کنند.
ماشین مجازی دانش صفر Scroll از یک انباشته کننده رمزنگاری (Cryptographic Accumulator) برای تایید صحت ذخیرهسازی استفاده میکند. این موضوع برای اثبات اینکه بایتکد قرارداد به درستی از آدرس داده شده لود شده است، استفاده میشود.
همچنین مداری (Circuit) برای پیوند بایت کد با ردیابی اجرا (Execution Trace) فراهم میکند. ردیابی اجرا دنبالهای است که مشخص میکند چه دستورالعملهایی در VM و به چه ترتیبی اجرا شدهاند. تاییدکنندگان ردیابی اجرا را در طول تولید اثبات ارسال میکنند، تا تایید شود که محاسبات با بایت کد اصلی مطابقت دارد.
AppliedZKP zkEVM
Applied ZKP پروژهای است که توسط بنیاد اتریوم برای توسعه یک ZK-Rollup سازگار با ماشین مجازی اتریوم و مکانیزمی برای تولید اثبات اعتبار برای بلاکهای اتریوم تاسیس شده است. بخش آخر مهم است، زیرا جفت (Pair) شدن بلاکها با اثبات اعتبار، نیاز به اجرای مجدد بلاکها توسط نودها را برطرف میکند.
نوآوری Applied ZKP جداسازی محاسبات از ذخیرهسازی است. این پروژه از دو نوع اثبات اعتبار استفاده میکند:
- اثبات حالت: بررسی میکند که عملیات مربوط به فضای ذخیرهسازی، مموری و استک به درستی انجام شده باشد. اثبات حالت اساسا صحت عملیات خواندن و نوشتن را تایید میکند.
- اثبات EVM: بررسی میکند که محاسبات در زمان مناسب آپکد دقیق را فراخوانی کرده است. اثباتهای EVM محاسبات را به تنهایی تایید میکنند و همچنین تایید میکنند که اثبات حالت عملیات مناسب را برای هر آپکد اجرا کرده است.
پرسش و پاسخ (FAQ)
- مفهوم ZKEVM چیست؟
zkEVM یک ماشین مجازی سازگار با اتریوم است که از اثبات دانش صفر برای بررسی صحت برنامهها استفاده میکند. ZKEVM را میتوان به نوعی بخشی از راهحل مقیاسپذیری لایه دوم ZK رولآپ دانست که با پیشرفتهای صورت گرفته در اثبات دانش صفر، چندین پروژه دوباره به آن روی آوردهاند. - ZKEVM چه مزایایی دارد؟
یک ZKEVM کاربردی پروژههای بیشتری را به دنیای ZK-Rollup میآورد و مزایایی مثل مقیاسپذیری ایمن، هزینههای ارزانتر، نهایی شدن سریع و اثر شبکه را به دنبال دارد. - چه پروژههایی روی ZKEVM کار میکنند؟
در حال حاضر Scroll، پالیگان، ZkSync و AppliedZKP از جمله پروژههایی هستند که روی ZKEVM کار میکنند و اکثرا در فاز توسعه قرار دارند.
جمعبندی
در طی سالهای اخیر نام فناوری اثبات با دانش صفر با پروژههای پیشرو گره خورده است و ZKP به یکی از مفاهیم مهم و تاثیرگذار دنیای بلاکچین تبدیل شده است. ZKEVM را میتوان ترکیب دو مفهوم ماشین مجازی اتریوم و اثبات با دانش صفر دانست که میتواند قراردادهای هوشمند و برنامههای غیرمتمرکز را به ZK رولآپها بیاورد. نتیجه توسعه و استفاده ZKEVM برای کاربران و توسعهدهندگان، میتواند مقیاسپذیری امن، هزینههای کمتر و کارایی بیشتر سرمایه باشد. در این مقاله ضمن اشاره به اینکه مفهوم ZKEVM چیست، به بررسی نحوه کار و ساختار این فناوری پرداختیم. مشکلاتی که سر راه ZKEVM وجود دارند و مزایایی که ایجاد میکند نیز بررسی شد. بخش پایانی مقاله به معرفی پروژههایی که در حال توسعه و استفاده از ZKEVM هستند، اختصاص پیدا کرد.