في هذه المقالة، يستخدم 0xSamo، مؤلف LXDAO، EtherScan بمرونة لتحليل المكونات الأساسية على السلسلة لـ Starknet، وهيكل الرسوم المجمعة المتفائل/zk، وآلية EIP-4844. ، تم استكشاف معدلات نظام SHARP، وكشفت للجميع الحقيقة وراء تخفيض رسوم معالجة Starknet بنسبة 99%: ترقية كانكون لتقليل رسوم معالجة DA ليست سوى سبب مساعد، والسبب الحقيقي هوإصدار عملة Starknet لاحقًا، كان لدى الخزانة مصادر دخل أخرى ولم تعد مضطرة إلى الاعتماد على الرسوم لتوليد الدخل، لذلك خفضت بشكل كبير مؤشر سعر الغاز L2.
مقدمة
EIP-4844 كـ لقد جذبت أكبر ترقية لـ Ethereum بعد The Merge ما يكفي من الاهتمام. مساحة التخزين المؤقتة لـ Blob المقدمة في هذه الترقية تعادل إضافة عربة مثبتة على الجانب إلى قطار Ethereum، مما يوفر مساحة DA أرخص دون التأثير على حالة التشغيل الأصلية للقطار.
دعمت مشاريع Layer2 مثل Optimism وStarkNet وArbitrum جميعها EIP-4844 في فترة زمنية قصيرة وحققت تأثيرات كبيرة في خفض التكاليف، وفيما يلي: خزانة LXDAO بالنسبة للمعاملات التي تم إنشاؤها عند توزيع الأجور على المساهمين في Optimism، اختلفت رسوم الغاز قبل وبعد EIP-4844 بمقدار 100 مرة.
لكن بينما كنا متفاجئين بسرور، اكتشفنا أن StarkNet، بصفتها ممثل ZK Rollup، حققت أيضًا تأثيرًا مذهلاً في خفض الرسوم. انخفض مستوى الغاز الذي كان يتجاوز دولارًا أمريكيًا واحدًا إلى 0.01 دولار أمريكي قوي> .
لماذا يمكن تخفيض رسوم معالجة Starknet كثيرًا
OP Rollup وZK Rollup على المستوى الأول من DA المساحة احتياجات مختلفة
الاثنين لهما اعتماد مختلف تمامًا على مساحة DA. سيقوم OP Rollup بتعبئة وضغط جميع تفاصيل المعاملات الأخيرة، بما في ذلك توقيعات المستخدم والبيانات الأخرى، وتحميلها جميعًا إلى شبكة المستوى الأول. لا يتطلب الأمر الكثير من مهام التحقق على شبكة الطبقة الأولى، وتقع جميع التكاليف تقريبًا في مساحة DA لشبكة الطبقة الأولى.
في المقابل، يتمتع ZK Rollup بمعدل ضغط أعلى للبيانات الموجودة على السلسلة. على سبيل المثال، لا يحتاج إلى تحميل التوقيع الرقمي لمعاملات الطبقة الثانية، ويعتمد فقط على ZK Proof للتأكد من صحة المعاملة، علاوة على ذلك، لا يحتاج ZK Rollup إلى حزم جميع تفاصيل المعاملة، ولكنه يحتاج فقط إلى حزم البيانات نتائج تغيير الحالة على السلسلة.
على سبيل المثال، على شبكة الطبقة الثانية، قام 100 مستخدم بالتداول على زوج تداول USDC/USDT، بعد كل معاملة، يعقد الأصل أرصدة USDC وسوف يتغير USDT. بالنسبة إلى OP Rollup، فإن بيانات DA التي تم إنشاؤها خلف سلوكيات التداول هذه هي 100 معاملة و400 تغيير في الرصيد لـ 200 حساب؛
ولأجلبالنسبة إلى ZK Rollup، يمكن ضغط إجمالي 200 تغيير على عقد الأصول في تغييرين نهائيين لملخص الحالة، مما يقلل بشكل كبير من حجم بيانات DA.
يتحقق ZK Rollup من الغاز الإضافي الذي يستهلكه ZKP
افهم بعد فهم الفرق بين الاثنين، قد يكون انطباعك الأول هو أن رسوم الغاز الخاصة بـ ZK Rollup ستكون منخفضة نسبيًا، ولكن يجب على الطلاب الذين مارسوها جميعًا أن يعرفوا أنه قبل EIP-4844، كانت ZK Rollup مثل StarkNet و ZkSync، من بين أمور أخرى، الرسوم أعلى بكثير من OP Rollup، وخاصة StarkNet، نظرًا لاستخدام خوارزمية STARK، فإن حجم إثبات المعرفة الصفرية الخاص بها أكبر، وغالبًا ما تكون رسوم النقل أعلى من الطبقة الأخرى. 2.
(جدول رسوم L2 في وقت ما في عام 2023)
السبب وراء عدم قيام ZK Rollup بسحق OP Rollup بمجرد دخوله عبر الإنترنت بسيط: على الرغم من إنه جيد للمعاملات، حيث تتمتع البيانات بمعدل ضغط أعلى، مما يوفر تكلفة نقل البيانات إلى طبقة واحدة، ولكنه يتطلب التحقق من إثبات المعرفة الصفرية على طبقة واحدة من الشبكة، مما يزيد من التكلفة الحسابية.
يمكن لـ Blob فقط تقليل رسوم DA ولا يساعد كثيرًا في الجزء الحسابي. بالمقارنة مع OP Rollup، يتمتع ZK Rollup بفوائد أقل على EIP-4844 من الصعب ألا نتفاجأ عندما نرى أن Starknet قد انتقلت بسرعة من حالة رسوم المناولة الباهظة الثمن إلى رسوم الغاز على مستوى السنت.
استكشف تكوين رسوم Starknet
ZK Rollup غالبًا ما يكون أكثر تعقيدًا من OP التراكمي. الصورة أدناه هي سجل المعاملات الذي تم إنشاؤه عندما ينشر فارز التفاؤل بيانات DA على شبكة الطبقة الأولى. يمكن لأي شخص أن يفهم سبب انخفاض رسوم معاملات OP بمقدار أمرين من حيث الحجم بعد تنفيذ EIP-4844.
ولكن عند التحقيق في مصدر رسوم معالجة Starknet، واجه مؤلف هذه المقالة صعوبات كبيرة، لأن التفاعل بين المكونات المختلفة لـ Starknet أكثر تعقيدًا. دعونا نتتبع هذه العملية برمتها.
الطبقة المختفية من DA
بسبب الاستكشاف القائم بناءً على تجربة هيكل رسوم Optimism، اعتقدنا بطبيعة الحال أنه ما عليك سوى العثور على عنوان العقد حيث ترسل Starknet البيانات إلى الشبكة الرئيسية. يجب أن يكون هذا النوع من العقود الرئيسية مدرجًا في قائمة استهلاك الغاز لدى Etherscan، ويجب أن يكون كذلك ليس من الصعب العثور عليه، مثل Scroll، الذي لم يتكيف بعد مع EIP-4844، ولا يزال عقده على رأس قائمة استهلاك الغاز.
عندما نبحث عن كلمات Starknet الأساسية، سنجد ثلاثة مكونات ذات صلة: المشغل، والعقد الأساسي، وسجل حقائق صفحة الذاكرة على EtherScan. ومع ذلك، فإن العقد الثالث الذي يبدو أنه مرتبط بـ DA توقف عن استخدامه منذ ما يقرب من عامين. .
في الوقت الحالي يمكننا أن نرى أن مشغل Starkent يتفاعل باستمرار مع العقد الأساسي ويستدعي باستمرار وظيفة "حالة التحديث".
إذا انتقلنا إلى السجلات الموجودة على السلسلة قبل وبعد تنشيط ترقية Cancun، فسنجد أن سلوك "حالة التحديث" الخاص بالمشغل قد خضع بالفعل لتغييرات تفصيلية. أولاً، تم تغيير اسم الوظيفة إلى "UpdateStateKzgDA". ثانيًا، ستكون وظيفة تحديث الحالة القديمة Core Contract تنقل ProgramOutput وonchainDataHash وonchainDataSize، بينما يقوم الإصدار الجديد من الوظيفة بتحميل ProgramOutput و< قوي>KzgProof.
يلعب KzgProof هنا، والمعروف باسم KZG Proof، دورًا مشابهًا لـ datahash الخاص بـ Blob وله علاقة مقابلة مع البيانات المخزنة في Blob. من الجدير بالذكر أن الإصدار الجديد من وظيفة تحديث الحالة يستهلك غازًا أكثر من الإصدار القديم. لذا فإن السؤال هو، لماذا تستطيع Starknet خفض رسوم المناولة إلى هذا الحد؟ ماهو السبب؟
لمزيد من المعلومات، يرجى الرجوع إلى موقع العلوم الشعبية Layer2 MyFirstLayer2 ضمن LXDAO: قوي> p>https://layer2.myfirst.io/zh#3.3-optimistic-rollup
< قوي>التحليل بعد الفشل الأول
على الرغم من أن الاستكشاف الأول لم يكن ناجحًا، إلا أنه لا يزال بإمكاننا الحصول على بعض الاستنتاجات والتخمينات. يجب أن يعرف الأصدقاء الذين شاهدوا MyFirstLayer2 أن المشكلة الأساسية لـ Rollup هي مشكلة DA (توافر البيانات)، ويقومون جميعًا بتحميل البيانات الرئيسية إلى الشبكة الرئيسية لحل مشكلة توفر البيانات، وبهذه الطريقة يمكن للجميع الوصول إلى البيانات بسهولة يحتاجون للحصول عليها.
دعونا ننظر إلى الوراء. يقوم OP Rollup بضغط وتلخيص جميع تعليمات المعاملات والحزم و ويقوم بتحميلها إلى شبكة المستوى الأول، ويمكن للآخرين تنزيل البيانات المضغوطة، ثم فك ضغطها، وإعادة تشغيل كل معاملة للتعرف على تغييرات الحالة في شبكة المستوى الثاني.
لا يحتاج ZK Rollup إلى تحميل تفاصيل المعاملة الكاملة، فقط يجب تحميل فرق الحالة (مقدار تغيير الحالة قبل وبعد تنفيذ كل دفعة). يستخدم ZKRollup ZKP للتأكد من أن اختلاف الحالة صالح وصحيح. ويمكن للآخرين تراكب اختلاف الحالة مباشرة على Prev_GlobalState لمعرفة أحدث حالة لشبكة الطبقة الثانية.
نعلم جميعًا أن البيانات الموجودة فيBlob هي مجرد سلسلة من النص الثنائي المشوه، وتضمن شبكة الطبقة الأولى فقط عدم التلاعب ببيانات Blob من قبل البعض العقد الضارة بعد تحميلها، لكنها ليست مسؤولة عن التحقق من محتوى هذه البيانات. بالطبع، لا يمكن للعقد الذكي المنشور في الطبقة الأولى قراءة محتوى Blob مباشرة.
لذلك، إذا كان لا يزال يتم التحقق من ZK Proof بواسطة طبقة واحدة، فيجب عدم وضع ZK Proof في Blob، حتى نتمكن من الحكم على أن Starknet يمكن أن يكون لديه مثل هذا تأثير تخفيض الرسوم ليس له علاقة بـ ZKP، ويجب أن يكون بسبب التغيير في موقع التخزين لاختلاف الحالة.
من الواضح أن المهمة التالية هي للتأكيد، أين وضعت Starknet فرق الحالة؟ أين تم وضعه في الماضي وهل يتم وضعه في النقطة الآن؟
بالإضافة إلى ذلك، يمكن العثور على StateRoot واحد فقط في معلمات الإدخال لوظيفة UpdateState، مما يجعل الناس يتساءلون عما إذا كان Starknet قد قام بتحميل البيانات التي كان يجب تحميلها مباشرة وبدلاً من ذلك، يتم إرسالها إلى DAC (لجنة توفر البيانات) الخاصة بها خارج السلسلة. إذا كان هذا هو الحال بالفعل، فإن الرسوم المرتفعة السابقة التي فرضتها Starknet غير معقولة على الإطلاق ولا يمكن تفسيرها إلا على أنها...
نظام SHARP
لحسن الحظ، بعد المناقشة مع @0xYandhii، استنيرتُ قبل إطلاق الشبكة الرئيسية العالمية، وكان أول منتج لـ Starknet في الواقع، StarkEX، بما في ذلك تبادل المشتقات الكيميائية dYdX هو أيضًا أحد منتجات تلك الفترة.
بعد أن أصبحت الشبكة الرئيسية متصلة بالإنترنت، لم يتم التخلي عن المنتج الأصلي، ولكن بدلاً من ذلك تمت مشاركة عقد التحقق مع الشبكة الرئيسية. هذا هو SHARP: نظام إثبات وتحقق مشترك، ثم وجدنا العقود ذات الصلة مثل SHARP Blockchain Writer وSHARP Verifier.
افتح متصفح الكتلة للاستعلام عن المعاملات ذات الصلة، يمكنك أن تجد أن SHARP Blockchain Writer قام بتنفيذ الأنواع الأربعة التالية من العمليات:
-
1. VerifyMerkle:التحقق من شجرة Merkle
- < /li >
2. VerifyFRI: يُستخدم للتأكد من أن البيانات المرسلة أو نتائج الحساب تتبع قواعد محددة دون الكشف عن الصورة الأصلية بيانات.
3. تسجيل صفحة الذاكرة المستمرة: p> strong>يبدو أنها وظيفة يتم استدعاؤها عند كتابة البيانات إلى طبقة من الشبكة.
4. التحقق من الإثبات والتسجيل:
p> strong> يمكن استدعاؤه مرة واحدة كل عشر دقائق في أسرع وقت، أو ساعة أو ساعتين في أبطأ وقت. بعد أن تقوم Starknet بتجميع عدد كبير بما يكفي من المعاملات، فإنها ستتحقق بشكل موحد من صحة ZKP من هذه المعاملات.
ليس من الصعب أن نرى أن 1 و2 و4 هي وظائف مرتبطة بـ ZKProof، ومن الواضح أن الوظيفة الثالثة هي الموجهة نحو خطوة كتابة البيانات إلى شبكة الطبقة هي الوظيفة التي من المرجح أن تكون مرتبطة بتحميل فرق الحالة.
نتوقع أن رسوم استدعاء الوظائف 1 و2 و4 لم تتغير بشكل ملحوظ قبل وبعد ترقية Blob، في حين أنالوظيفة الثالثة ينبغي تخفيض تكلفة الاستخدام بشكل كبير، وهو ما يمكن أن يفسر سبب الأهمية الكبيرة لتأثير تخفيض رسوم Starknet.
لذا استمر المؤلف في تصفح متصفح الكتلة، والإصدار القديم قبل الأخير والإصدار الأول قبل الأخير قبل EIP-4844 قم بإجراء دورة تحقق واحدة لكل فترة من الفترات الثلاث للإصدار الأخير، وقم بحساب الغاز الذي تستهلكه كل وظيفة من الوظائف الأربع في كل مرة يتم استدعاؤها.
النتائج كالتالي مما يجعل الناس في حيرة من أمرهم.
انخفضت تكلفة الوظيفة الثالثة المتعلقة بإصدار البيانات بمقدار النصف، ولكن انطلاقًا من نسبتها من التكلفة في الجولة الكاملة لعملية التحقق من إثبات ZK، لا يمكن لهذا المستوى من خفض تكلفة DA إثبات فرضياتنا السابقة مقترح.
لقد وصل الاستكشاف تقريبًا إلى نهايته عند هذه النقطة. يشعر المؤلف وكأنه فيزيائي يجلس أمام مصادم الجسيمات الكبير في عالم الأجسام الثلاثة خلية الدماغ تصرخ: هذا غير منطقي! حتى أنني ذهبت إلى مجتمع Starknet لنشر منشور أسأل فيه، ولكن ربما لأن السؤال معقد للغاية، لم يستجب أحد في المجتمع الإنجليزي.
استكشاف الغاز المستخدم بنظام SHARP
في هذه المرحلة، نحن الحيلة الصغيرة الأخيرة هي أنه في ملف CSV لبيانات المعاملات التي تم تنزيلها مسبقًا، لا يوجد سوى ETH التي تستهلكها رسوم الغاز، ولا توجد معلومات مثل GasPrice وGaslimit، لذلك لا يمكن تأثير تقلبات أسعار وحدة الغاز على النتائج الإحصائية يتم استبعاده. لذلك كتب المؤلف نصًا لحساب الغاز المستخدم (الجزء المستخدم من Gaslimit) الذي تم استهلاكه فعليًا في كل معاملة معنية.
هذه المرة وجدنا الدليل أخيرًا. يمكنك أن ترى أنهقبل ترقية كانكون، سيتم تشغيل الوظيفة المسماة تسجيل صفحة الذاكرة المستمرة مرتين في كل مرة يتم فيها تحميل بيانات DA، مرة تستهلك 50000 غاز، وتستهلك المرة الأخرى 300000 غاز.
بعد ترقية كانكون، تستهلك جميع المعاملات تقريبًا التي تستدعي وظيفة تسجيل صفحة الذاكرة المستمرة 50000 غاز فقط.
لقد أخذنا عددًا قليلًا جدًا من العينات من قبل. بعد هذه الترقية، كانت هناك فترة ارتفعت فيها رسوم الغاز للشبكة الرئيسية بشكل كبير. وقد أثر هذا على نتائجنا الإحصائية ودفعنا إلى الاعتقاد بأن تكلفة استدعاء صفحة تسجيل الذاكرة المستمرة كانت الوظيفة على مستوى عالٍ، ولم يتغير شيء قبل أو بعد ترقية Kun، وعندما اعتمدنا الإحصائيات على نطاق أوسع، اكتشفنا المشكلة بسرعة.
وفقًا لهذه الفكرة، قمنا بإعادة تنظيم بيانات GasUsed لثلاث لحظات، وهو أمر أكثر منطقية هذه المرة. في هذه المرحلة، يمكن التأكد من أن وظيفة تسجيل صفحة الذاكرة المستمرة المرتبطة بتحميل بيانات DA قد خفضت بالفعل رسوم المعالجة بشكل كبير بعد ترقية كانكون. يجب أن تكون هذه هي الخطوة الأصلية لتخزين فرق الحالة وترقية كانكون أخيرًا، يتم نقل بيانات DA إلى Blob.
بالمتابعة، وجدنا رسمًا تخطيطيًا لهيكل منتج Starknet على موقع L2beat، ووجدنا أن State diff يتم تخزينه بالفعل على سلسلة Ethereum من خلال ما سبق وظيفة.
(مصدر الصورة: L2BEAT)
أخيرًا، نقوم بالحساب بناءً على عدد الغاز المستخدم (استنادًا إلى التيار المحدد عشوائيًا بناءً على تقدير واسع النطاق يعتمد على الحجم)، توصلنا إلى الاستنتاج: بعد ترقية Starknet في كانكون، تغيرت رسوم DA بحوالي 4 إلى 10 مرات، وهو أقل قليلاً من مرتبة الحجم.
ويتماشى هذا أيضًا مع تخميننا الأولي:بعد ترقية EIP-4844، لم تعد الفوائد التي حصلت عليها ZK Rollup كما هي. جيدة مثل OP Rollup العديد.
الملخص
بعد الاستكشاف أعلاه ، لقد اكتشفنا أخيرًا سبب الانخفاض الحاد في رسوم التعامل مع Starnet، ولا يزال الاستنتاج مثيرًا للاهتمام بعض الشيء.
انخفضت رسوم DA بشكل ملحوظ، لكن هذا لا يمكن أن يفسر الانخفاض بمقدار درجتين
من الواضح أن Starnet قامت مسبقًا بتحميل بيانات تغيير الحالة الموجودة في كل دفعة مباشرة إلى شبكة الطبقة الأولى. والآن تضع هذا الجزء من البيانات في Blob، بحيث يمكن استخدامه في جزء بيانات DA فيما يتعلق برسوم المناولة، فإن تأثير تخفيض الرسوم أقل قليلاً من مرتبة الحجم.
ولكن كيف نفسر الانخفاض بنسبة 99% في رسوم Starknet؟ من الواضح أن الاعتماد ببساطة على تخفيض رسوم DA ليس كافيًا. التفسير المعقول الوحيد هو أنه قبل الترقية في كانكون، كانت Starknet تفرض رسومًا كثيرة جدًا على المستخدمين. قبل إصدار STRK، تتطلب جميع الأنشطة والحوافز المجتمعية لـ Starknet أموالاً، بالإضافة إلى حرق أموال المستثمرين، توجد فجوة مقصية بين ETH المفروضة على المستخدمين وETH الفعلي المستهلك، وهو ما قد يكون السبب. تؤكد Starknet أن إحدى طرق التشغيل هي سبب ارتفاع رسوم الغاز في Starknet من قبل.
الآن بعد أن جلب إصدار الرمز المميز STRK أموالاً كافية إلى Starknet، فقد حان الوقت لإعادة الغاز إلى مستوى معقول والاستفادة من ترقية Cancun تمت إزالة أكياس الرمل الموجودة على القدمين معًا، وقد فاجأ تأثير تخفيض الرسوم الكثير من الناس حقًا.
مشكلة فقدان البيانات التاريخية المجمعة
يتم الآن تشغيل مجموعة OP تمت الترقية بعد ذلك، بعد نقل البيانات المخزنة في الأصل في معاملة Calldata إلى منطقة التخزين المؤقتة لـ Blob، يتم التضحية بالقليل من انعدام الثقة بالفعل.
في السابق، تم تخزين البيانات الموجودة في مساحة Calldata بشكل دائم، مما يعني أنه يمكن لأي شخص تنزيل ما يكفي من البيانات التاريخية من شبكة Ethereum الرئيسية للتحقق من الحالة الحالية ومزامنتها من OPR.
ومع ذلك، بعد ترقية Cancun، يتم تعيين انتهاء صلاحية بيانات Blob وإزالتها إذا لم يقم أي كيان في الشبكة بأكملها بحفظ بيانات Blob السابقة، فسيتم حذف سجل قد يتم فقدان سجلات معاملات OPR.
على الرغم من أنه لا يزال من الممكن حماية أحدث حالة لشبكة الطبقة الثانية - نظرًا لأن فترة تخزين Blob تتجاوز فترة تحدي OP البالغة 7-14 يومًا، إلا أن كل كائن Blob قبل انتهاء صلاحيته، ولا تزال حالتها من المستوى الثاني ذات مصداقية. وتحافظ آخر عشرة أيام من سجلات المعاملات على أمان OPR على أساس متجدد.
إذا أراد ZK Rollup الاستمتاع بمزايا Blob، فإنه يحتاج أيضًا إلى نقل بيانات حالة الطبقة الثانية المهمة من مساحة Calldata إلى مساحة Blob. وهذا يعني أنه بعد فترة من الوقت، لم يعد بإمكاننا الاعتماد على البيانات المقدمة من شبكة المستوى الأول لإعادة عرض حالة شبكة المستوى الثاني كما كانت من قبل.
ربما يصبح هذا هو القاعدة في المستقبل، ستعتمد جميع شبكات الطبقة الثانية على Blob للحفاظ على أحدث حالة من الأمان، ويحتاج كل L2 أيضًا. للتفكير بمفردها، تحل هذه الطريقة مشكلة تخزين بيانات المعاملات التاريخية وتحقق توازنًا أفضل بين الأمان والكفاءة.
اتجاه التكامل بين OP وZK
الماضي، لا، كان الجيل الأول من OP Rollup هو الأول الذي أصبح متصلاً بالإنترنت، لكن الجيل الأول من ZK Rollup لم يقدم رسوم غاز أكثر تنافسية بعد أن أصبح متصلاً بالإنترنت. مع اتجاه الوحدات اللاحق الذي جلبته OP Stack وPolygon SDK، تخطط OP Stack لإدخال تقنية ZK في المستقبل لتقليل فترة التحدي.
يشير هذا بلا شك إلى حقيقة أن المسارين الفنيين لـ OP وZK ليسا منافسة حياة أو موت، بل سيتعلمان من بعضهما البعض وسيكون لهما الميل إلى التكامل ومع ذلك ، هذه هي المرة التي تعلم فيها ZK "النبيل" من OP "البسيط والفج".
من الصعب أن نتخيل أن تكنولوجيا شبكة الطبقة الثانية قد تطورت إلى هذا الحد خلال عامين أو ثلاثة أعوام فقط عالم البلوكشين.
المراجع:
[1]توفر بيانات FeedTheFed مع EIP4844[EB/OL]. (2024-02-11)[2024-04-16] https://community.starknet.io/t/data-availability-with-eip4844/113065.ح
[2] فريق بحث L2BEAT[EB/OL]. https: / /l2beat.com/scaling/projects/starknet?selectedChart=activity#contracts.