КРИПТОПРОЕКТЫ: DUE DILIGENCE, РЕЙТИНГ, БЛЭКДЖЕК
20 августа  2018 г.
Universa ruen
Рейтинг 43.75%
69 место в рейтинге
20 августа  2018 г.
Что такое Universa?

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

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

Отличие Universa — хранение и выполнение смарт-контрактов на стороне клиента, а не в сети Universa. Сеть хранит только их актуальное состояние.

Следует заметить, что Universa технически является криптосистемой не на блокчейне, а на DAG. Слово “блокчейн” используется здесь (как и самими авторами проекта в их документации) скорее как устоявшийся термин для обозначения криптосистемы.

Архитектура и логика
Механизмы и принципы эмиссии

Единоразовая эмиссия токенов, общее количество составляет 10 млрд. токенов UTN.

Токены распределялись в 2 этапа:

  • pre-ICO (сентябрь 2017)
  • ICO (28 октября — 2 декабря 2017)

Во время TGE (выпуска токенов) был сгенерирован токен Эфириум ERC20, играющий роль заполнителя, который был распределен среди участников. Токены платформы будут созданы и распределены на основном блокчейне при запуске платформы Universa. Участники TGE и предпродажи, которые не реализовали свои токены-заполнители ERC20 (UTN-P), получат своё вознаграждение непосредственно в UTN.

По результатам токен сейла было собрано $28’800’060.

Распределение токенов:

  • Широкая публика — 66%.
  • Организация — 20%.
  • Команда — 10%.
  • Вознаграждение / Консультанты / Партнеры — 4%.

Использование средств, полученных в ходе ICO:

  • Universa Protocol (разработка) — 35%.
  • Маркетинг / Развитие проекта — 20%.
  • Фонды — 20%.
  • Резерв — 10%.
  • Операции — 8%.
  • Юристы — 5%.
  • Безопасность — 2%.

Выполнение действий по смарт-контрактам требует осуществления оплаты за транзакции в UTN с целью наградить участвующие узлы за вычислительные мощности, предоставляемые ими в сеть, а также поддержать постоянное развитие платформы Universa. Узлы будут оставлять себе 80% платы за транзакции, а 20% будут направляться в корпорацию Universa. Каждый день 1% платы, удерживаемой Universa, будет уничтожаться навсегда, или «сжигаться», что приведёт к выводу этой суммы из обращения и создаст пожизненный эффект дефляции.

На данном этапе работы сети также используется U. UTN — это оцифрованный купон, с помощью которого можно приобретать сервисы Universa. А U — это аналог газа сети Ethereum. Взимается плата в 1 U за одну базовую транзакцию (например, перевод токенов). Планируется зафиксировать курс 1 U на уровне 0.01 USD. UTN — это свободно торгуемый токен с плавающей ценой, а U нельзя передавать другим пользователям и купить его можно за UTN. В White Paper упоминание этого токена отсутствует.

Механизмы обеспечения консенсуса

Платформа Universa базируется на сети Universa — множестве клиентов Universa Core, работающих на узлах, составляющих блокчейн Universa и обеспечивающих работу службы безопасной подписи документов Universa (the Universa Secure Signed Document Service, под кодовым названием «Нотариальное облако»).

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

Сеть построена вокруг контрактов и их исполнений — «транзакций» — и каждый раз, когда должно выполняться какое-либо действие, всем узлам передается текущее состояние контракта и источник выполняемой операции. Состояние и источник проверяются хэш-суммой на идентичность сохраненному текущему состоянию боковой цепи контракта («К-чейн»), операция применяется, и затем новое состояние хэшируется и согласовывается.

Создатели Universa разделяют механизм консенсуса на два уровня: локальный и сетевой консенсусы. Под консенсусом понимается подтверждение состояния смарт-контракта, например — его создание, изменение состояния, уничтожение.

Двухуровневая процедура консенсуса подтверждает, что:

  • Стороны, участвующие в контракте, проверили его и утвердили.
  • Сеть проверила соглашение сторон, соблюдение правил контракта и подтвердила контракт.

Локальный консенсус.

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

Сетевой консенсус.

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

В случае, когда 11% нод отказали в одобрении контракта (negative consensus), голосование прекращается и все ноды записывают в сеть факт отклонения изменения состояния контракта.

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

Каждая нода имеет свою копию сети (ledger) и штампует время, когда новый контракт был предоставлен на утверждение.

Защита от логических и технических атак

Двойная трата

В терминах сети Universa атака двойной траты — это попытка утвердить 2+ различных состояний одного контракта. Например, контракт передачи собственности (монет и т.п.) нескольким сторонам одновременно. Чтобы это сделать, атакующий создает несколько ревизий (revision, в терминологии Universa, новый контракт или новое состояние контракта) и отправляет его синхронно разным узлам для подтверждения.

Предположим, что злоумышленник хочет изменить состояние контракта C на два других A и B и две ноды получают его одновременно. Поскольку контракты действительны, обе ноды блокируют предыдущее состояние C для удаления и замены состоянием A или B и отправляют свое решение другим нодам сети. Каждый узел сети, получающий состояние A или B, будет блокировать состояние C для удаления и замены состоянием A или B соответственно. Таким образом, некоторые узлы будут голосовать за A, некоторые за B, но никто не будет голосовать за обоих.

Будет происходить своеобразная гонка по набору голосов за одно из двух состояний. В зависимости от параметров работы сети (скорости, случайных лагов и т.п.) могут быть 3 результата:

  • A обрабатывается быстрее, чем B и собирает 90% голосов. Следовательно, одобряется.
  • B обрабатывается быстрее, чем A и собирает 90% голосов. Следовательно, одобряется.
  • Самый вероятный случай. Скорее всего A и B будут обрабатываться с примерно равной скоростью, поэтому каждому состоянию достанется примерно по половине голосов. Соответственно оба из них достигнут отрицательного консенсуса, и состояние C останется неизменным.

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

DDOS-атаки

Клиентский интерфейс узла подключен к Nginx (HTTP сервер) или подобному, конфигурация которого настроена на:

  • Ограничение максимальной длины запроса.
  • Ограничение максимального времени запроса.
  • Проверка правильности запроса.

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

DDOS-атаки могут совершаться двумя способами: статически (статический запрос — просто запрос к данным, не требующий выполнения над ними операций) и динамически (динамический запрос — например, запрос результата расчета). Статические запросы полностью кэшируются и отрабатываются Nginx.

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

Архитектурные преимущества и риски

Преимущества Universa:

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

 

Структура смарт-контракта

Смарт-контракт глобально состоит из трех частей:

  • Определение (definition).
    Постоянная часть контракта, которая не может быть изменена в ревизиях (версиях состояния). Содержит эмитента, отметку времени, допуски (некоторые допуски могут быть перенесены в часть смарт-контракта “состояние”) и любые данные, которые создатель хочет оставить неизменными.
  • Состояние (state).
    Модифицированный раздел, параметры которого можно изменять в  ревизиях. Содержит номер версии, создателя, временной штамп, ссылку на исходную/предыдущую ревизии, изменяемые роли и любые изменяемые данные, и, иногда, настраиваемые допуски.
  • Вложения (attachments).
    Любой файл, упомянутый подписанной ссылкой в других двух частях смарт-контракта (определение или состояние).

