Югансон Андрей Николаевич
Университет ИТМО, факультет безопасности информационных
технологий, кафедра проектирования и безопасности компьютерных
систем, аспирант
Направление подготовки: 10.06.01 – Информационная безопасность
e-mail: a_yougunson@corp.ifmo.ru
УДК 004.056.5
СРЕДСТВА ОБЕСПЕЧЕНИЯ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
СМАРТ-КОНТРАКТОВ
Югансон А.Н., Боровик В.С., Зенин М.М.
Научный руководитель – аспирант Югансон А.Н.
В работе приведен обзор средств обеспечения информационной безопасности смарт-контрактов для
платформы Ethereum. Рассмотрены базовые принципы работы технологии блокчейн и смарт-
контрактов. Дана характеристика способам обеспечения безопасности смарт-контрактов для
платформы Ethereum.
Ключевые слова: блокчейн, уязвимости программного обеспечения, смарт-контракты, язык
программирования Solidity.
Блокчейн – распределенный цифровой реестр, обеспечивающий принцип неизменности
данных, представляющий из себя постоянно растущую последовательность блоков, которая
распространяется между участниками с помощью пиринговых сетей [1].
Блокчейн работает по следующим правилам:
– новые транзакции рассылаются всем узлам;
– каждый узел объединяет пришедшие транзакции в блок [2];
– каждый узел пытается подобрать хэш блока, удовлетворяющий текущей сложности;
– как только такой хэш найден, этот блок отправляется в сеть;
– узлы принимают этот блок, только если все транзакции в нем корректны и не используют
уже потраченные средства;
– свое согласие с новыми данными узлы выражают, начиная работу над следующим блоком
и используя хэш предыдущего в качестве новых исходных данных (рис. 1).
Альманах научных работ молодых ученых
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1
133
Рис. 1. Формирование цепи блоков
Bitcoin является ярким примером применения технологии блокчейн в финансовой
сфере, но также существует множество других традиционных областей, в которых
применение блокчейн может решить существующие проблемы.
Создание блокчейна является сложной инженерной задачей, которая требует высокой
квалификации программистов, а также для полноценной работы сети необходимо
достаточное количество узлов, обеспечивающих подтверждение транзакций. В настоящее
время для решения таких задач существуют публичные блокчейн-платформы, основной
задачей которых является предоставление инструментов разработки для создания
децентрализованных приложений на их основе. Самой популярной из таких платформ на
данный момент является Ethereum. Ethereum представляет собой блокчейн со встроенным
тьюринг-полным языком программирования Solidity, позволяющим любому желающему
писать смарт-контракты, децентрализованные приложения, а также создавать свои
протоколы.
Смарт-контракт – это программный код, который хранится в блокчейне. Выполнение
смарт-контракта происходит при поступлении новой транзакции, имеющей вызов функций
из контракта. Код контракта пишется на специальном языке программирования Solidity.
Перед публикацией кода в блокчейн он компилируется до байт-кода для виртуальной
машины Ethereum (EVM).
За вызов функций смарт-контракта пользователь должен заплатить определенное
количество внутренней валюты – газа. Стоимость зависит от сложности и количества
производимых смарт-контрактом вычислений, а также от цены на газ. Цена за единицу газа
определяется относительно к ETH. Узел, подтвердивший транзакцию, получает комиссию в
размере количество газа умноженного на его цену.
Частный случай смарт-контрактов – мультиподпись. Мультиподпись – это подпись
схема реализации электронной подписи, которая для своей достоверности требует наличия
согласия M из N участников, где 1<M<=N.
Алгоритм мультиподписи заключается в следующем:
– один из владельцев кошелька формирует транзакцию;
– транзакция записывается в смарт-контракт, встает в очередь и находится там до тех пор,
пока ее не подпишут нужное, для ее исполнения, количество владельцев;
– после сбора необходимого количества подписей, она может быть исполнена (рис. 2).
Мультиподпись – значимая часть экосистемы Ethereum, на ней основан наиболее
распространенный кошелек – Parity, который был взломан из-за ошибки проектирования
смарт-контракта.
Рис. 2. Принцип работы мультиподписи
Альманах научных работ молодых ученых
XLVII научной и учебно-методической конференции Университета ИТМО. Том 1
134
Децентрализованные приложения обязаны быть максимально надежными с точки
зрения информационной безопасности, так как наличие уязвимостей в них может повлечь
огромные финансовые и репутационные потери [3, 4].
Do'stlaringiz bilan baham: |