تحليل أمان عقد سوي وتحديات النظام البيئي

متقدم12/17/2024, 5:30:04 AM
كعضو مهم في Move Ecosystem، Sui ملتزمة بتوفير خدمات معاملات سريعة وآمنة لمجموعة متنوعة من سيناريوهات تطبيقات البلوكشين. في هذه المقالة، ستساعدك Beosin على فهم التحديات الأمنية التي يواجهها مستخدمو ومطورو بيئة Sui بخبرة عدة سنوات في مجال التدقيق الأمني.

منذ شهر أغسطس، كان تطور نظام SUI سريعًا. وفقًا لـ DefiLlama ، تجاوز إجمالي قيمة الأصول المقيدة في SUI 1 مليار دولار، وزادت بنسبة 200٪ في الشهرين الماضيين، وحاليًا يتجاوز حجم التداول في Cetus، وهو Dex يعتمد على SUI، 160 مليون دولار في اليوم.

في 9 أكتوبر، تم إطلاق USDC الأصلي في SUI على الشبكة الرئيسية، والتي ستستمر في جذب المزيد من الأموال إلى النظام البيئي SUI. كعضو مهم في بيئة Move، تلتزم SUI بتوفير خدمات تحويل سريعة وآمنة لمجموعة متنوعة من سيناريوهات تطبيقات بلوكتشين.

في هذه المقالة، سيساعدك Beosin على فهم التحديات الأمنية التي تواجه مستخدمي ومطوري نظام SUI بسنوات من خبرة التدقيق الأمني.

أمان العقد

تستخدم سوي لغة Move كلغة برمجة للعقود الذكية. تم تصميم Move ليكون لغة برمجة بايت كود قابلة للتنفيذ مع خوارزميات أمان مدمجة ومحقق بايت كود، وتستخدم المكالمات الثابتة عند استدعاء العقود.

تسمح هذه التصميمات لـ Move بالتعامل مع الثغرات الشائعة في العقود الذكية ، مثل هجمات reentrancy وتجاوز الصحيفة الإجمالية والإنفاق المزدوج ومشاكل المترجم المحتملة ، ولكن لا يزال من الممكن أن يقوم المطورون عن غير قصد بإدخال ثغرات في تطوير العقد. كإجراء استجابة ، قدمت Beosin Move Lint في عام 2023 ، وهي أداة كشف ثابتة تقوم بتحليل الكود واكتشاف المخاطر الأمنية المحتملة في العقود وتحديد نقاط الضعف.

بالإضافة إلى أدوات الكشف، فإن ما يلي هي قضايا أمان يحتاج المطورون إلى إيلاء اهتمام إضافي لها في تطوير عقود الحركة لتحسين الأمان:

1) تجاوز الصحيح

بالمقارنة مع لغات العقد الذكية الأخرى، يقوم Move تلقائيًا بفحص مشاكل تجاوز الحد الافتراضي عند أداء عمليات الرياضيات الصحيحة، مما يمكن أن يمنع عددًا كبيرًا من مشاكل تجاوز الحد الافتراضي، ولكن هناك نقطتان يجب ملاحظتهما:

عمليات البت في لغة Move لا تقوم تلقائيًا بإجراء فحوصات التجاوز لأن عمليات البت هي أساسًا عمليات على مستوى البت على البيانات التي تتصرف بشكل مختلف عن العمليات الصحيحة.

عندما يتم تنفيذ التحقق التلقائي من التجاوز لـ Move، يقوم تنفيذ الدالة بإلقاء استثناء، والذي في حالة التصميم غير السليم، قد يتسبب في عدم تنفيذ أعمال المشروع كما هو متوقع، مما يؤدي إلى هجمات DoS.

2) التحكم في الإذن والوصول

يجب توثيق تمرير الكائنات المميزة واستدعاءات الوظائف المميزة بعناية، حيث تشترك هذه الوظائف والكائنات في تأمين التمويل. بالإضافة إلى ذلك، يجب فحص أنواع الكائنات لتحديد ما إذا كانت خاصة أم مشتركة. إذا تم تحويل كائن بشكل غير صحيح من كائن خاص إلى كائن مشترك، فقد يتمكن المستخدمون غير المصرح لهم من الوصول إلى الكائن، مما يشكل خطرًا أمنيًا محتملًا.