Структура сети

В сети Universa не хранятся контракты и их цепочки состояний, сеть содержит только записи об их актуальном состоянии (не более 140 байт).

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

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

Сеть Universa имеет доступ только к двум частям контрактов: состоянию и определению. Остальные никогда не отправляются в сеть. Этот момент важен, поскольку вложения могут иметь конфиденциальный характер. Таким образом, полный контракт обменивается исключительно между участвующими сторонами любым удобным способом (электронная почта, мессенджеры, облачные пространства и т.п.). Неизменность вложений (расположенных где-то в клиентском хранилище) гарантируется ссылками, подписанными  в контракте и одобренными сетью.

Лицензирование и юридические аспекты

Правовые составляющие процедуры ICO:

  • Правовая форма: Фонды, некоммерческие структуры.
  • Юрисдикция: Сингапур, Цуг (Швейцария).
  • Требуется прохождение процедуры KYC.

Штаб-квартиры проекта находятся в Литве, Италии и России.

  1. Оценка «Архитектура и логика»: 4 балла из 10. Прогноз негативный.

Механизм и принципы эмиссии — 1 балл из 3 (доля эмиссии в адрес команды проекта выше средней, экономика токена описана плохо, сейчас используется токен U, о котором нет упоминания в проектной документации).

Блокчейн (архитектура и механизм обеспечения консенсуса) — 2 балла из 4 (невнятное запутанное описание архитектуры системы. Принцип децентрализации под вопросом. Каждый узел лицензируется и авторизируется корпорацией Universa и может быть подвержен ее влиянию. Так же не описана процедура лицензирования, сможет ли Universa отзывать выданные лицензии.)

Лицензирование и юридические аспекты — 1 балл из 3 (нет доступной информации о юридическом обеспечении проекта и перспектив взаимоотношений с регуляторами.)

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

Функционал и программная платформа
Скорость и масштабируемость

Использование технологии DAG положительно сказывается на скорости и масштабируемости платформы:

  • Скорость подтверждения транзакции около 2 секунд.
  • Более 20,000 транзакций в секунду.
Встроенные механизмы и функции

Смарт-контракты

Смарт-контракт в Universa — это просто исполняемые сценарии, хранящиеся в древовидных структурах. Сценарии в смарт-контрактах Universa являются Тьюринг-полными, что означает, что сценарии могут выполнять другие сценарии и содержать программируемую логику значительной сложности. Иерархическая структура смарт контрактов создает цепочку смарт-контракта (Smart Contract Chain) — набор смарт контрактов, которые ссылаются и подтверждают друг друга, подобно набору связанных документов в реальном мире. Но блокчейн не хранит сами контракты, только их текущий статус, тело контракта хранится в других объектах.

Смарт-контракты могут включать в себя право собственности на объект реального мира. Внутрь контракта могут быть добавлены любые файлы — непосредственно или в виде ссылки с подтвержденной подписью (что предотвращает изменение файла) для больших файлов. Клиент Universa проверит соответствие ссылки при выполнении смарт-контракта и после его заверения Нотариальным Облаком проставит для него штамп времени. Максимальный размер контракта — 1 ГБ.

Штамп времени — это особенность контрактов Universa. Когда пользовательский клиент отправляет заявку на подтверждение изменения состояния контракта узлу Universa, последний проверяет и удостоверяет время, когда это произошло. Поскольку операция в Нотариальном Облаке занимает меньше секунды, можно узнать точный момент, когда контракт был подтвержден или отклонен Universa. Это позволяет использовать смарт-контракты Universa в юридических целях.

Иногда нужно иметь возможность подтвердить старый статус смарт-контракта; в случае, когда нужно указать состояние контракта в данный момент времени, можно создать «маркер». Это специальный небольшой смарт-контракт, который подтверждает и хранит старое состояние требуемого контракта сроком на 2 года.

Во время запуска, либо вскоре после него Universa предоставит эталонную реализацию нескольких распространенных случаев использования смарт-контрактов на платформе Universa. Эталонные реализации будут адаптивны и доступны с открытым исходным кодом, что позволяет напрямую копировать их или использовать их в качестве основы для будущих разработок. Будут предоставлены образцы «токенов», «счетов-фактур», «сделок условного депонирования» и «организации».

Производные контракты

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

Существует два варианта, как могут быть сформированы цепочки.

Рассмотрим вариант, когда клиент A сети получает, например, от банка, контракт типа “монета” (Coin-type contract — любой контракт, включающий некоторую десятичную ценность, обладающую способностью разделения/объединения и изменения владельца), или просто “монету”. В этом случае монета является корневым контрактом. Пусть далее клиент A делает подарок другому клиенту B и передает ему свою монету. В таком случае “монета” клиента A больше не существует, она аннулируется. Создается новая модификация монеты, владельцем которой становится клиент B. Такого рода операции используются при передаче права собственности: объект клонируется, создается новая ревизия (состояние контракта), изменяется владелец и старая ревизия отбрасывается. То есть родительский контракт отменяется.

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

Анализ применимости к бизнес-кейсам

Сценарии использования платформы Universa:

  • Международные платежи в режиме реального времени.
  • Multisig и Escrow из коробки.
  • Смарт-контракты для оффлайн b2b договоров.
  • Поддержка оффлайн транзакций.
  • Источник ликвидности для платежей / смарт-контрактов.
  • Очень быстрые микротранзакции для IoT.

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

  • Смарт-ключ для автомобиля, привязанный к определенному месту, который создает цепочку владелец автомобиля-автомобиль-контракт. Владелец может временно привязать другой ключ (режим автосервиса, режим парковки) или передать все права другому владельцу (в случае продажи). Если система GPS установлена в автомобиле, также можно выпустить ключ, который работает в определенном поле (парковка, автосервис). В этом случае телефон или цепочка смарт-ключа могут действовать как ключ.
  • Клубная карта в спа-салоны и фитнес-центры. Смарт-контракт Universa может создать единый ключ от номера или шкафчика; пропуск в СПА и тренажерный зал; покупки в вендинговых автоматах, доступ к стоянке и т. д. Ключ может быть RFC-тегом, также как смартфон с NFC или без него. Все ресурсы могут быть ограничены временными рамками или доступным кредитом.
  • Элементы умного дома, которые взаимодействуют друг с другом. Смарт-контракт позволяет определить владельца дома и гостей, на основе их ID, управлять ролями и правами, а также работать без Интернета (при условии установки специального узла) после передачи прав.
  • Платежные карты для парковок и заправок. Телефон с доступом в Интернет может работать как транспондер. Клиент получает запрос на свой телефон через Интернет, при приближении к пропускному пункту телефон отправляет запрос на подтверждение или проверяет приблизительные координаты, а затем разрешает платеж.
  • Отслеживание грузов в логистических перевозках. Умные RFID-метки, использующие контракты с QR-кодами.
  • IoT (интернет-вещей). Смарт-контракт связывает приобретенный товар с клиентом. Universa позволяет "умным" вещам работать вместе и обеспечивает простой механизм управления правами разных пользователей без доступа к Интернету. Он также обеспечивает простой механизм передачи прав от одной стороны к другой при транзакциях по продаже.

 

