ru
  • 96

Экономические риски для блокчейн-приложений (часть 2)

Рынок информационных технологий развивается настолько стремительно, что продукты, предназначенные для обеспечения безопасности часто не соответствуют последним новинкам. В результате, компании начинают заботится об актуальности защиты только в том случае, если риск безопасности приложения уже существует.

 

В этой статье мы рассмотрим основные риски для блокчейн-приложений, а также самые эффективные способы их устранения.

Неопределенное изменение стоимости активов

Ключевой момент данного риска в том, что криптовалютный рынок постоянно двигается, и даже опытным аналитикам сложно предугадать колебания цен на определенные монеты. Естественно, в таких условиях практически невозможно выработать закономерность колебаний курса.

 

Часто бывает, что работа приложения напрямую зависит от котировок, а основная задача разработчиков сводится к построению такой модели продукта, которая будет учитывать возможные колебания стоимости монет.

 

Стоимость активов в блокчейне

 

Рассмотреть эту проблему проще всего на практическом примере. К примеру, компания предоставляет услугу страхования при перевозке грузов, руководствуясь в работе умными контрактами. Поскольку курс Ethereum отличается высокой волатильностью, а компания вынуждена использовать для работы подрядчиков, ей необходимо хеджировать полученные монеты к американскому доллару. В результате появляется точная стоимость полученного эфира, а участники сделки получают возможность страховать риски от колебаний курса криптовалюты и изменений стоимости услуги страхования. Таким образом, если груз будет поврежден, страховая компания будет выплачивать ущерб в валюте Ethereum, но с привязкой к стабильному курсу.

 

Определенный риск в данном случае все же существует. Компания получит прибыль только в том случае, если на момент выплаты страховки стоимость криптовалюты повысится. Если же цена на монеты резко упадет, страхования компания понесет серьезные убытки, вплоть до полного банкротства.

 

Чтобы избежать подобных проблем, нужно постоянно отслеживать стоимость криптовалюты и вносить соответствующие изменения в умный контракт.

Задержки в получении информации

В современном мире информация распространяется с высокой скоростью, но при этом все еще существуют риски несвоевременного получения данных или сбоев в доступности определенного ресурса. Кроме того, всегда существует риск DDOS-атаки на ресурс или его блокировки руководством определенной страны.

 

Задержка получения информации может возникнуть и внутри децентрализованной системы. Такое развитие событий возможно в том случае, если умный контракт напрямую зависит от данных другого контракта, который вносится в систему сторонним участником сети.

 

Информация для блокчейн-приложений

 

К данной группе рисков можно отнести и race condition в процессе включения определенной транзакции в блок. Этот процесс возможен в том случае, если транзакция попадает не в тот uncles или происходит перезагрузка сети из-за большого количества транзакций.

 

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

Несоответствие полученной информации

Разрабатывая архитектуру определенного приложения, следует учитывать, что источников получения информации должно быть несколько. Также необходимо помнить, что цепочка данных очень длинная, и изменения могут произойти на любом ее участке. Будет правильно получать информацию сразу от нескольких независимых источников и сравнивать их между собой. При обнаружении расхождений в данный разработчики могут принять необходимые для обеспечения безопасности меры.

 

Стоит отметить, что в централизованных приложениях подобные расхождения достаточно легко обрабатываются, тогда как в работе децентрализованных продуктов существует огромное количество нюансов.

 

Чтобы лучше понять суть проблемы, рассмотрим ее на примере. Предположим, что децентрализованное приложение использует данные о текущем курсе криптовалют с внешнего источника. Для повышения уровня безопасности используются данные с другого стороннего источника, который также предоставляет информацию о курсе. Если данные разнятся более, чем на 3%, следует использовать информацию из других ресурсов, пока информацию о курсе не будет удовлетворять условиям контракта.

 

В данном случае проблема касается высокой волатильности криптовалют. В некоторых случаях данные о курсе могут отличаться более, чем на 30%, особенно, если информация собирается с большого временного отрезка. В результате, умный контракт будет расходовать собственные ресурсы исключительно на обращение за данными к сторонним ресурсам, и алгоритм так и не будет запущен. Выход из ситуации один – включать в умный контракт возможность ручного введения данных.

Зависимость умных контрактов друг от друга

В некоторых случаях работа умных контрактов основана на обращении к другим аналогичным контрактам или сторонним библиотекам. С одной стороны это помогает своевременно обновлять смарт-контракты, а с другой – ставит их в зависимость от других программ и приложений.

 

В результате может возникнуть проблемная ситуация. К примеру, если нарушается логика умного контракта, к которому происходит обращение, может возникнуть угроза работы самого приложения. Подобное уже происходило в ноябре 2017 года, когда в результате несовершенства контракта было заблокировано порядка 500 тысяч монет Ethereum.

 

Умные контракты

 

Единственным выходом из ситуации станет правильная разработка алгоритма, который не будет полностью полагаться на данные стороннего контракта, который не находится под вашим контролем.

Проблемы прогнозирования и влияния на вводные данные

Создавая умный контракт, разработчику следует учитывать различные варианты получения вводных данных. На примере этот будет выглядеть следующим образом. Предположим, что умный контракт является основой работы децентрализованным обменником, который использует всего одну биржу для получения информации о текущем курсе криптовалют. Мошенники могут считать данные об обращении к бирже и с помощью собственных ресурсов поменять курс в выгодную для него сторону. Умный контракт, получив необходимые данные, введет информацию о курсе в блокчейн, и злоумышленник получит возможность совершать операции по выгодной для него цене.

 

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

Влияние собственных данных на работу приложения

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

 

Блокчейн не является анонимным. Его можно назвать только неперсонализированным. Другими словами, если кому-то удастся персонализировать адрес кошелька одного из пользователей сети, можно будет создать полную картинку взаимосвязей этого участника с другими пользователями сети. В результате вполне возможен сценарий, при котором открытые данные пользователей сети напрямую влияют на ее работу.

 

Если рассмотреть эту проблему на практическом примере, риск будет выглядеть более понятным. Предположим, что компания использует умный контракт для продажи специализированных товаров по тендеру нескольким потребителям одновременно. Фирма-конкурент может провести анализ аккаунтов покупателей и персонализировать их (даже если данные были зашифрованы) и предложить каждому из них более выгодную цену. В результате компания, которая занималась реализацией тендера, останется без покупателей.

 

Устранить такую проблему поможет только алгоритм ZkSNARk, который качественно шифрует данные, показывая сторонним лицам лишь часть процесса, одновременно доказывая надежность приложения. 

Comments system Cackle