يمكن للمطورين استخدام Move Prover للتحقق من أن البرنامج يفرض سياسة تحكم في الوصول صريحة. على سبيل المثال، في std::offer، يمكننا أن نرى أن الوظيفة تتوقف عندما لا يكون المستلم على القائمة البيضاء:

3) مشكلة تبعية ترتيب الصفقات

اعتماد ترتيب المعاملات (TOD) يشير إلى حقيقة أن سلوك العقد قد يكون له نتائج مختلفة اعتمادًا على ترتيب تنفيذ المعاملات، خاصة في بيئة مركزية حيث يمكن للمنقب أو التحقق اختيار كيفية ترتيب المعاملات. قد يحمل مخاطر مثل هجمات الجبهة المتقدمة.

في SUI، من المازال من مسؤولية منتج الكتلة تنفيذ أمر المعاملات، لذا يمكن أن تتأثر عقود MOVE لا تزال بهذه المشكلة إذا كانت مصممة للتعتمد على ترتيب المعاملات لتغييرات الحالة.

4) مشكلة استهلاك الغاز

على سلسلة سوي، يتجلى مشكلة الغاز في عقود موف الذكية بشكل رئيسي في تكاليف الحساب والتخزين اللازمة لتنفيذ العقد. مع زيادة تعقيد العقد وتغييرات الحالة، يزداد استهلاك الغاز على النحو المناسب. يحتاج المطورون إلى التركيز على تحسين منطق العقد وتقليل الحسابات والتحديثات غير الضرورية لتقليل تكاليف المعاملات للمستخدمين، وخاصةً تجنب حدوث حالة التكرار غير المضبوطة في العقد، والتي قد تكون بسبب نقص الغاز وعدم قدرتها على تنفيذ الأعمال بشكل صحيح.

5) دقة الحساب

حاليًا ، النوع الرقمي المدعوم بواسطة Move هو عدد صحيح غير مؤقت ، ولا يدعم الأعداد العشرية ، لذلك سيتم قطع الجزء العشري وتقريبه إلى الأسفل أثناء عمليات القسمة ، مما يؤدي إلى نتائج حسابية غير دقيقة ، والتي قد تؤثر على بعض السياسات الرئيسية ، وتؤدي إلى خسارة الإيرادات ، وحتى تصبح ثغرة أمان.

بالنسبة لهذه المشكلة، فإن التدابير العادية للتخفيف هي تمديد الدقة، ولكن يجب ملاحظة أن الدقة يجب استعادتها عند الحصول على النتيجة النهائية.

6) إدارة الكائنات

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

7) مشاكل تصميم وتنفيذ منطق الأعمال

على سبيل المثال، مع تنفيذ قرض البرق في مشروع SUI DeFi، يمكن للمهاجمين استخدام قرض الفلاش لتنفيذ هجمات أموال كبيرة مثل التلاعب بالأسعار.

في ميزة تبديل الرمز AMM الشائعة ، يمكن للمطورين استخدام Move Prover للتحقق من أن عدد الرموز قد تغير بشكل صحيح:

على سبيل المثال، يجب أن تكون بروتوكولات الإقراض دائمًا مؤمّنة بشكل كامل بعد سلسلة من الودائع والاقتراضات والسحوبات. في حالة إلغاء دفتر الأوامر لاتفاقية تداول العقود الدائمة على السلسلة بعد وضع الأمر، لا يجب أن يحدث تغيير في دفتر الأستاذ، الخ.، والذي يحتاج للتحقق منه والتحقق منه من قبل المطور.

التحديات في نظام SUI

في الوقت الحالي، تتفتح DeFi و Memecoins من SUI، وقد جذبت حجم التداول وقيمة القرض إلى نمو متفجر. وبعد ذلك، هناك المزيد والمزيد من أنواع الاحتيال والتداولات المزعجة التي يحتاج المستخدمون إلى تجنبها.

