پرش به محتوای اصلی
پرش به محتوای مقاله

مدل Gemini چگونه نقص‌های امنیتی قراردادهای هوشمند را خودکارسازی می‌کند؟

·۲۱ مهر ۱۴۰۵۶ دقیقه مطالعه
لوگوی شرکت Ether Authority و عنوان پروژه کارآموزی: رفع آسیب‌پذیری قرارداد هوشمند با FixGPT
لوگوی شرکت Ether Authority و عنوان پروژه کارآموزی: رفع آسیب‌پذیری قرارداد هوشمند با FixGPT
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

تغییر پارادایم از «تشخیص نقص» به «چرخه خودکار اصلاح و تأیید»؛ جایی که خروجی AI مستقیماً توسط کامپایلر و تست‌های رفتاری اعتبارسنجی می‌شود تا توهمات مدل حذف گردند.

تصور کنید یک خطای کوچک در کدنویسی قرارداد هوشمند شما، تمام دارایی‌های کاربران را در یک چشم‌به‌هم‌زدن به باد دهد. برای توسعه‌دهندگان وب۳، این کابوس روزمره است؛ اما حالا ابزاری آمده تا فاصله بین «هشدار امنیتی» و «وصله تأییدشده» را از بین ببرد.

Smart Contract FixGPT فراتر از ابزارهای تشخیص ساده می‌رود تا کل چرخه شناسایی، اصلاح و تأیید آسیب‌پذیری‌های زبان Solidity را خودکار کند. این پلتفرم که در تاریخ ۱۳ اکتبر ۲۰۲۶ منتشر شد و به عنوان پروژه نهایی در Ether Authority توسعه یافته است، یک جریان کاری کاملاً تأییدشده برای رفع نقص‌های امنیتی ارائه می‌دهد.

توسعه در فضای وب۳ به دلیل ریسک‌های مالی بسیار بالا، حساسیت شدیدی دارد؛ چرا که یک اشتباه کدنویسی می‌تواند منجر به خسارات مالی فاجعه‌بار، رفتارهای غیرمنتظره در قرارداد و سایر ریسک‌های امنیتی شود. ابزارهای تحلیل استاتیک سال‌هاست که وجود دارند، اما برنامه‌نویسان اغلب در پیاده‌سازی اصلاحیه درست، بدون ایجاد باگ‌های جدید، دچار مشکل می‌شوند. این پروژه دقیقاً برای پر کردن این شکاف طراحی شده است تا فاصله میان یک هشدار امنیتی و یک وصله تأییدشده را پل بزند. این رویکرد در واقع تکامل همان مسیری است که در آن تأیید خودکار قراردادهای هوشمند جایگزین بازبینی دستی کدها شد تا خطای انسانی به حداقل برسد.

این ابزار بر پایه تغییر رویکرد صنعت به سمت توسعه یکپارچه با هوش مصنوعی بنا شده است — مشابه آنچه پیش‌تر در تحلیل‌های خود درباره ثبات صوتی در مدل‌هایی مانند Claude و GPT-6 Astra بررسی کردیم. FixGPT با هوش مصنوعی نه به عنوان یک مرجع نهایی، بلکه به عنوان یک «موتور پیشنهاددهنده» برخورد می‌کند. به همین دلیل، یک حلقه تأیید سخت‌گیرانه را پیاده می‌کند تا اطمینان حاصل شود کدهای تولید شده توسط AI واقعاً مشکل را حل می‌کنند و نه تنها آن را جابه‌جا می‌کنند.

جریان کاری اصلاح نقص‌ها

