تدقيق العقد الذكي هو في جوهره مراجعة للكود يجريها متخصصون في الأمن. يفحص المدققون الشيفرة المصدرية للعقد بحثاً عن الثغرات والأخطاء المنطقية والانحرافات عن المواصفات. يستغرق التدقيق النموذجي لبروتوكول تمويل لامركزي ما بين أسبوعين إلى ستة أسابيع، وتتراوح تكلفته بين 50,000 و500,000 دولار أو أكثر، وذلك بحسب التعقيد والشركة المنفذة.
ما تكشفه عمليات التدقيق بموثوقية هو أنماط الثغرات المعروفة. فهجمات إعادة الدخول (Reentrancy)، ومشكلات الفيض (overflow) والنقص (underflow) في الأعداد الصحيحة، والتهيئات الخاطئة للتحكم في الوصول، وثغرات الاستباق (front-running)، جميعها تحمل بصمات موثّقة جيداً يستطيع المدققون المتمرسون تحديدها. هذه أنواع من الأخطاء تتوفر لها حالات اختبار وأدوات كشف راسخة. وتستطيع أدوات التحليل الآلي مثل Slither وMythril رصد كثير منها حتى قبل أن يبدأ المدقق البشري مراجعته.
في المقابل، تكون عمليات التدقيق أقل موثوقية عندما يتعلق الأمر باكتشاف أخطاء منطق العمل. فقد يكون العقد آمناً تقنياً وخالياً من الثغرات القابلة للاستغلال في كوده، لكنه يحتوي مع ذلك على خلل منطقي يسمح باستخراج القيمة بطرق لم يقصدها المصممون. تتطلب هذه الأخطاء من المدقق فهماً عميقاً لما يُفترض أن يفعله البروتوكول، ثم التحقق من أن الكود يقوم بذلك فعلاً. وهذا أصعب مما يبدو، لا سيما في البروتوكولات المعقدة المكونة من عقود متعددة متفاعلة.
تُعدّ مخاطر القابلية للتركيب (Composability) صعبة التدقيق بشكل خاص. فقد يتصرف عقد ما بشكل مثالي عندما يعمل بمعزل عن غيره، لكنه يخلق ثغرات عند تفاعله مع بروتوكولات أخرى. وكثيراً ما تستغل هجمات القروض الفورية (Flash loans) أنماط التفاعل هذه. قد لا يحتوي العقد الذي جرى تدقيقه على أي أخطاء إطلاقاً؛ والمشكلة تكمن في كيفية استجابته لمدخلات غير متوقعة من عقود أخرى لم تكن موجودة وقت إجراء التدقيق.
تمثل الهجمات الاقتصادية فئة أخرى تتعامل معها عمليات التدقيق التقليدية بشكل ضعيف. فالتلاعب بالأوراكل (Oracle)، وهجمات الحوكمة، واختلالات مجمعات السيولة غالباً ما لا تكون أخطاءً برمجية. إنها مشكلات حوافز اقتصادية تتطلب تحليلاً قائماً على نظرية الألعاب بدلاً من مراجعة الكود. وقد بدأت بعض شركات التدقيق بإضافة التحليل الاقتصادي إلى خدماتها، لكن هذا المجال ما زال أقل نضجاً من تدقيق الكود التقليدي.
يستحق تقرير التدقيق ذاته الاهتمام. تصنّف معظم شركات التدقيق النتائج حسب درجة الخطورة: حرجة، ومرتفعة، ومتوسطة، ومنخفضة، وإعلامية. التدقيق النظيف لا يعني أنه لا توجد نتائج، بل يعني أن جميع النتائج ذات الخطورة الحرجة والمرتفعة قد عولجت. أما النتائج المنخفضة والإعلامية فغالباً ما يُعترف بها ولا تُعالج، وهذا مقبول عموماً لكنه جدير بالفهم من جانب المستخدم.
تقدم عمليات التدقيق المتعددة من شركات مختلفة تغطية أفضل من تدقيق واحد مهما كانت سمعة مُجريه. فكل شركة تستخدم منهجيات مختلفة ولها مجالات تخصص مختلفة. قد تكتشف Trail of Bits شيئاً تفوته OpenZeppelin والعكس صحيح. تحرص البروتوكولات الأكثر اهتماماً بالأمن على إجراء تدقيقين إلى ثلاثة تدقيقات، فضلاً عن الحفاظ على برامج مكافآت مستمرة لاكتشاف الثغرات.
تعمل برامج مكافآت الثغرات (Bug bounty) مكملاً متواصلاً لعمليات التدقيق المحدودة بنقطة زمنية معينة. تستضيف Immunefi مكافآت لمئات البروتوكولات، بمكافآت تتراوح بين آلاف وملايين الدولارات. المنطق الاقتصادي بسيط: دفع 500,000 دولار لباحث أمني محترف (White hat) لاكتشاف ثغرة أرخص بكثير من خسارة 50 مليون دولار بسبب استغلال. وتميل البروتوكولات التي تجمع بين التدقيقات ومكافآت ثغرات سخية إلى تسجيل أفضل السجلات الأمنية.
الخلاصة العملية للمستخدمين هي أن التدقيق ضروري لكنه غير كافٍ. فهو يقلل بشكل ملحوظ من احتمال وقوع أنواع معينة من الاستغلالات لكنه لا يلغي المخاطر. يجب أن يزيد وجود تدقيق من ثقتك، لكن ينبغي ألا يكون العامل الوحيد في تقييمك للمخاطر. فالوقت الذي قضاه البروتوكول في الإنتاج دون حوادث، وحجم ونشاط برنامج مكافآت الثغرات، وسجل فريق البروتوكول، كلها عوامل مهمة أيضاً.