صيد السمك

في هذا العام، ظهرت عملية احتيالية تسمى Suisses في Sui Eco، مما سمح للعديد من المستخدمين بسرقة أصولهم. عندما يتصل المستخدم بمحفظة على موقع Suisses وينقر على الزر المطلوب، يظهر طلب تحويل أصول المستخدم. إذا قام المستخدم بتوقيع العملية، سيجد أن جميع أصول محفظته قد تم تحويلها.

نظرًا لخصائص سوي: كل شيء هو كائن ، ليس فقط الرموز في محفظة المستخدم ، بل أيضًا NFT هو الكائن ، بالإضافة إلى مشاركة المستخدم في تعدين DeFi ، ورهن السيولة وشهادات أخرى. إذا حدث هجوم احتيالي ، فقد يتم تحويل جميع أصول مستخدم داخل نظام سوي من قبل المتسلل في وقت واحد.

عمليات احتيال الرمز المميز

هناك العديد من الرموز المزيفة والأوعية العسل في نظام SUI. على وجه الخصوص، عندما يتداول المستخدمون العملات الميمية في نظام SUI، قد يتم القبض عليهم عن طريق الخطأ.

عند إنشاء الرموز في SUI، كما هو موضح أدناه، يمكن للقراصنة تعريف نفس الأيقونات والأسماء كرموز شعبية أو رئيسية، مما يجعلها لا تميز بين المستخدمين العامة. لذلك، يحتاج المستخدمون إلى التحقق من صحة تنسيق الرمز عند شراء الرمز.

بالإضافة إلى ذلك، يمكن للمخترقين أيضًا إضافة وظيفة قائمة الرفض إلى عقد الرمز، بحيث لا يمكن للمستخدمين الذين يشترون الرمز بيعه، مما يتسبب في خسائر للمستخدمين.

تحدي MEV

يقف MEV للقيمة القصوى المستخرجة. كان يُشير إلى قيمة الاستخراج منقب الأصلية، حيث يكسب المنقبون في شبكة BTC مكافآت تتجاوز رسوم الكتلة والشبكة من خلال إعادة ترتيب المعاملات في الكتل. لا يمتلك MEV علاقة بنوع شبكة البلوكشين. يوجد MEV في جميع البلوكشينات، وSUI ليست استثناءً.

تستخدم Sui Narwhal كحوض ذاكرة لتعيين المعاملات غير المكتملة إلى العقد ، وتستخدم خوارزمية Bullshark كمحرك توافق لفرز المعاملات.

قاعدة ترتيب SUI للمعاملات تعتمد على رسوم الغاز. بالإضافة إلى ذلك، نظرًا لأن SUI يعتمد على نظام تنفيذ المعاملات الذي يجمع بين التوالي والتوازي، يمكن تنفيذ المعاملات التي تشترك في نفس حالة حوض المعاملات AMM بتسلسل فقط. لذلك، فإن هجوم الساندويتش / المعاملة المقدمة يمكن تنفيذه. يمكن للمهاجم أن يشن هجوم الساندويتش من خلال رسوم الغاز الأعلى، بحيث يتعرض المستخدمون الذين يشاركون في التداولات في DeFi للخسائر.

تنصل من المسؤولية:

  1. تمت إعادة طبع هذه المقالة من [ بيوسين]. جميع حقوق النشر تنتمي إلى الكاتب الأصلي [بيوسين]. إذا كانت هناك اعتراضات على هذا النشر المكرر، يرجى التواصل معبوابة تعلمالفريق، وسوف يتعاملون معها على الفور.
  2. تنصل المسؤولية: الآراء والآراء المعبر عنها في هذه المقالة هي فقط تلك الخاصة بالكاتب ولا تشكل أي نصيحة استثمارية.
  3. يتم إجراء ترجمات المقال إلى لغات أخرى من قبل فريق gate Learn. ما لم يذكر غير ذلك، فإن نسخ أو توزيع أو نسخ المقالات المترجمة ممنوع.

تحليل أمان عقد سوي وتحديات النظام البيئي

