Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
cyberevents
6 лет назад

Классификация экономико-технических атак. Спикер: Григорий Васильков

О безопасности в сети Блокчейн в целом, а также о классификации экономико-технических атак расскажет спикер сегодняшней лекции.

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

Платформы с возможностью имплементации смарт-контрактов

Снимок экрана 2018-01-19 в 0.26.07.png

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

Языки программирования умных контрактов

Снимок экрана 2018-01-19 в 0.29.00.png

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

Рассмотрим некоторые виды языков программирования и их визуальные отличия:

  • Платформа Ethereum, язык программирования Solidity

Снимок экрана 2018-01-19 в 0.31.14.png

В ближайшее время Виталий Бутерин планирует внедрить на Ethereum новый функциональный и более безопасный язык Viper.

  • Платформа EOS, язык программирования С++

Снимок экрана 2018-01-19 в 0.32.10.png

Проект EOS находится на стадии разработки и написан он на C++. Язык C++ подвержен различным типам атак, повлияет ли это на работу сети покажет время.

  • Платформа Exonum, язык Rust

Снимок экрана 2018-01-19 в 0.33.01.png

Exonum - приватная платформа, ориентированная на финансовый сектор, написана на Rust и язык, который будет использоваться - также Rust.

  • Платформа Corda, язык программирования Kotlin

Снимок экрана 2018-01-19 в 0.33.41.png

Это платформа R3 Консорциум, в которую вхожи более 70 финансовых учреждений, банков. Corda занимается созданием Блокчейн решений для данных финансовых институтов. Язык программирования платформы - Kotlin, это следующая реинкарнация Java.

  • Платформа Hyperledger, язык Go

Снимок экрана 2018-01-19 в 0.34.42.png

Hyperledger - приватный Блокчейн, который поддерживает Linux Foundation.

  • Платформа Neo, язык C#

Снимок экрана 2018-01-19 в 0.35.04.png

Китайская закрытая платформа, все ноды которой принадлежат одной организации.

  • Платформа Cardano, язык Plutus

Снимок экрана 2018-01-19 в 0.36.12.png

Данная платформа использует два слоя: на одном проходят транзакции, на другом - происходит обмен через смарт-контракты.

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

Проблемы построения безопасной архитектуры на приложений в Блокчейн:

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

Особенности недостатков безопасности в Блокчейн системах:

При разработке смарт-контрактов требуются не только знания технического характера, но и понимание экономических моделей, поскольку:

  • Это затрагивает движение ценных криптовалютных единиц
  • Разработка требует экономического мышления

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

Снимок экрана 2018-01-20 в 2.30.58.png

Под описательный язык данной дисциплины попадает такое определение как экономическая кибернетика:

Экономическая кибернетика - область науки, которая связана с кибернетикой и экономикой, включает в себя математическую статистику, эконометрику, анализ процессов.

Снимок экрана 2018-01-19 в 0.50.42.png

Теперь разберем основные экономико-технические угрозы, которые были выделены с помощью экономической кибернетики:

  • Несостоятельность экономической модели приложения

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

  • Невозможность прогнозировать внешних по отношению к экономике приложения факторы

Чаще всего рассматриваются следующие аспекты:

  1. Прогнозирование точного количества участников приложения, которые будут использовать смарт-контракт
  2. Прогнозирование потребляемого газа при отправке транзакций
  3. Внешние шоки, стимулирующие спрос или снижающие его, такие как колебания ожиданий сообщества или резкое изменения новостного фона
  4. Стоимость токена по отношению к фиатным валютам (слишком высокая или слишком низкая), а также резкое изменение стоимости токена
  • Отсутствие стимулов обращения пользователей к смарт-контрактам, транзакционные издержки

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

  • Работа с непроверенными данными

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

  • Зависимость выполнения работы программы от других участников

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

  • Возможность манипуляции порядком исполнения транзакций

Большинство транзакций, использующихся в смарт-контрактах, представляют собой открытые данные. Майнер решает вносить ли отправленную транзакцию в блок, рассчитывая различные метрики, такие как Gas Price и Gas Limit. Злоумышленник может воспользоваться промежутком времени внесения транзакции в блок, чтобы в дальнейшем повлиять на результат выполнения работы транзакции.

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

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

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

Иногда скорость получения данных может не соответствовать заявленной, это может случится по разным причинам:

  1. Если смарт-контракт зависит от определенных данных другого контракта, которые должен внести сторонний участник
  2. Перезагрузка Блокчейн сети из-за большого количества транзакций, задержка при включении в блок
  3. Если транзакция попадет не в тот uncles т.п.
  • Несоответствие полученных данных

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

  • Зависимость выполнения работы смарт-контрактов от других смарт-контрактов

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

  • Раскрытие и влияние собственных данных на результат работы

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

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

Информация о спикере и его контактные данные для связи:

Снимок экрана 2018-01-19 в 0.21.01.png

0
3.121 GOLOS
На Golos с August 2017
Комментарии (2)
Сортировать по:
Сначала старые