Базовое ПО пользователя

Планируется, что платформа будет состоять из следующих сущностей:

  1. Узлы, которые вместе составляют Нотариальное Облако Universa и реестр К-чейн.
  2. Клиенты — для ПК и мобильных приложений.
  3. Дополнительные сервисы, такие как крипто-облако Universa и сторонние объекты, которые будут предоставлять услуги через Universa

Узлы Universa — равноправные хосты, хранящие структуру сети Universa. Каждый узел работает на обычном Unix-сервере и содержит динамическую копию реестра. Когда клиент отправляет смарт-контракт в Universa, он сначала проверяется клиентом Universa, который распространяет его по известным узлам.

Universa предоставит следующие образцы разработки и продукты с минимальным функционалом:

  • библиотеки Java с открытым исходным кодом, которые будут работать как в интерфейсе ПК, так и на платформе Android;
  • клиентское приложение для Windows, MacOS и Linux с базовыми функциями Universa;
  • мобильное приложение Android;
  • конструктор графического интерфейса (GUI), содержащий шаблоны контрактов и типичные действия. Графический интерфейс даст возможность создавать смарт-контракты, не имея специальных технических навыков.

Состояние на январь 2018:

  • Блокчейн работает в бета режиме: http://access.universa.io. Веб-кошелек можно найти там же.
  • Кошельки под iOS и Android работают в тестовом режиме.
  • Ведется разработка мобильных и веб-клиента.

Текущее состояние (начало августа 2018):

  • Universa Mainnet запущен 12 апреля 2018 года.
  • Веб-интерфейс и веб-кошелек по адресу: https://access.universa.io.
  • Кошельки под iOS и Android работают в тестовом режиме.
  • Ведется разработка мобильных клиентов.
  • Запущен консольный клиент Uniclient.

За новостями проекта можно следить в блоге Александра Бородича на Medium: https://medium.com/@borodich

За обновлениями технической части можно следить на GitHub: https://github.com/UniversaBlockchain/universa

Результат сборки проекта и проверки его на запускаемость см. в Приложении к данному документу.

Возможности интеграции

На платформе планируется реализовать кросс-блокчейновые платежи при помощи UniPayments — сервиса для интеграции Universa  с другими блокчейнами (Bitcoin, Ethereum), позволяющим преобразовать токены UTN в токены внешних блокчейнов. В настоящий момент UniPayments может отправлять и принимать BTC, ETH, токены стандарта ERC20. Сейчас идет анализ уязвимостей для взлома и выполняются разнообразные нагрузочные тесты. Сроков готовности и деталей работы системы пока нет. Только в одном из отчетов CEO проекта А. Бородича упоминается, что в феврале проводились работы по интеграции с Bitcoin и Ethereum.

  1. Оценка «Функционал и программная платформа»: 7 баллов из 10. Прогноз негативный.

Производительность и масштабируемость —  2 балла из 2.

Встроенные механизмы и функции — 3 балла из 3.

Продукт —  1 балл из 4 (большая часть функционала в стадии разработки или тестирования).

Возможности интеграции — 1 балл из 1.

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

Статистика
Распространение

По состоянию на 31.07.18 токен UTNP торгуется только на двух биржах: Cobinhood, Livecoin. 22 февраля 2018 года токен вышел на биржу HitBTC, но сейчас он там уже не торгуется. О причинах делистинга не сообщается, но возможно это произошло из-за низкого объема торгов. В феврале подавалась заявка на Binance, в начале мая проводился сбор голосов за листинг на OKEx, в в середине июля — на KuCoin, РАКИБ рекомендовал бирже HUOBI листинг UTNP. Но пока ни на одной из этих бирж токен не появился.

Объемы торгов по биржам:

Динамика капитализации и цены токена

По данным coinmarket.com по состоянию на 01.08.18 капитализация Universa составляет $19.2 млн (274-277 место в общем рейтинге криптовалют), а цена токена — $0.01.

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

  1. Оценка «Статистика»: 2 балла из 10. Прогноз негативный.

Распространение — 1 балл из 4 (больше 90% торгов приходится на одну биржу, не торгуется на крупных биржах, динамика листингов на новых биржах отрицательная).

Динамика капитализации и цены токенов —  1 балл из 6 (наблюдается затяжное падение курса и снижение капитализации).

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

Due Diligence
RoadMap и WhitePaper

Сайт и документация на трех языках: русском, английском и корейском.

Дорожная карта расписана до второго квартала 2018 года включительно:

  1. Q3/2017
    • Блокчейн Universa первый релиз.
    • Mac / Android клиенты/кошельки.
    • Токены UTN через ICO.
  • Q4/2017
    • API для приложений и блокчейнов.
    • Обменник Universa для токенов.
    • Universa Smart Token первый выпуск.
    • Образцы Universa Smart Contracts.
  • Q1/2018
    • Universa Liqudity Ocean.
    • Universa Trust & Reputation Score.
    • Академия Блокчейна.
  • Q2/2018
    • Всемирная Блокчейн ассоциация.
    • Universa Банк и Карты.
    • Universa Appstore.
    • Криптофонд для DAO/ICO @Universa.

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

Вот что пишет по этому поводу Александр Бородич в своем блоге от 3 января 2018 года: “Нам ставят в вину, что мы сдвинув весь TokenSale и планы в августе на 6 недель c середины сентября на конец октября не поменяли это в WP и на сайте. Мне кажется правильным, чтобы вы видели исходный документ и то, насколько мы отстаем от собственных планов. Через две-три недели мы опубликуем новый roadmap, уточненный и дополненный, а пока идем где-то с опережением, где-то с отставанием от графика.” Однако, на начало августа 2018 RM все еще не обновлен.

Также вызывают вопросы некоторые пункты:

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

WhitePaper: https://www7.universa.io/files/whitepaper.pdf (англ.), https://www7.universa.io/files/whitepaper_ru.pdf?v=1.3 (рус.).

Проект позиционирует себя, как принципиально новый и инновационный, но при этом в White Paper не описана техническая сторона проекта и то, в чем именно заключается инновационность. Сам принцип работы платформы описан очень запутанно, непонятно и противоречиво. Судя по описанию и основным характеристикам, проект использует технологию DAG (направленный ациклический граф), но при этом тут же в White Paper описывается формирование блоков и блокчейна. Хотя по сути блокчейн и DAG — это два разных способа записи транзакций.

Есть разночтения в том, для каких именно мобильных платформ будут разрабатываться приложения: в одном месте указаны как iOS, так и Android; а в другом — только Android.

  1. Оценка «Анализ Road Map и White Paper»: 4 балла из 10. Прогноз негативный.

