# Решение. Proof of Tsar

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

Платформа Relictum Pro не зависит от способа коммуникаций, просто есть нода, а каким образом доставлено сообщение, не имеет значения.

На данный момент используется собственная технология коммуникаций — \_HyperNet, которая работает над или поверх Интернет.

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

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FQ36thSdUkp0Z2TbSdD5y%2Fimage.png?alt=media&#x26;token=7b3532d3-7dc7-40a8-94a6-98fa6a4c2110" alt=""><figcaption></figcaption></figure>

### Организация сети — первый отличительный механизм <a href="#undefined" id="undefined"></a>

Существующая организация сети современных блокчейнов — это пиринговые сети (P2P). В блокчейн-платформе Relictum Pro используется уникальный протокол, в основе которого лежит протокол TCP/IP, в котором виртуальный канал связи с каждой нодой образуется поверх сети Интернет. Преимущества данной сети в ее надежной устойчивости и изолированности от общего сегмента сети Интернет. В этом виртуальном канале передается только информация Relictum Pro, что в несколько раз увеличивает скорость передачи данных.

В качестве транспорта мы используем новый тип сети, на основе сети передачи данных четвертого уровня модели OSI. HyperNet — сеть коммутации виртуальных каналов. HyperNet дает постоянное устойчивое соединение между всеми нодами на маленький ограниченный промежуток времени (от 0.5 до 10 с), в зависимости от нагрузки сети. При малой загруженности сети этот промежуток может быть до 10 с, а при загруженной сети уменьшаться до менее 0.5 с.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2F877i9fnNNfZdOC2O61HX%2Fimage.png?alt=media&#x26;token=c0efcd78-ff1f-4963-9f71-c46126498741" alt=""><figcaption></figcaption></figure>

### Как это работает <a href="#undefined" id="undefined"></a>

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

Нода, при первом запуске, автоматически определяет к какому типу она относится:

![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FmFK8Vp9gOwNMDBlXbnhT%2Fimage.png?alt=media\&token=21821d67-e25a-4511-8c24-3c1dbd499c02)![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FHF0A1Z7HrU0DczebX6WF%2Fimage.png?alt=media\&token=30354bc1-2c3d-45fa-b6f2-e4d95f8428a1)

![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FGfYV7tI1NiUyKPmMocWl%2Fimage.png?alt=media\&token=a3dab524-9826-47ca-b315-aba8e4a9b89c)![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FyWfAzEL9Gz5vl0OZPae6%2Fimage.png?alt=media\&token=eb0a1750-01ff-4450-9a7d-7fec73f07d92)

![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FuAVfj8HAJeLh6GbwjFHY%2Fimage.png?alt=media\&token=174e807b-acb0-44f4-b9fa-c66383ddb91a)

### Механизм организации Proof of Tsar <a href="#proof-of-tsar" id="proof-of-tsar"></a>

Каждые 0.5 сек происходит регенерация сети (перекоммутация всех узлов), наподобие регенерации оперативной памяти ЭВМ, во главе с одной главной нодой – «Царем» и стоящими под ним «Генералами», которые собирают транзакции и передают их «Царю» для обработки. После этого «Царем» раздаются блоки «Генералам», а они раздают дальше всем по цепочке. «Царь» и «Генералы» выбираются автоматически и постоянно меняются.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2Fo6MZb3fnz7xgXFeVbD4D%2Fimage.png?alt=media&#x26;token=faefd71a-402c-4279-80e4-6507ee0bbee6" alt=""><figcaption></figcaption></figure>

«Генералом» и «Царем» может быть любая нода. Но «Царь», в следующую генерацию, после регенерации сети, уже не может быть ни «Царем» ни «Генералом». Как и “Генерал”, в свою очередь, не может быть генералом два раза подряд.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2Fxl1yeDJpPjnvakUwlf7D%2Fimage.png?alt=media&#x26;token=f3142f88-64a2-468f-9a2a-c6e059893089" alt=""><figcaption></figcaption></figure>

### Мы решили проблему неоднозначности <a href="#undefined" id="undefined"></a>

Таким образом, исчезают коллизии двойных трат и других паразитных событий. При этом «Царь» не знает, что он «Царь» в момент того, когда он «Царь». Расчетные данные показывают, что, вероятность коллизии хешей блоков может наступить через 100 лет, но эта коллизия может быть только с тем хешем, который был 100 лет назад, что делает ее не актуальной. Достигается это благодаря сквозной нумерации каждого блока Master\_Chain.

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

Ранжирование нод зависит от числа транзакций, которые складываются из:

* Количества обращений к ноде — к распределенному хранилищу за документами;
* Времени присутствия в сети;
* Количества сгенерированных транзакций;
* Количества проходящих транзакций через ноду.

