﻿---
title: "كيفية قراءة تدقيق عقد ذكي"
description: "تدقيق العقد الذكي مراجعة محدودة لكود وعمليات بناء ونشر وافتراضات وخصائص محددة؛ ويجب مطابقة نتائجه وإصلاحاته مع النظام الحي."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# كيفية قراءة تدقيق عقد ذكي

> لأغراض تعليمية فقط؛ لا يشكل ذلك نصيحة استثمارية أو توصية استثمارية. قد تؤدي الاستثمارات إلى خسائر.

<a id="answer"></a>

## الإجابة المباشرة

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

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

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

استخدم أربعة سجلات: النطاق وهوية البناء والنشر؛ والمتطلبات والتهديدات والثوابت؛ والنتائج والأدلة وإعادة الاختبار؛ والمخاطر المتبقية وقبولها والإفصاح عنها. التقرير الخالي من نتيجة `critical` ليس شهادة أمن، والنتيجة الموسومة `resolved` ليست منشورة بالضرورة، والبرهان لا يغطي إلا الخاصية المشفرة ونموذجها وافتراضاتها.

<a id="mechanism"></a>

## آلية العمل

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

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

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

الحالات `open` و`acknowledged` و`risk accepted` و`partially fixed` و`resolved` و`retested` ليست معايير موحدة. الإغلاق القابل للدفاع يربط المشكلة الأصلية بالتزام إصلاح محدد، ويسجل المسارات المعدلة والمجاورة المختبرة، ويبين من أعاد اختبار ماذا ومتى. يبقى الخطر المقبول خطرا، ولا توسع إعادة اختبار محدودة النطاق الأصلي ليشمل كل كود جديد.

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

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

اتبع سير العمل الآتي:

1. جمّد بيان المهمة: المستودع والالتزام والتبعيات والمترجم وإعداداته والكود المولد وكود النشر والسلاسل والعناوين ومكدس الوكيل والمعلمات والكتلة ومراجعة التقرير وما يشمله وما يستبعده.
2. عرّف الأصول والجهات والأدوار ذات الامتياز وحدود الثقة وقدرات المهاجم ودورة الحياة وافتراضات الترتيب والحيوية والتبعيات الخارجية والثوابت القابلة للقياس.
3. أعد إنتاج البناء وارسم البنية والتخزين والبيانات والأموال والتحكم؛ وطابق المصدر والآثار والمكتبات وكود البايت الإنشائي والتشغيلي والمهيئ والأدوار والنشر الحي.
4. نفذ أساليب يكمّل بعضها بعضا: يدوية وساكنة ووحدة وتكامل وتفرع وتفاضل وتشويش وثوابت ورمزية أو شكلية، مع تسجيل إصدارات الأدوات والإعدادات والبذور والمتن والتغطية والمهل والنتائج غير المحسومة.
5. سجل لكل مشكلة الأثر المتأثر والشرط المسبق والإثبات وقابلية الاستغلال والأثر ومنهج الشدة والتعرض في النشر والتوصية والأدلة السرية، من دون اعتبار وسم الأداة حكما.
6. جمّد التزام الإصلاح وأعد اختبار المشكلة والمسارات المجاورة والثوابت؛ وتحقق من تخزين الوكيل والتهيئة والترحيل والتراجع والبناء القابل للتكرار وإيصالات النشر، ثم عيّن حالة مدعومة بالأدلة.
7. انشر النطاق والأساليب والقيود والمخاطر المتبقية؛ وطابق الآثار المدققة مع كل سلسلة حية، وأبق المراقبة والإفصاح والاستجابة للحوادث ومكافآت اكتشاف الثغرات محدثة مع تغير النظام.

<a id="example"></a>

## أمثلة