متقدم12/17/2024, 5:30:04 AM
كعضو مهم في Move Ecosystem، Sui ملتزمة بتوفير خدمات معاملات سريعة وآمنة لمجموعة متنوعة من سيناريوهات تطبيقات البلوكشين. في هذه المقالة، ستساعدك Beosin على فهم التحديات الأمنية التي يواجهها مستخدمو ومطورو بيئة Sui بخبرة عدة سنوات في مجال التدقيق الأمني.

منذ شهر أغسطس، كان تطور نظام SUI سريعًا. وفقًا لـ DefiLlama ، تجاوز إجمالي قيمة الأصول المقيدة في SUI 1 مليار دولار، وزادت بنسبة 200٪ في الشهرين الماضيين، وحاليًا يتجاوز حجم التداول في Cetus، وهو Dex يعتمد على SUI، 160 مليون دولار في اليوم.

في 9 أكتوبر، تم إطلاق USDC الأصلي في SUI على الشبكة الرئيسية، والتي ستستمر في جذب المزيد من الأموال إلى النظام البيئي SUI. كعضو مهم في بيئة Move، تلتزم SUI بتوفير خدمات تحويل سريعة وآمنة لمجموعة متنوعة من سيناريوهات تطبيقات بلوكتشين.

في هذه المقالة، سيساعدك Beosin على فهم التحديات الأمنية التي تواجه مستخدمي ومطوري نظام SUI بسنوات من خبرة التدقيق الأمني.

أمان العقد

تستخدم سوي لغة Move كلغة برمجة للعقود الذكية. تم تصميم Move ليكون لغة برمجة بايت كود قابلة للتنفيذ مع خوارزميات أمان مدمجة ومحقق بايت كود، وتستخدم المكالمات الثابتة عند استدعاء العقود.

تسمح هذه التصميمات لـ Move بالتعامل مع الثغرات الشائعة في العقود الذكية ، مثل هجمات reentrancy وتجاوز الصحيفة الإجمالية والإنفاق المزدوج ومشاكل المترجم المحتملة ، ولكن لا يزال من الممكن أن يقوم المطورون عن غير قصد بإدخال ثغرات في تطوير العقد. كإجراء استجابة ، قدمت Beosin Move Lint في عام 2023 ، وهي أداة كشف ثابتة تقوم بتحليل الكود واكتشاف المخاطر الأمنية المحتملة في العقود وتحديد نقاط الضعف.

بالإضافة إلى أدوات الكشف، فإن ما يلي هي قضايا أمان يحتاج المطورون إلى إيلاء اهتمام إضافي لها في تطوير عقود الحركة لتحسين الأمان:

1) تجاوز الصحيح

بالمقارنة مع لغات العقد الذكية الأخرى، يقوم Move تلقائيًا بفحص مشاكل تجاوز الحد الافتراضي عند أداء عمليات الرياضيات الصحيحة، مما يمكن أن يمنع عددًا كبيرًا من مشاكل تجاوز الحد الافتراضي، ولكن هناك نقطتان يجب ملاحظتهما:

عمليات البت في لغة Move لا تقوم تلقائيًا بإجراء فحوصات التجاوز لأن عمليات البت هي أساسًا عمليات على مستوى البت على البيانات التي تتصرف بشكل مختلف عن العمليات الصحيحة.

عندما يتم تنفيذ التحقق التلقائي من التجاوز لـ Move، يقوم تنفيذ الدالة بإلقاء استثناء، والذي في حالة التصميم غير السليم، قد يتسبب في عدم تنفيذ أعمال المشروع كما هو متوقع، مما يؤدي إلى هجمات DoS.

2) التحكم في الإذن والوصول

يجب توثيق تمرير الكائنات المميزة واستدعاءات الوظائف المميزة بعناية، حيث تشترك هذه الوظائف والكائنات في تأمين التمويل. بالإضافة إلى ذلك، يجب فحص أنواع الكائنات لتحديد ما إذا كانت خاصة أم مشتركة. إذا تم تحويل كائن بشكل غير صحيح من كائن خاص إلى كائن مشترك، فقد يتمكن المستخدمون غير المصرح لهم من الوصول إلى الكائن، مما يشكل خطرًا أمنيًا محتملًا.

