Аудиторская проверка и безопасное кодирование – первооснова умных контрактов

Аудиторская проверка и безопасное кодирование – первооснова умных контрактов
Обеспечивать защищенное кодирование умных контрактов важно не только для отдельных компаний, но и для экосистемы в целом.
 
При написании кода, в частности — для смарт-контрактов, аспекту безопасности уделяется особое внимание. Именно по этой причине EtherCamp обратился к управляющей компании Zeppelin с просьбой провести аудит контракта для децентрализованного стартапа. Zeppelin уже приходилось проверять коды EtherCamp: компания проводила публичную ревизию криптовалюты HKG (HackerGold) и контракта ProjectKudos.
Мы говорим «публичный», потому что после проверки качества кодирования проекта сотрудники Zeppelin составляют отчет, который потом публикуется в открытом доступе. Подобные отчеты содействуют успеху как самой EtherCamp, так и разработчикам других проектов: компания получает возможность проанализировать серьезные проблемы безопасности, потенциальные угрозы и общие замечания к коду, а программисты могут поучиться на чужих ошибках. Публичный и прозрачный аудит кодирования также способствует доверительному отношению к проекту со стороны пользователей.
 
Значимость безопасного кодирования не может быть переоценена, тем более в случае со смарт-контрактами. Аудиторская проверка — единственный способ убедиться в том, что умный контракт будет исполнять только запрограммированные сценарии. Написание кодов — дело непростое, поэтому опасение вызывают не хакеры, а потенциальные баги. Позволить багу оставаться в самофункционирующем коде — так же недальновидно, как создать робота-убийцу без кнопки «выключить», тем самым дав ему возможность выйти из-под контроля и натворить бед. Сущность смарт-контрактов такова, что после их запуска не всегда есть возможно наверстать упущенное. Контракт с багом в кодировании однажды может неправильно сработать, что подорвет доверие заинтересованных лиц к блокчейн.
Любая уязвимость в кодировании делает технологии, основанные на блокчейн (как смарт контракты) ненадежными в глазах пользователей. Даже базируясь на авторитетной блокчейн, смарт-контракт считается безопасным (и, соответственно, надежным) только при наличии надежного кода. Пренебрежение этим правилом привело проект DAO к фиаско. Хакеры просто воспользовались изначальной уязвимостью кода смарт-контрактов, благодаря чему им удалось украсть более 50 миллионов долларов США. К счастью, хардфорк позволил восстановить большую часть украденных инвестиций. Но если оставить в стороне риски денежных потерь, обусловленные плохим кодированием, можно упомянуть другую сторону проблемы — вред, наносимый подобными эксцессами репутации блокчейн-технологий. Наверное, такой ущерб даже более серьезен и разрушителен для блокчейн, которая находится лишь на стадии становления.
 
 

Именно поэтому первостепенная значимость безопасности кодирования — неоспоримый факт. Первый шаг к обеспечению безопасности кода — следовать примеру лидеров умных технологий, вроде EtherCamp, обращаясь к независимым аудиторским компаниям с просьбой проверить кодирование. Это гарантирует соответствие настроек смарт контракта отработанным стандартам и сократит число потенциальных атак. Кроме того, публичные аудиторские отчеты будут свидетельствовать об открытости начинающего проекта. При этом дополнительным бонусом от минимизации количества багов и уязвимостей станет укрепление защиты экосистемы блокчейн в целом.
 
В частности, свой вклад в безопасность системы делает компания Zeppelin. Через собственный проект OpenZeppelin, компания предлагает готовые решения универсальных и безопасных смарт-контрактов, в которых используется стандартизованное, протестированное и одобренное сообществом кодирование. Использование апробированных решений в создании смарт-контрактов эффективно повышает уровень безопасности системы и упрощает написание кодов. Представители Zeppelin так выразили свое видение проблемы:
«Обеспечение безопасности умных контрактов — дело непростое. Нам необходимо найти новые инструменты программирования для того, чтобы создать следующее поколение смарт-контрактов на базе блокчейн. До сих пор не выработано единых стандартов по написанию защищенного кода для смарт-контрактов. Zeppelin предлагает дискуссионные решения, призывающих разработчиков и участников сообщества к обсуждениям и выработке инструментов защиты финансовой экосистемы».

Кроме помощи со стороны сообщества, разработчики могут использовать описанные ниже паттерны обеспечения безопасности. Главное в кодировании — не допускать возникновения скрытых неисправностей. Для этого, прежде всего, можно писать более простые и модульные коды, которые, в свою очередь, проще проверять. Такой подход значительно ускоряет аудит смарт-контрактов. Другой паттерн состоит в том, чтобы писать код не с нуля, а с опорой на отработанные и проверенные временем или сообществом примеры кодирования.
У начинающих проектов было бы больше возможностей для внешнего аудита смарт-контрактов на предмет защищенности, если бы был создан сертификационный совет.
 

Наш канал в Telegram:
22:15
106

Комментарии

Нет комментариев. Ваш будет первым!