Хранение и шифрование
Для оптимизации объема и быстрого доступа к необходимым данным используется leveldb с открытой лицензией (технология для хранения большого количества нереляционных данных формата ключ>значение).
Доступ к данным участников сети осуществляется посредством иерархически сгенерированных ключей BIP39. В формате bech32 ключи для каждого участника разделяются на три типа: основной адрес, адрес смарт-контракта, адрес ноды с различными префиксами.
Участники обмениваются данными посредством отправки сообщений на ноду, подписав при этом сообщения своим ключом. Данные объединяются в блоки и отправляются на консенсус. Хэширование осуществляется при помощи кодировки sha256.
В ядре созданы несколько уровней серилизации данных для полной проверки данных и исключения ошибок от момента поступления на ноду и до записи в блок.
Консенсус
Модифицированная версия консенсуса ProofOfStake заключается в принятии решений в зависимости от количества монет у валидатора, а также от общего числа валидаторов.
Каждая нода постоянно принимает транзакции от участников сети, данные попадают в первоначальный пул для обработки, исключающий переполнение данных и задержку в консенсусе. Далее нода валидирует транзакцию на основании собственной цепочки блоков и принимает решение: одобрить или сразу отклонить транзакцию, принятые транзакции сразу же отправляются другим валидаторам сети, список которых автоматически подгружается с основного или других узлов.
Параллельно с принятием данных ноды, получившие статус валидатора, принимают участие в консенсусе: в заранее определенной очередности валидаторы становятся пропоузером (proposer - валидатор, предлагающий на рассмотрение данные).
Контракты
Кроме обычных адресов в системе могут присутствовать смарт-контракты, обладающие собственной логикой и оперативной памятью. И логика и память контрактов так же используются децентрализованно (хранятся в идентичном состоянии на всех нодах).
Смарт контракты разделяются на основные группы: Контракты для поддержания развития системы и пользовательские контракты.
Добавляются контракты исключительно через централизованный узел, а поддерживаются и исполняются только децентрализованно. Контракт может принимать транзакцию, а далее на основании собственной логики производить ряд вычислений и множественную отправку транзакций. На нодах каждый контракт представлен отдельным приложением, все результаты деятельности контрактов после выполнения отправляются в консенсус для подтверждения другими участниками и исключения модификации кода или данных памяти.
При отправке любой транзакции присутствует комиссия, исчисляющаяся в основном токене,которая зависит от текущей нагрузки на сеть. Возможно увеличение и уменьшение комиссии для замедления и ускорения транзакций. Все комиссии забирает себе валидатор, предложивший блок с данной транзакцией.