این پلتفرم برای حذف «اعتماد کور» به مدل‌های زبانی بزرگ (LLM) — که شبیه کتابخانه‌داری است که میلیاردها صفحه را خوانده و حالا با همان لحن جواب می‌دهد — یک خط لوله چندمرحله‌ای را اجرا می‌کند. به نقل از گزارش dev.to، این فرآیند دقیقاً از مراحل زیر پیروی می‌کند:

  • شناسایی (Detection): سیستم از ابزار Slither برای انجام تحلیل استاتیک روی کد منبع Solidity استفاده می‌کند تا نقاط ضعف را بیابد.
  • ترجمه (Translation): شناسه‌های خام (Raw IDs) که توسط تشخیص‌دهنده‌ها تولید می‌شوند، به عناوین و توضیحات قابل‌فهم برای برنامه‌نویس تبدیل می‌شوند.
  • تولید توسط AI (AI Generation): مدل Gemini AI یک قطعه کد اصلاحی (Remediation snippet) و یک diff (نمایش دقیق تغییرات کد قدیم و جدید) پیشنهاد می‌دهد.
  • کامپایل (Compilation): یک مدیر کامپایلر پویا، بر اساس دستور pragma موجود در قرارداد، نسخه صحیح solc را انتخاب می‌کند.
  • تحلیل مجدد (Re-Analysis): سیستم دوباره Slither را اجرا می‌کند تا تأیید کند که آسیب‌پذیری هدف به‌طور کامل حذف شده است.
  • تست رفتاری (Behavioral Testing): برای سناریوهای خاص، تست‌های Foundry اجرا می‌شوند تا رفتار واقعی و عملیاتی قرارداد در محیط شبیه‌سازی شده تأیید شود.
  • گزارش‌دهی (Reporting): در نهایت گزارشی جامع شامل یافته‌ها، راهکارهای پیشنهادی، یک امتیاز پروژه (Project Score) و وضعیت نهایی PASS/FAIL صادر می‌شود.

قابلیت‌های فنی و مدیریت نسخه‌ها

این ابزار به‌طور ویژه روی دسته‌های پرخطر آسیب‌پذیری تمرکز دارد. به جای ارائه شناسه‌های خام تشخیص‌دهنده، یافته‌ها را در عناوین خوانا و راهکارهای پیشنهادی سازماندهی می‌کند. دسته‌های خاصی که توسط این سیستم مدیریت می‌شوند عبارت‌اند از:

  • Reentrancy (reentrancy-eth): بررسی مواردی که در آن تعاملات خارجی اجازه ورود مجدد غیرمنتظره به یک قرارداد را می‌دهند و منجر به تخلیه دارایی‌ها می‌شوند.
  • سوءاستفاده از tx.origin (tx-origin): شناسایی الگوهای خطرناک احراز هویت که به متغیر tx.origin متکی هستند و قرارداد را در برابر حملات Phishing آسیب‌پذیر می‌کنند.
  • فراخوانی‌های سطح پایین (low-level-calls): هایلایت کردن استفاده از مکانیزم‌های call سطح پایین که نیاز به بازبینی امنیتی بسیار دقیق دارند.
  • انتقالات بررسی‌نشده ERC-20 (unchecked-transfer): شناسایی الگوهای انتقال توکن که در آن‌ها مقادیر بازگشتی (Return Values) به‌درستی بررسی نمی‌شوند.

برای مدیریت ماهیت پراکنده نسخه‌های Solidity، توسعه‌دهنده یک ماژول اختصاصی به نام compiler_manager.py ساخته است. این جزء فنی، فرمت‌های مختلف pragma Solidity، از جمله نسخه‌های دقیق، محدودیت‌های caret (مانند ^0.8.0) و بازه‌های نسخه‌ای را تحلیل (Parse) می‌کند. اگر نسخه مورد نیاز کامپایلر در محیط سیستم موجود نباشد، جریان کاری می‌تواند به‌طور خودکار آن را نصب کند. در طول مراحل اعتبارسنجی، سیستم با موفقیت نسخه‌های ۰.۸.۲۴، ۰.۸.۲۸، ۰.۸.۳۳ و ۰.۸.۳۷ را مدیریت کرد. تست‌ها تأیید کردند که انتخاب نسخه دقیق برای ۰.۸.۲۸ و انتخاب نسخه‌های سازگار برای محدودیت‌های caret و بازه‌ای به‌درستی انجام می‌شود.