### Организация блоков — второй отличительный механизм <a href="#undefined" id="undefined"></a>

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

### Отличительный механизм заключается в том, что в блок записывается только хеш одного события (транзакции), которую изменить уже нельзя <a href="#undefined" id="undefined"></a>

Таким образом, отметаются всякого рода коллизии. Помимо записи в блок хеша события, при формировании нового блока, берется целиком хеш предыдущего блока + целое значение (впереди блока ставим сквозной порядковый номер блока). Есть главная цепочка блоков – Master\_Chain, в которой записывается только хеш какого-либо блока из нижестоящих и боковых смарт-контрактов.

Параллельно с главным Master\_Chain формируются различные независимые цепочки — это смарт-контракты, которые организуют трехмерное распределение, например:

* **первый смарт-контракт** — генерация токенов
* **второй смарт-контракт** — продажа товаров через магазин
* **третий** — криптобиржа;
* **четвертый** — доставка товара и др.

Таким образом, организация цепочек смарт-контрактов и главной цепочки Master\_Chain приводит к четырехмерной модели организации распределения блоков.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2F1sT4RtSiv7QMFZpmYWzz%2Fimage.png?alt=media&#x26;token=09bca9ef-5e53-41f8-8e02-bd018d49a081" alt=""><figcaption></figcaption></figure>

### Возникают следующие особенности платформы Relictum Pro: <a href="#relictum-pro" id="relictum-pro"></a>

* Смарт-контракт самостоятельно отслеживает были ли в полной мере исполнены все условия контракта;
* Возможность проводить операции с разными типами и видами смарт-контрактов, возможность генерации новых смарт-контрактов с новыми типо-свойствами или свойство-типами;
* Уже сегодня в платформе Relictum Pro может быть заключен смарт-контракт одновременно между 10 контрагентами.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FYqqei5nPxz7yOGdDy5t0%2Fimage.png?alt=media&#x26;token=3d281e10-a5a4-44c6-a946-dff88e3cb079" alt=""><figcaption></figcaption></figure>

### Принципиальная схема Блока смарт-контракта: <a href="#undefined" id="undefined"></a>

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FFP3uGsVUZAm602AwbILg%2Fimage.png?alt=media&#x26;token=bf9074d3-efae-437b-be19-2813cb65baa9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2F8bxHeeuQCSpZ1ygAg4Y0%2Fimage.png?alt=media&#x26;token=df73d562-3420-43aa-b28d-19b3a4b7e77c" alt=""><figcaption></figcaption></figure>

Каждая цепочка (смарт-контракт) имеет индекс и каждый блок этой цепочки имеет свой индекс в Master\_Chain. В Master\_ Chain указывается из какого индекса этой цепочки было обращение, но, на самом деле, они идут один за другим. Количество возможных новых встраиваемых смарт-контрактов неограничено по количеству.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FD11X6CeGOuzYWk7YXvA3%2Fimage.png?alt=media&#x26;token=12b82ea6-d7bb-4ae2-9888-c60243ab2be4" alt=""><figcaption></figcaption></figure>

### Нода (узел сети) — динамичность и функционал <a href="#undefined" id="undefined"></a>

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

Полноценные ноды — бинарные исполняемые файлы, которые могут автоматически инициализироваться в:

![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FlI7HToPTD8DcGovzodiY%2Fimage.png?alt=media\&token=a9472a9e-7c97-4b47-8779-b4c2a07e3b17)![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FceUyOKVQjEHsDmGENeNn%2Fimage.png?alt=media\&token=18662ed6-2a6a-48ed-8c03-9e372ffec2ae)

![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FloHPFbnJi8EqogqcOCun%2Fimage.png?alt=media\&token=42707551-7b9b-48f8-9afd-a2da412b56c2)![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FuxSEzZBToLirljUCTgfu%2Fimage.png?alt=media\&token=24e0f88a-4011-4ca6-9c4a-ed4c8b1043bb)

![](https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2F16CQYcNOBByGsgE3Hjb5%2Fimage.png?alt=media\&token=a512320c-4932-401b-b061-29ed74070c43)

Нода является, в том числе, и портфелем, в который входит:

* Возможность создания собственного ICO;
* Возможность создания своей биржи;
* Возможность создания собственной валюты (смарт-контракт коинов, смарт-контракт майнера).

### Внутренние возможности <a href="#undefined" id="undefined"></a>

Relictum Pro позволяет производить подтверждения транзакций внутри сети текущих криптовалют: Биткойна, Эфира, Латкоина, ДогКоина и др. Подтверждения транзакций происходит мгновенно. Даже если Биткойн не дошел до владельца, пользователь уже сразу может распоряжаться Биткойном.

