В рамках развития проектов, использующих автономные/умные контракты Aira core, мы разработали регламент проверки кода на основе рекомендаций основных разработчиков проекта Ethereum, а также нашего личного опыта команды Airalab.
Материалы, используемые Airalab при формировании регламента проверки кода умных контрактов
- Публикация в блоге Ethereum Christian Reitwiessner: Smart contract security;
- Публикация в блоге Ethereum Виталика Бутерина: Thinking About Smart Contract Security;
- Запись лекции по безопасности умных контрактов на Youtube: Smart contract security in Ethereum.
Отдельное внимание стоит уделить этой презентации: Smart Contract Security in Ethereum. В конце презентации хороший список материалов, на которых основывалась данная презентация, поэтому стоит наиболее внимательно изучить данный материал и исхоные ссылки.
Сухой остаток/инструкция к действию от основных разработчиков Ethereum, на которую 100% стоит обратить внимание, находится на GitHub: Ethereum Contract Security Techniques and Tips.
Как мы проверяем безопасность контрактов в Airalab
Основной документ, регламентирующий проверку кода: Регламент проверки безопасности контрактов Airalab
Каждый контракт, который мы создаем, проверяется разработчиком по данному регламенту. В результате проверки формируется документ, который необходимо расположить по следующему пути: /airalab/core/securityCheck
Результат проверки должен содержать 3 блока:
Блок 1: «Проверка общих рекомендаций Airalab». В данном блоке должен быть описан результат проверки по каждому из пунктов, содержащихся в разделе: «Обобщенные рекомендации к проверке«.
Блок 2: «Проверка на известные атаки». В данном блоке должен быть описан результат проверки по каждой из известных нам видов атак, содержащихся в разделе: «Известные атаки«.
Блок 3: «Комментарии по коду». Данный блок позволяет разработчику обратить внимание на потенциально уязвимые места или же акцентировать внимание пользователя на каких-либо фрагментах кода.
Как пример результата проверки можно посмотреть следующий документ: Smart contract «Token.sol» security check.
Рекомендации/замечания разработчиков пишите в формате issue в репозиторий Aira core на GutHub.
Также любые вопросы в наш канал друзей Airalab в Gitter.
а как заказать такую проверку?
На данный момент заказать подобную услугу нельзя. Мы все ещё работаем над тестированием регламента на собственных контрактах. В августе 2016 планируется семинар в Москве по теме безопасности умных контрактов, от Airalab, и уже после мы подумаем о том, как помочь коллегам в проверке их контрактов. Следите за обновлениями в блоге и на моей странице facebook: https://www.facebook.com/EnsRationis2020