
المؤلف: shew & amp ؛
ملخص
-
أهم الخصائص الفنية لـ StarkNet ، بما في ذلك لغة القاهرة التي تفضي إلى إثبات ZK ،المستوى الأصلي AA، نموذج العقد الذكي لمنطق الأعمال وتخزين الحالة.
-
القاهرة هي لغة ZK شائعة يمكنها تنفيذ عقود ذكية على StarkNet ، أو يمكن استخدامها لتطوير التطبيقات التقليدية.يتيح إدخال Sierra كلغة وسيطة في عملية التجميع الخاصة بها القاهرة بالتكرار بشكل متكرر ، ولكن ليست هناك حاجة لتغيير الطبقة السفلية من رمز bytecode.في مكتبة القاهرة القياسية ، العديد من هياكل البيانات الأساسية اللازمة لتجريد الحسابجوهر
-
عقود STARKNET SMART منفصلة عن منطق الأعمال والوضع.“التجميع ، الإعلان ، النشر”في المرحلة الثالثة ، يتم الإعلان عن منطق العمل في فئة العقد.
-
نموذج العقد الذكي المذكور أعلاه من StarkNet يفضي إلى إعادة استخدام الكود ، وإعادة استخدام حالة العقد ، وطبقات التخزين ، واكتشاف عقود القمامة.كما أنه يفضي إلى تحقيق نظام تأجير التخزين وموازاة المعاملة.على الرغم من أن الاثنين الأخيرين لم يمتدوا بعد ، فإن بنية العقد الذكي في القاهرة قد خلقت “شروطًا ضرورية” لذلك.
-
لا يوجد سوى حساب عقد ذكي على سلسلة StarkNet ، ولا يوجد حساب EOA.من البداية ، يدعم تجريد حساب AA الأصلي.يمتص حل AA فكرة ERC-4337 إلى حد ما ، مما يسمح للمستخدمين باختيار مخطط معالجة المعاملات المخصص للغاية.من أجل منع مشاهد الهجوم المحتملة ، قام Starknet بالعديد من التدابير المضادة وقام بإجراء استكشافات مهمة للنظام الإيكولوجي AA.
بعد الرموز المصدرة لـ StarkNet ، أصبحت Strk تدريجياً واحدة من العناصر التي لا غنى عنها في عيون مراقبي Ethereum.نجم Ethereum Layer2 المعروف بـ “التفرد” و “عدم الاهتمام بتجربة المستخدم” يشبه الناسك مع العالم
نظرًا لأنه تم تجاهله من قبل المستخدمين ، وحتى فتحت قناة “المتسول الإلكتروني” على الإطلاق ، فقد تعرض Starknet مرة واحدة للهجوم من قبل حزب MAO. “يبدو أن تأثيرات UX والثروة فقط هي كل شيء.إن عبارة “غير مفهومة على أنها فخرني الوحيد” في “Golden Pavilion Temple” هي ببساطة عبارة عن طيور ذاتية Starknet.
ولكن بصرف النظر عن هذه الأمور التافهة ، فإنه يبدأ ببساطة من “الذوق الفني” لمؤسسة الكود إن عقول بعض مطوري ألعاب كل شيء ، Starknet و Cairo هي كل شيء في Web3 ، ولا صلابة ولا تحرك قابلة للمقارنة.في الوقت الحاضر ، فإن أكبر فجوة في الجيل بين “المهوسون الفنيون” و “المستخدم” هي في الواقع أكثر بسبب افتقار الناس إلى إدراك StarkNet.
مع اهتمام واستكشاف تقنية blockchain ، وقيمة قيمة StarkNet ،يبدأ المؤلف من نموذج العقد الذكي من StarkNet و AA الأصلي لتصميم حلها التقني وتصميم آلية للجميع.أثناء إظهار الخصائص الفنية لـ StarkNet لمزيد من الناس ، آمل أيضًا أن أترك الناس يفهمون هذا “الرجل الوحيد غير المفهوم”.
لغة القاهرة العلوم الحد الأدنى
في ما يلي ، سوف نركز على مناقشة نموذج العقد الذكي في StarkNet وتجريد الحسابات الأصلية ، موضحًا كيف يحقق StarkNet AA الأصلي.بعد قراءة هذا المقال ، يمكن للجميع أيضًا فهم سبب عدم خلط مساعدة محافظ مختلفة في StarkNet.
ولكن قبل تقديم تجريد الحساب الأصلي ،دعونا أولاً نفهم لغة القاهرة الأصلية لـ Starknet.خلال تطوير القاهرة ، ظهرت نسخة مبكرة تسمى Cairo0 ، وكذلك الإصدارات الحديثة اللاحقة.تشبه القواعد الشاملة للنسخة الحديثة من القاهرة الصدأ ، والتي هي في الواقع لغة ZK شائعة.بالإضافة إلى كتابة العقود الذكية على StarkNet ، يمكن أيضًا استخدامها لتطوير التطبيقات العامة.
على سبيل المثال ، يمكننا تطوير نظام التحقق من هوية ZK بلغة القاهرة.يمكن القول أنه يمكن تنفيذ أي برنامج يحتاج إلى التحقق في لغة القاهرة.ومن المحتمل أن تكون القاهرة هي لغة البرمجة الأكثر تفضيلاً لتوليد ZK.
انطلاقًا من عملية التجميع ، تستخدم القاهرة طريقة التجميع بناءً على لغة وسيطة ، كما هو موضح في الشكل أدناه.Sierra في الشكل هو شكل وسيط (IR) في عملية تجميع لغة القاهرة ، وسيتم تجميع Sierra في نموذج رمز ثنائي أكثر ، يسمى CASM ، والذي يتم تشغيله مباشرة على معدات عقدة StarkNet.
قدم Sierra باعتباره النموذج المتوسط ، وهو مناسب للغة القاهرة لزيادة الميزات الجديدة.هذا يوفر الكثير من المتاعب ، ولا يتعين تحديث عميل العقدة في StarkNet بشكل متكرر.وبهذه الطريقة ، يمكن أن يحقق تكرارات متكررة للغة القاهرة دون تغيير المنطق الأساسي لـ StarkNet.وفي مكتبة القاهرة القياسية ، العديد من هياكل البيانات الأساسية اللازمة لتجريد الحساب.
يخطط ابتكار القاهرة الأخرى ، بما في ذلك حل نظري يسمى القاهرة قم بتحسين سرعة تنفيذ الكود بشكل كبير [لا تزال في المرحلة النظرية ولم يتم هبوطها].
نموذج عقد STARKNET الذكي: منطق الكود وتجريد تخزين الحالة
على عكس EVM وسلسلة قادرة ، يتمتع Starknet بالابتكار في تصميم أنظمة العقود الذكية.هنا ، نحتاج إلى معرفة ذلك في السلسلة العامة التقليدية مثل Ethereum ،غالبًا ما يتبع نشر العقود الذكية طريقة “نشر ما بعد التنسيق” ، ويستخدم العقود الذكية ETH على سبيل المثال:
1. بعد أن كتب المطور العقد الذكي محليًا ، يقوم المطور بتجميع برنامج الصلابة في رمز البايت لـ EVM من خلال المحرر ، بحيث يمكن فهم EVM ومعالجتها مباشرة ؛
2. يبدأ المطورون طلب معاملة لنشر عقود ذكية لنشر رمز Bytecode EVM المترجمة على سلسلة Ethereum.
(مصدر الصورة: غير satoshi.com)
على الرغم من أن العقد الذكي لـ StarkNet يتبع أيضًا فكرة “التجميع ثم النشر” ،يتم نشر العقود الذكية على السلسلة في شكل CASM bytecode بدعم من CAIROVM.ومع ذلك ، فيما يتعلق بالاتصال ووضع تخزين الحالة للعقود الذكية ، فإن سلاسل StarkNet و EVM متوافقة.
أن تكون دقيقًا ،العقد الذكي Ethereum = منطق العمل+معلومات الحالة ،على سبيل المثال ، لا تنفذ عقود USDT وظائف مشتركة مثل النقل والموافقة وما إلى ذلك ، ولكن أيضًا تخزين حالة الأصول لجميع حاملي USDT.يتم ربط الكود والحالة معًا ، والتي تجلب الكثير من المتاعب. حرج.
في هذا الصدد ، قام StarkNet بتحسين طريقة التخزين في الدولة.في خطة تنفيذ العقود الذكية ، يتم فصل منطق العمل وحالة الأصول لـ DAPP تمامًا ، ويتم تخزينها في أماكن مختلفة.فوائد القيام بذلك واضحة.المبدأ هنا هو:
العقد الذكي لـ Ethereum = منطق العمل+بيانات الحالة ،إذا كان منطق العمل للعديد من العقود متسقًا تمامًا ، لكن بيانات الحالة مختلفة ، فإن تجزئة هذه العقود مختلفة أيضًا. العقود “.
وفي مخطط StarkNet ، يتم فصل بيانات الكود والمكانة مباشرةً.لأن تجزئةهم هو نفسه.هذا مناسب لإيقاف نشر الكود المكررة وتوفير مساحة التخزين في العقد StarkNet.
في نظام العقود الذكية في StarkNet ، يتم تقسيم النشر واستخدام العقد إلى“التجميع ، الإعلان ، النشر”ثلاث مراحل.إذا أراد مصدر الأصول نشر عقد القاهرة ، فإن الخطوة الأولى هي تجميع رمز القاهرة المكتوبة إلى Sierra ونموذج CASM bytecode الأساسي.
بعد ذلك ، ستصدر نشر العقد بيانًا للمعاملة “إعلان” ، ونشر رمز CASM Bytecode و Sierra الوسيط إلى السلسلة ، المسمىفئة العقدجوهر
(مصدر الصورة: موقع Starknet الرسمي)
بعد ذلك ، إذا كنت ترغب في استخدام وظيفة الوظيفة المحددة في عقد الأصول ، يمكنك بدء معاملة “نشر” من خلال الطرف الأمامي من DAPP ونشر أمثال العقدسوف تخزن هذه الحالة حالة الأصول.بعد ذلك ، يمكن للمستخدم الاتصال بوظيفة الوظيفة في فئة العقد لتغيير حالة مثيل العقد.
في الواقع ، يجب على أي شخص يفهم البرمجة الموجهة نحو الكائن أن يفهم بسهولة ما تمثله فئة ومثال StarkNet.تحتوي فئة العقد المعلنة من قبل المطور على منطق العمل للعقود الذكية
يجببعد أن ينشر المستخدم مثيلًا معينًا عقدًا ، تكمل الأصول “الفيزياء”.إذا كنت ترغب في تغيير حالة الأصل “الكيان” ، مثل نقل الرمز المميز الخاص بك إلى الآخرين ، يمكنك الاتصال مباشرة بوظيفة الوظيفة المكتوبة في فئة العقد.العملية أعلاه متشابهة إلى حد ما (ولكنها ليست متسقة تمامًا) في لغة البرمجة التقليدية.
بعد فصل العقد الذكي على أنه فئة وحالات ، يجلب منطق العمل وبيانات الحالة الميزات التالية:
1. الفشل في تخزين الطبقات وتحقيق “نظام تأجير التخزين”
يعني التقسيم الطبقي للتخزين SO الذي يسمى أن المطورين يمكنهم وضع البيانات في وضع مخصص وفقًا لاحتياجاتهم الخاصة ، مثل سلسلة StarkNet.تتوافق StarkNet مع طبقة DA مثل Celestia ، ويمكن لمطوري DAPP تخزين البيانات في هذه الطبقات DA الثالثة.على سبيل المثال ، يمكن للعبة تخزين أهم بيانات الأصول على الشبكة الرئيسية لـ StarkNet وتخزين بيانات أخرى على طبقة DA تحت رابط Celestia.هذا الحل لطبقة DA وفقًا لتخصيص احتياجات الأمان يسمى “الإرادة” بواسطة StarkNet.
يعني نظام تأجير التخزين الذي يطلق عليه SO أن الجميع يجب أن يستمروا في دفع تكاليف مساحة التخزين التي يشغلونها.مقدار المساحة التي تشغلها من أجلك ، من الناحية النظرية ، يجب أن تستمر في دفع الإيجار.
في نموذج العقد الذكي Ethereum ، لا تكون ملكية العقد واضحة ، ومن الصعب تمييز عقد ERC-20 من قبل Deplyee أو حامل الأصول لدفع “الإيجار”.لم تطلق وظيفة تأجير التخزين ، ولا يتقاضى سوى رسوم إلى النشر أثناء نشر العقد.
بموجب نماذج العقود الذكية في StarkNet و Sui و CKB و Solana ، فإن ملكية العقد الذكي أكثر وضوحًا ، وهي مريحة لجمع صناديق التخزين [لا يقوم StarkNet حاليًا بنظام تأجير التخزين عبر الإنترنت مباشرة ، ولكن سيتم تحقيقه في المستقبل]
2. إدراك إعادة استخدام الكود الحقيقي وتقليل نشر عقود القمامة
يمكننا أن نعلن عن عقد رمزي عالمي كفئة مخزنة على السلسلة ، ومن ثم يمكن للجميع استدعاء الوظيفة في هذه الفئة لنشر مثيل الرمز المميز الخاص بها.ويمكن للعقد أيضًا استدعاء الكود مباشرة في الفصل ، والذي يحقق تأثير مكتبة وظائف المكتبة مماثلة لمكتبة وظيفة المكتبة في صلابة.
في الوقت نفسه ، نموذج العقد الذكي هذا في Starknet ،يساعد في التمييز بين “عقد القمامة”.أوضح في وقت سابق هذا.بعد دعم الكشف عن عقد الكود والكشف عن عقد القمامة ، يمكن لـ StarkNet تقليل كمية البيانات على السلسلة بشكل كبير وتقليل ضغط تخزين العقد قدر الإمكان.
3. “الوضع” الحقيقي للعقد الحقيقي
تتضمن ترقية العقد على blockchain تغييرات في منطق العمل. لا توجد حاجة لترحيل حالة الأصول إلى مكان جديد.
لتغيير منطق العمل لعقد Ethereum ، من الضروري “الاستعانة بمصادر خارجية” منطق العمل إلى عقد الوكالة
(مصدر الصورة: أكاديمية WTF)
في بعض السيناريوهات ، إذا تم التخلي عن عقد Ethereum القديم ، لا يمكن ترحيل حالة الأصول داخل مكان جديد ، وهو أمر مزعج للغاية ؛ “القديم القديم. الدولة.
4. الفشل في التوازي معاملة
لزيادة الدرجة الموازية لتعليمات المعاملات المختلفة قدر الإمكان ، فإن الحاجة إلى تفريق وتخزين حالة الأصول لأشخاص مختلفين ، والتي يمكن رؤيتها على Bitcoin و CKB و SUI.يتمثل الشرط المسبق للأهداف المذكورة أعلاه في تقشير منطق العمل وبيانات حالة الأصول للعقود الذكية.على الرغم من أن Starknet لم يتم تنفيذها بعد في التنفيذ التكنولوجي المتعمق للمعاملات المتوازية ، إلا أنه سيستغرق معاملات متوازية كهدف مهم في المستقبل.
نشر AA الأصلي في Starknet ونشر عقد الحساب
في الواقع ، فإن تجريد الحساب So -so هو المفاهيم الفريدة التي اخترعها مجتمع Ethereum. تجنبها من البداية.على سبيل المثال ، تحت إطار Ethereum ، يجب أن يكون لدى وحدة التحكم في EOA ETH على السلسلة لبدء المعاملات.حتى أن بعض الناس يعتقدون أن تصميم هذا الحساب في Ethereum هو ببساطة معادٍ للبشر.
إذا ذهبنا لمراقبة Starknet أو Zksyncera ، إلخ.“الأصلي AA”يمكن للسلسلة أن تلاحظ الفرق الواضح: أولاً ،starknet و Zksyncera يوحدون نوع الحساب.(ستقوم Zksync Era بنشر مجموعة من رمز العقد افتراضيًا على الحساب الذي تم إنشاؤه حديثًا للمستخدم لمحاكاة خصائص حساب Ethereum EOA ، وهو مناسب للتوافق مع Metamask).
لا يعتبر StarkNet متوافقًا مباشرة مع Metamask والمرافق الأخرى حول Ethereum.عندما يستخدم المستخدمون محفظة StarkNet لأول مرة ، فإنهم سيقومون تلقائيًا بنشر حساب عقد مخصص.سيتم ربط مثيل العقد هذا بفئة العقد التي يتم نشرها من قبل حزب مشروع المحفظة مقدمًا ، والتي يمكن أن تسمي بشكل مباشر بعض الوظائف المكتوبة في الفصل.
أدناه سوف نتحدث عن موضوع مثير للاهتمام:عند تلقي Airdrop Strk ، يجد الكثير من الناس أن Argent ومحفظة Braavos لا تتوافق مع بعضها البعض.بعد استيراد ملاحظات Argent إلى Braavos ، لا يمكن تصدير الحساب المقابل.هذا في الواقع لأن Argent و Bravos يستخدمان طرق حساب حساب مختلفة.عنوان الحساب الذي تم إنشاؤه بواسطة نفس المساعدات مختلفة.
على وجه التحديد ، في Starknet ، يمكن الحصول على عنوان العقد المنشور حديثًا من خلال خوارزمية اليقين.
Pedersen () في الصيغة أعلاه هي عملية سهلة الاستخدام في نظام ZK لإنشاء حساب. جوهر عنوان الحساب
تُظهر الصورة أعلاه بعض المعلمات المستخدمة عندما تمثل STARKNET “عنوان العقد الجديد”.
الملح هو قيمة الملح لعنوان العقد.هذا المتغير هو في الواقع لتجنب إدخال عنوان العقد مرارًا وتكرارًا.يتم تقديم class_hash في وقت سابق ، وقيم تجزئة الفئة المقابلة لمثيل العقد.تمثل Bocattor_CallData_Hash التجزئة نيابة عن عقد تهيئة العقد.
استنادًا إلى الصيغ المذكورة أعلاه ، يمكن للمستخدمين سلف عنوان العقد الذي تم إنشاؤه مسبقًا قبل نشر العقد على السلسلة.تتيح StarkNet للمستخدمين نشر عقود مباشرة بدون حساب StarkNet مقدمًا.
1. يحدد المستخدم أولاً مثيل العقد الذي يريد نشره ، وينبغي أن يرتبط فئة العقد ، واستخدام تجزئة الفئة كواحدة من معلمات التهيئة ، وحساب الملح للتعرف على عنوان العقد للعقد ؛
2. بعد أن يعرف المستخدم أين سينشر العقد ، قم أولاً بالتحويل إلى العنوان إلى مبلغ معين من ETH كرسوم نشر العقد.بشكل عام ، هذا الجزء من ETH عبر جسر السلسلة من L1 إلى شبكة StarkNet ؛
3. يبدأ المستخدم طلب المعاملة لنشر العقد.
في الحقيقة،يتم نشر جميع حسابات StarkNet من خلال العملية أعلاه ، ولكن معظم المحافظ تحمي التفاصيل في الداخل.يبدو الأمر كما لو أن حساب العقد يتم نشره بعد التحويل إلى ETH.
يوفر الحل أعلاه بعض مشاكل التوافق ، لأنه عندما تنشئ محافظ مختلفة عناوين حساب ، فإن النتائج الناتجة غير متسقة.يمكن خلط المحافظ فقط التي تلبي الشروط التالية:
-
المفتاح العام المشتق من المفتاح الخاص المستخدمة من قبل المحافظ هو نفس خوارزمية التوقيع ؛
-
عملية حساب الملح للمحفظة هي نفسها ؛
-
لا تختلف فئة العقد الذكي للمحفظة اختلافًا أساسيًا في تفاصيل التنفيذ ؛
-
ما إذا كان التوقيع الرقمي للمعاملة صحيحًا.
-
هل يمكن دفع رصيد بادئ المعاملة؟
-
خلال وقت الوحدة ، يمكن بدء عدد أقلام المعاملات في وقت الوحدة محدودًا ؛
-
وظيفة التحقق المخصصة في عقد STARKNET لها حدود في التعقيد ، ولن يتم تنفيذ وظيفة التوقيع المدمجة.يحد Starknet من الحد الأعلى لاستهلاك الغاز لوظيفة التوقيع.في الوقت نفسه ، لا يُسمح للعقود الأخرى في عقد الحساب بالاتصال بالعقود الأخرى في عقد الحساب.
-
الصفقة الأولى تسمح بالرمز المميز لعقد Defi
-
المعاملة الثانية تثير منطق عقد Defi
-
المعاملة الثالثة مخول للسماح بعقد Defi
-
أهم الخصائص الفنية لـ StarkNet ، بما في ذلك لغة القاهرة ، AA ، ومنطق الأعمال وتخزين الدولة النماذج الذكية المستقلة التي تفضي إلى ZK.
-
القاهرة هي لغة ZK شائعة لا يمكنها فقط تنفيذ العقود الذكية على StarkNet ، أو لتطوير التطبيقات التقليدية. يجب أن يتم نقل طبقة البرقعة إلى اللغة الوسطى ؛
-
تتضمن عقود StarkNet Smart منطق العمل وبيانات الحالة.
-
نموذج العقد الذكي المذكور أعلاه من StarkNet يفضي إلى إعادة استخدام الكود ، وإعادة استخدام حالة العقد ، وتخزين التخزين ، واكتشاف عقود القمامة ، وأيضًا مفضية لتحقيق موازاة التأجير والمعاملات.على الرغم من أن الاثنين الأخيرين لم يمتدوا بعد ، فإن بنية العقد الذكي في القاهرة قد خلقت “شروطًا ضرورية” لذلك.
-
لا يوجد سوى حساب عقد ذكي على سلسلة StarkNet ولا يوجد حساب EOA.يمتص حل AA فكرة ERC-4337 إلى حد ما ، مما يسمح للمستخدمين باختيار مخطط معالجة المعاملات المخصص للغاية.من أجل منع مشاهد الهجوم المحتملة ، قام Starknet بالعديد من التدابير المضادة وقام بإجراء استكشافات مهمة للنظام الإيكولوجي AA.
في الحالات السابقة ، يستخدم كل من Argent و Braavos خوارزمية توقيع ECDSA ، لكن طريقة حساب الملح لكلا الجانبين ستكون مختلفة.
نعود إلى موضوع تجريد الحساب.تقوم عصر StarkNet و Zksync بتقديم سلسلة من العمليات المشاركة في عملية معالجة المعاملات ، مثل المصادقة (التحقق من التوقيع الرقمي) ، ودفع رسوم الغاز ، والتي يتم نقلها جميعها خارج “أسفل السلسلة”.يمكن للمستخدمين تخصيص تفاصيل المنطق أعلاه في حسابهم.
على سبيل المثال ، يمكنك نشر وظيفة التحقق من التوقيع الرقمي المخصصة في حساب StarkNet Smart Contract الخاص بك ،عندما تتلقى عقدة StarkNet المعاملة التي بدأت فيها ، ستتصل بسلسلة من منطق معالجة المعاملات التي قمت بتخصيصها على الحساب على السلسلة.من الواضح أن هذا أكثر مرونة.
في تصميم Ethereum ، يتم كتابة المنطق مثل المصادقة (التوقيع الرقمي) في رمز العميل العقدة ، ولا يمكنه دعم تخصيص وظائف الحساب.
(تم نقل الرسم التخطيطي الأصلي AA الذي ذكره المهندس المعماري Starknet ، والتحقق من المعاملة والتحقق من الغاز المميز إلى العقد للتعامل معه. يمكن للجهاز الظاهري الأساسي للسلسلة استدعاء الوظيفة المخصصة أو المحددة للمستخدم)
وفقًا للموظفين الرسميين في Zksyncera و StarkNet ، تم تعديل هذه المجموعة من وظيفة الحساب ، وتم تعلم EIP-4337.ولكن الفرق هو أن Zksync و StarkNet دمج نوع الحساب من البداية ، وتوحدوا نوع التداول ، وتلقى جميع المعاملات مع مدخل موحد.نظرًا لأن Ethereum لها أعباء تاريخية وتأمل المؤسسة في تجنب المخططات التكرارية الخشنة مثل الشوكات الصعبة قدر الإمكان ، فإنها تدعم مخطط “المنحنى لإنقاذ البلد” EIP-4337.ولكن هذا التأثير هو أن حساب EOA وحل 4337 يتبنى كل منهما عملية معالجة معاملات مستقلة ، والتي تبدو محرجة ومتضخمة ، على عكس روح AA الأصلية.
(مصدر الصورة: ArgentWallet)
لكن تجريد حساب Starknet الأصلي لم يصل بعد إلى استحقاق كامل.من منظور التقدم العملي ، أدرك حساب AA Starknet تخصيص خوارزميات التحقق من التوقيع ، ولكن لتخصيص رسوم معالجة الرسوم ، لا تدعم فقط رسوم الغاز ETH و STRK ، ولم يدعم غاز الدفع الثالثلذا يمكن أن يقال أن تقدم Starknet على AA الأصلي“الحل النظري ناضج بشكل أساسي ، ولا يزال الحل العملي يتقدم.”
نظرًا لوجود حساب عقود ذكي فقط في StarkNet ، فإن العملية الكاملة لمعاملاتها تعتبر تأثير العقود الذكية للحساب.بادئ ذي بدء ، يتم قبول المعاملة من قبل تجمع الذاكرة في عقدة StarkNet (MEMPOOL) ، وتشمل خطوات التحقق:
تجدر الإشارة هنا إلى أن استخدام وظيفة التحقق من التوقيع المخصصة في العقد الذكي للحساب يعني وجود سيناريو للهجوم.لأن تجمع الذاكرة لا يتقاضى رسوم الغاز عند توقيع التحقق من المعاملة الجديدة(إذا قمت بفرض رسوم الغاز مباشرة ، فسوف يجلب سيناريوهات هجوم أكثر خطورة).يمكن للمستخدمين الخبيثين تخصيص وظائف التوقيع الفائقة في عقد حسابهم ، ثم بدء عدد كبير من المعاملات ، بحيث عندما يتم التحقق من هذه المعاملات ، فإنها ستسمي وظيفة التوقيع المعقدة المخصصة.
من أجل تجنب هذا الموقف ، لدى StarkNet الحدود التالية في المعاملات:
مخطط تدفق معاملة StarkNet هو كما يلي:
يجدر الإشارة ،من أجل زيادة تسريع عملية التحقق من المعاملة ، يقوم عميل العقدة StarkNet بتنفيذ خوارزمية التحقق من توقيع Bravos ومحافظ Argent.عندما تجد العقدة أن المعاملة تولد محافظ starknet السائدة ، فإنها ستسمي خوارزمية توقيع Bravos/Argent التي تأتي مع العميل.
بعد التحقق من بيانات المعاملة بواسطة الفارق (ستكون خطوات التحقق من الفارز أعمق بكثير من التحقق من تجمع الذاكرة) ، سيقوم الفارز بتعبئة المعاملة من تجمع الذاكرة وإرسالها إلى ZK لإثبات المولد.سيتم شحن المعاملة التي تدخل هذا الرابط في الغاز حتى لو فشل.
ولكن إذا كان القارئ يفهم تاريخ Starknet ،ستجد أن StarkNet المبكر لا يفرض رسومًا على المعاملة التي تفشل في تنفيذها ،إن فشل المعاملة الأكثر شيوعًا هو أن المستخدمين لديهم فقط صناديق ETH ، ولكن يتم نقل 10 ETH من الخارج.
لكن Starknet لن يتقاضى رسومًا على معاملات الفشل هذه في الماضي.سيؤدي هذا التداول بدون تكلف إلى إهدار موارد الحوسبة في عقدة StarkNet ، والتي ستستمد مشهد هجوم DDOS.على السطح ، يبدو أن رسوم المناولة للمعاملات الخاطئة تبدو سهلة للغاية ، لكنها في الواقع معقدة للغاية.أطلقت Starknet الإصدار الجديد من لغة القاهرة ، والذي يتولى إلى حد كبير حل مشكلة جمع غاز معاملات الفشل.
نعلم جميعًا أن إثبات ZK هو دليل فعال ، والنتيجة التي تفشل في التنفيذ غير صالحة ولا يمكنها ترك نتائج الإخراج على السلسلة.حاول أن تثبت ذلك بفعالية لإثبات أن تنفيذ تعليمات معينة غير صالح ، ولا يمكن إنشاء نتيجة الإخراج.لذلك ، في الماضي ، عندما تم إنشاء Starknet ، تم التخطيط مباشرة لمعاملات الفشل التي لا يمكن أن تنتج نتائج الإخراج.
اعتمد فريق Starknet لاحقًا حلاً أكثر ذكاءً ،يتم إنشاء لغة عقد جديدة Cairo1 ، بحيث “يمكن لجميع تعليمات المعاملات توليد نتائج الإخراج و Onchain.”للوهلة الأولى ، يمكن أن تنتج جميع المعاملات الإخراج ، مما يعني أنه لا يوجد خطأ منطقي ، وفي معظم الوقت تفشل المعاملة لأن مواجهة بعض الأخطاء ، مما يؤدي إلى توقف تنفيذ التعليمات.
من الصعب تحقيق الانتصاب أبدًا والإخراج الناجح للمعاملة ، ولكن في الواقع ، هناك بديل بسيط للغاية أنه عندما تواجه المعاملة أخطاء منطقية ، فإنه يتيح له أيضًا إنتاج نتيجة الإخراج. سيعود الإرجاع إلى إحدى القيمة الخاطئة.
لكن انتبه ، وإرجاع القيمة الخاطئة ، وإرجاع نتيجة الإخراج ، أي ،في القاهرة 1 ، بغض النظر عما إذا كانت التعليمات قد واجهت أخطاء منطقية أو ما إذا كانت هناك مقاطعة مؤقتة ، يمكن إنتاج نتيجة الإخراج و onchain.يمكن أن تكون نتيجة الإخراج هذه صحيحة أو معلومات خطأ خاطئة.
لـ exmple ، إذا كان هناك قطاع الكود التالي:
_ paricances: read (from) -amount قد تقارن عن خطأ بسبب الفائض أعد كتابة النموذج التالي ، لا يزال يتم إرجاع نتيجة الإخراج عند فشل المعاملة ، تاركًا السلسلة ،من منظور التصور ، يكون هذا كما لو أن جميع المعاملات يمكن أن تترك ناتج التداول بسلاسة على السلسلة ، ويبدو أنه من المعقول جمع رسوم المناولة.
نظرة عامة على عقد Starknetaa
بالنظر إلى أن بعض القراء قد يكون لديهم خلفية برمجة في هذه المقالة ، هناك عرض موجز لواجهة عقد تجريد الحساب في StarkNet:
يتم استخدام __validate_declare__ في الواجهة أعلاه للتحقق من معاملة الإعلان التي بدأها المستخدم ، بينما يتم استخدام __validate__ للتحقق من المعاملات العامة.يمكننا أن نرى أن حساب عقد StarkNet يدعم Multical ، وهو مكالمات متعددة بشكل افتراضي.يمكن أن يحقق التخصيص المتعدد بعض الميزات المثيرة للاهتمام للغاية ، مثل تعبئة المعاملات الثلاثة التالية عند إجراء بعض التفاعل Defi:
بالطبع ، نظرًا لأن العديد من المكالمات ذرية ، فهناك بعض الاستخدام الأكثر تعقيدًا ، مثل إجراء بعض المعاملات التحكيم.
لخص
<-style-type>