الخلفية
منذ بعض الوقت، تعرفنا لأول مرة على TON: الحساب، يناقش الرمز المميز والمعاملات وأمن الأصول خصائص TON ومشكلات أمان أصول المستخدم. اليوم، دعونا نتعرف على منصة blockchain أخرى عالية الأداء - Sui، والتي تتمتع بعدد من التقنيات المبتكرة والميزات الفريدة، والتي تجذب انتباه المطورين والباحثين. تركز Sui على توفير تجربة معاملات سريعة وآمنة، ومناسبة لسيناريوهات التطبيقات المختلفة. ستساعد هذه المقالة القراء على فهم Sui من خلال شرح نموذج حساب Sui وإدارة الرمز المميز وآلية المعاملات وأمن الأصول.

نموذج الحساب
العنوان
تتبع Sui مواصفات المحفظة المقبولة على نطاق واسع في صناعة العملات المشفرة، بما في ذلك BIP-32 (ومتغيرها SLIP-0010)، وBIP-44، وBIP-39، من أجل توفير إدارة المفاتيح للمستخدمين.

لاشتقاق عنوان Sui بحجم 32 بايت، تقوم Sui بربط علامة نظام التوقيع (بايت واحد) مع بايتات المفتاح العام باستخدام وظيفة التجزئة BLAKE2b (إخراج 256 بت). تدعم عناوين Sui حاليًا Ed25519 وSecp256k1 وSecp256r1 وMultiSig، ووحدات بايت العلامة المقابلة هي 0x00 و0x01 و0x02 و0x03 على التوالي.
التوازن
في Sui، كل شيء عبارة عن كائن، رصيد المستخدم هو أيضًا كائن. أثناء عملية النقل، إذا كان الرصيد الموجود في الكائن لا يساوي القيمة المطلوبة، فيجب تقسيم الكائنات أو دمجها. على سبيل المثال، إذا كان لديك كائن يحتوي على 100 SUI، ولكنك تريد نقل 30 SUI فقط، فسيقوم النظام بتقسيم هذا الكائن إلى كائنين: أحدهما يحتوي على 30 SUI، والآخر يحتوي على 70 SUI. يمكنك نقل الكائنات التي تحتوي على 30 SUI والاحتفاظ بالكائنات المتبقية. على العكس من ذلك، إذا كانت هناك حاجة إلى مبلغ أكبر، يمكنك أيضًا دمج كائنات توازن متعددة لتكوين كائن مبلغ أكبر.

إدارة الرمز المميز
تنفذ Sui رسميًا الكود القياسي للعملة. عند إصدار العملة، يحتاج المطورون فقط إلى إدخالها في اتصل بالعقد `use sui::coin;` لاستخدام جميع وظائف هذه المكتبة القياسية.
نظرًا لاستخدام لغة Move، فهي تختلف عن لغات البرمجة الأخرى الشائعة الاستخدام في blockchain (مثل Solidity) التي يحتاج المطورون إلى فهمها وانتبه لبعض الأشياء عند استخدامه للحصول على وظائف أو ميزات فريدة، فلنلقِ نظرة على جزء من التعليمات البرمجية:

