Блокчейн Exonum: ваша платформа для доверия
FAQ
Общие вопросы
Что такое Exonum?

Exonum происходит от слова «экзонумия» (exonumia). Экзонумия — это ценные предметы, традиционно имеющие хождение на рынке.

Мы назвали нашу платформу Exonum, потому что с ее помощью вы можете создавать, обменивать и хранить любую ценность — любые цифровые активы.

На какой операционной системе работает Exonum?

Exonum оптимизирован для компьютеров на Linux, macOS и Windows.

Какой тип лицензии вы используете?

Exonum распространяется под лицензией Apache 2.0. Вы можете свободно разрабатывать с Exonum почти все что угодно — просто не забудьте сослаться на The Bitfury Group / Exonum.

Как связаться с техподдержкой Exonum?

Мы просим размещать все вопросы к техподдержке в Gitter или Stackoverflow. Там мы отвечаем на вопросы и хотели бы разделить полученные знания со всем сообществом разработчиков. Если у вас нетехнический вопрос, связаться с представителем Exonum можно через контактную форму на сайте.

Разработчикам
Поддерживает ли Exonum смарт-контракты?

Да! Exonum подходит для работы со смарт-контрактами. Как и на других платформах для смарт-контрактов, смарт-контракты в Exonum реализуют бизнес-логику, которую в любой момент можно добавить к блокчейну. Если говорить о скорости обработки транзакций, у смарт-контрактов Exonum высочайшая производительность, они способны обрабатывать до 5000 транзакций в секунду с задержкой всего лишь 0,5 секунд, а в отдельных случаях — до 15000 транзакций в секунду.

Создавать смарт-контракты в Exonum можно на языках программирования Rust и Java.Написанные на языке Rust контракты встраиваются прямо в код узлов блокчейна. Этот способ гарантирует безопасное использование памяти и обеспечивает оптимизацию смарт-контрактов по скорости. Написанные на Java контракты могут быть добавлены в любое время после запуска блокчейна. Но для безопасности вашему системному администратору нужно будет проверять все смарт-контракты, созданные на Java, перед их публикацией.

Где хранятся конфигурация блокчейна и список валидаторов?

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

Можно ли реализовывать на основе Exonum решения из нескольких модулей, как это сделано, например, в peercoins/peershares?

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

Можно ли использовать Exonum с уже скомпилированными клиентами (типа кошельков Bitcoin, Ethereum и т. д.) под macOS, Windows, Linux?

Да, легкий клиент реализован на Node.js, Java и Python.

Можно ли участвовать в разработке Exonum?

Команда Exonum открыта к сотрудничеству с сообществом разработчиков. Мы написали contribution guide для тех, кто хочет участвовать в разработке.

Как будет развиваться проект?

В документации есть наша дорожная карта.

Какой алгоритм шифрования использует Exonum?

Для хеширования сериализованных транзакций Exonum использует алгоритм SHA-256, а для цифровой подписи — Ed25519. Exonum использует библиотеку libsodium для вычисления хеша на полных узлах и sha.js для легких клиентов.

Сообщения между узлами шифруются с помощью протокола Noise.

Как Exonum предотвращает разветвление цепочки анкоринга?

Перед созданием транзакции анкоринга валидаторы приходят к соглашению о том, какую транзакцию анкоринга считать последней в цепи анкоринга. Такая транзакция называется «последней предположительно верной транзакцией» (Latest Expected Correct Transaction (LECT)). Каждый валидатор записывает информацию о том, какую транзакцию он выбрал, в блокчейн Exonum. Как только результаты LECT совпадают у 2/3 + 1 валидаторов, они создают новое предположение о транзакции анкоринга. Если по крайней мере 2/3 + 1 валидатор согласен с предложением выбрать эту транзацкцию анкоринга, они начинают создавать новую транзакцию анкоринга и подписывают ее входы. Когда новая транзакция анкоринга создана и подписана по крайней мере 2/3+1 валидатором, ее выходы тратятся на изменение (выходы с оставшимся балансом для создания новой биткоин-транзакции) LECT, так что никакая другая транзакция с таким же входом не может быть создана.

Как работает алгоритм принятия нового блока?

Новая транзакция попадает в так называемый пул неподтвержденных транзакций (область памяти). Узел-лидер предлагает блок (Proposal) и транслирует его всем узлам в сети. Валидаторы голосуют за предложенный блок, рассылая сообщения Prevote. Сообщение Prevote означает, что валидатор изучил блок и ему известны все транзакции в блоке.

