Есть ли жизнь после covid-19

Alexander Borodich
9 min readJun 14, 2020

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

Прочитайте внимательно про U8, UDC и Last Parsec — мне кажется, это то, чего вы от нас давно ждали :)

Решения для борьбы с пандемией

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

ANTICOVID DIGITAL COUPONS PLATFORM

Тунис и блокчейн

Продолжается работа в Тунисе, несмотря на то, что наш визит в Тунис, запланированный на март, был отменен. ATI говорит “Stay tuned”, так что stay tuned и не переключайте канал :)

Digital Sugar

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

Digital Sugar website snapshot

Universa Paranoid Development:

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

Core

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

За это время сеть и core libraries получили следующее развитие:

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

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

  • Журнал проверки контракта, позволяющий понять причины ошибок при регистрации в сети (альфа-версия)

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

  • Поддержка адресов RSA-8192 ключей

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

  • Реализация нового типа UNS контракта: UNS2. Контракт адаптирован для использования в UDNS

Данный контракт позволяет оперативно искать в сети контракт по доменному имени, что является расширением технологии UNS для использования на замену устаревшей и уязвимой технологии DNS. Поддержка контрактов UNS2 позволяет создать эффективный DNS-сервер, использующий распределенную сеть для хранения DNS-записей, управления зоной. Детали UDNS сервера описаны ниже.

U8

  • JS-биндинги для возможности хостить DNS-сервер
  • Поддержка типов записей A, AAAA, CNAME, MX, TXT

Таким образом наши клиенты получают возможность удобно создавать свои версии DNS-сервисов с использованием распределенного траста Universa Mainnet, при помощи удобных и привычных языков Javascript, Typescript и всех остальных, которые компилируются в JS (kotlin, scala, etc.).

  • Проксирование dns-запросов через uplink параллельно с обработкой в JS

Это позволяет создавать высокопроизводительные DNS-сервисы на U8(JS/TS), физически распараллеливая некоторые процессы (в данном случае — алгоритмическую обработку DNS запроса) локально и производя одновременно поиск по нему дальше по традиционной DNS сети.

  • PostgreSQL конекшен-пул теперь создает подключения к БД постепенно, по мере необходимости

Данная мера увеличивает скорость запуска U8-приложений и скриптов, использующих PostgreSQL, путем создания конкурентных соединений к СУБД по мере необходимости.

  • Добавлена поддержка адресов RSA-8192 ключей

U8 modules

Мы разработали механизм создания модулей — файловых единиц, включающих сжатый архив исходников, ресурсов, скомпилированных wasm модулей, который можно подключить как обычный import, без необходимости создавать инфраструктуры пакетных менеджеров (npm/yaml) и сложных описаний зависимостей.

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

На данный момент мы реализовали:

  • Загрузка JS-файлов из модуля
  • Получение ресурсов (миграций) из модуля

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

  • Чтение манифеста модуля
  • Подпись модуля
  • Проверка подписи модуля
  • Проверка доверенности ключа модуля с использованием файла траста U8trust

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

  • Загрузка и выполнение модулей

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

UDNS

DNS-сервис, использующий распределенный траст Universa, написанный на JS и работающий из модуля U8. Может использоваться как обычный DNS сервер, однако, будет использовать UNS2 контракты для зарегистрированных в Universa доменных имен, и, соответственно, не будет зависеть от домен-сквоттеров, в том числе и “официальных”, когда ICANN по своему усмотрению отбирает домены у владельцев в национальных и якобы “суверенных” зонах.

  • Реализация собственно UDNS сервера как модуля U8
  • Запуск первого UDNS-сервера
  • Поддержка протокола dns-over-https

Ubots

  • Унификация логирования

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

Wasm-crypto