يمكن للمطورين استخدام Move Prover للتحقق من أن البرنامج يفرض سياسة تحكم في الوصول صريحة. على سبيل المثال، في std::offer، يمكننا أن نرى أن الوظيفة تتوقف عندما لا يكون المستلم على القائمة البيضاء:

3) مشكلة تبعية ترتيب الصفقات

اعتماد ترتيب المعاملات (TOD) يشير إلى حقيقة أن سلوك العقد قد يكون له نتائج مختلفة اعتمادًا على ترتيب تنفيذ المعاملات، خاصة في بيئة مركزية حيث يمكن للمنقب أو التحقق اختيار كيفية ترتيب المعاملات. قد يحمل مخاطر مثل هجمات الجبهة المتقدمة.

في SUI، من المازال من مسؤولية منتج الكتلة تنفيذ أمر المعاملات، لذا يمكن أن تتأثر عقود MOVE لا تزال بهذه المشكلة إذا كانت مصممة للتعتمد على ترتيب المعاملات لتغييرات الحالة.

4) مشكلة استهلاك الغاز

على سلسلة سوي، يتجلى مشكلة الغاز في عقود موف الذكية بشكل رئيسي في تكاليف الحساب والتخزين اللازمة لتنفيذ العقد. مع زيادة تعقيد العقد وتغييرات الحالة، يزداد استهلاك الغاز على النحو المناسب. يحتاج المطورون إلى التركيز على تحسين منطق العقد وتقليل الحسابات والتحديثات غير الضرورية لتقليل تكاليف المعاملات للمستخدمين، وخاصةً تجنب حدوث حالة التكرار غير المضبوطة في العقد، والتي قد تكون بسبب نقص الغاز وعدم قدرتها على تنفيذ الأعمال بشكل صحيح.

5) دقة الحساب

حاليًا ، النوع الرقمي المدعوم بواسطة Move هو عدد صحيح غير مؤقت ، ولا يدعم الأعداد العشرية ، لذلك سيتم قطع الجزء العشري وتقريبه إلى الأسفل أثناء عمليات القسمة ، مما يؤدي إلى نتائج حسابية غير دقيقة ، والتي قد تؤثر على بعض السياسات الرئيسية ، وتؤدي إلى خسارة الإيرادات ، وحتى تصبح ثغرة أمان.

بالنسبة لهذه المشكلة، فإن التدابير العادية للتخفيف هي تمديد الدقة، ولكن يجب ملاحظة أن الدقة يجب استعادتها عند الحصول على النتيجة النهائية.

6) إدارة الكائنات

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

7) مشاكل تصميم وتنفيذ منطق الأعمال

على سبيل المثال، مع تنفيذ قرض البرق في مشروع SUI DeFi، يمكن للمهاجمين استخدام قرض الفلاش لتنفيذ هجمات أموال كبيرة مثل التلاعب بالأسعار.

في ميزة تبديل الرمز AMM الشائعة ، يمكن للمطورين استخدام Move Prover للتحقق من أن عدد الرموز قد تغير بشكل صحيح:

على سبيل المثال، يجب أن تكون بروتوكولات الإقراض دائمًا مؤمّنة بشكل كامل بعد سلسلة من الودائع والاقتراضات والسحوبات. في حالة إلغاء دفتر الأوامر لاتفاقية تداول العقود الدائمة على السلسلة بعد وضع الأمر، لا يجب أن يحدث تغيير في دفتر الأستاذ، الخ.، والذي يحتاج للتحقق منه والتحقق منه من قبل المطور.

التحديات في نظام SUI

في الوقت الحالي، تتفتح DeFi و Memecoins من SUI، وقد جذبت حجم التداول وقيمة القرض إلى نمو متفجر. وبعد ذلك، هناك المزيد والمزيد من أنواع الاحتيال والتداولات المزعجة التي يحتاج المستخدمون إلى تجنبها.

