[ad_1]
فناوری بلاک چین و اپلیکیشنهای غیرمتمرکز بر شانههای قرارداد هوشمند (Smart Contract) ایستاده است. این امکانهای جدید توانستهاند مسئله اعتماد و واسطهها را از میان بردارند و درهای جدیدی برای انجام کارها با سرعت و ایمنی فراوان به روی کاربران بگشایند. بااینهمه، این نکته فنی و پیچیده هم مثل سایر فناوریهای جدید این حوزه با مشکلاتی روبهروست. وجود ایرادها و نقیصهها میتواند موجب مشکل در کارکرد بلاک چین یا تراکنشها شود و حتی شرایط را برای حملههای هکرها فراهم کند. بازبینی کد قراردادهای هوشمند میتواند یکی از روشهای کارآمد برای جلوگیری از این مشکلات باشد.
درواقع، امتیاز و ویژگی مهم قراردادهای هوشمند میتواند بهشکلی غیرمنتظره به ضعف آنها هم تبدیل شود. قراردادهای هوشمند بهطورخودکار وظایفی را انجام میدهند و نیاز به واسطه و ناظر شخص ثالث را از بین میبرند. باوجوداین، اگر این کدهای رمزنگاریشده خود دچار ایراداتی باشند، بهراحتی شاید امنیت و شفافیت کل شبکه را بهخطر بیندازند. چون بعد از پیادهسازی، هیچ شخص ثالثی مسئول صحت کارکرد آنها نیست و تغییر کدهای اجراشده در بلاک چین هم غیرممکن خواهد بود. بههمینعلت، بازبینی کد قراردادهای هوشمند اهمیت بسیاری دارد.
در این مطلب، با ذکر انواع آسیبپذیریها و مشکلات احتمالی قراردادهای هوشمند، دید بهتری از علت و روش انجام بازبینی کد این قراردادهای رمزنگاریشده عرضه میدهیم. ضمناً، به نکاتی اشاره میکنیم که در بازبینی کد قراردادهای هوشمند باید مدنظر قرار بگیرند. در پایان هم، با تعدادی از شرکتهای تأمینکننده امنیت این قراردادها آشنا میشویم و نگاهی به شرایط و هزینههای این پروسه میاندازیم.
بازبینی کد (Audit) قراردادهای هوشمند چیست؟
پیش از اینکه وارد مبحث بازبینی قراردادهای هوشمند آشنا شویم، بهتر است معنی قراردادهای هوشمند را بدانیم. بهروشخلاصه، قراردادهای هوشمند پروتکلهای تراکنش کامپیوتری هستند که برای اجرای شرایط قراردادی مشخص طراحی شدهاند. این قراردادهای رمزنگاریشده واسطهها را از میان برمیدارند و با رعایت موبهموی شرایط قراردادها، احتمال بروز تصادف و استثناء را هم بهحداقل میرسانند.
هماکنون، قراردادهای هوشمند به انجام طیف وسیعی از وظایف ازجمله مدیریت زنجیره تأمین و توزیع توکن و رأیگیریهای انتخاباتی کمک میکنند. بااینحال، این کدهای رمزنگاریشده هم درست مثل هر نرمافزار دیگری با آسیبپذیریهای امنیتی همراه هستند. در نتیجه پیش از پیادهسازی قراردادهای هوشمند، باید کد این قراردادها را بهطوراصولی بازبینی کنیم تا مطمئن شویم که دچار مشکلات امنیتی نیستند. در کناراین، بازبینی قراردادهای هوشمند میتواند ضامن کارکرد ایدئال و بهینه آنها هم باشد.
پروسه بازبینی قراردادهای هوشمند بر بررسی دقیق و موشکافانه کدی متمرکز است که تمام شرایط و ضوابط قرارداد هوشمند را دربر میگیرد. با کمک این بازبینی، پیشرفتدهندگان قراردادهای هوشمند بهراحتی میتوانند آسیبپذیریها و باگها و مشکلات را پیش از پیادهسازی و اجرای قراردادهای هوشمند شناسایی و رفع کنند. برای انجام این منظور، اغلب اوقات نهادهای شخص ثالث وظیفه بازبینی کامل قراردادهای هوشمند را بردوش میگیرند. گفتنی است شرکتها میتوانند حسابرسها و بازبینهایی حرفهای برای بررسی کد قراردادهای هوشمند خود انتخاب و استخدام کنند.
بازبینی کد قرارداد هوشمند پیش از اجرای آن اهمیت زیادی دارد؛ چون بعد از ثبت قرارداد هوشمند روی بلاک چین، تغییر کد عملاً غیرشاید. اجرای قراردادهای هوشمند بدون بازبینی مناسب میتواند شرایطساز ایجاد شرایط نامطلوب یا کارکرد ضعیف یا مشکلات امنیتی جدی در اپلیکیشنهای غیرمتمرکز شود. در کناراین، بازبینی نامناسب و بیدقت شاید خطرهایی ازجمله ازبینرفتن اطلاعات شخصی یا سرقت داراییها را بههمراه داشته باشد.
چرا بازبینی کد قراردادهای هوشمند مهم است؟
درحالحاضر، امنیت یکی از دغدغههای مهم بههنگام پیادهسازی و اجرای قراردادهای هوشمند بهشمار میرود. ناکارآمدی و مشکلات امنیتی و اجرای ناصحیح این قراردادها میتواند هزینههای سنگین و جبرانناپذیری در شبکه بلاک چین بهبار آورد.
یکی از مسائلی که گهگاه موجب تعلل شرکتها و کسبوکارها در استفاده از قراردادهای هوشمند میگردد. هویت برگشتناپذیر این قراردادهاست. در کناراین، آسیبپذیریهای امنیتی احتمالی پیوسته میتوانند تهدیدی برای کل قرارداد و داراییهای راجع به آن محسوب شوند. ازاینرو، بازبینی قرارداد هوشمند یکی از ضروریترین اقداماتی است که باید پیش از اجراییشدن آن انجام شود.
عللی ازجمله بهینهسازی بهتر کد، بهبود کارکرد قراردادهای هوشمند، افزایش ایمنی کیف پولها و امنیت دربرابر حملههای هک تعدادی از موجباتی هستند که بازبینی قراردادهای هوشمند را به ضرورت تبدیل میکنند. ضمناً، بازبینی قراردادهای هوشمند برای صاحبان محصولات اپلیکیشنهای غیرمتمرکز و سازندگان و سازماندهندگان استارتآپهای عرضه اولیه کوین (ICO)، پیشرفتدهندگان قراردادهای هوشمند و افرادی مهمتر است که باید اعتماد سرمایهگذاران و سهامداران و مشارکتکنندگان را جلب کنند.
باتوجهبه مزایای حیاتی بسیاری که برای ایمنی قراردادهای هوشمند ذکر کردیم، باید مراحل و روشهای بازبینی قراردادهای هوشمند را هم بهمناسبی بیابیم و بشناسیم.
بازبینی کد قراردادهای هوشمند چگونه کار میکند؟
بازبینی کد قراردادهای هوشمند در بر گیرنده ارزیابی دقیق و حسابشده قراردادهای هوشمند و اپلیکیشنهای مبتنیبر بلاک چین میگردد. این بازبینی میتواند مشکلات راجع به طراحی قراردادها و آسیبپذیریهای امنیتی و خطاهای مرتبط با کد را تشخیص دهد. بازبینهای حرفهای قراردادهای هوشمند اغلب وظیفهه مسیر مشخصی از پروسه بازبینی دراختیار عرضهدهندگان قرارداد هوشمند قرار میدهند تا درک بهتری از پروسه بازبینی داشته باشند.
بااینهمه، برخورد دوطرفه بین بازبین و نهادی که خواستار بازبینی قرارداد هوشمند است، نکته مهمی در مراحل بازبینی بهشمار میرود. بازبینها اغلب ایده مشخصی درباره پروژه یادشده ندارند؛ در نتیجه، اولین گام تعریف ویژگیهای مطلوب قرارداد است تا بازبین بتواند براساس آن برنامهای تدوین کند و درنهایت، گزارشی از چگونگی انجام بازبینی عرضه دهد. درادامه، به تعدادی از اقدامات مهم و مراحل بازبینی قراردادهای هوشمند اشاره میکنیم.
تعریف مشخصات و جزئیات قرارداد هوشمند
اولین و مهمترین عامل در پروسه بازبینی قراردادهای هوشمند، توافق پیشرفتدهنده قرارداد و بازبین درباره مشخصات و جزئیات قرارداد هوشمند است. این خاصیتها و سایر اسناد مرتبط با قراردادهای هوشمند توضیح روشنی درشرایط معماری و پروسه ساخت و اساس طراحی پروژه عرضه میدهد.
بیشتر اوقات مشخصات مستندشده در فایل README پروژه پیدا میگردد. باوجوداین، پیشرفتدهنده هم باید بهدرستی جزئیات و ویژگیهای آن را مستند و مشخص کند و دراختیار بازبین قرار دهد؛ وگرنه بازبینهای قرارداد هوشمند دیدگاه کاملی درباره کارکرد مطلوب و واقعی کد نخواهند داشت. در نتیجه، مرحله اول روش بازبینی قرارداد هوشمند با تعریف مشخصات کامل پروژه شروع میگردد.
در این مرحله، بازبین باید در پی زمان نهاییشدن یا بهاصطلاح بستهشدن کد (Code Freeze) هم باشد. پیش از نهاییشدن کد، قرارداد هوشمند در مرحله پیشنویس نهایی قرار میگیرد و در این زمان، پیشرفتدهندگان باید تمام تلاشهای ممکن را برای شناسایی هرگونه ناهنکنونی یا موجبات نامطلوب در کد انجام داده باشند. بهعبارت سادهتر، مشخص زمان «نهاییشدن کد» بسیار مهم است؛ چون هیچگونه تغییری بعد از این مرحله نمیتواند بازبینی شود.
پروسه آزمون قرارداد
بازبینها آزمایشهای متعدد و متنوعی انجام میدهند تا کد قرارداد هوشمند را از جوانب متفاوت بررسی شوند. این کار برای تشخیص باگها و مشکلات احتمالی انجام میگردد.و با گزینههای متفاوتی ازجمله تستهای هر بخش (Unit Test) برای بررسی جزئیات کوچکتر کد و تستهای یکپارچه (Integration Test) برای بررسی کارکردهای اصلی کد همراه است.
این آزمایشهای کوچکوبزرگ به بازبینها کمک میکند درک بهتری از پروژه و کارکردهای موردتوقع داشته باشند. اگر کد قرارداد هوشمند اکثر آزمایشها را با صحت و سلامت پشتسر بگذارد، احتمال وجودداشتن مشکلات ریشهای کمتر خواهد بود؛ درغیراینصورت، با شکست تعداد زیادی از این تستها، رویکرد منطقی توقف پروسه بازبینی و ایجاد اصلاحاتی اساسی و بنیادین در پایگاه کد خواهد بود.
یکی از عناصر مؤثر بر هزینه انجام بازبینی قراردادهای هوشمند، به مقدار پوشش خطوط کد مربوط میگردد. یعنی، این مسئله که بازبین خطبهخط کد منبع قرارداد هوشمند را آزمایش و بررسی کند، اهمیت بسیاری دارد. تعدادی از متخصصان تضمین کیفیت در پی پوشش کامل کد منبع هستند؛ بااینحال، پوشش ۸۵ تا ۹۰درصدی هم برای اغلب پروژهها کافی و مناسب بهنظر میرسد.
ضمناً، تعدادی از این آزمونها در بر گیرنده ویژگیهایی اضافی و منحصربهفردی هستند که احتمال آسیبپذیریها و مشکلات ناشناخته بیشتری را بررسی میکنند و به کاهش تعداد باگهایی که بهراحتی حذفشدنی هستند، میتوانند کمک کنند.
تحلیل خودکار
بعد از اتمام پروسه آزمایش، به مرحله تحلیل بازبینی قرارداد هوشمند میرسیم. اخیراً تقاضا برای کدهای قرارداد هوشمند ایمن افزایش درخورتوجهی یافته است؛ در نتیجه، نیاز به نرمافزارهای تشخیص خودکار باگ هم بهسرعت بیشتر میگردد. این ابزارها میتوانند آسیبپذیریهای شایع و عمومی قراردادهای هوشمند مبتنیبر سالیدیتی (Solidity) را پیدا کنند.
ضمناً بخوانید: زبان برنامه نویسی سالیدیتی چیست و چگونه میتوانیم قرارداد هوشمند بنویسیم؟
در کناراین، ابزارهای تحلیل خودکار میتوانند قراردادها را باتوجهبه ورودیهایی ارزیابی کنند که سبب اجرای هر قسمت از آن میشوند. این ابزارها با بهبود سادگی شناسایی مشکلات کلی در کد منبع به تسهیل جریان بازبینی کمک میکنند و به بازبین اجازه میدهند تا تلاش خود را روی آسیبپذیریهای جدید و پیچیده متمرکز کند.
درمجموع، ابزارهای تحلیل خودکار نیاز به بازبینهای انسانی را هم کمتر و در زمان و هزینه موردنیاز برای بازبینی صرفهجویی میکنند. بااینحال، ابزارهای تحلیل خودکار سالیدیتی هماکنون در مراحل اولیه پیشرفت قرار دارند و بهنظر میرسد دستیابی به کمال مطلوب برای ابزارهای بازبینی قراردادهای هوشمند به زمان بیشتری احتیاج دارد.
در کناراین، ازآنجاکه این ابزارها برای تشخیص باگها و مشکلات عمومی طراحی میشوند، آگاهی لازم را از قطعات ویژه کدهای متفاوت ندارند و شاید بهروشمداوم مشکلات کاذب گزارش کنند. اینجاست که تحلیل دستی برای بررسی ضعفهای شناساییشده وارد میدان میگردد.
تحلیل دستی
ابزارهای تحلیل خودکار در بازبینی قراردادهای هوشمند مزایای بسیاری درباره یافتن ضعفهای شایع عرضه میدهند. بااینهمه، تعدادی نقایص ویژه قراردادهای خاصی هستند و ابزارهای تحلیل خودکار در درک هدف و مقصود پیشرفتدهندگان، ناتوان و ناکارآمد بهنظر میرسند. در نتیجه، تحلیل و بررسی دستی بهوسیله بازبینهای انسانی برای بهبود تشخیص ضعفهای احتمالی کد قرارداد هوشمند اغلب امری ضروری است. تیم بازبینی مجرب میتواند وجوه متفاوتی از کارکرد پروژه را ارزیابی کند و براساس مشاهدات خود، پیشنهادهای مطمئنی برای بهبود کد قرارداد به تیم پروژه عرضه کند.
گزارش بازبینی و عرضه مشاوره برای رفع نقایص
آخرین مرحله در بازبینی قرارداد هوشمند تنظیم گزارشی از پروسه و مراحل بازبینی است. بازبین باید بعد از تکمیل آزمایشها و تحلیلهای خودکار و دستی، گزارش بازبینی مفصلی از یافتهها و مشاهدههای خود عرضه دهد. مهمتر از همه، تیم بازبینی و تیم پروژه باید درباره یافتهها و نکتههای گزارش بحث و تبادلِنظر کنند.
این بحث میتواند به تیم پروژه کمک کند تا مشکلات و آسیبپذیریهای قرارداد هوشمند مدنظر را درکنار پیشنهادهای تیم بازبینی بهتر درک و برای رفع آنها تلاش کند. گفتنی است اغلب عرضهدهندگان خدمات امنیتی عرضه مشاورههای منظم و پیگیری بلندمدت برای رفع کامل مشکلات و مشکلات قرارداد را یکی از مراحل اصلی خدمات خود قلمداد میکنند.
آسیبپذیریهای مهم در قراردادهای هوشمند
تا اینجای مقاله، از اهمیت شناسایی ضعفهای قراردادهای هوشمند و مراحل پیگیری و رفع آنها صحبت کردیم. اکنون، بهتر است با فهرستی کلی و مختصر از تعدادی از این آسیبپذیریها و حملههای امنیتی و بخشهایی که تحتتأثیر قرار میدهند، بیشتر آشنا شویم:
وابستگی برچسب زمانی
ماینرها میتوانند تأثیر بسزایی بر کارکرد محیط اجرای قراردادهای هوشمند بگذارند. یکی از نقایصی که میتواند این قراردادها را آسیبپذیر کند، وابستگی کارکرد آنها به ارزش برچسب زمانی (Timestamp) یا همان زمان ثبت بلاک در بلاک چین است. در این حالت، ماینر شاید بتواند با دستکاری در اطلاعات راجع به برچسبهای زمانی، به هدفی ازپیشمشخصشده دست پیدا کند.
خطاهای دسترسی به تابع
امکان مشاهده و فراخوانی قراردادهای هوشمند سالیدیتی بهروشپیشفرض «عمومی» هستند؛ یعنی هر فردی امکان دسترسی و فراخوانی قرارداد را دارد و این مسئله احتمال سوءاستفاده از کد را افزایش میدهد. درصورتیکه پیشرفتدهنده فراموش کند امکان مشاهده و دسترسی به تابعی را بهطور «خصوصی» تعریف کند، ضعف امنیتی میتواند کل قرارداد را تهدید کند.
حمله ورود مجدد
یکی از حملههای مخرب در قراردادهای هوشمند سالیدیتی، حمله ورود مجدد (Reentrancy Attack) است. در این حمله، هکر بهصورت مکرر بین قرارداد هوشمند مدنظر و قرارداد هوشمند نامطمئن دیگر تماس برقرار میکند. بدینترتیب، میتواند پیش از اینکه قرارداد هدف موقعیت بهروزرسانی اطلاعات و موجودی خود را داشته باشد، اطلاعات و داراییهای آن را بدزدد.
حمله آدرس کوتاه
در این حمله، قرارداد اطلاعاتی کمتر از مقدار موردنیاز دریافت و زبان برنامهنویسی سالیدیتی جای اطلاعات خالی را با «صفر» پر میکند. صفرهای اضافی در اطلاعات میتواند موجب بروز مشکلات جدی شود.
حملههای ورودی زیاد و ورودی کم
حمله ورودی زیاد (Overflow Attack) برآمده از عرضه ارزشی مازاد بر ارزش حداکثری قرارداد و حمله ورودی کم (Underflow Attack) برآمده از عرضه ارزشی کمتر از مقدار حداقلی به قرارداد است. در هر دو حالت، هکر میتواند با سوءاستفاده از پاسخ اشتباه قرارداد به ورودیهای نامتعارف، به داراییهای قرارداد دسترسی پیدا کند.
حمله تکرار
حمله تکرار (Replay Attack) با سوءاستفاده از تکرار یا تعلل در انتقال دادههای بهظاهر صحیح انجام میگردد.
آسیبپذیری اعداد تصادفی
یکی از موجبات تأمینکننده امنیت قراردادهای هوشمند تصادفیبودن اعداد راجع به کدهای رمزنگاریشده و کنترل دسترسی است. درصورتیکه کد قرارداد دچار باگ باشد، مهاجم میتواند عدد تصادفی را بهدرستی حدس بزند و به اطلاعات حساس قرارداد دسترسی پیدا کند.
شکست در تمایز انسانها و قراردادها
تشخیصندادن اینکه فراخوان قرارداد هوشمند ازسوی شخص است یا قرارداد، میتواند پیامدی پیشبینینشدنی در پی داشته باشد. برای نمونه، باگ امکان پیشبینی متغیرهای تصادفی و دستکاری در آنها را انسان در بازی غیرمتمرکز پلتفرم فوموتریدی (Fomo۳d) شناسایی کرده است که به هکر اجازه میدهد داراییهای استخر ایردراپ را بهسرقت ببرد.
حمله سفارشگذاری مجدد
حمله سفارشگذاری مجدد (Reordering Attack) ازطریق دستکاری ترتیب تراکنشها و ایجاد اختلال در کارکرد قرارداد هوشمند انجام میگردد.
اشتباهات املایی
درصورتیکه اشتباهات املایی پیشرفتدهنده قرارداد حین برنامهنویسی بررسی نشوند، شاید به تغییر برجسته کارکرد و اجازه دسترسی مهاجم به تابع قرارداد منجر شوند.
رویکردهای بازبینی کد در قراردادهای هوشمند
تا این ساعت، مراحل بازبینی قراردادهای هوشمند و ضعفهای احتمالی این کدهای رمزنگاریشده را باهم مرور کردیم. حالا میتوانیم درکی بهتر از عناصری بهدست آوریم که بازبینهای قراردادهای هوشمند در این پروسه بررسی در نظر میگیرند. بهروشکلی، دو عنصر مهمی که روشهای بازبینی کد را برای بازبینها تعریف میکند، آسیبپذیریهای امنیتی و بهرهوری کارمزد (گس) قراردادهاست.
بهرهوری در کارمزدها
بازبینی قراردادهای هوشمند، تنها بهمنظور تضمین امنیت این قراردادها انجام نمیگردد. چراکه بهرهوری و بهینهسازی هم ملاحظات مهمی برای بازبینها بهشمار میجریان. تعدادی قراردادها برای تحقق هدف خود باید فهرستی طولانی از تراکنشها را بهسرانجام برسانند. اینجاست که اهمیت بهکارگیری قراردادهای کارآمد ازنظر صرفهجویی در هزینه کارمزدها برجسته میگردد.
افزونبراین، تلاش برای اجتناب از کارکردهای ناکارآمد و غیرضروری میتواند تعداد ضعفها را کاهش دهد. درمجموع، بهینهسازی کارکرد قراردادها بهروشمستقیم به توانایی و تخصص پیشرفتدهندگان در این شرایط بستگی دارد و ارزیابی آن بردوش بازبین کد قرارداد است.
آسیبپذیری قرارداد
بخش زیادی از اقدامات بازبینها روی جستوجوی نقصهای امنیتی در قراردادها متمرکز است. البته باید اشاره کنیم که حتی وقتی تعدادی مشکلات کاملاً آشکار هستند، هکرها باید از رویکردها و برنامههای پیچیدهای برای حملههای خود استفاده کنند. برای نمونه، حملههایی که راجع به وامهای فوری میگردد.حاصل پروسه پیچیدهای از دستکاری در بازار و سوءاستفاده از نقایص امنیتی قراردادهای هوشمند است.
در نتیجه، بازبینها بررسی مشکلات امنیتی را با شبیهسازی حملههای مخرب به قراردادهای هوشمند شروع میکنند. مشکلاتی ازجمله حمله ورود مجدد و حملههای ورودی کم یا ورودی زیاد و موقعیتهای فرانترانینگ (Front Running) که با سوءاستفاده از کدهای ضعیف برای دستکاری بازار اتفاق میافتند، تعدادی از مشکلاتی هستند که بازبینها در تحقیقاتی خود زیر ذرهبین قرار میدهند.
شرکتهای عرضهدهنده بازبینی کد قراردادهای هوشمند
بهعلت اهمیت بازبینی قراردادهای هوشمند، بهتر است این پروسه بهدست متخصصان حرفهای در این حوزه انجام گیرد. درحالحاضر، شرکتهای بسیاری کار بررسی و تشخیص مسائل امنیتی کدهای قراردادهای هوشمند را بردوش میگیرند. در این بخش، تعدادی از برجستهین شرکتهای عرضهدهنده خدمات بازبینی کد قراردادهای هوشمند را معرفی میکنیم.
هکن (Hacken)
هکن شرکتی با خدمات گسترده امنیتی در حوزههای متفاوت بلاک چین و ارزهای دیجیتال است که با بهکارگیری فناوریهای جدیدی مثل هوش مصنوعی درشرایط تأمین امنیت دیجیتال به شهرت بسیاری دست یافته است.
این شرکت مدعی است که با بازبینی دقیق خود سبب کاهش هزینههای مالی و صرفهجویی در زمان برای تیمهای پیشرفتدهنده میگردد.و به کسبوکارها اجازه میدهد با اطمینان بیشتری قراردادهای هوشمند خود را پیادهسازی کنند. در کناراین، هکن بهرهوری و بازده «دهبرابری» قراردادها بعد از بازبینی را هم تضمین میکند.
کوانتاستمپ (Quantstamp)
تیم بازبین کوانتاستمپ از افراد متخصص با پیشینه آکادمیک تشکیل شده است که میتوانند کار بازبینی کد نرمافزارها و اپلیکیشنهای متفاوت با زبانهای برنامهنویسی مفرق را بردوش بگیرند. این اپلیکیشنها در بر گیرنده طیف گستردهای از حوزهها ازجمله فضای دیفای و توکنهای غیرمثلی تا کیف پولها و کلاینتهای بلاک چین میشوند. در کناراین، کوانتاستمپ در بررسی قراردادهای هوشمندی که روی اتریوم ۲.۰ سوار میشوند، هم تبحر دارد.
کوانتاستمپ بعد از بازبینی کد و تشخیص ضعفها، به تیم پیشرفتدهنده کمک میکند تا مشکلات پروژه را رفع کند. گفتنی است این شرکت در نوآوری منحصربهفرد خود، شبکهای غیرمتمرکز برای بازبینی قراردادهای هوشمند ایجاد کرده است که به کاربران اجازه میدهد بررسی امنیتی خودکار قراردادهای هوشمند را بهکمک «شبکهای جهانی از نودهای امنیتی غیرمتمرکز» انجام دهند.
تریلآفبیتس (Trail of Bits)
تریلآفبیتس از شبکهای از پیشرفتدهندگان خبره در شناسایی و رفع باگهای نرمافزارها و کدهای رمزنگاریشده بهره میبرد و در سالهای اخیر، ابزارهای امنیتی قدرتمندی برای بررسی قراردادهای هوشمند پیشرفت داده است.
تعدادی از خدمات تأمین امنیت شرکت تریلآفبیتس در بر گیرنده عرضه مشاوره به تیم پروژه و استفاده از ابزارهایی ویژه و سفارشی برای شناسایی مشکلات کد درکنار پیگیری و حمایت بلندمدت بعد از پایان پروسه بازبینی میشوند.
اوپنزپلین (OpenZeppelin)
در حقیقت، اوپنزپلین یکی از اولین تیمهایی بود که با معرفی عناصر گیمیفیکیشن (بازیسازی) برای شناسایی باگهای موجود در قراردادهای هوشمند، گام مهمی برای تأمین امنیت بلاک چین برداشت. اوپنزپلین وظیفهه مسیر کاملاً مشخصی دراختیار تیم پروژه قرار میدهد و درپایان، گزارشی کامل و خصوصی همراه با پیشنهادهایی کاربردی و اجراشدنی به سازندگان قرارداد هوشمند عرضه میکند.
ضمناً، این تیم تأمین امنیت به مشتریان خود کمک میکند کدهای رمزنگاریشده با هر نوع پروتکل و زبان برنامهنویسی را بررسی کنند.
کانسنسس دیلیجنس (ConsenSys Diligence)
شرکت آمریکایی کانسنسس یکی از شرکتهای بزرگی است که منابع و متخصصان خود را درشرایط پیشرفت اپلیکیشنها و نرمافزارهای بلاک چین اتریوم، بهویژه نرمافزارهای مالی بهکار میگیرد. محصول میتکس (MythX) این شرکت یکی از ابزارهای کارآمد برای بررسی قراردادهای هوشمند اتریوم بهشمار میرود.
این راهحل API قدرتمندی هم عرضه میدهد که پیشرفتدهندگان میتوانند برای دسترسی به ابزارهای تحلیل امنیت از آن استفاده کنند. در کنار بهرهمندی از متخصصان این حوزه، شرکت کانسنسس از افزونهها و ابزارهای امنیتی متنباز برای تأمین امنیت اپلیکیشنها استفاده میکند و با ادغام این ابزارها در محیط پیشرفت پروژهها، میکوشد پروسه بررسی کد مشتریان خود را بهروشمداوم و بلندمدت انجام دهد.
سرتیک (Certik)
براساس وبسایت رسمی سرتیک، این شرکت امنیتی بیش از ۱۸۸,۰۰۰ خط کد را بازبینی کرده است و تأمین ایمنی بیش از ۶.۳۲میلیارد دلار دارایی را در کارنامه خود دارد. ضمناً بهگزارش این وبسایت، «رویکرد ریاضی» سرتیک با بازبینی قراردادهای هوشمند به موجب محصولات نوآورانهای در این حوزه همراه شده است.
تعدادی از این محصولات مانند آنتیویروس بلاک چین اسکاینت پریمیوم (Skynet Premium) درکنار افتتاح بلاک چین عمومی سرتیک چِین (Certik Chain) که همسو با اهداف تأمین امنیت این پلتفرم فعالیت میکند، سرتیک را بین شرکتهای امنیتی برجسته در این حوزه قرار داده است.
لیستآتاریتی (LeastAuthority)
لیستآتاریتی شرکت مشاوره امنیت سایبری با تمرکز بر حفظ حریم خصوصی است. هرچند محصولات مهم این شرکت در وهله اول با هدف تضمین ایمنی منابع ذخیرهسازی غیرمتمرکز پیشرفت داده میشوند، لیستآتاریتی کار بازبینی پروژههای متفاوتی را در بلاک چین اتریوم و تزوس و سایر بسترها هم بردوش گرفته است.
برای این منظور، لیستآتاریتی در طول مراحل متفاوت چرخه پیشرفت اپلیکیشنها با پیشرفتدهندگان همکاری میکند تا از امنیت پروژهها در هر گام از ایجاد قراردادهای هوشمند اطمینان حاصل شود.
پیدبلیوسی (PWC)
این شرکت خدمات امنیتی حاصل ادغام پیدبلیوسی سوئیس و چینسکیوریتی (Chainsecurity) است که درشرایط تأمین امنیت پروژههای بلاک چینی و وب ۳.۰ فعالیت میکند و به منابع گسترده شرکت پیدبلیوسی دسترسی دارد. پیدبلیوسی با عرضه مشاوره و سرویسهای متفاوت به پروژههای بلاک چینی، تمام مراحل پیشرفت پروژهها را از شروع کار تا مرحله بعد از پیادهسازی زیرپوشش قرار میدهد.
این پلتفرم با معیارهای مهمی کارکرد قراردادهای هوشمند را ازطریق ابزارهای خودکار نوآورانه و متخصصان امنیتی آزمایش و بررسی و بعد ازآن با شناسایی تهدیدهای بالقوه، برای رفع آنها تلاش میکند.
اسلومیست (Slowmist)
اسلومیست را میتوان پیشروترین شرکت امنیت بلاک چین دانست که درشرایط بازبینی قراردادهای هوشمند هم پیشینه درخشانی دارد.
بهگزارش وبسایت رسمی اسلومیست، این پلتفرم بیش از ۱,۵۰۰ قرارداد هوشمند برجسته در بلاک چین اتریوم و سایر بلاک چینهای مبتنیبر ماشین مجازی اتریوم (EVM) ازجمله ایاس، فَبریک، سولانا، ویچِین و آنت را بازبینی کرده است.
ضمناً، اسلومیست از محصولات قدرتمندی ازجمله فایروال قراردادهای هوشمند ایاس برای رهگیری مشکلات احتمالی این قراردادها بهره میبرد. بد نیست بدانید وبسایت رسمی اسلومیست در صفحه اول خود طبقهبندی جدابی از انواع متفاوت بازبینی برای بسترهای مفرق به کاربران عرضه میکند که میتواند نمایی کلی از شرایط بازبینی کد را به جویندگان این خدمات نشان دهد.
رانتایم وریفیکیشن (Runtime Verification)
رانتایم وریفیکیشن شرکت تحقیقوپیشرفت با تمرکز بر اعتبارسنجی رسمی است. این شرکت دو محصول اصلی برای تأمین امنیت قراردادهای هوشمند پیشرفت داده است که از یک سو بازبینی کارکرد قراردادهای هوشمند پلتفرم کاردانو را هدف قرار میدهد و از طرفی ابزار تحلیلی نهایی برای ارزیابی قراردادهای هوشمند اتریوم بهشمار میرود.
شرکت مذکور اکثر زبانهای برنامهنویسی را زیر پوشش قرار میدهد و مجموعه کاملی از خدمات را دراختیار پروژهها میگذارد.
هزینه بازبینی کد قراردادهای هوشمند چقدر است؟
موجبات فراوانی بر هزینه بازبینی کد قراردادهای هوشمند تأثیرگذار است. تعدادی از موجبات مهمی که در تخمین هزینه بازبینی کد در نظر گرفته میشوند، عبارتاند از: پیچیدگی کد، حجم کد و تعداد خطوط، شرایط ویژه توافقشده درباره قرارداد، مقدار شهرت و کیفیت کارکرد بازبینها و تعداد ساعات کاریای که مهندسان و نیروی انسانی شرکت بازبین صرف بررسی کد میکنند. در کناراین، پلتفرمی که قرارداد هوشمند روی آن سوار شده است و ابزاری که برای بررسی کد استفاده میگردد. در هزینه پایانی، وظیفه کاملاً مشخصکنندهای ایفا خواهند کرد.
درهرصورت، تنظیم و بازبینی قرارداد کار خیلی ارزانی نیست. در منابع متفاوت، ارقام مفرقی درباره هزینه بازبینی کد قراردادهای هوشمند ذکر شده است. بهروشکلی، این پروسه شاید بین ۵,۰۰۰ تا ۵۰۰,۰۰۰ دلار خرج روی دست کسبوکارها بگذارد. دراینمیان، همیشه موارد استثناء وجود دارند و هزینه بررسی تعدادی کدها گاهی به نیممیلیون دلار هم میرسد! این نکته را هم نباید فراموش کنیم که تعدادی از برجستهین شرکتهای بازبینی ازجمله نمونههایی که در این مقاله نام برده شد، در اغلب مواقع رزروشده هستند و کار با آنها بسیار گران تمام میگردد.
جمعبندی
درپایان این مطلب، احتمالاً با مقدار اهمیت بازبینی کد قراردادهای هوشمند آشنا شدهاید. اکنون درمجموع، میدانید چه خطرها و حملههایی شاید قراردادهای هوشمند بازبینینشده را تهدید کند. ضمناً، نمایی کلی از مراحل و پروسه بازبینی کد در ذهن دارید و تعدادی از برجستهین شرکتهای تأمین امنیت قراردادهای هوشمند را میشناسید.
بیشک بازبینی قراردادهای هوشمند میتواند رویکردی مناسب برای بهبود کارکرد و بهرهوری قراردادهای هوشمند باشد و اعتماد شرکتها و کسبوکارهای بیشتری را برای استفاده از این کدهای رمزنگاریشده جلب کند. بااینهمه، هنوز مشکلاتی ازجمله زمان موردنیاز و کیفیت و هزینه بازبینی بر سر راه بازبینی کد این قراردادها دیده میگردد. در کناراین، مسئله نوپیدایشبودن این حوزه و حملههای احتمالی جدید و ناشناخته آن را نباید نادیده گرفت.
بهنظر میرسد رفع موانع و افزایش بهرهوری این پروسه بیش از همه به برخورد با دوام و مداوم و قدرتمند پیشرفتدهندگان و بازبینها مربوط باشد. مسائلی ازجمله توافق بر سر شرایط بازبینی پروژه و توضیح و تعریف اهداف آن و همکاری تیم بازبین با تیم پیشرفتدهنده بهمنظور رفع باگها و مشکلات میتواند کیفیت کار هر دو گروه را بهبود ببخشد و درنهایت، به افزایش پذیرش قراردادهای هوشمند و اپلیکیشنهای غیرمتمرکز کمک کند.