یک قرارداد هوشمند برای افزایش صحت کد به منظور عملکرد بهینه، نیاز به یک راه حل حسابرسی (auditing) دارد.
این مقاله به پنج پرسش متداول در مورد حسابرسی قراردادهای هوشمند میپردازد.
بیایید شروع کنیم!
حسابرسی قرارداد هوشمند چیست؟
سوء استفاده از آسیبپذیریهای قراردادهای هوشمند، از هک DAO گرفته تا حملات کرمچالهای و سایر حملات DeFi bridge ، مدتی است که در میان علاقهمندان به کریپتو سر و صدا کرده است.
فناوری بلاک چین به دلیل جنبه امنیتی خود توجه کاربران را جلب کرد. اگر چه قراردادهای هوشمند نیز بر روی بلاک چین مستقر میشوند، اما آنها هم ریسکهای خاص خود را دارند.
حسابرسی قرارداد هوشمند شامل بررسی کامل کد است که معمولاً توسط شخص ثالث و برای جستجوی نقصهای احتمالی و بهبود عملکرد انجام میشود. یک حسابرس قرارداد هوشمند، کد منبع (source code) را بررسی میکند تا تعیین کند که آیا به شرایط از پیش تعریف شده پایبند است و آیا همانطور که توسعه دهندهاش در نظر داشته است، رفتار میکند یا خیر.
با افزایش هک و سرقت در فضای کریپتو، قرار دادن کد صحیح در شبکه اصلی، اهمیت زیادی پیدا کرده است. حسابرسی قراردادهای هوشمند به طور قابل توجهی احتمال خطا را کاهش میدهد و برای پروژه شما، اجرای ایمنی فراهم میکند.
چرا حسابرسی قراردادهای هوشمند مهم است؟
اگر چه بلاک چین ماهیت تغییرناپذیری دارد، اما قراردادهای هوشمند مستقر بر روی آن دارای درصدی از ریسک هستند. در واقع، تغییرناپذیری آن باعث میشود که پس از استقرار کد در شبکه، نتوانید آن را در شبکه اصلی اصلاح کنید. از این رو، حسابرسی قراردادهای هوشمند قبل از اجرای آن حیاتی است.
در اینجا چند دلیل دیگر برای حسابرسی قراردادهای هوشمند آورده شده است.
- اعتماد سرمایهگذاران به پروژه شما را افزایش میدهد.
- یک لایه امنیتی اضافی برای قرارداد هوشمند شما فراهم میکند.
- عملکرد کد را بهینه میکند.
- در برابر سرقت و هک از شما محافظت میکند.
حسابرسی قرارداد هوشمند چه کاری میکند؟
حسابرسی قرارداد هوشمند، کد را به طور کامل آزمایش میکند، آسیبپذیریها را بررسی میکند و باعث بهینهسازی عملکرد میشود.
فرآیند حسابرسی قراردادهای هوشمند را میتوان به مراحل زیر تقسیم کرد:
- جمعآوری اطلاعات
این مرحله به تعریف محدوده حسابرسی، رفتار تجاری مورد انتظار، هدف پروژه و معماری آن کمک میکند. حسابرسان باید بتوانند از طریق کمیتهای GitHub و سایر راهها، به اسنادی مانند سند الزامات تجاری، whitepaper و yellow paper پروژه، سند مشخصات فنی وکد قرارداد هوشمند دسترسی داشته باشند.
- یونیت تست و تجزیه و تحلیل کد
در این مرحله، تست حسابرسی موارد یونیت تست شده توسط توسعه دهنده را اجرا میکند و کد را خط به خط برای کشف آسیبپذیریهای آن اسکن میکند. با این که معمولاً برای تأیید سریع و کامل قرارداد هوشمند در این فرآیند از ابزارهای حسابرسی خودکار کمک گرفته میشود، به آن تست دستی میگویند.
- گزارش نویسی
حسابرسان گزارش اولیه را پس از تکمیل دور اول تجزیه و تحلیل دقیق پروژه، و گزارش نهایی را پس از تکمیل دور دوم تجزیه و تحلیل، آماده میکنند.
پس از گزارش اولیه، توسعه دهندگان تغییرات لازم را بر اساس توصیههای موجود انجام میدهند. گزارش نهایی برای refactoring کدپستی تهیه میشود.
آیا خودم میتوانم این کار را انجام دهم؟
بله، خودتان هم میتوانید یک قرارداد هوشمند را حسابرسی کنید.
شما باید از آسیبپذیریهای رایج قراردادهای هوشمند آگاه باشید، اما همچنان توصیه میشود که اجازه دهید حسابرسان امنیتی متخصص کد شما را بازرسی کنند.
سپردن این فرآیند به شخص ثالث، ابعاد متفاوتی را برای قرارداد هوشمند شما فراهم میکند. حسابرسی خارجی دیدی بیطرفانه از پروژه ایجاد میکند و احتمال هک شدن را به میزان قابل توجهی کاهش میدهد.
ریسکهای امنیتی قرارداد هوشمند چیست؟
نقص قراردادهای هوشمند میتواند یک خطر امنیتی باشد و باعث جلب توجه مجرمان سایبری شود. در واقع، حتی اگر سوء استفادهگرانی هم از بیرون وجود نداشته باشند، در برخی موارد خطر زیان مالی و سقوط سرمایه وجود دارد.
در اینجا به چند آسیبپذیری رایج در قراردادهای هوشمند اشاره میکنیم:
- ورود مجدد (Re-Entrancy)
- کنترل دسترسی خراب (Broken access control)
- Front running
- Floating Pragma
- جریانهای محاسباتی بیش از حد / کمتر از حد (Arithmetic Over/Under Flows)
- اتر غیر منتظره (Unexpected Ether)
- Delegate call
- Entropy Illusion
- حمله Short Address/Parameter
- مقادیر CALL Return چک نشده (Unchecked CALL Return Values)
- انکار سرویسDenial Of Service (DOS)
- دستکاری Block Timestamp و موارد پرتعداد دیگر.
در واقع، هر از گاهی آسیبپذیریهای جدیدی وارد این فضا میشوند و انجام حسابرسیهای دورهای قراردادهای هوشمند را ضروری میسازند.
جمع بندی
امیدواریم توانسته باشیم ابهامات شما را در مورد راه حلهای حسابرسی قراردادهای هوشمند برطرف کنیم.
با گسترش دنیای کریپتو، نیاز به حسابرسی قراردادهای هوشمند اهمیت فزایندهای پیدا میکند. منابع مالی کاربران به دلیل هکهای پیچیده DeFi و قراردادهای هوشمند در خطر است.
بنابراین، پروژهها باید قبل از اینکه خیلی دیر شود از انجام یک حسابرسی کامل برای قراردادهای هوشمندشان اطمینان حاص کنند.
منبع: hackernoon نویسنده: دیوید هنری
Leave feedback about this