تحليل أبحاث ويب3.com
0xFishylosopher

مقدمة
لقد كانت "zk-Rollups" على الأرجح أكثر مصطلحات ويب 3 رواجًا هذا العام. مع إطلاق النسخة الرئيسية "بيبي ألفا" من zk-Sync v2.0 في الأيام القليلة الماضية، وصلت هذه الإثارة إلى ذروتها [1]. ولكن خلف كل هذه المصطلحات، ماذا تعني "zk-Rollups" حقًا؟ وأين يأتي دور zk-Sync؟ في هذه المقالة، سأبذل جهدي للغوص في مبادئ وممارسات zk-Rollups، وأوضح السمات الفنية الرئيسية لـ zk-Sync v2.0 كمشروع، واستكشاف الآثار المستقبلية المحتملة لهذه التكنولوجيا التي طال انتظارها.
مبادئ zk-Rollups
لماذا نحتاج zk-Rollups من الأساس؟ بالتأكيد، Ethereum رائعة. لكن في حالتها الحالية، فإن الشبكة هي بشكلٍ جوهري اقتصادٌ غير مواتٍ من حيث الحجم (diseconomy of scale). مع زيادة نشاط الشبكة، تصبح أسعار الغاز باهظة جدًا، خصوصًا إذا حدثت موجة مفاجئة من نشاط الشبكة في آن واحد. ومع ازدياد شعبية Ethereum في الاستخدام والزخم خلال السنوات القليلة الماضية، أصبحت قابلية التوسع المحدودة الحالية لديها هي نقطة ضعف الشبكة (Achilles’ heel).
هنا تأتي فكرة “rollups” — إذ إن rollups في Ethereum هي في الأساس “إضافة” تمنح Ethereum قدرات توسع إضافية بكميات كبيرة، وبالتالي تعالج عدم مواتاة الحجم المتأصل فيها. الفكرة وراء هذا الحدس بسيطة. تخيّل أنك تملك 5 عناصر تحتاج إلى حملها من النقطة A إلى النقطة B. الطريقة “الاعتيادية” للقيام بذلك هي حمل العنصر 1، ثم حمل العنصر 2، وهكذا واحدًا تلو الآخر. لكن هذا واضح أنه بطيء ومُتعب. أما “rollup” في جوهره فهو “لفّ” جميع العناصر الخمسة داخل حقيبة واحدة، مما يتيح لك القيام برحلة واحدة بدلًا من 5.
لكن هناك ملاحظتان تحذيريتان:
كيف نتأكد من أن الـ rollup يستطيع “استيعاب” كل شيء؟
كيف نتأكد من أن الـ rollup ليس عملية انتحال (spoofed)؟
تُعد zk-Rollups واحدة من أبرز أنواع تقنيات الـ rollup (والنوع الآخر هو Optimistic Rollups) باستخدام “أدلة المعرفة الصفرية” لحل هاتين المشكلتين. لمعالجة هذه القضايا، يقوم zk-Rollup بتجميع عدد معيّن من المعاملات معًا، ثم إجراء الحساب على L2، وإرسال كل من تغييرات الحالة و“دليل الصلاحية” إلى مُتحقق على L1 يبيّن أن الحسابات تمت مع سلامة (نزاهة) التنفيذ. يحدث “دليل الصلاحية” على شكل “Zero-Knowledge Proof” (دليل معرفة صفرية)، وهي طريقة رياضية لإخبار شخص ما أنك تعرف شيئًا دون إخبارِه بما تعرف.

مثال بسيط على دليل معرفة صفرية هو مُصحّح تلقائي للكود (لواجبات CS). المُصحّح التلقائي هو “مُتحقق” يعطيك مجموعة من حالات الاختبار المُولّدة عشوائيًا، وأنت “مُثبت” يجب أن تكون قادرًا على اجتياز جميع حالات الاختبار لإثبات أن لديك الكود الصحيح. وفي كل ذلك، لا تشارك كودك مباشرة مع المُصحّح التلقائي. وها أنت ذا: لقد أنجزت للتو “Zero-Knowledge Proof”، بإثبات أنك تعرف شيئًا دون أن تقول ما هو بالضبط. [2]