White Paper — 2 балла из 5 (недостаточно хорошо описана техническая сторона, принцип работы системы описан запутанно и противоречиво, путаница в терминологии).

Road Map — 2 балла из 5 (маленький горизонт планирования, отставание от планов, которое никак не декларируется в RM).

Прогноз — негативный. За полгода с момента проведения первого анализа проекта, в проектную документацию так и не были внесены никакие изменения (WP все той же версии от 8 сентября 2017 года), так что качество ее не улучшилось. Несмотря на обещания представителей проекта, новая версия RM до сих пор так и не появилась.

Команда и аффилированные лица

Руководители проекта:

Александр Бородич — СЕО проекта. Бизнес-ангел, серийный предприниматель, основатель компании Future Labs, проектов MyWishBoard, MyDreamBoard, SuperFolder, основатель VentureClub.co. Занимался он-лайн маркетингом, занимал должность директора по маркетингу в компании Acronis и Mail.ru. Финалист MobileBeat 2012 (Сан-Франциско). Имеет патент США в области оценки эффективности распространения информации в социальных сетях.

Сергей Чернов — СТО проекта, ex CTO в проекте Cybiko, 25 лет опыта в области разработки и архитектуры программного обеспечения, 17 лет опыта работы в криптографии, ex CTO в проекте Glomper.

Александр Довнар — Арт-директор проекта, 20 лет опыта работы в области цифрового и полиграфического дизайна, более 10 лет опыта работы арт-директором, бывший арт-директор в Mail.Ru Group.

Максим Постников — Евангелист, 18 лет опыта работы в IT сфере, бывший глава Social Network в Mail.ru Group.

Также в команду входят 12 программистов/ведущих разработчиков, 9 разработчиков мобильных приложений, 8 менеджеров по качеству, 5 дизайнеров, UI/UX специалистов, 3 менеджера проектов, 25+ CTO с многолетним опытом работы с системами безопасности.

Советники:

John McAfee — Пионер кибербезопасности и программного обеспечения в 1989 году открыл McAfee Associates — первую компанию-разработчик антивирусного ПО.

Yale ReiSoleil — управляющий фондом прямых инвестиций и специалист по трейдингу (алгоритмической торговле), является соуправляющим медицинского фонда Sichuan Hongjian объёмом 20 млн. йен и международного венчурного фонда высоких технологий. Начиная с 2013 года РейСолейл разработал несколько систем для алгоритмического трейдинга. В июле 2017 года вместе с John McAfee и Stanley Zhu стал одним из основателей ReiSoleil McAfee Zhu Ventures.

Dmitry Finkelstein — соучредитель четырех компаний в области IT и FinTech. Магистр прикладной математики, EMBA, CQF. Партнер в Bankex и Terreus Capital.

Samson Lee — сооснователь сообществ Ethereum Sound China и South Asia, главный советник по крипто-экономике Гибралтарской Фондовой биржи и президент Next-TV.

David Drake — председатель совета директоров LDJ Capital и The Soho Loft Media Group; участник четырёх и сооснователь двух сетей бизнес-ангелов.

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

Присутствие среди советников такой знаменитости, как Джон МакАфи, придает солидности проекту. По словам представителей команды проекта, МакАфи собирается использовать платформу Universa для реализации собственного блокчейн-проекта McAfee Coin, с помощью которого надеется «изменить рынок венчурного капитала».

Инвесторы и партнеры

Сообщество ApexFree Platform Services вложит $7 млн. в проект в обмен на долю в компании. В результате сделки ApexFree Platform Services интегрируется с решением Universa, это позволит компаниям запустить SaaS-решение для осуществления быстрых и недорогих микротранзакций на базе технологии блокчейн и смарт-контрактов. ApexFree Platform Services — платформа, работающая в сфере автоматизации и роботизации управления информационными потоками, проведения платежей и документов. Сейчас компания планирует расширить возможности и сферу применения, планируется внедрить новые сервисы и программные решения, Universa будет использоваться в качестве средства регистрации транзакций и связанных с ними метаданных.

Компания EY (Erns & Young) объявила о стратегическом партнерстве с Universa Blockchain Platform. Сотрудничество компаний будет осуществляться в области внедрения и продвижения продуктов на базе технологии блокчейн, ориентированных на решение задач реального сектора экономики и государственного управления.

IT-холдинг «Ланит» запустит отдельное направление для развития проектов в сфере блокчейна — Digital Transformation Group. И первым партнером должна стать Universa.

В конце марта 2018 года Universa стала технологическим партнером РАКИБ. Universa будет использована для токенизации активов и в качестве цифровой платформы для создаваемого РАКИБ Крипто-Парка в подмосковном Ступино.

Подписан договор о сотрудничестве с Шанхайским Университетом Бизнеса. Подробности этого сотрудничества не освещаются.

Также подписан договор о партнерстве с Ассоциацией Блокчейн Гонконга по созданию инновационной площадки обмена технологиями, обучению предпринимателей и запуска совместных проектов в Гонконге и экономической зоне Шанхая.

  1. Оценка «Анализ команды проекта и аффилированных лиц»: 9 баллов из 10. Прогноз нейтральный.

Численность команды — 2 балла из 2.

Состав команды — 3 балла из 3.

Компетенции команды — 2 балла из 3 (мало опыта в сфере блокчейн-технологий и международного опыта работы).

Аффилированные лица — 2 балла из 2.

Прогноз — нейтральный. Команда многочисленная, в хорошем составе. Однако, за последние полгода, судя по официальным данным, ни численность, ни состав не изменились. Хотя, судя по отставанию в разработке на 2 квартала, команда разработчиков, возможно, нуждается в усилении. В случае успешного сотрудничества с ApexFree Platform Services, есть предпосылки к появлению новых инвесторов и партнеров. Практических результатов уже заключенных партнерств пока нет, все только в теории.

Конкуренты

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

Если говорить о государственном реестре, создание которого в планах у Universa, то он уже есть у Waves Platform.

С точки зрения технической реализации платформы, ближайшими ее конкурентами являются IOTA и ByteBall.

Фактически любой блокчейн со смарт-контрактами является прямым конкурентом Universa.

  1. Оценка «Конкуренты»: 2 балла из 10. Прогноз негативный.

Прямые конкуренты — 1 балл из 4 (есть уже работающие блокчейны, использующие аналогичную технологию, более известные и авторитетные)

Отраслевые конкуренты — 1 балл из 4 (все описанные в белой бумаге сценарии можно реализовать и на уже существующих блокчейнах)

Проектный мониторинг конкуренции — 0 баллов из 2 (некорректное сравнение с Bitcoin и Ethereum, которые не являются DAG, нет анализа отраслевой конкуренции)

Прогноз — негативный. У проекта нет однозначных конкурентных преимуществ. А задекларированные таковыми на самом деле не являются. Сравнение с Bitcoin и Ethereum это скорее маркетинговый ход, чем анализ конкурентов.

Известность
Цитируемость, соцсети

