Сетевая распределенная криптографическая платформа для удобного создания, использования и учета децентрализованных приложений (смарт-контрактов или «умных контрактов») и токенов, для торговых площадок, платежных и обменных систем, бонусных систем и т.д.
В основу нашей технологии мы заложили идею идеального баланса централизации и децентрализации данных и функций системы. Развитие, дополнение и обновление системы проходит централизованно через компанию, а валидация, контроль, принятие решение (согласие или несогласие) с обновлениями происходит децентрализованно и определяется только участниками.
Смотреть технологииУстойчивость и открытость платформы достигаются технологией блокчейн (распределённый реестр данных) с модифицированной версией консенсуса Proof Of Stake (модель принятия решений между участниками). У нас собственная блокчейн-технология, как самостоятельный программный продукт, не являющийся форком Bitcoin.
Все данные распределены между серверами (Исходный код нод в открытом доступе со свободной лицензией). Любой участник сети может развернуть один из типов нод (валидатор - со всей историей операций сети, возможностью валидации блоков и отправкой новых транзакций, полная нода - со всей историй операций сети и возможностью отправки новых транзакций, легкая нода - с возможностью отправки транзакций).
Сеть может включать в себя неограниченное число токенов, смарт-контрактов и участников (адресов) и свободно контролироваться валидаторами.
Собственные сборки нод были созданы для дальнейшей оптимизации и развития платформы в целом.
Для оптимизации объема и быстрого доступа к необходимым данным используется leveldb с открытой лицензией (Технология для хранения большого количества нереляционных данных формата ключ>значение).
Доступ к данным участников сети осуществляется посредством иерархически сгенерированных ключей BIP39. В формате bech32 ключи для каждого участника разделяются на три типа: основной адрес, адрес смарт-контракта, адрес ноды с различными префиксами.
Далее участники обмениваются данными посредством отправки сообщений на ноду, подписав при этом сообщения своим ключом. Данные объединяются в блоки и отправляются на консенсус. Хэширование осуществляется при помощи кодировки sha256.
Нами созданы несколько уровней серилизации данных для полной проверки данных и исключения ошибок от момента поступления на ноду и до записи в блок.
Модифицированная версия консенсуса Proof-Of-Stake заключается в принятии решений в зависимости от баланса валидатора, а так же от общего числа валидаторов.
Каждая нода постоянно принимает транзакции от участников сети, данные попадают в первоначальный пул для обработки, исключающий переполнение данных и задержку в консенсусе. Далее нода валидирует транзакцию на основании собственной цепочки блоков и принимает решение: одобрить или сразу отклонить транзакцию, принятые транзакции сразу же отправляются другим валидаторам сети, список которых автоматически подгружается с основного или других узлов.
Параллельно с принятием данных ноды, получившие статус валидатора принимают участие в консенсусе: в заранее определенной очередности валидаторы становятся пропоузером (proposer - валидатор, предлагающий на рассмотрение данные).
1) Proposer создает блок исходя из собственного пула поступивших транзакций (своих и чужих), подписывает и отправляет его другим валидаторам. Другие валидаторы получив блок сохраняют его в свою временную память. В случае, если proposer не представил блок - система коллективно назначает ему штрафные санкции. Так же proposer добавляет в блок транзакцию с собственной наградой (За создание верного блока)
2) Валидаторы анализируют блоки на основании своих данных и отвечают другим валидаторам о принятии или отклонении.
3) Каждый валидатор оценивает ответы других по двум критериям (Суммарное число балансов валидаторов, проголосовавших ЗА, которое должно составить не менее 66% и количество валидаторов проголосовавших ЗА от их общего числа, которое должно составить не менее 50%). Если оба требования выполняются - валидатор отправляет блок на запись и выполнение всех транзакций.
4) Каждый валидатор анализируем метрики, очищает временную память и готовится к новому раунду Кроме обычных адресов в системе могут присутствовать смарт-контракты, обладающие собственной логикой и оперативной памятью. И логика и память контрактов так же используются децентрализованно (хранятся в идентичном состоянии на всех нодах).
Смарт контракты разделяются на основные группы:
Контракты для поддержания развития системы и пользовательские контракты.
Добавляются контракты исключительно через централизованный узел (Подробнее в разделе «Централизованная часть»). Контракт может принимать транзакцию, а далее на основании собственной логики производить ряд вычислений и множественную отправку транзакций. На нодах каждый контракт представлен отдельным приложением, все результаты деятельности контрактов после выполнения отправляются в консенсус для подтверждения другими участниками и исключения модификации кода или данных памяти.
В системе существует основной токен и может быть создано множество токенов участников (альты), сам токен аналогично представляет собой смарт-контракт и имеет владельца (адрес). Владелец может пользоваться балансом смарт-контракта но не может непосредственно в самом блокчейне менять условия контракта.
При отправке любой транзакции присутствует комиссия, исчисляющаяся в основном токене, которая зависит от текущей нагрузки на сеть. Возможно увеличение и уменьшение комиссии для замедления и ускорения транзакций. Все комиссии забирает себе валидатор, предложивший блок с данной транзакцией.
Обмен между токенами осуществляется через смарт-контракт обмена DEX: По каждой паре основного и пользовательского токена создается «Пул ликвидности», определяющий соотношение при обмене. Так же при обмене пользовательского токена на другой пользовательский токен применяются два пула ликвидности (от каждой пары).
В каждой ноде присутствует шлюз для отправки и принятия данных (API) в формате JSON-RPC. Посредством API любой участник сети может подключать собственные IT-решения к блокчейну и связывать собственный смарт-контракт со своим централизованным продуктом, в зависимости от собственных потребностей.
Реализация ноды может быть на различных языках программирования и для различных ОС.
Централизованная часть проекта представляет собой удобный пользовательский интерфейс для использования блокчейна. Исходный код централизованной части является собственностью компании и не распространяется. Пользователи через web-сервис могут получить исчерпывающую информацию, а так же пользоваться бесплатными продуктами.