RChain (RhoC) масштабируемая платформа смарт-контрактов

RChain — платформа децентрализованных приложений (масштабируемый блокчейн), обещающая стать сервисом промышленного значения по обработке и передаче данных, сходных по масштабу с объемами Фейсбука и поддерживать транзакции со скоростью Visa. Ресурсы для платформы предоставляют сами пользователи, как это реализовано в Ethereum и Maidsafe.

Rchain

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

«С должным усердием изучив текущее положение многих блокчейн-проектов, после тесного сотрудничества с разработчиками Ethereum и анализа их roadmaps, мы пришли к выводу, что существующие и разрабатываемые архитектуры Blockchain не могут удовлетворить потребности в доставке контента и скорости транзакций. В середине 2016 года мы решили создать лучшую архитектуру блокчейн.» Грег Мередит

Блокчейн RChain — замысел математика и программиста Грега Мередита, написавшего A Reflective Higher-order Calculus (Rho Calculus), на котором построен Майкрософтовский BizTalk Process Orchestration. Бывший топ-менеджер Майкрософт Грег Мередит разработал «Блокчейн 2.0» с открытым исходным кодом — вычислительную платформу для создания безопасных приложений, которая будет направлена на решение ряда социальных, политических и экономических проблем. Работа над децентрализованной платформой ведется RChain Cooperative и RChain Holdings, некоммерческой организацией проекта. Оба отдела располагаются в штате Вашингтон, собрался коллектив со всего мира.

Особенности и решения RChain

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

Структурная семантика блокчейна RChain
Структурная семантика блокчейна RChain

В создании архитектуры платформы используются математические теории, такие как Теория игр и Mobile Process Calculi. Путем объединения фундаментальных математических исследований, computer science и практикой в разработке приложений для доставки содержимого (content-delivery applications), Мередит и коллеги спроектировали формальную модель распределенных расчетов, ставшую основой масштабируемого blockchain.

Ключевые элементы дизайна RChain:

  • Формальная математическая модель алгоритмов Rho Calculus с формальной верификацией.
  • Язык программирования смарт-контрактов Rholang со строгой типизацией. Он основан на парадигме параллельных вычислений и значительно отличается от популярных языков на основе объектно-ориентированных и функциональных парадигм. Язык ориентирован на параллелизм, с акцентом на передачу сообщений через входные каналы. Каналы статически типизированы и могут использоваться как отдельные каналы сообщений, потоки или хранилища данных. Подобно типизированным функциональным языкам, Rholang будет поддерживать неизменные структуры данных.
  • RhoVM (Rho Virtual Machine) — тьюринг-полная реплицируемая виртуальная машина, применяющая алгоритм консенсуса Byzantine fault tolerance. Каждая VM выполняет независимый набор смарт-контрактов, объединяясь в сеть скоординированных параллельных цепей.
  • Масштабируемость реализуется за счет инициализации новых RhoVM по мере роста платформы. Это позволяет платформе масштабироваться линейно, сохраняя стабильную производительность, согласованность и сложность кода.
  • Разработка программного обеспечения путем последовательного улучшения конструкции.
  • «Namespaces» — полуавтоматическая структура для размещения и исполнения контрактов на основе их моделей и задач. Свойства контрактов могут проверяться статически, чтобы помогать разработчикам конструировать безопасный код, поддерживаемый во многих сферах.
  • Смарт-контракты, проверяемые на основе алгоритмов формальной математической модели, проходящие формальную верификацию. Контракты RChain являются внутренне параллельными, используя парадигму передачи сообщений для оптимизации реагирования, предлагая более динамичную и сложную экосистему смарт-контрактов. Ведущими функциями смарт-контрактов RChain являются мета-программирование, соответствие шаблону, реактивная передача данных.
  • Мульти-блокчейны на одной ноде.
  • Настраиваемые ноды — частные, публичные, групповые (консорциумные).
  • Параллельность. В данном случае не имеется ввиду синхронизация процессов. Это особенность структуры, позволяющая независимым процессам объединяться в составные. Они считаются независимыми, если не конкурируют за ресурсы. Независимо от того, работает ли платформа на одном процессоре или 1 000 000 процессоров, дизайн RChain масштабируем.
    Подробнее в White Paper

Сравнительная таблица блокчейнов Bitcoin, Ethereum и RChain

