از زمان پیدایش بلاک چینها، در شبکههای لایه یک و به خصوص اتریوم بحث مقیاس پذیری مطرح بوده است. با رونق استفاده از فناوری بلاک چین و پس از این که برای اشغال فضای هر بلاک تقاضا نیز افزایش یافت، به طور فزاینده ای قیمت آن نیز افزایش پیدا کرده است. البته مشکلات دیگری در مسیر تبدیل شدن بلاک چین به سیستم پرداختی جهانی وجود دارد، برای مثال این فناوری در مقایسه با سیستم های متمرکزی از جمله ویزا (Visa)، هنوز هم با نرخ پایین تراکنش بر حسب زمان و همچنین زمان بر بودن قطعی شدن بلوک ها روبروست. رولآپها از میان راهکارهای مقیاس پذیری دارای جایگاه ویژهای هستند. رولآپها به دو دسته Zero-Knowledge (بینیاز از دانش) و optimistic (آپتیمیستیک) تقسیم میشوند. یکی از دو رول آپ مهم مبتنی بر Zero-Knowledge، راهکار zkSync می باشد که با هدف افزایش مقیاس پذیری کردن اتریوم فعال است. در این مقاله قصد داریم به بررسی اکوسیستم قدرتمند ZKSync و نحوه عملکرد آن بپردازیم.
رول آپ zkSync چیست؟
پروتکل zkSync با استفاده از تکنولوژی رولآپ zero-knowledge برای انجام تراکنش های مقیاس پذیر و کم هزینه بر روی شبکه اتریوم مورد استفاده قرار می گیرد. در شبکه اتریوم عملیات اجماع، دسترسی به دادهها و اجرا بر روی یک شبکه صورت می گیرد و این وظایف بر عهده تمامی نودها می باشد، بنابراین شبکه اتریوم را می توان به عنوان یک شبکه یکپارچه (monolithic) معرفی کرد. این شبکه برای افزایش میزان مقیاس پذیری، به سمت ماژولار شدن حرکت میکند و بخشی از وظایف این شبکه بر عهده رولآپها قرار خواهد گرفت.
به این ترتیب تمرکز لایه یک بر روی اجماع خواهد بود و رولآپها نیز اجرا و فراهم کردن و ذخیره سازی دادهها را بر عهده خواهند داشت. این پروتکل امنیت موجودی کاربران را از طریق فراهم آوردن گواه های Zero-Knowledge و ذخیره آن بر روی لایه یک به همراه داده های تراکنشها، تامین میکند. به این ترتیب در صورتی که رمز ارزی توسط یک کاربر به این لایه منتقل شود، حتی بعد از گذشت یکسال نیز راهی برای باز گرداندن سرمایه کاربر به لایه یک وجود دارد، حتی اگر تمامی ولیدیتورهای این شبکه در طی این مدت از کار افتاده باشند.
نحوه کار لایه دوم zkSync
عملکرد zkSync که مبتنی بر تکنولوژی zero-knowledge و به طور دقیقتر نوع zk-SNARK آن می باشد، به ترتیب زیر است:
1- کاربران پس از امضای تراکنش ها، آنها را برای اعتبارسنج ها ارسال می کنند.
2- اعتبارسنج ها اقدام به تجمیع هزاران تراکنش در یک بلوک می کنند و root hash این حالت جدید را به قرارداد هوشمندی بر روی شبکه اصلی و به همراه گواه رمزنگاری شده (از نوع SNARK) این تغییر، میفرستد.
3- دلتای تغییر حالت به همراه گواه zero-knowledge، بر روی شبکه اصلی ثبت میشود که آن را با متد calldata میتوان به راحتی فرا خوانی کرد. در نتیجه هر کسی می تواند اقدام به بازسازی حالت در هر لحظه کند.
4- قرارداد هوشمند اقدام به صحت سنجی و تایید دلتای تغییر حالت و گواه ارائه شده، می کند. به این ترتیب میتوان به اطمینان کاملی نسبت به درستی و صحت همه تراکنش های موجود در بلاک و data availability (موجود بودن اطلاعات مربوط به آنها)، دست پیدا کرد.
اعتبارسنجی مجموعه ای از تراکنشها، از اعتبارسنجی هر تراکنش به صورت مجزا، بسیار ارزان تر خواهد بود. همچنین زمانی که بخشی از اطلاعات به شکل خارج از زنجیره نگهداری شوند، کاهش هزینه ها را نیز به دنبال خواهد داشت. بنابراین در لایه یک، احتمال کاهش هزینه تراکنش ها وجود دارد. علاوه بر این، امکان افزایش نرخ تراکنش ها به بیش از ۲۰۰۰ تراکنش در ثانیه (یعنی ۲۰۰ برابر بیشتر تعداد آنها) وجود خواهد داشت.
برخی از ویژگیهای این راهکار عبارتند از:
- اعتبارسنج ها قادر به تغییر حالت سیستم و یا سرقت سرمایه کاربران نمی باشند. (برخلاف راهکار سایدچین)
- برخلاف راهکار پلاسما، کاربران قادر به انتقال سرمایه خود به لایه یک هستند، حتی اگر اعتبارسنجها از دسترس خارج شده باشند زیرا در این راهکار همه دادهها به شکل خارج از زنجیره نگهداری نمیشوند.
- برخلاف راهکارهای آپتیمیستیک، نیازی نیست که شخص ثالث قابل اعتماد و یا کاربران برای جلوگیری از تقلب و اطمینان از صحت انجام عملیات، دائما آنلاین باشند.
در راهکار zkSync، قطعیت کامل تراکنش ها منوط به این است که تراکنش ها در لایه یک ثبت شوند که این امر حدود 10 دقیقه طول می کشد. در حالی که در برخی از راهکارهای ضد تقلب آپتیمیستیک، دو هفته طول می کشد.
امنیت راهکار zkSync
امنیت zkSync مبتنی بر فناوری zk-SNARK و به طور دقیقتر PLONK می باشد. طی تحقیقات زک ویلیامسون (Zach Williamson) و آریل گابیزون (Ariel Gabizon) تکنولوژی رمزنگاری PLONK ایجاد شده است. ساختار قابل اعتماد و امنیت ایجاد شده توسط پروتکل zkSync موارد زیر را به همراه دارد:
1- عدم نیاز به نظارت کاربران بر روی شبکه
2- نگهداری کلیدهای خصوصی به شکل سرد
3- عدم امکان تغییر حالت شبکه به شکل دل خواه اعتبارسنجها
4- غیر ممکن بودن سرقت سرمایه کاربران توسط اعتبارسنج ها
5- کاربران قادر به بازگرداندن سرمایه خود به شبکه اصلی (بدون نیاز به همکاری اعتبارسنجها) هستند.
برای توضیح بیشتر مورد آخر می توان گفت، در صورتی که اعتبارسنجها به تراکنش کاربری اعتنا نکنند (به هر دلیلی از جمله سانسور)، کاربر قادر به ثبت درخواست خود در شبکه اصلی به صورت مستقیم می باشد. درخواست این کاربر از طریق این سازوکار، وارد صف ویژه ی Priority Queue ( صف اولویت) میشود. اعتبارسنجها باید طی مدت زمان کوتاهی (حداکثر یک هفته) به این درخواست ها رسیدگی کنند. در صورت امتناع آن ها، به صورت کاملا خودکار، سیستم وارد فاز Exodus (خروج) میشود. در این حالت کاربران می توانند سرمایه خود را به صورت آنی و از طریق ارسال درخواستی در شبکه اصلی، خارج نماید.
میزان تمرکز zkSync
zkSync را در طیف تمرکز میتوان به عنوان یک راهکار غیر حضانتی همراه با اپراتورهای متمرکز که نیازی به اعتماد ندارند، معرفی کرد. اپراتورهای محاسباتی این راهکار، در حال حاضر تحت کنترل بنیاد غیر انتفاعی Stichting ZK Sync می باشند و نزدیک به نقطه سر به سر (مطابق ساختار در نظر گرفته شده) فعالیت می کند. با اضافه شدن اعتبارسنج های بیشتر، انتظار می رود که در آینده، شبکه بیش از پیش غیر متمرکز شود.
پشتیبانی از توکنهای NFT
zkSync از توکن های NFT پشتیبانی می کند. در این راهکار امکان تجمیع چندین توکن NFT و منیت کردن آنها طی یک فراخوان وجود دارد. از جمله امکانات دیگر این راهکار می توان به معاوضه دو NFT با یکدیگر اشاره کرد.
پشتیبانی از سفارشهای محدود و مبادلههای اتمیک
پشتیبانی بومی از تراکنشهای اتمیک بین دو حساب، از جمله ویژگیهای جذاب zkSync می باشد. کاربران برای مطمئن شدن از حصول نتیجه توافق می توانند از طریق امضای دو درخواست تراکنش، اقدام کنند. این پروتکل می تواند از سفارشهای محدود (Limit Order) نیز پشتیبانی کند.
توکن ها و هزینه ها در zkSync
از جمله توکن های لیست شده در این راهکار می توان به SDT، 0XBTC، 0XMR، 3LY، AAVE، aCRV، AERGO، agEUR، ANGLE، AIOZ ALN و AMP اشاره کرد. اگر چه zkSync توکن خود را هنوز ارائه نکرده اما تیم این پروژه اعلام کرده که این اتفاق رخ خواهد داد. کاربران می توانند با ارائه این توکن، اقدام به استیک کردن در شبکه کنند. در این پروتکل از طریق توکنی به غیر از کوین بومی شبکه (اتر)، می توان هزینه ها را پرداخت کرد. برای مثال در صورتی که یک کاربر بخواهد مقداری دای (DAI) به حساب شخص دیگری ارسال کند، میتواند این کار را بدون نیاز به اتر انجام دهد و از طریق DAI کارمزد را پرداخت کند. همچنین می توان برای توکن هایی که فاقد بازار پررونقی هستند، از طریق سایر توکن ها، هزینه را پرداخت کرد.
در راهکار zkSync، هزینه ها به دو بخش تقسیم میشود. هزینه های عملیات خارج از زنجیره که حدود یک دهم سنت می باشد و هزینه های درون زنجیرهای که میزان آن به قیمت گس بستگی دارد. با این حال میتوان انتقال را با کسری از هزینه لایه یک انجام داد.
پشتیبانی راهکار zkSync از قراردادهای هوشمند
zkSync قصد دارد برای قراردادهای هوشمند، فضایی امن، چند زبانه، بهینه و تورینگ کامل ایجاد کند. مدل قراردادهای هوشمند این راهکار مبتنی بر شبکه اتریوم می باشد، از این رو امکان استفاده از آرایههایی با طولهای مختلف، حلقههای نامحدود و بردارها وجود دارد. همچنین قراردادهای هوشمند قادر به فراخوانی یکدیگر می باشند. ماشین مجازی این شبکه، zkEVM نام دارد که وظیفه اجرای قراردادهای هوشمند را بر عهده دارد. پورت کردن برنامهها با کامپایلری، رویکرد فعلی این پروتکل می باشد. بنابراین امکان پورت شدن برنامههایی که قبلا با زبان Solidity نوشته شده اند، به این اکوسیستم وجود دارد. همچنین آنها اقدام به ایجاد زبانی تحت عنوان زینک (Zinc) کردهاند که دارای شباهت های زیادی با Rust می باشد.