Невозможность взлома технологии blockchain остается довольно распространенным заблуждением. Такие утверждения нередко приводятся в средствах массовой информации (обычно – вместе с разговорами о возможном взломе).
При разработке этой технологии были предусмотрены различные меры безопасности. Они избавляют от потребности в доверии и позволяют защитить распределенный реестр от действий преступников. Но взломать систему, построенную с использованием этой технологии, все же можно, что подтверждается многочисленными подобными инцидентами.
Blockchain: основные понятия
Эта технология является крупной экосистемой, к которой можно подключить много разнообразных систем. По сути, blockchain представляет собой структуру, схожую с Bitcoin. Сеть осуществляет поддержку электронной книги, в которую записывается разнообразная информация. Если говорить о Bitcoin, это в первую очередь сведения о финансах, но такую систему можно использовать, чтобы хранить любую информацию.
Площадка смарт-контрактов пользуется этим преимуществом, применяя blockchain, чтобы хранить исполняемый код. В нее входит ПО, реализующее основной протокол сети, а также виртуальную машину. Последняя отвечает за поддержку состояния, а также его обновление на базе сохраненного в реестре кода.
Структуры, подобные Bitcoin, площадкам смарт-контрактов и запускаемому ими коду, представляют собой элементы blockchain. Это определение размывается при интеграции внешних систем.
Так, площадка для торговли криптовалютами – это часть пространства blockchain, но в это же время она является только сайтом и учреждением, которые осуществляют транзакции в сети. Большая часть инцидентов, в которых происходит взлом blockchain, на деле касаются атак на криптобиржи. Они никак не связаны с системой безопасности непосредственно blockchain.
Основные уязвимости blockchain
У этой технологии имеются свои защитные механизмы, но им пока далеко до идеала. По ряду причин протокол уязвим для различных хакерских атак. В число главных таких входят:
- Уязвимости реализации протоколов blockchain. В теории они могут быть предельно безопасными, но полезными являются исключительно в случае реализации в коде. Просчеты в исполнении кода способны сделать теоретически защищенный протокол уязвимым.
- Несоответствие стимулов. В blockchain входят стимулы, превращающие верное поведение в самый разумный вариант действий. Но в некоторых ситуациях эти стимулы работают некорректно.
- Просчеты в дизайне. Основной протокол blockchain, описание которого приводится в официальной документации bitcoin, довольно хорошо защищен. Немалое число брешей в системе безопасности возникает при попытках разработчиков включить в протокол дополнительный функционал поверх основы.
- Просчеты в защите смарт-контрактов. Технология blockchain появилась сравнительно недавно, а смарт-контракты – еще более позднее изобретение. Некоторые сервисы для них лишь начали развиваться. Это значит, что у разработчиков пока не было возможностей для подробного изучения и устранения всех брешей в безопасности. Из-за этого при создании смарт-контрактов время от времени допускаются ошибки, негативно влияющие на безопасность.