BitcoinEthereumRChain
Структура данныхБлокчейн, цепочка блоков. Каждый блок ссылается на предыдущий блок, содержит список транзакций и другие данные.Блокчейн, цепочка блоков. Каждый блок ссылается на предыдущий блок, содержит список транзакций и список ommers.Блокчейн, граф блоков. Каждый блок ссылается на один или более предыдущих блоков, список транзакций и другие метаданные.
КонсенсусАлгоритмProof-of-workСейчас: Proof-of-work, в планах: Proof-of-stake на основании доли создателя нового блока.Proof-of-stake на базе пропозициональной логики.
FinalityВероятность изменения транзакции уменьшается пропорционально формированию новых блоков.Как в БиткоинКак в Биткоин
ВидимостьГлобальныйВ зависимости от назначения узлов (частный, общественный, корпоративный).В зависимости от назначения узлов и «namespaces».
Механизм улучшенийСофт и хард-форкиСейчас: форки, в планах: ревизии блоков в случае временной изоляции сети.Ревизии блоков в случае временной изоляции сети.
АдресИдентификатор, предоставляющий место назначения для транзакции. Производится из случайного частного ключа или из хэша скрипта (P2SH).Идентификатор, предоставляющий место назначения для транзакции. Производится из случайного частного ключа, представляющего аккаунт.Зашифрованный уникальный канал для коммуникации с процессом (включающий  смарт-контракт), аналогично URL.
Шардинг Однородный, без шардинга.Сейчас: однородный (без шардинга), в планах: двухуровневый.Изолированные адреса «namespaces» позволяют пользователям подписываться на выбранный адрес без необходимости скачивать весь блокчейн.
КонтрактыВычислительная мощностьСтековый язык программирования с несколькими инструкциями.Тьюринг-полнаяТьюринг-полная
Рантайм-архитектураСкрипт работает на Bitcoin Core, Libbitcoin, и другие нативные имплементации.Виртуальная машина Ethereum, реализованная на нескольких платформах. RhoVM на нескольких платформах.
Язык программированияСкриптSolidity, Serpent, LLL и другие, реализованные на ВМ.Rholang и другие, реализованные на ВМ.
Время подтверждения блока10 минут для 1 блока, 30 минут для завершения подтверждения.Сейчас: 14 секунд для 1 блока, 3 минуты для финального подтверждения.Цель: менее секунды на 1 блок.
Размер блока1МБДинамическийДинамический
Максимальный вес транзакции/контракта100КБДинамический, на лимите газа.Зависит от типа токена и политики «namespaces».
Масштабируемость/пропускная способность7 транзакций в секунду15 транзакций в секундуЦель: 40000-100000 транзакций в секунду
Протокол токеновBitcoin, плюс токены, предоставляемые Omni Layer.ETH, плюс токены, выпускаемые смарт-контрактами.Мульти-токены, выпускаемые системными контрактами или контрактами приложений.
Виртуальная Машина —Однопоточная EVMМультипоточная RhoVM
АнонимностьПсевдоанонимныйПсевдоанонимныйNamespaces произвольно анонимны. Каналы обслуживания пользователя могут быть зашифрованы.

Архитектура RChain

Узлы платформы состоят из нескольких компонентов, включающих P2P network, виртуальные машины Java и Rho. Исполнительная архитектура опирается на некоторые внешние компоненты, зависящие от конкретной операционной системы, они хранятся в сжатом виде на виртуальной машине Java. Основная функциональная часть написана на Rholang.

rchain node architecture
Схематическое изображение слоев архитектуры RChain

Описание уровней архитектуры платформы (снизу вверх):

  1. Среда ВМ (The RhoVM Execution Environment) предоставляет контекст для исполнения смарт-контракта.
  2. P2P Communication поддерживает связь между узлами. Это P2P коммерческого класса TBD с открытым исходным кодом, такой как ZeroMQ или RabbitMQ.
  3. Storage — хранилище данных MongoDB, первичная структура данных в памяти radix tree (trie).
  4. Data Abastraction Layer обеспечивает постоянный монадический доступ к данным и другим узлам, как к локальным. Этот слой представляет собой эволюцию технологии SpecialK, выполняется в Rholang.
  5. Casper PoS обеспечивает консенсус узлов в отношении состояния каждого блокчейна. Все узлы Рчейн включают в себя основные смарт-контракты, написанные на Rholang. Системные процессы включают функции для запуска экземпляров RhoVM, балансировки нагрузки, управления контрактами dApp, токенами, доверием узлов и другими.
  6. API-интерфейс Rho предоставляет доступ к среде выполнения и узлу. Языковые привязки будут доступны для языков программирования, написанных для JVM и для других. Будет предоставлен инструмент разработки REPL (Read, Execute, Print и Loop). Каждый узел будет иметь CLI интерфейса командной строки. API-интерфейс узлов будет раскрывать функции через http и json RPC.

Один узел сможет поддерживать мульти-блокчейны, в том числе разных типов (общественные или частные), несколько разных токенов приложений, PoS-консенсус, лизинг.

Токены RChain RhoC и REV

RChain будет включать минимум один нативный экономический токен, аналгичный эфиру или биткоину, первый из которых получил название REV.

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

транзакции в рчейн
транзакции в РЧейн

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

Кооператив создал временный кредитный токен RHOC на Ethereum, который будет погашаться в пользу REV перед релизом платформы. Всего выпущено 861,185,194 RHOCs, подлежащих обмену один к одному на REV.

Сложности внедрения RChain

  1. Непростой задачей может стать поиск баланса между решениями для корпоративных клиентов и энтузиастов децентрализации.
  2. Язык программирования Rholang достаточно сложный даже для опытных разработчиков.
  3. Сохранение сплоченного сообщества может стать самой сложной проблемой. У разработчиков может быть разное мнение о том, как должна развиваться платформа, в результате разногласий страдает проект.
  4. Следует отметить, что у проекта нет четкого Road Map, с проделанной работой можно ознакомиться на RCHAIN WIKI.

Запуск RChain

В четвертом квартале 2018 года будет запущен первый проект на платформе Рчейн под названием Mercury, для которого потребуются токены REV.