اعتبارسنجی و گزارش‌دهی

پلتفرم FixGPT ادعا نمی‌کند که جایگزین یک حسابرسی (Audit) کامل امنیتی توسط متخصصان انسانی است. در عوض، یک «امتیاز پروژه» و وضعیت PASS/FAIL ارائه می‌دهد که بر اساس این است که آیا یافته‌های هدفمند خاص حذف شده‌اند یا خیر. باید توجه داشت که امتیاز پروژه یک شاخص مخصوص این اپلیکیشن است و یک رتبه‌بندی استاندارد صنعتی برای حسابرسی نیست.

برای افزایش اطمینان به اصلاحات پیشنهادی، سیستم از تأیید امنیتی مبتنی بر Foundry استفاده می‌کند. جریان‌های تأیید آزمایش شده شامل موارد زیر بود:

  • یک تست امنیتی مربوط به Reentrancy برای یک قرارداد نمونه.
  • یک تست احراز هویت tx.origin که برای اطمینان از مسدود شدن الگوی ناامن هدف طراحی شده بود.
  • بررسی‌های استاندارد کامپایل و تحلیل Slither پس از اعمال اصلاحات.

در یک مورد آزمایشی، جریان کاری با موفقیت یک یافته Reentrancy را حذف کرد، در حالی که به‌درستی گزارش داد که سایر آسیب‌پذیری‌های مربوط به فراخوانی‌های سطح پایین (low-level-call) همچنان باقی هستند. این موضوع ثابت می‌کند که سیستم می‌تواند اصلاحات را به‌صورت ایزوله انجام دهد بدون اینکه بافت امنیتی کلی پروژه را نادیده بگیرد. خروجی نهایی در قالب گزارش‌های JSON یا Markdown ارائه می‌شود که شامل یافته‌های اصلی، راهکارهای پیشنهادی و شواهد تأییدیه حاصل از تست‌های Foundry است.

زیرساخت فنی (Tech Stack)

معماری این سیستم بر پایه یک بک‌اند پایتونی با استفاده از FastAPI و یک فرانت‌اند React است که با Vite ساخته شده است. بک‌اند وظیفه هماهنگی و ارکستراسیون تعاملات بین کامپایلر Solidity، ابزار Slither و API مدل Gemini را بر عهده دارد. کل برنامه برای دسترسی عمومی از طریق Vercel (برای فرانت‌اند) و Render (برای بک‌اند) مستقر شده است.

جزئیات دقیق تکنولوژی‌های به‌کاررفته:

  • Solidity: زبان برنامه‌نویسی کد منبعی که مورد تحلیل قرار می‌گیرد.
  • Slither: ابزار اصلی برای تحلیل استاتیک و شناسایی آسیب‌پذیری‌ها.
  • Foundry: مورد استفاده برای کامپایل، اجرا و انجام تست‌های امنیتی پیشرفته.
  • Python: زبان اصلی برای پیاده‌سازی منطق تحلیل و اعتبارسنجی در بک‌اند.
  • FastAPI: چارچوب مورد استفاده برای ارائه APIهای بک‌اند.
  • React & Vite: برای ایجاد رابط کاربری مدرن و ابزارهای ساخت سریع.
  • Gemini AI: ارائه دهنده راهکارهای اصلاحی آسیب‌پذیری‌ها با کمک هوش مصنوعی.
  • solc / solc-select: مدیریت اجرای کامپایلر Solidity و جابه‌جایی بین نسخه‌ها.
  • Git & GitHub: برای کنترل نسخه و میزبانی مخزن پروژه.

نتایج تست و اعتبارسنجی