Возможность интеграции в платформу Relictum Pro сторонних систем учета, документирования и т.д.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FyFxPFYoZLkWUIAcjyleL%2Fimage.png?alt=media&#x26;token=fc61de0a-ea76-4b6d-82d2-df6738c37276" alt=""><figcaption></figcaption></figure>

### Внешние возможности Relictum Pro (сети): <a href="#relictum-pro" id="relictum-pro"></a>

Сеть платформы имеет собственный SDK под все платформы на динамических библиотеках и API с примерами под все типы языков программирования ( Modula, Delphi, Python, C/C++ и т.д.)

Relictum Pro предоставляет работу с протоколами не только SDK и API, но и с собственным протоколом блокчейн-платформы на низком уровне сокетный протокол: высокая степень защиты, скорость.

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

### Механизм хеширования <a href="#undefined" id="undefined"></a>

Relictum Pro — это дополненная модификация математики хеширования на основе SHA1. Главное преимущество в преобразовании из 20 байт в 32 байт (в собственный хеш). Это дает высокую криптоустойчивость, в том числе и от перспективного квантового компьютера.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FgWRiLVhk4WmmG4h4yZVb%2Fimage.png?alt=media&#x26;token=c31e1551-99d2-4bb5-b3fe-d8847d58976d" alt=""><figcaption></figcaption></figure>

### Решение проблемы атаки 51% и других неоднозначностей <a href="#id-51" id="id-51"></a>

Одна единственная нода, в пределах от 0.5 до 10 сек принимает решение, сеть обновляется (регенерирует) и выбирается другая главная нода, которая собирает инструкции, формирует блоки и раздает всем нодам, т.е. сеть динамически меняется каждую секунду. Это дает преимущество, которое исключает различного рода неоднозначности – коллизии, двойные траты и другое. Отсутствие стандартных принципов консенсуса. Чем больше нод в сети, тем выше производительность. Достигается это уникальной архитектурой Proof of Tsar и организацией сети коммутации виртуальных каналов.

### Распределенное хранилище <a href="#undefined" id="undefined"></a>

Распределенное хранилище не требует подтверждения получения данных. Благодаря организации различных цепочек смарт-контрактов ускоряется поиск раздробленных файлов и их просмотр. По эмпирическим данным, скорость скачивания существенно быстрее P2Р сети.

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

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

Автоматически организуется авторское право с распознаванием интеллектуального оцифрованного труда и пиратской копией. Автоматизируется вознаграждение автору за использование произведения, минуя посредников (использование смарт-контракта «Авторское право».

### Безопасное хранение и управление ключами <a href="#undefined" id="undefined"></a>

Ник Сабо, основатель понятия “смарт-контракта”, выделил три нерешенные проблемы:

* Безопасное хранение и управление ключами;
* Децентрализованные биржи;
* Сделать решения второго уровня более дружелюбным, по отношению к пользователю, особенно посредством автоматического роутинга, в то же время, не пренебрегая минимизацией доверия.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2F3LIHbuWoD2CAEzpE5tHp%2Fimage.png?alt=media&#x26;token=7880ae16-fead-405b-9af0-5a4679f9cdfc" alt=""><figcaption></figcaption></figure>

### Как работает наша разработка биометрического распознавания лица: <a href="#undefined" id="undefined"></a>

Берется хеш лица, совместно с SecureCall подтверждение транз акции при помощи звонка на телефон. Во время вызова вводится пароль, используя DTMF сигнал совместно со следующими решениями:

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2FxY3rA8UWK7MKQcbRmFfP%2Fimage.png?alt=media&#x26;token=0d3cac9b-e1e4-422a-9eca-976255403ca6" alt=""><figcaption></figcaption></figure>

* После удачной транзакции приватный ключ теряет актуальность, а клиент неизбежно обязан генерировать новый ключ (или это делается автоматически);
* В цепочку смарт-контракта записывается публичный хеш от хеша конкатенации \[Token pass phrase] или \[Token + random text] в бинарном виде;
* Предусмотрена возможность использования 2-х коротких ключей с последовательной проверкой. После проверки 1-го ключа (независимо от результата проверки) предлагается ввод второго ключа. Механизм предполагает после 1-й проверки выдать строку, которая является хешем 2-го ключа, а значит хакеру понадобится подбирать 2-й ключ, не зная вообще, верный ли хеш 1-го ключа. Для исключения взлома предусмотрена возможность ограничения количества попыток.

<figure><img src="https://2950747647-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FegoBbZZj0MrI4YvdPEPq%2Fuploads%2F6FxLnGz0OF0f6XffHscJ%2Fimage.png?alt=media&#x26;token=30cb0dfd-4a61-4d9c-acdb-6a2341d74d49" alt=""><figcaption></figcaption></figure>