На мировом рынке проект малоизвестен. В России наблюдается рост внимания к проекту в последние месяцы на фоне обвинений в скаме и особенно после того, как основатель проекта Александр Бородич подал иск о защите деловой репутации к экс-менеджеру ICO Universa Артуру Липатову. В марте 2018 года Липатов опубликовал в своем Facebook-аккаунте пост (который сейчас удален), в котором обвинял проект Universa в отсутствии прогресса в разработке собственного блокчейна, а также нарушении договоренностей о вознаграждении за свою работу комьюнити-менеджером. Более подробно — в интервью Артура Липатова coin.radio.

Динамика популярности по запросу “universa” согласно данным Google.Trends:

Как видно, пик популярности приходится на начало декабря, когда после окончания ICO было объявлено, что проект собрал почти 29 млн долларов.

CEO проекта Александр Бородич активно занимается продвижением проекта, посещая различные конференции, форумы, митапы и проводя переговоры по всему миру. За его активными передвижениями можно следить по регулярным отчетам в блоге на Medium.

Популярность проекта в соцсетях (по данным на 03.08.18):

  • Facebook — 39387 подписчиков;
  • Twitter — 11334 читателя;
  • Telegram — 5811 участников;
  • Reddit — 350 подписчиков.

Twitter сейчас одна из самых популярных соцсетей в мире. Если судить по остальным блокчейн проектам (особенно зарубежным), то на эту соцсеть обычно приходится подписчиков как минимум в 2 раза больше, чем на все остальные. Здесь же больше всего подписчиков приходится на Facebook, скорее всего это именно из-за бОльшей популярности в России. Очень мало подписчиков на Reddit.

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

Применяемость

По состоянию на 03.08.18 в сети Universa зарегистрировано 36 нод, кошельков — более 790 тыс. Нет возможности оценить активность работы сети. На ресурсе, который позиционируется как эксплорер можно посмотреть только статус одного конкретного контракта, загрузив его или указав ID.

Проекты на Universa

Smart Gold создает блокчейн-актив SGT​, который обеспечен золотом в натуральном выражении и будет размещен на платформе Universa. Так как, на момент старта ICO, сеть Universa не была запущена, создатели SGT решили принимать инвестиции альткоинами стандарта ERC-20, с возможностью дальнейшего перевода токенов SGT в смарт-контракт Universa.

В качестве платформы Криптопарка (РАКИБ) разрабатывается прототип приложения на основе блокчейн-платформы ​Universa.

Как рассказал Advance.Fund Александр Бородич, блокчейн Universa уже активно используют: «На блокчейне Universa разворачивают свои системы Альфа-банк (межбанковские платежи), Новотранс (цифровая история ТО вагонов — provenance) и правительство Малайзии (умные деньги, которые нельзя тратить на алкоголь)».

Последние новости об Альфа-банке датируются серединой марта 2018 года, когда в отчете упоминается о создании приватного блокчейна и начале программирования смарт-контрактов для MVP. Денис Додон, директор Центра поиска и разработки инноваций Альфа-Банка, сказал в своем интервью, что решение об использовании Universa будет приниматься после тестирования MVP. И на сегодняшний день нет информации о том, начал ли Альфа-банк использовать Universa в рабочем режиме.

По Новотрансу также нет подтверждения фактического использования.

Universa собирается разработать технические решения для переноса информации по полетам на блокчейн для Blockchain.Aero — проекта, который занимается развитием инфраструктуры городского аэротакси.

Персоны в проекте

CEO проекта Александр Бородич известен в России, как серийный предприниматель и венчурный инвестор, бывший директор по маркетингу Mail.ru Group.

  1. Оценка «Известность проекта»: 3 балла из 10. Прогноз нейтральный.

Цитируемость, соцсети — 1 балл из 3 (проект не очень хорошо известен на мировом рынке, цитируемость в последние месяцы связана с негативными высказываниями в его адрес).

Используемость/распространение — 1 балл из 2 (основная сеть запущена, но активность ее использования оценить невозможно).

Проекты на базе технологии — 0 баллов из 3 (есть много планов и договоров о сотрудничестве, но фактического подтверждения использования сети нет).

Известные персоны в команде — 1 балл из 2 (CEO проекта известен в России).

Прогноз — нейтральный. Нет доступной информации об использовании сети и фактической реализации проектов на базе Universa. Интерес к проекту растет в последние месяцы в основном из-за обвинений в скаме.

Индекс доверия

В открытых дискуссиях блокчейн-сообщества часто встречается позиция, что Universa — скам. С одной стороны, активность хейтеров всегда свидетельствует об известности проекта, с другой — критики предъявляют весьма конкретные обвинения, основное из которых — факт отсутствия блокчейна, как такового. Негативная тональность в том числе подкреплена публичным конфликтом с бывшим сотрудником Universa Артуром Липатовым (см. подраздел “Цитируемость, соцсети”). Наши технические эксперты провели проверку кода, выложенного на GitHub, на предмет соответствия заявленному в WP функционалу.

В результате проверки выяснено, что система представляет собой распределенную БД хранения транзакций и результатов выполнения транзакций. В системе хранятся входы функций контрактов - запросы пользователей. Например поведение контракта вычисления “сумма итого”, можно описать так:  при поступлении запроса 2+2 (входные данные для контракта) записывается последний результат выполнения контракта в БД = 4, хешируя его со входными данными. Следующий запрос к функции контракта будет например с данными +5, и в БД запишется =9, а запись =4 будет устаревшей и ее можно со временем удалить из БД. Запросы/транзакции от пользователей контрактов хранятся с хешем — защита от изменения транзакций. А результаты выполнения функций (контрактов) хранятся только последние. Хранение запросов/контрактов это не блокчейн это просто БД с контролем целостности. Результаты по отдельности тоже не блокчейн, но они связаны с запросами на выполнение контракта, получаем  неявный блокчейн с возможностью отбрасывания истории, при этом у каждого контракта своя ветка истории.

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

Все вышеперечисленное так и заявлено в WP.

Результат сборки проекта и проверки его на запускаемость см. в Приложении к данному документу.

Что касается недостатков:

  • Из опубликованного кода не ясно, как будет реализовано проведение ICO на платформе. Токены объявленные к продаже не используются в самой системе, можно исполнять работу сети и без них (без монет).
  • Команда сильно отстает в разработке от своих же собственных планов. Никаких видимых действий по устранению отставания не наблюдается: темпы разработки не наращиваются, новые специалисты не привлекаются, планы не пересматриваются.

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

Такая стратегия уже использовалась этой командой ранее: в 2014 году было заявлено о выпуске WishCoin — “российского конкурента Bitcoin”. Однако, WishCoin по сути не являлся криптовалютой, а был чем-то вроде электронного векселя или аналогом игровой валюты. Проект не реализовался и закрылся в том же году. Эта история также не идет на пользу репутации нынешнего проекта.