يستخدم مثال الكود أعلاه “دليل معرفة صفرية تفاعلي” (interactive Zero-Knowledge Proof)، حيث يتفاعل المُصحّح التلقائي ومقدّم الكود مباشرةً مع بعضهما. في المقابل، تستخدم معظم zk-Rollups دليلاً غير تفاعلي أكثر تعقيدًا رياضيًا (مثل zk-SNARK، أو Zero Knowledge Succinct Noninteractive ARgument of Knowledge)، مما يوفر الوقت والحيّز مقارنةً بدليل تفاعلي. وعلى الرغم من أن التفاصيل التقنية الخاصة بـ zk-SNARKs خارج نطاق هذه المقالة، فإن المبدأ الأساسي المتمثل في اجتياز حالات الاختبار هو نفسه.
الكأس المقدّسة (holy grail) في zk-Rollups هي آلة افتراضية لإيثيريوم معرفةً صفرية (Zero-Knowledge Ethereum Virtual Machine) تُعرف اختصارًا بـ zk-EVM، والتي تتيح للمطورين نقل أي عقد ذكي في Ethereum دون تعديل إلى سلسلة zk-Rollup. لكن هذا أمر صعب. لأن كل “مشكلة” تتطلب مجموعات مختلفة من “حالات الاختبار”، فإن تطوير “خوارزمية إثبات” قادرة على حل كل حالة اختبار يمكن تخيلها هو عنق زجاجة تقني في أدلة المعرفة الصفرية وzk-Rollups.
كما يذكر فيتاليك بوتيرين نفسه:
بشكل عام، يتمثّل رأيي في أن zk rollups المتفائلة (optimistic rollups) من المرجح أن تتفوق على المدى القصير في حسابات EVM للأغراض العامة، بينما من المرجح أن تتفوق ZK rollups في المدفوعات البسيطة والتبادل وحالات الاستخدام الخاصة بالتطبيقات الأخرى. لكن على المدى المتوسط إلى الطويل، ستفوز ZK rollups في جميع حالات الاستخدام مع تحسن تقنية ZK-SNARK. [3]
وهكذا، تاريخيًا، لم تكن zk-Rollups مثبتة كتقنيات إلا في حالات استخدام مخصصة للتطبيقات، حيث تكون “حالات الاختبار” محددة بدقة ومحدودة النطاق. ومع ذلك، فإن عدة مشاريع تتقدم بسرعة نحو “قلعة على التلة” — أي نحو خوارزمية عامة لـ zk-Rollup متوافقة مع EVM. [4]
zk-Sync v2.0
zk-Sync v2.0 هو مجرد واحد من بين العديد من المشاريع التي تعمل حاليًا على تطوير zk-EVM (ومنها StarkNet وPolygon Hermez وScroll). على عكس zk-Sync v1.0، الذي كان يتطلب من المستخدمين إعادة بناء أجزاء كبيرة من قواعد أكوادهم للانتقال من EVM إلى zk-Sync، يمكن للمبرمجين في zk-Sync v2.0 نشر تطبيقاتهم مع تغييرات قليلة جدًا أو دون تغييرات — أو كما قد ترغب zk-Sync في أن تدّعي.
عمليًا، ليست جميع zk-EVMs متشابهة. هناك مفاضلة واضحة بين قابلية التركيب (composability) (مدى قربها من عقود EVM الأصلية) والأداء (مدى سرعة قيام zk-Rollups بالتشغيل) [6]. ضمن هذه المفاضلة، اختارت zk-Sync تحسين الأداء بالكامل، وبالتالي التضحية بقابلية التركيب.
وفق منظور فيتاليك بوتيرين، توجد أربعة أنواع مميزة من zk-EVMs، ويمكن تلخيصها في المخطط التالي:

كما يوضح فيتاليك، ففي حالته الحالية، تُعد zk-Sync v2.0 من النوع 4 zk-EVM، القادرة على تجميع العقود المكتوبة بلغة Solidity ولغات المستوى الأعلى باستخدام مُجمّعها الخاص، والذي يختلف عن EVM. وبما أن لدى zk-Sync سيطرة كاملة على تصميم مُجمّعها، يمكنها إجراء تحسينات عدوانية للسرعة والإنتاجية. وتكمن تكلفة ذلك في أن بعض DApps وأدوات تصحيح أخطاء EVM قد لا تكون متوافقة مع zk-Sync v2.0. جوهريًا، فإن zk-Sync هي نفس “هيكل السيارة” الخاص بـ Ethereum ولكن مع استبدال المحرك. [5]
في وثائق المطورين الخاصة بها، تدّعي Matter Labs أنه يمكن دمج عمليات “القراءة” في العقود الذكية دون أي تغييرات في الكود، بينما تحتاج عمليات “الكتابة” إلى “كود إضافي” بسبب “الاختلافات الجوهرية بين L1 وL2” [6]. لكن في الواقع، هذا مضلِّل بشكل طفيف. لا يعود الأمر كثيرًا إلى “اختلاف جوهري” بين L1 وL2، بل أكثر لأن Matter Labs قررت المضي في نوع معيّن من zk-Rollup — وهو rollup من النوع 4. وبما أن zk-Sync هو جوهريًا rollup من النوع 4 يستخدم مُجمّعًا (compiler) وbytecode مختلفين، فهذا يعني أن للعقود الذكية عناوين مختلفة، وقد لا تتمكن بنية المصحّح (debugger infrastructure) التي تعتمد على تحليل الـ bytecode من العمل مع zk-Sync v2.0 [7].
في المستقبل، قد يضيف zk-Sync دعمًا أوسع بشكلٍ أكبر للـ EVM byte-code، مما يسمح للنظام بالانتقال تدريجيًا إلى rollup من النوع 3 يدعم نطاقًا أوسع من هذه “الحالات الحدّية”. لكن لكي ينجح zk-Sync من النوع 4 أو النوع 3 zk-Rollup مقارنةً بـ Polygon Hermez وScroll Labs من النوع 2، اللذين يعتمدان بشكل أساسي تبادل السرعة مقابل توافق أوسع، يجب توافر شرطين مسبقين مهمّين. أولًا، توجد نسبة ضئيلة جدًا من المشاريع غير المهمة غير المتوافقة مع مُجمّع zk-Sync المُخصّص. ثانيًا، يوجد اختلاف نوعي في سرعة تنفيذ zk-Sync مقارنةً بـ Type 2 zk-EVM.
للأسف، أعتقد شخصيًا أن هذا غير مرجّح. أي منظومة تطوير متقدمة تعتمد على بنية “دعائم” ناضجة (scaffolding) تشمل أدوات مساعدة ومُجزّأة ومريحة للتصحيح والاختبار. فإذا كان، كما يفترض فيتاليك، جزء كبير من أدوات التصحيح الأصلية لـ EVM غير قادر على التحويل إلى zk-Sync بسبب اختلافات في الـ bytecode، فسيتعين على zk-Sync تطوير مجموعة أدوات التصحيح والاختبار الخاصة به. وهذا عبء إضافي قد يعيق في النهاية سرعة اعتماد zk-Sync كحلّ من حلول L2، مقارنةً بمنافسيه من النوع 2 zk-EVM الأكثر قابلية للتركيب (composable)، مثل Polygon Hermez وScroll.
مستقبل zk-Rollups
مع وجود العديد من اللاعبين التنافسيين في ساحة سباق zk-EVMs، يمكن القول إنه مسألة وقت فقط قبل أن نرى zk-EVM يعمل بالكامل. لكن ماذا بعد ذلك؟ الطريق لا يكون مفيدًا إلا بوجود مبانٍ على الطريق؛ تكمن القوة طويلة الأجل لـ zk-Rollup في المشاريع التي تستخدم هذا الحل.
في الوقت الحالي، تُعد DeFi وGameFi والتطبيقات المحمولة هي المستفيدين الرئيسيين من بنية zk-Rollup. كل من DeFi وGameFi هما جوهريًا اقتصاديات نطاق (economies of scale)، إذ تزدهران في بيئة يوجد فيها عدد كبير من الأشخاص يستخدمونها. كما تفتح تطبيقات الهاتف المحمول مثل محافظ الهاتف بوابات الوصول إلى المستهلك الشامل الذي يكون كسولًا (أو لا يستطيع تحمل) جهاز كمبيوتر مكتبي. لذلك، فإن استخدام zk-Rollups في هذه الحالات منطقي للغاية.
لكن هذا ليس بأي حالٍ من الأحوال الحد الأقصى من فائدة zk-Rollups. إن كان هناك شيء، فهذا هو مجرد البداية. zk-Rollups بالنسبة إلى Ethereum هي ما يشبه 5G بالنسبة إلى الإنترنت. مثلما يمكن لـ 5G تمكين عالم جديد من تطبيقات وأنظمة إنترنت الأشياء، قد تفتح zk-Rollups أيضًا بوابات “Blockchain of Things” — بحيث تسمح للأجهزة الرقمية في عالمنا المادي — الثلاجات، والساعات، وإشارات المرور، وكل شيء — بالاندماج مع العقود الذكية المضمونة عبر Ethereum.
تتمثل إحدى أكبر الحجج ضد إنترنت الأشياء (IoT) في أنه سيتيح لشركات التكنولوجيا الكبرى تجاوز حدود حياتنا اليومية. لكن مع “Blockchain of Things” يمكننا الاستمتاع بمزايا إنترنت الأشياء دون القلق بشأن تعرض أجهزتنا الذكية للاختراق على قاعدة بيانات مركزية. بدلًا من المزايا مقابل الخصوصية، يمكننا أن نحصل على المزايا و الخصوصية معًا. هذا هو العالم الذي يمكن لـ zk-Rollups أن تعدنا به.
🐦 @0xfishylosopher
📅 31 أكتوبر 2022
هذه المعلومات لأغراض تعليمية بحتة ولا ينبغي اعتبارها نصيحة مالية. جميع الآراء المعبر عنها هي آراء المؤلف وليست بالضرورة مؤيدة من قبل Web3.com Ventures.
المراجع
[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623
[2] مقتبس من https://pages.cs.wisc.edu/~mkowalcz/628.pdf
[3] https://vitalik.ca/general/2021/01/05/rollup.html
[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatible-zk-rollups/
[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/
[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts
[7] https://vitalik.ca/general/2022/08/04/zkevm.html