- **يتطلب مسار تضخم الخزنة سجلا كاملا.** يودع المهاجم `1 asset` عبر فرع الإيداع الأول ويحصل على `1 share`، ثم يتبرع بـ`1,000,000 assets`؛ فيصبح الإجمالي `1,000,001 assets` و`1 share`. يودع ضحية `500,000 assets`، وتعطي عملية تقريب غير آمنة `floor(500,000 * 1 / 1,000,001) = 0 shares`. إذا قبلت الخزنة إيداعا بصفر حصة، فإنها تحتفظ بـ`1,500,001 assets`؛ يستردها المهاجم ويكسب `500,000 assets` فوق مساهمته البالغة `1,000,001-asset`. أما إذا أعاد التنفيذ المعاملة عند صفر حصة فلا يقع مسار الخسارة هذا.
- **تغطية الملفات ليست تغطية النشر.** يحتوي البيان على `24 source units` و`4 deployment scripts` و`3 keeper services`، أي `31 items`. تشمل المهمة `20 source units` و`2 scripts`، فتكون تغطية العدد `22 / 31 = 70.96774194%` وتستبعد `9 items`. وإذا أشار الوكيل الحي إلى تنفيذ مبني من وحدة مستبعدة فتغطية ذلك التنفيذ الحي `0%` رغم عنوان `70.96774194%`.
- **مشاهدات التشويش ليست برهان غياب.** ينفذ تشغيل ذو حالة `2,000 sequences * 64 calls = 128,000 calls`؛ ويفشل ثابت في `3 sequences`، أي `3 / 2,000 = 0.15%` من السلاسل المولدة المرصودة. بعد الإصلاح تنتج `10,000 sequences * 64 calls = 640,000 calls` بلا فشل. هذا صفر في هذا المتن لا برهان؛ وبافتراض تعليمي للاستقلال وثبات المولد، يكون الحد الأعلى التقريبي بقاعدة الثلاثة عند `95%` هو `3 / 10,000 = 0.03%` لكل سلسلة مولدة.
- **إغلاق النتائج وهوية النشر مستقلان.** يضم التقرير `12 findings`: منها `2 critical` و`3 high` و`4 medium` و`3 low`. تغلق إعادة الاختبار `2 + 2 + 3 + 2 = 9`، فتكون نسبة الإغلاق `9 / 12 = 75%`؛ وتبقى نتيجة مرتفعة وأخرى متوسطة وثالثة منخفضة. تجزئة التشغيل المدققة `H1` لكن التنفيذ الحي `H2`، فتفشل مطابقة النشر بصرف النظر عن نسبة الإغلاق. واستبداله بـ`H1` المطابق تماما مع خانة الوكيل والمهيئ والأدوار يثبت الهوية عند الكتلة المفحوصة فقط.

<a id="risks"></a>

## المخاطر

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

<a id="misconceptions"></a>

## مفاهيم خاطئة شائعة

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

<a id="related"></a>

## موضوعات ذات صلة

- [العقد الذكي](/ar/crypto/smart-contract/)
- [العقد القابل للترقية](/ar/crypto/upgradeable-contract/)
- [مكافأة اكتشاف الثغرات](/ar/crypto/bug-bounty/)

<a id="sources"></a>

## المصادر

- [OWASP Smart Contract Security Verification Standard (SCSVS)](https://scs.owasp.org/SCSVS/) - OWASP (تم الوصول: 2026-08-13)
- [Security Considerations](https://docs.soliditylang.org/en/latest/security-considerations.html) - Solidity (تم الوصول: 2026-08-13)
- [Slither, the smart contract static analyzer](https://github.com/crytic/slither) - Crytic (تم الوصول: 2026-08-13)
- [Invariant Testing](https://www.getfoundry.sh/guides/invariant-testing) - Foundry (تم الوصول: 2026-08-13)
- [Certora User's Guide](https://docs.certora.com/en/latest/docs/user-guide/index.html) - Certora (تم الوصول: 2026-08-13)
- [ERC-1967: Proxy Storage Slots](https://eips.ethereum.org/EIPS/eip-1967) - Ethereum Improvement Proposals (تم الوصول: 2026-08-13)
- [Writing Upgradeable Contracts](https://docs.openzeppelin.com/upgrades-plugins/writing-upgradeable) - OpenZeppelin (تم الوصول: 2026-08-13)
- [Contract Metadata](https://docs.soliditylang.org/en/latest/metadata.html) - Solidity (تم الوصول: 2026-08-13)

Source: https://wiki.fcontext.com/ar/crypto/contract-audit/index.mdx