هذا عقد كامل لإصدار العملة. العقد الذكي يتوافق التصميم على Sui مع كتل مثل Ethereum أو Solana. منصة السلسلة مختلفة، ولا يمكننا رؤية إدارة الأذونات في الكود المصدري. عند إنشاء عملة باستخدام هذه الوظيفة (coin::create_regulated_currency)، يتلقى منشئ العقد كائن TreasureCap الضروري لسك عملة جديدة أو تدمير عملة موجودة. فقط العناوين التي يمكنها الوصول إلى هذا الكائن يمكنها الحفاظ على إصدار العملة.
بالنسبة للمستخدم الذي يتلقى العملات المعدنية، يتحكم حسابه في ملكية هذه الرموز المميزة، عند استدعاء العقد الذكي لاستخدام هذه الرموز المميزة، فإنه يحتاج أيضًا إلى تمريرها الأشياء وتوقيع الصفقة.
آلية المعاملة
المعاملة هي مفهوم blockchain الأساسي في العالم، إنها طريقة للتفاعل مع blockchain. تُستخدم المعاملات لتغيير حالة blockchain وهي الطريقة الوحيدة. في لغة البرمجة Move التي تستخدمها Sui، تُستخدم المعاملات لاستدعاء الوظائف في الحزم، ونشر حزم جديدة، وترقية الحزم الموجودة.
عند إنشاء المعاملات، يجب أن تحدد كل معاملة بوضوح الكائن الذي تعمل عليه! وهذا يشبه إلى حد ما معاملات Solana التي تتطلب رقم حساب.
المحتويات المضمنة في المعاملة:
المرسل--الحساب الذي وقع المعاملة
قائمة التعليمات (أو التعليمات) chain) - العملية المطلوب تنفيذها
إدخال الأمر - معلمات الأمر: نص عادي - قيمة بسيطة، مثل رقم أو سلسلة أو كائن - الكائن الذي ستصل إليه المعاملة
كائن الغاز - كائن العملة المستخدمة لدفع ثمن المعاملة
سعر الغاز و الميزانية - تكلفة المعاملة
أمان العقد
تستخدم Sui لغة Move كلغة برمجة للعقود الذكية، والتي يمكنها إلى حد ما حل مشكلات الثغرات الأمنية المتكررة في Solidity، مثل هجمات إعادة الدخول، وتجاوزات الأعداد الصحيحة، والإنفاق المزدوج، وDoS الهجمات ومشاكل المترجم، ولكن تجنب عدم تمكن المطورين من إدخال أخطاء في التعليمات البرمجية، لذلك لا تزال عمليات التدقيق الأمني ضرورية. فيما يلي بعض الأمور التي يجب على المطورين الانتباه إليها أثناء عملية التطوير:
1. التحقق من الأذونات:تحليل الكائنات المستلمة حسب نوع الوظائف الخارجية، بالنسبة للوظائف المميزة التي تتضمن عمليات حساسة، تحتاج إلى التأكد من أن الكائن الذي تم تمريره هو كائن مميز. إذا استقبلت إحدى الوظائف كائنًا مميزًا واستخدمته، فيجب أن يكون المتصل بالوظيفة هو المالك القانوني للكائن.
2. التحقق من الوظائف الخارجية: لا ينبغي استدعاء بعض الوظائف بشكل مباشر خارجيًا إذا كانت هناك واجهات وظيفية لا ينبغي كشفها خارجيًا، يجب على المطور أن يقترح عدم نشر الوظيفة للعامة.
3. فحص تحليل الكائنات: نظرًا لأنه يمكن تحويل الكائنات الموجودة في Sui إلى كائنات عامة (كائن مشترك)، يقوم المطورون بفرز أنواع جميع الكائنات المستخدمة، والتأكد مما إذا كانت ثابتة أم عامة، وما إذا كانت هناك أية أخطاء. إذا تم تحويل كائن يجب أن يكون خاصًا إلى كائن عام، فيمكن لأي شخص استخدام الكائن، مما يشكل خطرًا أمنيًا.
4. التحقق من استهلاك العملة: يختلف نموذج رمز Sui عن السلاسل الأخرى، حيث يسمح تصميمه بتضمين الكائنات الرمزية والاحتفاظ بها بواسطة كائنات أخرى، ويمكن أيضًا تقسيمها، مما يؤدي إلى عدة أوضاع لاستهلاك الرمز المميز:
انقل كائن الرمز المميز مباشرةً إلى كائن آخر؛
أنشئ كائنًا جديدًا بعد الضبط الهيكلي للرمز المميز الكائن، ثم انقله إلى الكائن الهدف؛
قم بتقسيم الكائن المميز ونقل التقسيم أجزاء إلى الكائن الجديد.
لذلك، في حالة استهلاك الرموز المميزة، يحتاج المطورون إلى التحقق من النقاط التالية:
5. هجوم التلاعب بالأسعار في Oracle:إذا كان Sui يستخدم العقد أوراكل للحصول على الأسعار، ويجب عليك أيضًا الانتباه إلى إمكانية التلاعب بالأسعار. يمكن للمطورين منع خطر التلاعب بمصدر بيانات واحد عن طريق تقديم مصادر بيانات متعددة وآليات الإجماع. بالإضافة إلى ذلك، يمكن أيضًا استخدام متوسط السعر المرجح بالوقت لمنع مخاطر التلاعب بالأوراكل.
6. هجوم الحوكمة: في العقد الخاص بـ Sui، إذا لم يتم تصميم حقوق التصويت لرمز الحوكمة بشكل معقول، فسيتم ذلك يمكن أيضًا مواجهة مخاطر هجمات الحوكمة، حيث يمكنك الرجوع إلى منطق حوكمة المجتمع لبعض المنظمات اللامركزية الناضجة.
7. هجوم المراجحة: إذا كان التصميم المنطقي غير معقول، فإن عقد DeFi على Sui يتعرض أيضًا لخطر هجوم المراجحة. يجب على المطورين مراجعة المنطق الموجود في العقد بعناية عند التطوير لتجنب استغلالهم من قبل المهاجمين.
8. هجوم الإيداع المزيف: عند التعامل مع إيداعات Sui Token، تحتاج منصات التبادل أو المطورون أيضًا إلى الانتباه إلى التحقق من حالة سواء كانت المعاملة ناجحة، فإن معرف الحزمة الخاص بالرمز المميز صحيح لمنع هجمات إعادة الشحن الزائفة.
الملخص
في هذه المقالة، ناقشنا بإيجاز فكرة Sui تتضمن ميزات التصميم نموذج الحساب وإدارة الرمز المميز وآلية المعاملات وأمن العقد. باستخدام لغة البرمجة Move، لا تضمن Sui الأداء العالي وزمن الوصول المنخفض فحسب، بل تقدم أيضًا نماذج بيانات مبتكرة وطرق تخزين الكائنات، مما يؤدي إلى تحسين الأمان والمرونة بشكل كبير. بالمقارنة مع منصات blockchain الأخرى، تعمل لغة Move بشكل جيد في منع نقاط الضعف الشائعة في العقود الذكية (مثل التجاوزات، وهجمات إعادة الدخول، وما إلى ذلك)، مما يجعل Sui أكثر قوة وموثوقية على المستوى الفني. ومع ذلك، لا يزال المطورون بحاجة إلى الاهتمام بالأمن على مستوى منطق الأعمال، خاصة فيما يتعلق بإدارة الأذونات، واستخدام أنواع الكائنات، واستهلاك الرموز المميزة، والحذر من خسائر الأصول بسبب الأخطاء أو التصميم غير المناسب في التعليمات البرمجية.
الرابط المرجعي:
https://docs. sui.io/
https://docs.sui.io/standards/coin
https://move-book.com/