Как только валидатор получает сообщения Prevote от более чем 2/3 всех валидаторов в сети, он исполняет транзакции из предложенного блока и рассылает сообщение Precommit всем остальным валидаторам. Сообщение Precommit содержит результат применения предложенных транзакций в виде хеша нового состояния хранилища данных (хеш состояния). Это сообщение подтверждает, что его отправитель готов передать новый блок в блокчейн, но ждет подтверждения остальных валидаторов сети. Наконец новый блок отправляется в блокчейн, если валидатор получает более 2/3 сообщений Precommit, содержащих такой же хеш состояния.

Какие параметры должны быть у оборудования, чтобы достичь производительности 5000 транзакций в секунду в Exonum?

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

●      Сеть — пропускная способность 1 Мбайт с пингом между узлами ~100 мс;

●      Процессор — двухъядерный, 3 ГГц;

●      RAM — 1–2 Гбайт;

●      HDD — 30 Гбайт (7200 оборотов в минуту);

●      Количество узлов в сети — 4–7.

Подходящим облачным аналогом такого оборудования может быть сервер Amazon EC2 t2.small.

Но со времени последнего бенчмаркинга в Exonum произошли существенные изменения, и в ближайшем будущем будут проведены новые испытания.

Бизнесу
Нужно ли платить за использование Exonum?

В Exonum есть сервис анкоринга, который делает невозможным изменение истории транзакций. Суть сервиса в том, что хеш всего состояния блокчейна периодически   публикуется в общедоступном источнике (блокчейне Bitcoin). Чтобы записать новую транзакцию в блокчейн Bitcoin, нужно заплатить, в биткоинах.

Можно ли разместить на бирже токен, созданный в Exonum?

ICO на базе Exonum пока не реализован. В принципе, технически возможно размещать Exonum-токены на биржах, но реализовывать эту возможность нужно при помощи сторонних разработчиков

Как стать партнером Exonum?

Можно написать сообщение на нашем сайте в разделе «Партнёрам», и мы свяжемся с вами.

Есть ли у Exonum встроенная криптовалюта?

Мы сделали Exonum максимально гибким. Вы можете создать в Exonum свой блокчейн, чтобы хранить токены или криптовалюты или создать эксклюзивный (permissioned) блокчейн без них. На всякий случай мы написали инструкцию, как создать свою собственную криптовалюту в блокчейне Exonum.

Есть ли блокчейн-решения на Exonum для государственных предприятий / банковского сектора и т. д.?

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

Какие успешные проекты реализованы на Exonum?

Грузия

Национальное агентство государственного реестра Республики Грузия в тестовом режиме использует блокчейн Exonum в своем земельном кадастре. Блокчейн-реализация существенно снизит время отклика сервиса и операционные расходы и позволит проводить аудит в режиме реального времени.

Украина

Правительственная система электронных торгов арестованным имуществом Украины (СЕТАМ) переводится на Exonum для применения блокчейна. Блокчейн-система будет хранить записи об арестованном имуществе, реестр участников аукционов и протоколы аукционов. Это повысит доверие граждан к системе и обеспечит высокий уровень защиты.

Казахстан

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

Aricent

В компании Aricent был реализован пилотный проект для увеличения эффективности их процессов разработки программного обеспечения (DevOps). По результатам внутреннего исследования компании, внедрение блокчейна Exonum привело к значительному ускорению цикла разработки продукта (примерно на 34%).

Insilico

Bitfury Group заключила соглашение с Insilico Medicine, Inc. о разработке оригинальных решений для медицинских приложений с использованием технологии блокчейн. Цель проекта — разработка решений на основе блокчейна и искусственного интеллекта, которые будут управлять медицинскими данными — собирать, распространять, отслеживать и проверять их.

Чем отличается Exonum от IBM Hyperledger?

Exonum использует особые структуры данных (деревья Merkle и Merkle Patricia), обеспечивающие контроль на стороне клиента (см. наш легкий клиент). К тому же мы предлагаем сервис анкоринга, который периодически сохраняет хеш состояния блокчейна Exonum в  блокчейн Bitcoin. Это предотвращает сговор владельцев узлов с целью изменения истории данных. Наконец у нас есть собственный встроенный алгоритм консенсуса BFT, а используемый нами язык программирования Rust меньше подвержен ошибкам.

Чем отличается Exonum от Ethereum?

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

В основе алгоритма консенсуса Exonum (BFT) лежит математическое доказательство, а значит, его функционирование не нуждается в экономическом вознаграждении. В результате Exonum не требует майнинга и не зависит от обменного курса любой из криптовалют. Все это обеспечивает предсказуемую стоимость операции в блокчейне Exonum в любое время.

Платформа Exonum гибка и подстраивается под нужды пользователя. Например, система позволяет настраивать некоторые относящиеся к консенсусу параметры (таймауты и др.).