Еще одним фактором, увеличивающим риск скама данного проекта, является отсутствие возможности проверить, как и кем используется запущенная основная сеть и используется ли вообще: нет статистики о работе сети, нет рабочего эксплорера, нет новостей о том, что тот или иной проект, ранее заявивший о своем желании использовать Universa в своей работе, действительно фактически уже на ней работает. На вопросы к CEO А. Бородичу о том, как используется платформа, он отвечает, используя уклончивые формулировки, например, “разворачивают свои системы”. Это можно трактовать и как факт использования системы, и как то, что работы ведутся, но пока не завершены.

  1. Оценка «Индекс доверия»: 4 балла из 10. Вероятность скама: выше средней.

Вероятность скама — выше средней. Низкая скорость разработки и отставание от планов. Маркетинговые манипуляции с терминологией. Уже имеющийся в активе команды один скам-проект в прошлом. Нет доступной информации об использовании сети и фактической реализации проектов на базе Universa.

Резюме

РЕЙТИНГ. Оценка «Universa»: 35 баллов из 80 — 43,75%. Прогноз нейтральный.


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

Основным своим конкурентным преимуществом команда называет высокую скорость по сравнению с Bitcoin и Ethereum. Однако, на самом деле, практически все новые блокчейны уже быстрее этих двух ветеранов, использующих механизм консенсуса PoW в своей работе, который является самым медленным. Честнее было бы сравнивать с той же системой IOTA, которая использует такой же механизм. Но даже такое сравнение нельзя назвать корректным, т. к. результат аудита кода на GitHub показал, что сеть Universa на данный момент является распределенной базой данных, а не блокчейном. В тесте на  "запускаемость" (см. Приложение), не были обнаружены команды, которые могли выдать, например, хеш блока, то на чём собственно функционирует блокчейн (или DAG-проект). История выполнения контрактов есть, связанность между блоками идёт через таймстампы, например, но выделения блокчейна не видно.

Еще одно преимущество, которое упоминает команда — “более умные смарт-контракты”, но не понятно, какие критерии используются для оценки “ума” контрактов и в чем именно преимущество смарт-контрактов Universa перед другими. Все описанные в белой бумаге сценарии можно реализовать и на уже существующих блокчейнах.

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

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

Приложение

В данном приложении приведены результаты сборки проекта по инструкции из GitHub и испытание его на "запускаемость".

После небольших корректировок файлов gradle для сборки, проект собирается без предупреждений и ошибок. Собирается быстро каждая часть 6..15 секунд, кода немного. Для сравнения, Ethereum собирается около 20 минут.

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

[email protected]:~/universa$ gradle :uniclient:fatJar test config

Download https://repo1.maven.org/…./xstream/xstream/1.4.10/xstream-1.4.10.pom

Download https://repo1.maven.org/…./xstream/xstream-parent/1.4.10/xstream-parent-1.4.10.pom

Download https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.2/gson-2.8.2.pom

Download https://repo1.maven.org/.../google/code/gson/gson-parent/2.8.2/gson-parent-2.8.2.pom

Download https://repo1.maven.org/maven2/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.pom

Download https://repo1.maven.org/maven2/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.pom

Download https://repo1.maven.org/...xstream/xstream/1.4.10/xstream-1.4.10.jar

Download https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.2/gson-2.8.2.jar

Download https://repo1.maven.org/maven2/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar

Download https://repo1.maven.org/maven2/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar

:common_tools:compileJava UP-TO-DATE

:common_tools:processResources UP-TO-DATE

:common_tools:classes UP-TO-DATE

:common_tools:jar UP-TO-DATE

:crypto:compileJava UP-TO-DATE

:crypto:processResources UP-TO-DATE

:crypto:classes UP-TO-DATE

:crypto:jar UP-TO-DATE

:universa_core:compileJava UP-TO-DATE

:universa_core:processResources UP-TO-DATE

:universa_core:classes UP-TO-DATE

:universa_core:jar UP-TO-DATE

:uniclient:compileJava

Note: /home/uniclient/src/main/java/com/icodici/universa/client/CLIMain.java uses unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

:uniclient:processResources

:uniclient:classes

:uniclient:fatJar

BUILD SUCCESSFUL

Total time: 14.547 secs

В документации есть список уже сделанных функций в каждом модуле системы с датами модификации, при  просмотре исходного кода модулей кода указанные пункты обнаруживаются, и в них некоторый код/текст, а не просто заглушки для отладочного вывода.  https://github.com/UniversaBlockchain/universa/tree/master/docs

ContractsService API

3.4.8 (08.05.2018)    Added methods for payment parcel and slot contract creation

3.2.4b2 (27.03.2018) Added possibility for creation simple contract's templates such as token, share and notary

3.0.1 (27.02.2018)    Collected and implemented methods for provide base contract's operations: revoke, split, join, swap, create parcel, create TU.

Node interface

3.2.4b2 (27.03.2018)

Added support for references.

Added support for addresses and anonymous ids.

Added sanitation procedure while node is starting.

Added statistic collection for the Node.

Fixed memory leaks and optimisation made.

Added console command to enable verbose mode, restart udp socket and gentle shutdown of the Node.

3.1.0 (05.03.2018)

Allowed payment with test transaction units.

3.0.1 (27.02.2018)

Release of paid contracts.

Uniclient Command-Line tool (beta)

New feature: append signature to partially signed contracts without breaking existing signatures. Bulk operations for import, export, register and check.

https://github.com/UniversaBlockchain/universa/blob/master/docs/uniclient/release_notes.md

Probe files, not only ids.

3.4.8 (27.04.2018)

Added --resync command that synchronizes contract status between nodes

Added --node option that specifies number of node to connect to

Added --skey option that specifies session private key file

3.2.4b2 (27.03.2018)

Added --address command that generates address from key. Has option -short.

Added --address-match command that check matching address with key from file. Path to key define in parameter -keyfile.

Added --folder-match command that associates the entered address with the key file in the specified directory. Address define in parameter -addr.

3.1.0 (05.03.2018)

Added --tutest key for --register command with --tu key to use test transaction units as payment.

Added --anonymize and --role keys to making anonymous roles in the contract.

3.0.1 (27.02.2018)

Added --tu and --amount keys for --register command to avoid paid processing of contracts.

2.2.4 (29.12.2017)

Added --cost as standalone key and as key for use with --register.

2.2.3 (16.11.2017)

Added --wait and --register keys.

2.2.0 (07.11.2017)

Added --revoke key.

Added --pack and --unpack keys.

2.1.5 (05.11.2017)

Better --network handling.

2.1.4 (03.11.2017)

Better command line options logic.

Bulk (transactions) operation support.

2.1.3 (01.11.2017)

First published beta. Contains all the basic functionality to work with Universa network.

Запуск ноды universa

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

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

[email protected]:~/universa$ java -jar universa_core/build/output/uninode.jar

USING REAL CONFIG

Neither config no database option passed, leaving

Universa node server v3.7.5

Далее сервер находится в режиме ожидания, самих файлов БД не видно (не было обнаружено) на диске.

Запуск клиента universa

Почитаем инструкцию на клиента и по запускаем команды  из примера работы с клиентом. Клиент работает с сетью предположительно  без использования ноды. https://github.com/UniversaBlockchain/universa/blob/master/docs/uniclient/user_manual.md  