Библиотека для быстрых и безопасных (повышенной защиты) крипто примитивов Universa, общего назначения. Работает под браузерами или с Node.js. В браузерах работает в фоне, не тормозя UI. Загружается и работает быстрее чем JS-решения.

  • Сборка в wasm необходимых библиотек, включая gmp
  • C++ реализация криптографических функций адаптирована и портирована в wasm (SHA, HMAC, AES, HashId, RSA, SymmetricKey, PBKDF2)
  • В с++ crypto добавлены параметры совместимости с JS minicrypto
  • Оптимизация генерации rsa-ключей в wasm (тюнинг gmp, сравнение с другими мат-библиотеками)

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

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

Примечание: в U8 имеются встроенные аналогичные средства.

Universa-core NPM модуль

Для работы в браузерах и под Node.js. Для работы с сетью Universa с использованием асинхронной wasm библиотеки unicrypto, описанной выше. Позволяет работать с приватными сетями и mainnet, с использованием построения/обновления топологии сети. Дает доступ к интерфейсу внешних команд нод непосредственно со страницы или из JS приложения. При работе с нодой не требует UMI. Мы планируем в ближайшее время дополнить ее работой с контрактами, и сделать возможной полноценную работу с контрактами в serverless приложениях, и ускоренную работу для node.js без использования UMI. В дальнейшем на базе этой библиотеки мы сделаем стандарт для JS/TS Universa API.

Примечание: в U8 имеются встроенные аналогичные средства.

QRPass technology demo

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

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

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

По данной технологии мы разрабатываем в данный момент сервис Zero-knowledge universa ID service, реализующий публичный login-сервис и анонимные одноразовые подтверждения (expendable credentials), которые могут работать без установки приложения, с предъявлением без сетевого подключения (QRcode scanning, минимальная проверка также не требует подключения, с определенными ограничениями). При этом сервера UniID также не будут хранить подтверждаемой информации. Данная технология позволяет использовать для подтверждения приватных данных распределенный траст блокчейна universa без их раскрытия. Таким образом исключается утечка персональных данных, необходимость в их хранении, обработке на сервере и передаче через Интернет. Также исключается необходимость в получении лицензий для операций с персональными данными.

https://qrpass.myonly.cloud

Мой пропуск на 14 дней :)

Universal Digital Currency

Мы продолжали работы по развитию одного из основных проектов, использующих Universa MainNet — Universal Digital Currency. На основе данной технологии будут строиться проекты токенизации металлов, натуральных ресурсов, корзин валют и CBDC.

  • Мульти-ключ владельца

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

  • Возможность добавлять другие товары

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

  • Доставка

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

  • Биржа цифровых активов

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

  • KYC альфа версия

Интеграция с сервисом подтверждающим личности участников.

  • Обновленное пополнение через банковский перевод

Теперь интерфейс пополнения счета через wire transfer более понятен и удобен.

Unichat

Независимая платформа для обмена сообщениями в проектах, использующих universa.

  • Поддержка webpush
  • To-do списки
  • Подзадачи
  • Комнаты для организаций
  • Спейсы (в работе)
Spaces @ Unichat

Other NPM modules

Last Parsec // Last PARanoid SECurity

Вышеописанные и разработанные механизмы, такие как :

  • frontend полноценная криптография,
  • мобильные PWA приложения, устанавливаемые и обновляемые через веб без использования нативных приложений,
  • UDNS, UNS2,
  • сетевые протоколы семейства parsec предоставляющие decentralized trust и безопасные сетевые каналы семейства parsec, не зависящие от ICANN, TLS/SSL CA и и выдаваемых ими сертификатов,
  • технологии UniID Zero-Knowledge login, expendable credentials,
  • undisclosable data storage, split-signed undisclosing data signing,

Все эти механизмы вместе образуют ядро технологического стека Last Parsec (parsec == PARanoid SECurity), который мы представим в этом году.

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

С уважением, your Paranoid CEO, Александр Бородич

Основатель Universa Blockchain

--

--

Alexander Borodich

Universa Blockchain Founder and CEO, Business angel, accredited investor, serial entrepreneur, addicted to travel and decentralized tokenized economy