صيد السمك

في هذا العام، ظهرت عملية احتيالية تسمى Suisses في Sui Eco، مما سمح للعديد من المستخدمين بسرقة أصولهم. عندما يتصل المستخدم بمحفظة على موقع Suisses وينقر على الزر المطلوب، يظهر طلب تحويل أصول المستخدم. إذا قام المستخدم بتوقيع العملية، سيجد أن جميع أصول محفظته قد تم تحويلها.

نظرًا لخصائص سوي: كل شيء هو كائن ، ليس فقط الرموز في محفظة المستخدم ، بل أيضًا NFT هو الكائن ، بالإضافة إلى مشاركة المستخدم في تعدين DeFi ، ورهن السيولة وشهادات أخرى. إذا حدث هجوم احتيالي ، فقد يتم تحويل جميع أصول مستخدم داخل نظام سوي من قبل المتسلل في وقت واحد.

عمليات احتيال الرمز المميز

هناك العديد من الرموز المزيفة والأوعية العسل في نظام SUI. على وجه الخصوص، عندما يتداول المستخدمون العملات الميمية في نظام SUI، قد يتم القبض عليهم عن طريق الخطأ.

عند إنشاء الرموز في SUI، كما هو موضح أدناه، يمكن للقراصنة تعريف نفس الأيقونات والأسماء كرموز شعبية أو رئيسية، مما يجعلها لا تميز بين المستخدمين العامة. لذلك، يحتاج المستخدمون إلى التحقق من صحة تنسيق الرمز عند شراء الرمز.

بالإضافة إلى ذلك، يمكن للمخترقين أيضًا إضافة وظيفة قائمة الرفض إلى عقد الرمز، بحيث لا يمكن للمستخدمين الذين يشترون الرمز بيعه، مما يتسبب في خسائر للمستخدمين.

تحدي MEV

يقف MEV للقيمة القصوى المستخرجة. كان يُشير إلى قيمة الاستخراج منقب الأصلية، حيث يكسب المنقبون في شبكة BTC مكافآت تتجاوز رسوم الكتلة والشبكة من خلال إعادة ترتيب المعاملات في الكتل. لا يمتلك MEV علاقة بنوع شبكة البلوكشين. يوجد MEV في جميع البلوكشينات، وSUI ليست استثناءً.

تستخدم Sui Narwhal كحوض ذاكرة لتعيين المعاملات غير المكتملة إلى العقد ، وتستخدم خوارزمية Bullshark كمحرك توافق لفرز المعاملات.

قاعدة ترتيب SUI للمعاملات تعتمد على رسوم الغاز. بالإضافة إلى ذلك، نظرًا لأن SUI يعتمد على نظام تنفيذ المعاملات الذي يجمع بين التوالي والتوازي، يمكن تنفيذ المعاملات التي تشترك في نفس حالة حوض المعاملات AMM بتسلسل فقط. لذلك، فإن هجوم الساندويتش / المعاملة المقدمة يمكن تنفيذه. يمكن للمهاجم أن يشن هجوم الساندويتش من خلال رسوم الغاز الأعلى، بحيث يتعرض المستخدمون الذين يشاركون في التداولات في DeFi للخسائر.

تنصل من المسؤولية:

  1. تمت إعادة طبع هذه المقالة من [ بيوسين]. جميع حقوق النشر تنتمي إلى الكاتب الأصلي [بيوسين]. إذا كانت هناك اعتراضات على هذا النشر المكرر، يرجى التواصل معبوابة تعلمالفريق، وسوف يتعاملون معها على الفور.
  2. تنصل المسؤولية: الآراء والآراء المعبر عنها في هذه المقالة هي فقط تلك الخاصة بالكاتب ولا تشكل أي نصيحة استثمارية.
  3. يتم إجراء ترجمات المقال إلى لغات أخرى من قبل فريق gate Learn. ما لم يذكر غير ذلك، فإن نسخ أو توزيع أو نسخ المقالات المترجمة ممنوع.
เริ่มตอนนี้
สมัครและรับรางวัล
$100