Проверка состояния сети: обнаружено 36 точек, две ноды подключены с ошибками.

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --network

Network version: 3.7.4

retry #1 on connection failure: http://node-30-com.universa.io:8080

retry #1 on connection failure: http://node-23-com.universa.io:8080

Universa network is active, 36 node(s) are reachable

[email protected]:~/universa$  

Создание ключа

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar -g  sega

New key pair ready

На диске создаются  два файла с некоторым бинарным содержимым размером 266 байт  

sega.private.unikey

sega.public.unikey

Операция с кошельком  непонятна, файл кошелька не появляется (не обнаружен в каталогах проекта).

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar -wallet

Universa client tool, v. 3.7.5

error while parsing command line. Use uniclient --help

Попробуем команды для работы с контрактами из мануала на клиенте, оценим как работает вывод.

Создание контракта  

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar -с templateq.yaml

Universa client tool, v. 3.7.5

error while parsing command line. Use uniclient --help

Файла контракта нет - соответственно, никаких результатов.

Первый попавшийся файл yml не подходит.

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --create appveyor.yml

Error: java.lang.NumberFormatException: null

Попробуем тестовый файл из папки проекта, их там большое количество.

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --create  /home/egorka/universa/uniclient/src/test_files/coin.yml

Contract is saved to: /home/egorka/universa/uniclient/src/test_files/coin.unicon

Sealed contract size: 2398

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

The capsule is not sealed properly:

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

Saldo is not zero: -1000000

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

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

Проверка наличия контракта в системе.

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --check  /home/egorka/universa/uniclient/src/test_files/coin.unicon

file /home/egorka/universa/uniclient/src/test_files/coin.unicon is a single contract

Saldo is not zero: -1000000

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

Ещё одна команда:

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --export  /home/egorka/universa/uniclient/src/test_files/coin.unicon

export format: json

/home/egorka/universa/uniclient/src/test_files/coin.json export as json ok

Что делают команды пока не разбираемся, тестируем просто то, что программа “живая” и что-то делает:

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --export  /home/egorka/universa/uniclient/src/test_files/coin.unicon --extract-key owner

owner export public keys ok

Попытка создать контракт с подписью ранее созданной парой ключей:

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --create  /home/egorka/universa/uniclient/src/test_files/coin.yml -k sega.private.unikey

Contract is sealed with 1 key(s)

Contract is saved to: /home/egorka/universa/uniclient/src/test_files/coin_1.unicon

Sealed contract size: 3404

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

The capsule is not sealed properly:

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

Saldo is not zero: -1000000

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

** ERROR: NOT_SIGNED: missing creator signature(s)

** ERROR: ISSUER_MUST_CREATE: issuer.keys

Попробуем узнать стоимость отправки  контракта в сеть:

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --cost  /home/egorka/universa/uniclient/src/test_files/coin.unicon

Calculating cost of /home/egorka/universa/uniclient/src/test_files/coin.unicon, type is BINARY...

Contract processing cost is 1 TU

Первое упоминание про внутренние токены, о том, как их получить (сгенерировать для тестов) в документации информации нет.

Попробуем создать адрес в сети со своим приватным ключом:

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --address sega.private.unikey

Generate long address from key: sega.private.unikey

Address: JHw5qoXZYfKFqxppsGbuXmmr34tLC4oCZ7ifVzbAA6YoTcuugWGi5iQipsKafAfRCQbDR4gH

Получилось, но всё, что можно сделать с этим адресом - передать его в какой либо контракт или посмотреть есть ли похожий адрес в сети.  Есть ещё команды --tutest --tu -u для работы с токенами, но их вывод ничего существенного не показывает так как токенов нет.

Выполнена попытка зарегистрировать контракт используя тестовые токены для оплаты комиссии, но требуется контракт tu.unicoin, обрабатывающий эти самые токены, а где его брать неизвестно.

[email protected]:~/universa$ java -jar uniclient/build/libs/uniclient.jar --register  /home/egorka/universa/uniclient/src/test_files/coin.unicon --tu tu.unicoin --tutest

** ERROR: NOT_FOUND: tu.unicoin: Path tu.unicoin does not exist

Error: java.lang.NullPointerException

 

Show usage: uniclient --help

Выводы

Описание на основе исходных кодов и никак не касается экономической сути проекта и полезности продукта.

  1. Проект собирается без ошибок и предупреждений (+).
  2. Указанные  в документации функции в коде присутствуют (+).
  3. В проекте есть модули для работы с криптографией, они реально используются в коде для хеширования обработки информации.
  4. Есть документация для запуска, сборки и использования модулей системы.
  5. Запуск своей ноды возможен, но на каких правах она будет участвовать в сети  компании Universa, нужно уточнять.
  6. Некоторые команды клиента сети  требуют для своего исполнения токенов  для оплаты комиссии. Получение или генерация тестовых монет в документации никак не описана, хотя команды для работы с ними есть.
  7. Как написать контракт тоже нет инструкции, кроме тестовых контрактов никакой информации. В приведенных  файлах один и тот-же код похожий на заголовок но никак не код контракта. Реализована ли работа контракта на ноде пока сказать невозможно.

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

Cписок всех команд:

java -jar uniclient/build/libs/uniclient.jar --wallet /home/egorka/uinversa

Universa client tool, v. 3.7.5

