RChain (RhoC) масштабируемая платформа смарт-контрактов
RChain - платформа децентрализованных приложений (масштабируемый блокчейн), обещающая стать сервисом промышленного значения по обработке и передаче данных, сходных по масштабу с объемами Фейсбука и поддерживать транзакции со скоростью Visa. Ресурсы для платформы предоставляют сами пользователи, как это реализовано в Ethereum и Maidsafe.
Мотивацию создатели RChain видят в возможности использовать лучшие инженерные и математические модели для масштабирования и точности в целях поддержки критически важных решений. Пользователям, использующим повседневные приложения, нужны сети, способные обрабатывать десятки тысяч транзакций в секунду. Две наиболее известные блокчейны могут обрабатывать менее 10 транзакций в секунду.
“С должным усердием изучив текущее положение многих блокчейн-проектов, после тесного сотрудничества с разработчиками Ethereum и анализа их roadmaps, мы пришли к выводу, что существующие и разрабатываемые архитектуры Blockchain не могут удовлетворить потребности в доставке контента и скорости транзакций. В середине 2016 года мы решили создать лучшую архитектуру блокчейн.” Грег Мередит
Блокчейн RChain - замысел математика и программиста Грега Мередита, написавшего A Reflective Higher-order Calculus (Rho Calculus), на котором построен Майкрософтовский BizTalk Process Orchestration. Бывший топ-менеджер Майкрософт Грег Мередит разработал “Блокчейн 2.0” с открытым исходным кодом - вычислительную платформу для создания безопасных приложений, которая будет направлена на решение ряда социальных, политических и экономических проблем. Работа над децентрализованной платформой ведется RChain Cooperative и RChain Holdings, некоммерческой организацией проекта. Оба отдела располагаются в штате Вашингтон, собрался коллектив со всего мира.
Особенности и решения 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 #
Bitcoin | Ethereum | RChain | ||
---|---|---|---|---|
Структура данных | Блокчейн, цепочка блоков. Каждый блок ссылается на предыдущий блок, содержит список транзакций и другие данные. | Блокчейн, цепочка блоков. Каждый блок ссылается на предыдущий блок, содержит список транзакций и список 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.
Описание уровней архитектуры платформы (снизу вверх):
- Среда ВМ (The RhoVM Execution Environment) предоставляет контекст для исполнения смарт-контракта.
- P2P Communication поддерживает связь между узлами. Это P2P коммерческого класса TBD с открытым исходным кодом, такой как ZeroMQ или RabbitMQ.
- Storage - хранилище данных MongoDB, первичная структура данных в памяти radix tree (trie).
- Data Abastraction Layer обеспечивает постоянный монадический доступ к данным и другим узлам, как к локальным. Этот слой представляет собой эволюцию технологии SpecialK, выполняется в Rholang.
- Casper PoS обеспечивает консенсус узлов в отношении состояния каждого блокчейна. Все узлы Рчейн включают в себя основные смарт-контракты, написанные на Rholang. Системные процессы включают функции для запуска экземпляров RhoVM, балансировки нагрузки, управления контрактами dApp, токенами, доверием узлов и другими.
- 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 #
- Непростой задачей может стать поиск баланса между решениями для корпоративных клиентов и энтузиастов децентрализации.
- Язык программирования Rholang достаточно сложный даже для опытных разработчиков.
- Сохранение сплоченного сообщества может стать самой сложной проблемой. У разработчиков может быть разное мнение о том, как должна развиваться платформа, в результате разногласий страдает проект.
- Следует отметить, что у проекта нет четкого Road Map, с проделанной работой можно ознакомиться на RCHAIN WIKI .
Запуск RChain #
В четвертом квартале 2018 года будет запущен первый проект на платформе Рчейн под названием Mercury, для которого потребуются токены REV.