Universa — это быстрый блокчейн с умными контрактами. Проект нацелен на перевод всей бумажной документации в цифровую информацию на основе технологии блокчейн и децентрализованной системы смарт-контрактов с ориентацией на реальный сектор экономики.
С помощью Universa любой поставщик или рыночный игрок сможет предлагать свои услуги в Universa и выполнять платежные операции в любых токенах или валютах. Универсальные контракты Universa могут применяться для программирования как внутрикорпоративных приложений, так и публичных.
Отличие Universa — хранение и выполнение смарт-контрактов на стороне клиента, а не в сети Universa. Сеть хранит только их актуальное состояние.
Следует заметить, что Universa технически является криптосистемой не на блокчейне, а на DAG. Слово “блокчейн” используется здесь (как и самими авторами проекта в их документации) скорее как устоявшийся термин для обозначения криптосистемы.
Единоразовая эмиссия токенов, общее количество составляет 10 млрд. токенов UTN.
Токены распределялись в 2 этапа:
Во время TGE (выпуска токенов) был сгенерирован токен Эфириум ERC20, играющий роль заполнителя, который был распределен среди участников. Токены платформы будут созданы и распределены на основном блокчейне при запуске платформы Universa. Участники TGE и предпродажи, которые не реализовали свои токены-заполнители ERC20 (UTN-P), получат своё вознаграждение непосредственно в UTN.
По результатам токен сейла было собрано $28’800’060.
Распределение токенов:
Использование средств, полученных в ходе ICO:
Выполнение действий по смарт-контрактам требует осуществления оплаты за транзакции в 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 результата:
Более сложные случаи приводят к аналогичному результату: либо в результате консенсуса устанавливается какое-то новое состояние (одно из многих), либо все новые состояния отвергаются и система остается неизменной.
DDOS-атаки
Клиентский интерфейс узла подключен к Nginx (HTTP сервер) или подобному, конфигурация которого настроена на:
Настройка более сложных ограничений возможна с использованием функционала Nginx. ПО клиента получает только отфильтрованные Nginx запросы, выполняет их и передает обратно.
DDOS-атаки могут совершаться двумя способами: статически (статический запрос — просто запрос к данным, не требующий выполнения над ними операций) и динамически (динамический запрос — например, запрос результата расчета). Статические запросы полностью кэшируются и отрабатываются Nginx.
Все динамические клиентские запросы требуют платежный сертификат. Процедура проверки сертификата достаточно простая, поэтому некорректный сертификат не может быть использован для атаки системы. Если сертификат в порядке, к нему применяется ограничение количества обращений. Превышение этого лимита ведет сначала к временному, а потом и к постоянному отзыву сертификата.
Преимущества Universa:
Структура смарт-контракта
Смарт-контракт глобально состоит из трех частей:
Структура сети
В сети Universa не хранятся контракты и их цепочки состояний, сеть содержит только записи об их актуальном состоянии (не более 140 байт).
Выполнение и хранение контрактов осуществляется на стороне клиента. Сети не нужно хранить полную историю всех транзакций, так как они могут храниться в боковых цепях каждым участником, ответственным за их выполнение. Записи транзакций, источники контрактов и цифровые подписи, могут быть позже проверены на подлинность в соответствующей службе Нотариального Облака, которая отвечает за обработку активов и их цифровых подписей, но является обособленной и отличается от блокчейна.
Каждый отдельный контракт сохраняет свою собственную цепочку состояний, поэтому контракт может выполнять действия асинхронно, не блокируя или не влияя на другие контракты, а совокупные изменения состояния в совокупности образуют направленный ациклический граф («DAG»).
Сеть Universa имеет доступ только к двум частям контрактов: состоянию и определению. Остальные никогда не отправляются в сеть. Этот момент важен, поскольку вложения могут иметь конфиденциальный характер. Таким образом, полный контракт обменивается исключительно между участвующими сторонами любым удобным способом (электронная почта, мессенджеры, облачные пространства и т.п.). Неизменность вложений (расположенных где-то в клиентском хранилище) гарантируется ссылками, подписанными в контракте и одобренными сетью.
Правовые составляющие процедуры ICO:
Штаб-квартиры проекта находятся в Литве, Италии и России.
Механизм и принципы эмиссии — 1 балл из 3 (доля эмиссии в адрес команды проекта выше средней, экономика токена описана плохо, сейчас используется токен U, о котором нет упоминания в проектной документации).
Блокчейн (архитектура и механизм обеспечения консенсуса) — 2 балла из 4 (невнятное запутанное описание архитектуры системы. Принцип децентрализации под вопросом. Каждый узел лицензируется и авторизируется корпорацией Universa и может быть подвержен ее влиянию. Так же не описана процедура лицензирования, сможет ли Universa отзывать выданные лицензии.)
Лицензирование и юридические аспекты — 1 балл из 3 (нет доступной информации о юридическом обеспечении проекта и перспектив взаимоотношений с регуляторами.)
Прогноз — негативный. Для реализации проекта выбрана технология с высокой скоростью и масштабируемостью, предусмотрена защита от основных типов атак. Но отбор узлов спорный, с одной стороны он обеспечивает системе дополнительную защиту от недобросовестных участников, а с другой — повышается угроза манипуляции узлами со стороны команды проекта. К тому же неясно, как скажется сложная процедура лицензирования узлов на размере комиссии за транзакции. Экономика токена описана плохо, в процессе эксплуатации сети появился дополнительный токен U для оплаты транзакций, о котором нет никакой информации в проектной документации.
Использование технологии DAG положительно сказывается на скорости и масштабируемости платформы:
Смарт-контракты
Смарт-контракт в Universa — это просто исполняемые сценарии, хранящиеся в древовидных структурах. Сценарии в смарт-контрактах Universa являются Тьюринг-полными, что означает, что сценарии могут выполнять другие сценарии и содержать программируемую логику значительной сложности. Иерархическая структура смарт контрактов создает цепочку смарт-контракта (Smart Contract Chain) — набор смарт контрактов, которые ссылаются и подтверждают друг друга, подобно набору связанных документов в реальном мире. Но блокчейн не хранит сами контракты, только их текущий статус, тело контракта хранится в других объектах.
Смарт-контракты могут включать в себя право собственности на объект реального мира. Внутрь контракта могут быть добавлены любые файлы — непосредственно или в виде ссылки с подтвержденной подписью (что предотвращает изменение файла) для больших файлов. Клиент Universa проверит соответствие ссылки при выполнении смарт-контракта и после его заверения Нотариальным Облаком проставит для него штамп времени. Максимальный размер контракта — 1 ГБ.
Штамп времени — это особенность контрактов Universa. Когда пользовательский клиент отправляет заявку на подтверждение изменения состояния контракта узлу Universa, последний проверяет и удостоверяет время, когда это произошло. Поскольку операция в Нотариальном Облаке занимает меньше секунды, можно узнать точный момент, когда контракт был подтвержден или отклонен Universa. Это позволяет использовать смарт-контракты Universa в юридических целях.
Иногда нужно иметь возможность подтвердить старый статус смарт-контракта; в случае, когда нужно указать состояние контракта в данный момент времени, можно создать «маркер». Это специальный небольшой смарт-контракт, который подтверждает и хранит старое состояние требуемого контракта сроком на 2 года.
Во время запуска, либо вскоре после него Universa предоставит эталонную реализацию нескольких распространенных случаев использования смарт-контрактов на платформе Universa. Эталонные реализации будут адаптивны и доступны с открытым исходным кодом, что позволяет напрямую копировать их или использовать их в качестве основы для будущих разработок. Будут предоставлены образцы «токенов», «счетов-фактур», «сделок условного депонирования» и «организации».
Производные контракты
В сети Universa существует понятие производных контрактов. Как было сказано выше, в сети смарт-контракты имеют иерархическую структуру, которая представляет собой цепочку от родительского контракта к дочерним.
Существует два варианта, как могут быть сформированы цепочки.
Рассмотрим вариант, когда клиент A сети получает, например, от банка, контракт типа “монета” (Coin-type contract — любой контракт, включающий некоторую десятичную ценность, обладающую способностью разделения/объединения и изменения владельца), или просто “монету”. В этом случае монета является корневым контрактом. Пусть далее клиент A делает подарок другому клиенту B и передает ему свою монету. В таком случае “монета” клиента A больше не существует, она аннулируется. Создается новая модификация монеты, владельцем которой становится клиент B. Такого рода операции используются при передаче права собственности: объект клонируется, создается новая ревизия (состояние контракта), изменяется владелец и старая ревизия отбрасывается. То есть родительский контракт отменяется.
С другой стороны, производные контракты могут не отменять родительский, а создавать новые, ссылающиеся на него. Например, смарт-контракты публичной оферты могут создавать множество производных клиентских контрактов, которые ссылаются на родительский. А родительский контракт может содержать подробную информацию о полях и ссылках дочернего, когда и кем он был создан.
Сценарии использования платформы Universa:
Universa позволяет создавать цепочки смарт-контрактов под решение практически любых бизнес-задач. Они могут применяться как во внутрикорпоративных процессах, так и для создания публичных приложений. Например:
Планируется, что платформа будет состоять из следующих сущностей:
Узлы Universa — равноправные хосты, хранящие структуру сети Universa. Каждый узел работает на обычном Unix-сервере и содержит динамическую копию реестра. Когда клиент отправляет смарт-контракт в Universa, он сначала проверяется клиентом Universa, который распространяет его по известным узлам.
Universa предоставит следующие образцы разработки и продукты с минимальным функционалом:
Состояние на январь 2018:
Текущее состояние (начало августа 2018):
За новостями проекта можно следить в блоге Александра Бородича на Medium: https://medium.com/@borodich
За обновлениями технической части можно следить на GitHub: https://github.com/UniversaBlockchain/universa
Результат сборки проекта и проверки его на запускаемость см. в Приложении к данному документу.
На платформе планируется реализовать кросс-блокчейновые платежи при помощи UniPayments — сервиса для интеграции Universa с другими блокчейнами (Bitcoin, Ethereum), позволяющим преобразовать токены UTN в токены внешних блокчейнов. В настоящий момент UniPayments может отправлять и принимать BTC, ETH, токены стандарта ERC20. Сейчас идет анализ уязвимостей для взлома и выполняются разнообразные нагрузочные тесты. Сроков готовности и деталей работы системы пока нет. Только в одном из отчетов CEO проекта А. Бородича упоминается, что в феврале проводились работы по интеграции с Bitcoin и Ethereum.
Производительность и масштабируемость — 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 балл из 4 (больше 90% торгов приходится на одну биржу, не торгуется на крупных биржах, динамика листингов на новых биржах отрицательная).
Динамика капитализации и цены токенов — 1 балл из 6 (наблюдается затяжное падение курса и снижение капитализации).
Прогноз — негативный. С февраля, когда токен появился на биржах, количество торговых площадок не только не увеличилось, но и сократилось с 3 до 2. Наблюдается длительное падение курса токена, небольшой рост наблюдался в середине апреля после объявления о запуске основной сети, но даже тогда токен не достиг своей первоначальной стоимости.
Сайт и документация на трех языках: русском, английском и корейском.
Дорожная карта расписана до второго квартала 2018 года включительно:
Согласно дорожной карте, сейчас уже третий этап проекта, но по факту не выполнены еще обязательства первого этапа: мобильные клиенты и кошельки.
Вот что пишет по этому поводу Александр Бородич в своем блоге от 3 января 2018 года: “Нам ставят в вину, что мы сдвинув весь TokenSale и планы в августе на 6 недель c середины сентября на конец октября не поменяли это в WP и на сайте. Мне кажется правильным, чтобы вы видели исходный документ и то, насколько мы отстаем от собственных планов. Через две-три недели мы опубликуем новый roadmap, уточненный и дополненный, а пока идем где-то с опережением, где-то с отставанием от графика.” Однако, на начало августа 2018 RM все еще не обновлен.
Также вызывают вопросы некоторые пункты:
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.
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 будет использована для токенизации активов и в качестве цифровой платформы для создаваемого РАКИБ Крипто-Парка в подмосковном Ступино.
Подписан договор о сотрудничестве с Шанхайским Университетом Бизнеса. Подробности этого сотрудничества не освещаются.
Также подписан договор о партнерстве с Ассоциацией Блокчейн Гонконга по созданию инновационной площадки обмена технологиями, обучению предпринимателей и запуска совместных проектов в Гонконге и экономической зоне Шанхая.
Численность команды — 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 балл из 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):
Twitter сейчас одна из самых популярных соцсетей в мире. Если судить по остальным блокчейн проектам (особенно зарубежным), то на эту соцсеть обычно приходится подписчиков как минимум в 2 раза больше, чем на все остальные. Здесь же больше всего подписчиков приходится на Facebook, скорее всего это именно из-за бОльшей популярности в России. Очень мало подписчиков на Reddit.
Стоит отдельно упомянуть непрофессионализм работы комьюнити-менеджеров в Telegram. Уровень модерации и взаимодействия с людьми очень низкий. На конкретные вопросы, связанные с техническими аспектами, деталями механизма консенсуса и т. п. практически не удалось получить ответы: они остались проигнорированы. Получить ссылку на документы, в которых описан механизм консенсуса, стало возможно только после личного обращения в Telegram к CEO проекта А. Бородичу.
По состоянию на 03.08.18 в сети Universa зарегистрировано 36 нод, кошельков — более 790 тыс. Нет возможности оценить активность работы сети. На ресурсе, который позиционируется как эксплорер можно посмотреть только статус одного конкретного контракта, загрузив его или указав ID.
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 (проект не очень хорошо известен на мировом рынке, цитируемость в последние месяцы связана с негативными высказываниями в его адрес).
Используемость/распространение — 1 балл из 2 (основная сеть запущена, но активность ее использования оценить невозможно).
Проекты на базе технологии — 0 баллов из 3 (есть много планов и договоров о сотрудничестве, но фактического подтверждения использования сети нет).
Известные персоны в команде — 1 балл из 2 (CEO проекта известен в России).
Прогноз — нейтральный. Нет доступной информации об использовании сети и фактической реализации проектов на базе Universa. Интерес к проекту растет в последние месяцы в основном из-за обвинений в скаме.
В открытых дискуссиях блокчейн-сообщества часто встречается позиция, что Universa — скам. С одной стороны, активность хейтеров всегда свидетельствует об известности проекта, с другой — критики предъявляют весьма конкретные обвинения, основное из которых — факт отсутствия блокчейна, как такового. Негативная тональность в том числе подкреплена публичным конфликтом с бывшим сотрудником Universa Артуром Липатовым (см. подраздел “Цитируемость, соцсети”). Наши технические эксперты провели проверку кода, выложенного на GitHub, на предмет соответствия заявленному в WP функционалу.
В результате проверки выяснено, что система представляет собой распределенную БД хранения транзакций и результатов выполнения транзакций. В системе хранятся входы функций контрактов - запросы пользователей. Например поведение контракта вычисления “сумма итого”, можно описать так: при поступлении запроса 2+2 (входные данные для контракта) записывается последний результат выполнения контракта в БД = 4, хешируя его со входными данными. Следующий запрос к функции контракта будет например с данными +5, и в БД запишется =9, а запись =4 будет устаревшей и ее можно со временем удалить из БД. Запросы/транзакции от пользователей контрактов хранятся с хешем — защита от изменения транзакций. А результаты выполнения функций (контрактов) хранятся только последние. Хранение запросов/контрактов это не блокчейн это просто БД с контролем целостности. Результаты по отдельности тоже не блокчейн, но они связаны с запросами на выполнение контракта, получаем неявный блокчейн с возможностью отбрасывания истории, при этом у каждого контракта своя ветка истории.
Также реализован обмен результатами между нодами. Много кода, обслуживающего сетевую функцию системы, похоже на самописный IRC канал, ноды ищут друг друга и передают сообщения.
Все вышеперечисленное так и заявлено в WP.
Результат сборки проекта и проверки его на запускаемость см. в Приложении к данному документу.
Что касается недостатков:
Таким образом, можно сказать, что Universa это не блокчейн. И, судя по содержимому WP она и не задумывалась, как блокчейн. Так что здесь есть претензия к команде по поводу сомнительной маркетинговой стратегии: использовать трендовую технологию и ее терминологию для обозначения сущностей, которые по сути не имеют отношения к этой технологии, либо имеют очень опосредованное.
Такая стратегия уже использовалась этой командой ранее: в 2014 году было заявлено о выпуске WishCoin — “российского конкурента Bitcoin”. Однако, WishCoin по сути не являлся криптовалютой, а был чем-то вроде электронного векселя или аналогом игровой валюты. Проект не реализовался и закрылся в том же году. Эта история также не идет на пользу репутации нынешнего проекта.
Еще одним фактором, увеличивающим риск скама данного проекта, является отсутствие возможности проверить, как и кем используется запущенная основная сеть и используется ли вообще: нет статистики о работе сети, нет рабочего эксплорера, нет новостей о том, что тот или иной проект, ранее заявивший о своем желании использовать Universa в своей работе, действительно фактически уже на ней работает. На вопросы к CEO А. Бородичу о том, как используется платформа, он отвечает, используя уклончивые формулировки, например, “разворачивают свои системы”. Это можно трактовать и как факт использования системы, и как то, что работы ведутся, но пока не завершены.
Вероятность скама — выше средней. Низкая скорость разработки и отставание от планов. Маркетинговые манипуляции с терминологией. Уже имеющийся в активе команды один скам-проект в прошлом. Нет доступной информации об использовании сети и фактической реализации проектов на базе 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, модули собираются не только вариантом от оракла как заявлено в документации, это нормально, особых причин не компилироваться рабочему коду нет.
egorka@hm:~/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
Для запуска ноды не требуется заполнять никаких конфигурационных файлов.
У исполняемого файла ноды нет никаких конфигурационных ключей, например, чтобы запустить ноду в тестовом режиме или выдать тестовые монеты. Некоторое управление нодой есть через интерфейс клиента сети (не точно).
egorka@hm:~/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 точек, две ноды подключены с ошибками.
egorka@hm:~/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
egorka@hm:~/universa$
Создание ключа
egorka@hm:~/universa$ java -jar uniclient/build/libs/uniclient.jar -g sega
New key pair ready
На диске создаются два файла с некоторым бинарным содержимым размером 266 байт
sega.private.unikey
sega.public.unikey
Операция с кошельком непонятна, файл кошелька не появляется (не обнаружен в каталогах проекта).
egorka@hm:~/universa$ java -jar uniclient/build/libs/uniclient.jar -wallet
Universa client tool, v. 3.7.5
error while parsing command line. Use uniclient --help
Попробуем команды для работы с контрактами из мануала на клиенте, оценим как работает вывод.
Создание контракта
egorka@hm:~/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 не подходит.
egorka@hm:~/universa$ java -jar uniclient/build/libs/uniclient.jar --create appveyor.yml
Error: java.lang.NumberFormatException: null
Попробуем тестовый файл из папки проекта, их там большое количество.
egorka@hm:~/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
Что-то произошло, невыполнение отправки контракта в систему предположительно по причине отсутствия оплаты комиссии абонентом сети.
Проверка наличия контракта в системе.
egorka@hm:~/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
Ещё одна команда:
egorka@hm:~/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
Что делают команды пока не разбираемся, тестируем просто то, что программа “живая” и что-то делает:
egorka@hm:~/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
Попытка создать контракт с подписью ранее созданной парой ключей:
egorka@hm:~/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
Попробуем узнать стоимость отправки контракта в сеть:
egorka@hm:~/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
Первое упоминание про внутренние токены, о том, как их получить (сгенерировать для тестов) в документации информации нет.
Попробуем создать адрес в сети со своим приватным ключом:
egorka@hm:~/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, обрабатывающий эти самые токены, а где его брать неизвестно.
egorka@hm:~/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
Выводы
Описание на основе исходных кодов и никак не касается экономической сути проекта и полезности продукта.
Общие мнение: проект-заготовка. Это не минимально рабочий проект, выдать его даже для альфа-тестирования сторонним разработчикам не получится. Как минимум нужно дописать тестовую генерацию токенов, и отправку токенов между пользователями средствами сети без использования контрактов.
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