Option Description
-?, -h, --help Show help.
--add-referenced <file.unicon> Use with --pack-with command. Option add referenced item to transaction pack.
--add-revoke <file.unicon> Use with --pack-with command. Option add revoke item for packing contract.
--add-sibling <sibling.unicon> Use with --pack-with command. Option add sibling item for packing contract.
--addr <address> Address for finding key in folder.
--address <file> Generate address from key. Path to key define in parameter -address. For generate short address use parameter -short.
--address-match <file> Matching address with key from file. Address define in parameter -address- match.Path to key define in parameter -keyfile.
--amount <Integer: tu amount> Use with --register, --create-parcel and -tu. Command is set amount of transaction units will be pay for contract's register. (default: 1)
--amount-storage <Integer: tu amount- storage> Use with --register, --create-parcel and -tu. Command is set amount-storage of storage units will be pay for contract's register. (default: 0)
--anonymize [file]
Key erase public key from given contract for role given with -role key and replace it with anonymous id for that public key. If -role key is missed will anonymize all roles. After anonymizing contract will be saved as (file_name)_anonymized. unicon. If you want to save with custom name use -name keys.
--as <format>
Use with -e, --export command. Specify format for export contract. Possible values are 'json', 'xml' or 'yaml'.
--base64
with --extract-key keys to the text base64 format
-c, --create [file.yml]
Create smart contract from dsl template.
--ch, --check [file/path]
Check contract for validness. Use -r key to check all contracts in the path recursively.
--cost [file]
Print cost of operations for contracts with given files of contracts. Can be used as key with -register command.
--create-parcel [contract.unicon]
prepare parcel for registering given contract. use with either --wallet or --tu with --keys to specify payment options. If none are specified default wallet will be used. If no default wallet exist command fails. Amount to pay is specified with --amount
-d, --download <url>
Download contract from the specified url.
-e, --export [file]
Export specified contract. Default export format is JSON. Use '-as' option with values 'json', 'xml' or 'yaml' for export as specified format.
--extract-key <role>
Use with -e, --export command. Extracts any public key(s) from specified role into external file.
-f, --find [path]
Search all contracts in the specified path including subpaths. Use -r key to check all contracts in the path recursively.
--field-name <field_name>
Use with split-off to specify the field name to split.  (default: amount)
--fingerprints
Print fingerprints of keys specified with -k.
--folder-match <file>
Associates the entered address with the key file in the specified directory. Path to directory define in parameter -folder-match. Address define in parameter -addr.
-g, --generate <name_prefix> Generate new key pair and store in a files starting with a given prefix.
--get <field_name>
Use with -e, --export command. Extracts any field of the contract into external file.
-i, --import [file]
Import contract from specified xml, json or yaml file.
--id <packed contract>
extract ID from a packed contract
-j, --json
Return result in json format.
-k, --keys <key_file>
List of comma-separated private key files touse to sign contract with, if appropriated.
--k-contract, --keys-contract <key_file>
Use with -register by paying parcel. List of comma-separated private key files touse to sign contract in paying parcel, if appropriated.
--keyfile <file>
Path to key for matching with address.
--network
Check network status.
--no-cache
Do not use session cache
--no-exit
Used for tests. Uniclient d
--node <Integer>
used with to specify node number to connect to
-o, --output <filename>
Use with -e, --export or -i, --import commands. Specify name of destination file.
--owners <address>
Use with split-off to specify new owners of the parts.
--pack-with [file.unicon]
Pack contract with counterparts (new, revoking). Use -add-sibling option to add sibling and -add-revoke to add revoke item.
--parts <amount>
Use with split-off to specify the ammount to split of the main contract.
--pretty
Use with -as json option. Make json string pretty.
--probe [base64_id]
query the state of the document in the Universa network
--probe-file <filename>
query the state of the document in the Universa network
--put-into-wallet [/path/to/wallet]
Adds specified U/UTN contracts and keys to UUTN wallet (creates one if not exists). Use with non-optional arguments passing U and UTN contracts and --keys to specify keys required to split UTNs and decrement Us. Argument to --put-into-wallet is optional and specifies path to create wallet at. If no path specifed default will be taken (~/. universa) Wallet can then be used with --register and --create-parcel. It will also try to top up when needed Us if there are any UTN contract in the wallet
-r
Use with --ch, --check or -f, --find commands. Specify to check contracts in the path and do it recursively.
--register [contract.unicon]
register a specified contract, must be a sealed binary file. Use with either --wallet or --tu with --keys to specify payment options. If none are specified default wallet will be used. If no default wallet exist command fails. Amount to pay is specified with --amount
--register-parcel [parcel.uniparcel]
register a specified parcel
--resync [base64_id]
start resync of the document in the Universa network
--revision-of <parent.unicon>
Use with --import command. Option adds parent to revokes.
--revoke [file.unicon]
Revoke specified contract and create a revocation transactional contract. Use -k option to specify private key for revoke contract, key should be same as key you signed contract for revoke with. You cannot revoke contract without pointing private key.
--role [role_name]
Use with -anonymize. Set the role name for anonymizing.
-s <Integer>
With -g, specify key strength. (default: 2048)
--set <field_name>
Use with -e, --export command. Specify field of the contract for update. Use -value option to specify value for the field
--set-log-levels <level>
sets log levels of the node,network and udp adapter
--short
Generate short addres.
--sign <filename>
add signatures to contract. Use with -- keys to specify keys to sign with
--skey <file>
used with to specify session private key file
--split-off <file.unicon>
Joins specified contract with ones passed as non-optional argumentsand splits parts  off the result and transfers ownership of these parts to specified addresses. Use with -- parts and --owners to specify the amounts and new owners
--term-width <Integer>
(default: 80)
--tu <tu.unicon>
Use with --register and --create-parcel. Point to file with your transaction units. Use it to pay for contract's register.
--tutest
Use with --register, --create-parcel and -tu. Key is point to use test transaction units.
--u-for-utn <utn.unicon>
buy U for UTN. Use with --keys to specify keys required to split UTNs and --amount to specify ammount of U to buy
--u-rate
Get how many U are given for 1 UTN at this time.
--unpack [file.unicon]
Extracts revoking and new items from contracts and save them.
-v, --verbose
Provide more detailed information.
--value <field_value>
Use with -e, --export command and after -set argument. Update specified with -set argument field of the contract.
--wait [Integer: milliseconds]
with --register,  wait for network consensus up to specified number of consensus up to specified number of milliseconds. (default: 5000)
--wallet </path/to/wallet>

specify wallet to pay with. Use with --register or --create-parcel.

Online docs: https://lnd.im/UniClientUserManual

Ссылки

Официальный сайт: https://universa.io/ru.html

GitHub: https://github.com/UniversaBlockchain/universa

Документация: https://access.universa.io/docs

Explorer: https://access.universa.io/

Facebook: https://www.facebook.com/Universablockchain/

Telegram: https://t.me/Uplatform

Twitter: https://twitter.com/Universa_News

Топик на bitcoin.org на русском: https://bitcointalk.org/index.php?topic=2140560.0

Изменения в текущей редакции
  1. Добавлен подраздел “Лицензирование и юридические аспекты” в раздел “Архитектура”.
  2. Дополнен подраздел “Механизмы и принципы эмиссии”.
  3. В соответствии с изменениями, описанными в п. 2, рейтинг раздела “Механизмы и принципы эмиссии” понижен с 5 баллов до 4, а прогноз изменен с нейтрального на негативный.
  4. Раздел “Продукт” переделан в подраздел “Базовое ПО пользователя”.
  5. Добавлен подраздел “Возможности интеграции”.
  6. Добавлен раздел “Статистика” и рейтинг по нему.
  7. Добавлен подраздел “Возможности интеграции”, в который перенесена часть из подраздела “Встроенные механизмы и функции”, описывающая кросс-блокчейновые платежи.
  8. Прогноз по разделу “Функционал и программная платформа” изменен с “нейтральный” на “негативный”, дополнен комментарий по оценке этого раздела.
  9. Прогноз по подразделу “Анализ Road Map и White Paper” изменен с “нейтральный” на “негативный”, написан новый комментарий по оценке этого раздела.
  10. Дополнен подраздел “Анализ команды проекта и аффилированных лиц”.
  11. Прогноз по подразделу “Анализ команды проекта и аффилированных лиц” изменен с “позитивный” на “нейтральный”, дополнен комментарий по оценке этого раздела.
  12. Рейтинг по разделу “Конкуренты” снижен с 4 баллов до 2.
  13. Добавлен раздел “Известность” и рейтинг по нему.
  14. Добавлен раздел “Вероятность скама” и рейтинг по нему.
Comments system Cackle
UP