در طول توسعه، تست‌های متمرکزی برای اعتبارسنجی تک‌تک جریان‌های کاری اجرا شد. تست‌های مدیر کامپایلر برای تمام سناریوهای انتخاب نسخه با موفقیت پاس شدند. تست‌های تأیید tx.origin برای مورد آزمایشی هدف و تست‌های تأیید Reentrancy برای قرارداد نمونه با موفقیت به پایان رسیدند. جریان تأیید امنیتی تأیید کرد که کامپایل با موفقیت انجام شده و یافته Reentrancy هدف حذف شده است. در نهایت، تحلیل‌های پس از اصلاح تأیید کرد که اپلیکیشن قادر است پس از رفع یک هدف خاص، همچنان سایر یافته‌های امنیتی موجود را گزارش کند.

این رویکرد نقش توسعه‌دهنده را از یک «دیباگر دستی» به یک «بازبین» (Reviewer) تغییر می‌دهد. با خودکارسازی مرحله کامپایل و تست مجدد، زمان صرف‌شده در چرخه خسته‌کننده «آزمون و خطا» برای اعمال وصله‌های امنیتی به‌شدت کاهش می‌یابد.

برای اکوسیستم وب۳، این یک چرخش به سمت کدنویسی «شواهد-محور» (Evidence-based) با AI است. این سیستم می‌پذیرد که Gemini می‌تواند اصلاحیه پیشنهاد دهد، اما تنها یک کامپایلر و یک مجموعه تست می‌توانند ثابت کنند که اصلاحیه واقعاً کار می‌کند. این رویکرد جلوی حالت شکست رایج در AI را می‌گیرد؛ حالتی که در آن مدل‌ها کدهایی تولید می‌کنند که از نظر سینتکس (دستوری) درست هستند اما از نظر منطق امنیتی دارای نقص یا اشتباه‌اند.

گام بعدی شما

  • اگر توسعه‌دهنده Solidity هستید، اپلیکیشن زنده را در آدرس https://smart-contract-fixgpt-eight.vercel.app/ تست کنید.
  • سورس‌کد کامل پروژه را در گیت‌هاب در آدرس https://github.com/PranshuMishra2004/smart-contract-fixgpt بررسی کنید تا متوجه شوید چگونه می‌توانید حلقه‌های تأیید (Verification Loops) مشابه را در خط لوله CI/CD خود پیاده کنید.
  • برای هر اصلاحیه پیشنهادی AI، حتماً تست‌های واحد (Unit Tests) اختصاصی در Foundry بنویسید تا لایه‌ی تأیید نهایی را تقویت کنید.

اما داستان سخت‌افزاری اجرای این مدل‌های تحلیل در مقیاس بزرگ حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این رویکرد با ترکیب تحلیل استاتیک و AI، ریسک خطاهای انسانی در قراردادهای هوشمند را کاهش می‌دهد. اعتبار این سیستم از طریق استفاده از ابزارهای استاندارد صنعت مانند Foundry و Slither تأمین شده است.

تأثیر برای ایران

برنامه‌نویسان وب۳ ایرانی می‌توانند از این ابزار متن‌باز برای ارتقای امنیت قراردادهای خود استفاده کنند، هرچند دسترسی به API مدل Gemini ممکن است نیازمند ابزارهای تغییر آی‌پی باشد.

·نگاه ما
تحریریه دات‌هوش

جایگزینی اعتماد به AI با «تأییدیه کامپایلر» در FixGPT، الگویی برای آینده ابزارهای توسعه است. این ابزار نشان می‌دهد که ارزش واقعی هوش مصنوعی در کدنویسی، نه در تولید کد نهایی، بلکه در کاهش زمان جست‌وجو برای یافتن راهکار است. در واقع، مدل زبانی اینجا نقش یک «پیش‌نویس‌کننده سریع» را دارد و ابزارهای سنتی مثل Slither نقش «سردبیر سخت‌گیر» را ایفا می‌کنند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.