Технический обзор платформы ArcBlock (whitepaper Arcblock ICO на русском)

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

ОХВАТ ДОКУМЕНТА

В данном документе приводится технический обзор ArсBlock — блокчейн-экосистемы для создания и развертывания децентрализованных приложений. Описываются основные элементы сервиса и подробности архитектуры важнейших компонентов.

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

СОДЕРЖАНИЕ

Введение                                                                                                                                                                                          2

Цель                                                                                                                                                                                              2

Охват документа                                                                                                                                                                     2

Сопутствующие документы                                                                                                                                               2

Обзор                                                                                                                                                                                                  5

Проблемы современных блокчейнов                                                                                                                           5

Низкая производительность                                                                                                                                         5

Неудобство в использованиии                                                                                                                                    5

Высокая стоимость                                                                                                                                                            6

Зависимость от платформы                                                                                                                                          6

Недостаточная функциональность                                                                                                                            6

Платформа ArcBlock                                                                                                                                                               6

Преимущества ArcBlock                                                                                                                                                   7

Создан для современной экономики токенов                                                                                                     7

Оптимизирован для удобног о использования                                                                                                    8

Создан для облака

8

Имеет открытую архитектуру

8

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

Принципы архитектуры                                                                                                                                                       9

Архитектура системы

9

Open Chain Access Protocol                                                                                                                                          10

Blocklet                                                                                                                                                                                 10

Blocklet-компоненты                                                                                                                                                     10

Децентрализованный шлюз pub/sub                                                                                                                     10

Рынок и экономика токенов                                                                                                                                      10

Облачные узлы                                                                                                                                                                     11

Основные компоненты                                                                                                                                                            11

Open Chain Access Protocol                                                                                                                                               11

Open Chain Access Layer                                                                                                                                               12

Chain Adapters                                                                                                                                                                   13

Рынок Adapters Marketplace                                                                                                                                       13

Блокчейн-как-сервис 14
Принципы архитектуры и вдохновение 14
Blocklet 14
Микросервисная архитектура

Бессерверные вычисления

Типы Blocklet

15

15

16

Off-Chain Логика

Off-Chain и On-Chain Логика

Обработка ресурсов и активов

Смарт-контракты

16 16

16

17

Oracle 17
Реализация Blocklet 17
Компоненты Blocklet

Децентрализованны pub/sub шлюз API

17

17

Шлюз API

Pub/Sub

18
Децентрализованность и безопасность 19
Децентрализованные медиа и активы

Клиентская библиотека/фреймворк

20

21

Algorand 22
Экономика токенов 23
Токен ArcBlock (ABT) 23
Майнеры 24
Майнеры ресурсов 24
Майнеры компонентов 24
Рынок ArcBlock

Сервисы Token Foundation

24

25

Application Tokens 25
 Благодарности 26

ОБЗОР

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

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

ПРОБЛЕМЫ СОВРЕМЕННЫХ БЛОКЧЕЙНОВ

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

НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ

Производительность является одной из главных задач стоящих на пути технологии блокчейн. Bitcoin использует блокчейн, способный выполнять 7 транзакций в секунду, а Ethereum может справиться с немногим больше. По состоянию на декабрь 2017 года простое приложение CryptoKitties[1] было способно замедлить Ethereum и значительно увеличить транзакционные сборы.

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

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

НЕУДОБСТВО В ИСПОЛЬЗОВАНИИ

Сегодняшние блокчейн-приложения созданы для специалистов, которые знают как их использовать, а не для широкого круга пользователей.Почти все блокчейн-приложения требуют запуска на узле или установки “легкого” узла. Усилия необходимые для этого, замедлили принятие блокчейна широкой аудиторией.

К примеру, несмотря на то, что  CryptoKitties — игра основанная на Ethereum, возможно самая удобное децентрализованное приложение из когда-либо созданных, от пользователя все еще требуется установка расширения для браузера(Metamask light wallet[2]).

Помимо этого пользователи должны знать, как безопасно покупать эфир и использовать его с Metamask.

ВЫСОКАЯ СТОИМОСТЬ

Чрезвычайно высокая стоимость использования блокчейна также является существенным препятствием для массового внедрения. Это ограничивает разработчиков, нуждающихся в гибкости при построении бесплатных сервисов. Как и при использовании веб- и мобильных приложений, пользователи не должны платить за каждое действие.

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

ЗАВИСИМОСТЬ ОТ ПЛАТФОРМЫ

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

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

НЕДОСТАТОЧНАЯ ФУНКЦИОНАЛЬНОСТЬ

Люди ожидают многого от блокчейна — новости, евангелисты и журналисты рисуют светлое будущее децентрализованных приложений для людей,- и все эт о происходит в условиях стремительного роста криптовалют. Однако на самом деле технология блокчейн все еще в зачаточном состоянии. Большинство блокчейн-сервисов не обладают богатым выбором функций и никак не поощряют сообщество к тому, чтобы способствовать развитию функциональност и. Блокчейн-протоколы легко поддаются «разветвлениям»(fork), поэтому в недавнее время было создано много «развет влений» в различных целях. К сожалению, изменения обычно вносятся только в свежую ветку, разделяя сообщество и вычислительные ресурсы. Механизмы поощрения в блокчейне пока никак не стимулируют к участию в развитии технологического стека.

ПЛАТФОРМА ARCBLOCK

ArcBlock решает вышеуказанные проблемы с помощью своей инновационной архитектуры. В отличие от своих предшественников,  ArcBlock являетя платформенным сервисом, а не отдельным программным пакетов или набором API. ArcBlock — это комплексное решение, объединяющее технологию блокчейн и облачные вычисления.

ArcBlock — это рынок многоразовых сервисов, компонентов и  приложений, функционирующий на основе вознаграждений . «Майнеры» будут не только предоставлять вычислительные ресурсы, более того — они будут помогать развивать платформу вместе, поставляя компоненты, новые сервисы и даже готовые к развертыванию приложения. Люди, которые предоставят ресурсы или сервисы, будут вознаграждены токенами, что создаст позитивную платформу, которая продолжит разиваться сама. Платформа ArkBlock — не только наше создание. В ее развитии  будет принимать участие все сообщество,  а мы только запускаем новую блокчейн революцию.

ArcBlock использует Open Chain Access Protocol(OCAP), позволяющий открытое подключение по множеству блокчейн-протоколов. Теперь разработчики cмогут оценить различные протоколы и переключаться между ними.

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

 

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

Blocklet объединяет существующие источники данных и выполняет вычисления как on-chain, так и off-chain.

Наша уникальная архитектура направлена на обеспечение высокой производительности, легкости использования, рентабельности и протоколонезависимости. Мы верим в том, то ArcBlock представляет собой технологический шаг вперед, который откроет новую эру в третьем поколении блокчейн-приложений.

Рис: План развития на пути к Blockchain 3.0

ПРЕИМУЩЕСТВА ARCBLOCK

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

СОЗДАН ДЛЯ СОВРЕМЕННОЙ ЭКОНОМИКИ ТОКЕНОВ

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

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

ОПТИМИЗИРОВАН  ДЛЯ  УДОБНОГО ИСПОЛЬЗОВАНИЯ

Мы создали ArcBlock платформу, используя стратегию “сверху — вниз”, которая опирается на удобство для пользователя. В противоположность этому многие существующие решения делают упор на саму технологию в ущерб простоты использования. С ArcBlock пользователи смогут работать с приложениями, используя веб-браузер(дополнительные плагины не требуются), или установить мобильное приложение из магазина. В любом случае, все это знакомо типичному пользователю.

ArcBlock значительно повышает удобство разработки. Теперь нет необходимости разбираться с низкоуровневыми блокчейн-протоколами. С нашими блокчейн-адаптерами разработчикам даже не потребуется запускать локальные тестовые узлы для начала разработки и тестирования приложений.

СОЗДАН ДЛЯ ОБЛАКА

ArcBlock спроектирован для работы в облаке. Но в целях разработки и тестирования он может запускаться на отдельном компьютере.

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

Изначально ArcBlock будет построен на основе AWS и Windows Azure, а затем расширен для поддержки Google Compute Engine, крупных облачных сервисов Китая и других платформ. ИМЕЕТ ОТКРЫТУЮ АРХИТЕКТУРУ

ArcBlock имеет открытую архитектуру. Мы стараемся не изобретать велосипед и просто создавать все необходимое для комфортной разработки. Кроме  open-source разработки основных компонентов мы также активно участвуем в множестве блокчейн-сообществ.

Члены нашей команды взаимодействуют с широким кругом организаций по стандартам, некоммерческими фондами и комитетами. В этот список входят W3C Blockchain Community Group Community Group, IEEE Standard Association’s Blockchain Community, Enterprise Ethereum Alliance, Linux Foundation и Hyperledger Foundation.

АРХИТЕКТУРА

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

ПРИНЦИПЫ АРХИТЕКТУРЫ

Архитектура опирается на следующие ключевые принципы:

  • Удобство пользователя на первом месте
  • Производительность имеет значение
  • Система будет построена по открытому стандарту
  • Система будет использовать систему вознаграждений

АРХИТЕКТУРА СИСТЕМЫ

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

Рис: Высокоуровневый обзор ArcBlock

OPEN CHAIN ACCESS PROTOCOL

Наш открытый протокол предоставляет абстрактный слой для доступа к блокчейнам. Как и ODBC/JDBC интерфейс к набору баз данных, наш Open Chain Access Protocol позволяет Вашему приложению работать с различными блокчейнами. Таким образом отпадает необходимость изменения бизнес-логики или использования множества блокчейн-технологий.

Chain Adapters могут быть созданы силами сообщества, что поощряется вознаграждениями. Это позволит ArcBlock поддерживать многие блокчейн-протоколы и продолжать совершенствоваться.

BLOCKLET

Blocklet — это бессерверный вычислительный компонент для запуска различных типов приложений. Blocklet используется для смарт-контрактов, oracle, обработки ресурсов и активов, и даже для бизнес-логики в off-chain. Blocklet взаимодействует с блокчейнами через OCAP, и может  координироваться нашим алгоритмом консенсуса, основанным на Algorand.

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

BLOCKLET-КОМПОНЕНТЫ

Blocklet-компоненты  — это предварительно созданные компоненты, составляющие основу платформы ArcBlock. Большинство функций ArcBlock(севисы токенов, сервисы идентификации пользователей и тд.) построено с их использованием. Blocklet Components являются повтроно используемыми и настраиваемыми.

Встройте наши готовые  Blocklet Components в свое приложение, чтобы сразу начать работу. Мы предоставляем компоненты для управления идентификацией пользователя, utility токенами,

кошельками, сообщениями, службами оповещения и др. Используйте их прямо “из коробки” или как заготовки для дальнейшей разработки.

Blocklet Components также могут создаваться и добавляться членами сообщества. Управление ими осуществляется с помощью приложения ArcBlock Marketplace.

ДЕЦЕНТРАЛИЗОВАННЫЙ ШЛЮЗ PUB/SUB

Распределенная система обмена сообщениями поддерживает шаблон “издатель-подписчик” и работает как шлюз API. В ArcBlock шлюз построен по децентрализованной архитектуре и использует безопасные каналы коммуникации. Ваши приложения будут работать как в веббраузерах, так и в мобильных приложениях.

Шлюз поддерживает различные сетевые протоколы по умолчанию, включая WebSocket, DDP,  HTTPS, и MQTT. Продвинутые разработчики могут добавить новые сетевые протоколы в соответствии со своими потребностями.

РЫНОК И ЭКОНОМИКА ТОКЕНОВ

Вместе с ArcBlock поставляется полностью настраиваемый менеджер для экономики токенов для приложений, построенных на платформе. Приложения могут создавать уникальные utility токены, наследующие все свойства ArcBlock .

ArcBlock Marketplace — нативное приложение, построенное на основе ArcBlock. Оно позволяет сообществу делиться повторно используемыми компонентами(Chain Adapters, Blocklets, приложения).

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

ОБЛАЧНЫЕ УЗЛЫ

Использование группы облачных сервисов  в качестве узла может показаться необычным, но и физический компьютер является просто набором аппаратного оборудования(“железа”), работающего вместе. Если не рассматривать то, как компоненты распределены и взаимодействуют между собой, в обоих случаях они по сути одинаковы.

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

Несмотря на то, что предпочтительным является облачный узел, можно запускать  ArcBlock на обычном узле как сервер. Для тестирования или запуска в приватной среде, предполагается что разработчики будут запускать узел локально или на своих тестовых серверах.

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

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

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

ОСНОВНЫЕ КОМПОНЕНТЫ

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

OPEN CHAIN ACCESS PROTOCOL

Open Chain Access Protocol позволяет приложениям адаптироваться под множество блокчейнпротоколов, включая Bitcoin, Ethereum, Hyperledger и др. Он будет выложен в открытом доступе под лицензией  MIT, чтобы все члены сообщества могли создавать расширения и улучшения.

Мы разработаем протокол в закрытом режиме, а затем выложим его в открытый доступ по достижению RC-версии.

OPEN CHAIN ACCESS LAYER

Open Chain Access Layer определяет высокоуровневый типовой API, обеспечивающий открытые соединения и доступ к целому ряду блокчейн-протоколов. Layer поддерживается с помощью Chain Adapter, который создается для каждого отдельного блокчейн-протокола.

Open Chain Access Layer содержит три уровня API:

Уровень Описание
Уровень 1:

Common Chain APIs

Данный набор API составляет основу для  Open Chain Access API. Все Chain Adapter`ы должны поддерживать все API, включенные в этот уровень.
Уровень 2:

Common Chain Data

APIs

Данный набор API обеспечивает фундаментальный доступ к данным блокчейна и относится к каждому блокчейну как к конечному автомату. Chain Adapter могут либо поддерживать API этого уровня, либо альтернативные возможности. В набор входят API, позволяющие приложениям посылать запросы к поддерживаемым возможностям. Chain Adapter должен поддерживать все API  данного уровня. Однако, они могут реализовывать отличный набор возможностей.
Уровень 3: Native Chain APIs Данный продвинутый набор API  раскрывает встроенную функциональность блокчейн-протоколов. Поддержка данного набора является необязательной, однако, она усилит способность вашего приложения использовать встроенные функции блокчейна.Поддержка набора API данного уровня является опциональной для Chain Adapter.

CHAIN ADAPTERS

Open Chain Access Layer позволяет платформе осуществлять поддержку нескольких блокчейнпротоколов. Разработчики приложений могут выбирать из нескольких разных блокчейнов, типов узлов и типов развертывания. Chain Adapters являются реализациями, делающими Open Chain Access Layer возможным.

Chain Adapters работают как драйвера устройств, переводя низлежащие блокчейн-протоколы в обобщеннный набор API, определенный в Open Chain Access Layer.  Некоторые из Chain Adapter требуют реализации как on-chain, так и off-chain функций.  Chain Adapter  относят к одной из трех категорий, в зависимости от того, какой набор Open Chain Access Layer API он реализует.

Для начала мы планируем создать Chain Adapter’ы для Bitcoin Blockchain, Ethereum и Hyperledger. После того, как код проекта станет открытым, любой сможет улучшать протоколы. Также мы планируем поддержку дополнительных блокчейн-протоколов.

РЫНОК CHAIN ADAPTERS

Chain Adapters, которые будут разрабатываться и улучшаться сообществом, будут доступны на рынке ArcBlock. Таким образом все смогут их использовать, а создатели будут получать награду.

Система вознаграждений будет поощрять сообщество создавать Chain Adapters. Со временем, ArcBlock сможет предложить линейку высокопроизводительных и качественных Chain Adapterов для разных блокчейнов.

БЛОКЧЕЙН-КАК-СЕРВИС

В течение последних 12 месяцев, несколько ведущих поставщиков облачных платформ начали предлагать новый тип платформы, который называется “блокчейн-как-сервис”(BaaS). BaaS-платформы обычно предлагают пользователям публичную или эксклюзивную цепь блокчейн, которые обычно оптимизированы под конкретный типа узла или вид развертывания. Первыми такой сервис(Hyperledger Fabric service) начали предлагать  IBM Cloud (ака Bluemix) BaaS[3]. Microsoft Windows Azure также предлагает BaaS-платформу[4], однако она нацелена в основном на тестовую среду и быстрый запуск. Amazon AWS пока еще не представил свою BaaSплатформу, но существуют снимки виртуальных машин, которые помогают пользователям быстро развертывать узлы блокчейн с помощью инстансов AWS EC2.

Существующие BaaS-платформы идеально работают с ArcBlock. Они упрощают процесс развертывания блокчейна для конечных пользователей, а ArcBlock упрощает процесс разработки и развертывания блокчейн-приложения для разработчиков. Первая фаза реализации ArcBlock будет включать в себя интеграцию с платформами облачных вычислений(к примеру, через  AWS SDK ).  Таким образом пользователи смогут управлять сервисами BaaS прямо из приложений ArcBlock.

ПРИНЦИПЫ АРХИТЕКТУРЫ И ВДОХНОВЕНИЕ

Для создания Open Chain Access Protocol мы рассмотрели существующие решения, поговорили с разработчиками и извлекли урок из эволюции компьютеров и баз данных. Например, структура  Open Chain Access Layer была вдохновлена архитектурой открытого соединения баз данных(ODBC).

Ретроспективный анализ истории развития систем и приложений баз данных показывает множество сходства с эволюцией блокчейна[5]. В типичной системе блокчейн занимает то же самое место, что и база данных в приложении базы данных. Во многих случаях, будет справедливым сказать, что сам блокчейн работает как распределенная база данных. Большая часть блокчейнов построена на основе базы данных(Bitcoin, Ethereum). Это говорит о том, что мы можем опираться на опыт развития баз данных. BLOCKLET

Blocklet  — это ядро ArcBlock. Кроме того, что это протокол прикадного уровня, это также программная архитектура, лежащая в основе  ArcBlock. Платформа  ArcBlock построена на сериях Blocklet. Open Chain Access Protocol позволяет  Blocklet взаимодействовать с блокчейнами. Распределенный pub/sub шлюз позволяет Blocklet взаимодействовать с клиентским кодом в браузере пользователя или мобильном приложении. Иными словами, Blocklets являются центральным элементом всей системы.

МИКРОСЕРВИСНАЯ АРХИТЕКТУРА

Микросервисная архитектура[6] идеально подходит для приложений блокчейн. Как одна из разновидностей сервис-ориентированной архитектуры, микросервисная архитектура упорядочивает приложение в виде набора слабо связанных сервисов. Сервисы должны быть четко определенными, а протоколы —  легкими. Разбиение приложения на множество более мелких сервисов улучшает модульность кода и делает приложение более понятным, а разработку и тестирование — удобным.

ArcBlock спроектирован как микросервис с event-driven архитектурой. Он использует технологию Blocklet, чтобы преодолеть присущие блокчейну ог раничения. Blocklet взаимодействует с блокчейном посредством  Open Chain Access Protocol, разрешая приложению безопасный доступ к внешним данным и сохраняя их целостность.

БЕССЕРВЕРНЫЕ ВЫЧИСЛЕНИЯ

Бессерверные вычисления[7] это модель облачных вычислений, в которой поставщик облака динамически управляет выделением ресурсов. Большинство вендоров бессерверных вычисление предоставляют вычислительные среды или платформы типа “функция-как-услуга”(FaaS)[8], который исполняют логику приложения, не сохраняя данные.

Бессерверные вычислительные модели успешно работают с блокчейнами. Большинство Blocklets могут быть реализованы как бессерверная программа. Управление Blocklets осуществляется с помощью  AWS Lambda, Windows Azure Functions или другой бессерверной исполнительной среды.

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

Однако разработчики могут использовать бессерверные вычисления в других целях; также не всегда нужно использовать бессерверные вычисления для создания микросервисов ТИПЫ BLOCKLET

Blocklet по своей природе является гибким и может быть использован в разработке различных приложений. Данный раздел описывает наиболее популярные типы Blocklet. Однако стоит учитывать, что Blocklet может состоять из одной или более объединенных единиц бизнес-логики.

Off-chain логика

В силу того, что Blocklet — нативный микросервис, ему доступны другие источники данных кроме блокчейна. К примеру, он может подключиться к базе данных, внешнему RESTful API и др. Blocklet может использоваться для создания любой логики приложения, даже не связанной с блокчейном. Использование Blocklet для стандартной разработки не требует дополнительных затрат.

Реальные децентрализованные приложения часто запускают часть логических компонентов в режиме off-chain. Blocklet предоставляет готовое решение для разработки приложения, поэтому разработчикам не придется использовать различные фреймворки для различных частей приложения.

Off-Chain и On-Chain логика

Довольно часто бизнес-логика приложения требует работы как on-chain, так off-chain, с использованием соответствующих данных. К примеру, код on-chain не имеет доступа к данным и событиям извне, к примеру, времени или рынку. Вызов кода или данных вне on-chain смартконтракта или блокчейна разрушает доверие и снижает уверенность в аутентичности транзакций. В этих случаях,  off-chain Blocklet работает как мост, соединяющий  on-chain и off-chain логику, чтобы собрать всю бизнес-логику в одном месте. Обработка ресурсов и активов

Обычно приложения должны уметь  работать с различными ресурсами: фотографиями, видео, музыкой и документами. Блокчейн не создан для того,чтобы справляться с большими объемами данных, поэтому стандартное блокчейн-приложение использует off-chain решения. Существует множество таких способов, но традиционным является использование таких сервисов как  AWS S3 или более децентрализованных решений(IPFS).

Независимо от подхода, Blocklet сможет взаимодействовать с выбранной системой хранения ресурсов. Иногда может потребоваться сопоставление ресурсов с их on-chain токенами или идентификаторами, или подтверждение через записи блокчейна.  Blocklet — идеальный контейнер для такой логики.

Смарт-контракты

Безопасно взаимодействуя с on-chain кодом посредством  Open Chain Access Protocol, Blocklet позволяет создавать высокопроизводительные смарт-контракты, при этом сохраняя доверие и подтверждая аутентичность транзакций.

Решение о том как должна распределяться логика остается за разработчиком. С одной стороны, разработчик может рассматривать блокчейн как конечный автомат и реализовать большую часть бизнес-логики внутри Blocklet. C другой стороны, он может разработать сложный, полностью onchain контракт. В этом случае, Blocklet будет выступать в качестве заглушки для мониторинга активности исполнения on-chain.

Oracle

В  Blocklet-архитектуре Oracle — это вид смарт-контракта, который использует внешние источники данных как триггеры событий. В силу архитектуры Blocklet, реализация  Oracle крайне проста

Архитектура, основанная на Blocklet, побуждает разработчиков учитывать разделение on-chain и off-chain логики на этапе проектирования и разработки. Это улучшает эффективность данных фаз разработки без нанесения ущерба безопасности и доверию.

РЕАЛИЗАЦИЯ BLOCKLET

На первой стадии развития ArcBlock, мы реализуем Blocklet в локальной тестовой среде и AWS. Локальная реализация послужит только для тестовых целей. Разработка рабочего продукта будет производиться на AWS, поэтому мы сможем использовать преимущества продвинутой функцональности AWS.

В будущем, мы будем поддерживать  Windows Azure,Google Compute Engine, IBM Bluemix и другие вычислительные платформы. Также мы планируем поддержку Docker и  FasS решений с открытым кодом, чтобы пользователи могли с легкостью создавать и разворачивать свои Blocklet без использования облачных сервисов.

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

КОМПОНЕНТЫ BLOCKLET

Blocklet Building Blocks — это предварительно созданные Blocklet, лежащие в основе платформы ArcBlock и большей части ее функций, таких как сервисы идентификации токенов и пользователей. Blocklet Building Blocks являются повторно используемыми и настраиваемыми  компонентами.

ДЕЦЕНТРАЛИЗОВАННЫЙ PUB/SUB ШЛЮЗ API

Распределенная система сообщений реализует паттерн “издатель-подписчик” и действует как шлюз API для для Blocklet. Шлюз ArcBlock имеет децентрализованную архитектуру и безопасные каналы коммуникации. Ваше приложение будет запускаться как веб-браузерах, так и в мобильных приложениях.

ШЛЮЗ API

Шлюз API является необходимым в микросервисной архитектуре. Он действует как “фасад”, предоставляя простой интерфейс к сложной подсистеме. Он отделяет интерфейс, который видят клиенты(мобильные приложения, веб-клиенты, “тонкие” клиенты) от реализации. В ArcBlock все функции реализованы с помощью Blocklets, которые взаимодействуют не напрямую с клиентом, а через шлюз API.

Шлюз поддерживает различные сетевые протоколы по умолчанию, включая  WebSocket, DDP, HTTPS и  MQTT. Продвинутые разработчики могут добавить новые сетевые протоколы в соответствии со своими потребностями.

Рис: Простая реализация на Node.js (декабрь 2017)

PUB/SUB

Издатель-подписчик (pub/sub) — поведенческий шаблон проектирования передачи сообщений, в котором отправители сообщений, именуемые издателями (publishers), напрямую не привязаны программным кодом отправки сообщений к подписчикам (subscribers). Вместо этого сообщения делятся на классы и не содержат сведений о своих подписчиках, если таковые есть. Аналогичным образом подписчики имеют дело с одним или несколькими классами сообщений, абстрагируясь от конкретных издателей.

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

ДЕЦЕНТРАЛИЗОВАННОСТЬ И БЕЗОПАСНОСТЬ

Мы используем полностью децентрализованную архитектуру для создания и упрощения облачных сервисов. Шлюз API ArcBlock может использоваться без предварительной настройки — просто запустите его и сразу начните работу. Также он включает именованную адресацию, кластеризацию и полную секретность (весь сетевой трафик зашифрован)

Рис: Система децентрализованных сообщений и pub/sub

ДЕЦЕНТРАЛИЗОВАННЫЕ МЕДИА И АКТИВЫ

Ключевые компоненты ArcBlock не были спроектированы для работы с медиа и активами, но Blocklet может быть использован для работы с ними при поддержке со стороны других систем. Помимо этого Blocklet помогает создавать данные off-chain или верифицировать их с помощью on-chain данных. На сегодняшний день большинство децентрализованных приложений применяют off-chain логику для работы с медиа и активами. Они используют либо сервисы хранилищ(AWS S3, Microsoft Windows Azure’s), либо децентрализованные решения (IPFS[9] or Swarm[10]).

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

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

КЛИЕНТСКАЯ БИБЛИОТЕКА/ФРЕЙМВОРК

ArcBlock предоставляет библиотеки и фреймворки для разработки клиентских приложений. Эти библиотеки поддерживают веб-плат формы, iOS и Android. C использованием  Electron Framework11[11] веб-версия приложения может быть упакована в десктопное приложение для Windows и Mac OS.

Версия для веб-разработки представляет собой простую библиотеку, которая работает с  HTTPS и WebSocket, чтобы обеспечить быстрый отклик приложения. Она работает с почти всеми вебфреймворками, позволяя выбрать тот, который вы предпочитаете, будь это Meteor, VUE или React.

Это является большим плюсом для разработки приложений. Разработчики могут провести большую часть своего времени, настраивая клиентскую часть и пользовательский интерфейс, и писать код премущественно на этом уровне. Благодаря  ArcBlock, они смогут создавать клиентские приложения так же, как в случае с обычными(не блокчейн) приложениями. Наша архитектура позволяет разработчикам использовать их любимые фреймворки и инструменты, а в случае проблем они смогут обратиться в свои сообщества за помощью.

Рис: Модель взаимодействия с клиентом(реализация на AWS, декабрь 2017)

ALGORAND

ArcBlock является одним из нескольких блокчейн-стартапов, которые использовали  Algorand[12] в реальной разработке.

Algorand был основан в 2012 году  Silvio Micali — победителем 2012 ACM Turing Award. Micali является первопроходцем в технологиях криптовалют и блокчейн. Он сыграл важную роль в разработке основ криптографии, является автором работ по теории игр и задаче о византийском соглашении, основал стартап, занимающийся микроплатежами. Когда Micali узнал о Bitcoin, то решил, что его можно улучшить. Результатом его работы стал Algorand.

Рис: Схема потока транзакций в Algorand[13]

Algorand[14] включает внезапный и случайны выбор небольшой группы узлов, которые будут отвечать за следующий блок, а затем получат награду в виде процента от транзакции. Все это должно выполняться так, чтобы исключить вмешательство противника(adversary). Группа выбирается с помощью хэша.  Micali предложил использовать псевдослучайный генератор, который предопределен и расширяется насколько нужно, чтобы выбрать целевую группу. Группа определяет следующий блок посредством измененного византийского соглашения, в котором лидер группы выбирается случайным образом.

ArcBlock использует  Algorand и его разновидности в нескольких ситуациях. К примеру,  для определения откуда будет исполняться смарт-контракт Blocklet, а также в высокопроизводительном блокчейне, на котором расположены наши токены. Мы раскроем больше деталей реализации Algorand в  ArcBlock, когда проект достигнет RC-версии.

ЭКОНОМИКА ТОКЕНОВ

Поистине уникальным  ArcBlock делает тот факт, что это стабильная платформа с полным набором функций. Кроме того, сервис работает на основе собственной системы токенов, построенной с использованием новейших блокчейн-технологий.

ТОКЕН ARCBLOCK(ABT)

ArcBlock Token (ABT) является нативным токеном платформы ArcBlock. Для достижения высокопроизводительности транзакций, мы создали оптимизированный блокчейн, предназначенный для сервисов  ArcBlock и публичного реестра(public ledger). Целью поставлено достижение более 100,000 транзакций/сек, что представляется более чем возможным для широкого спектра приложений. В будущем этот блокчейн может быть усовершенствован для решения более широких задач.

ARC — это токен общего назначения, который может применяться в различных ситуациях. Внутри ArcBlock базовой функцией токена ARC является плата за использование системы ArcBlock.

В отличие от Ethereum или Bitcoin, при использовании которых пользователи платят комиссию с каждой транзакции, ArcBlock предполагает, что эту комиссию оплачивают поставщики приложений. Данный подход значительно повышает удобство пользователя. Разработчики производят оплату каждый месяц. Также ArcBlock требует от разработчиков покупки части ARC токенов как доли в случае разработки критически важных сервисов.

Токены ArcBlock поддерживают стандарт ERC20. Это упрощает обмен токенами и позволяет разработчиками установить связь с сообществом Ethereum. Разработчики приложения могут использовать существующие экосистемы, построенные на основе токена ERC20, в то же время пользоваться преимуществами высокопроизводительного, полнофункционального сервиса токенов. На данный момент,  взаимодействие между  ARC и ERC20 необходимо.

Однако, мы надеемся, что с развитием ARC и ростом сообщества ArcBlock, такая необходимость исчезнет.

 МАЙНЕРЫ

ArcBlock предоставляет майнерам возможность запускать сервисы ArcBlock и присоединяться к общей сети сервисов. Однако, роль майнеров в сообществе ArcBlock существенно отличается от таковой в сообществах Bitcoin и Ethereum.

МАЙНЕРЫ РЕСУРСОВ

Майнеры ресурсов предоставляют системе вычислительные ресурсы. Это могут быть как ресурсы для облачных вычислений(облачный узел) или свои вычислительные ресурсы.

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

МАЙНЕРЫ КОМПОНЕНТОВ

Майнеры компонентов добавляют в систему программные компоненты: новые Chain Adapters, Blocklet Components или готовые к развертыванию приложения. Компонентом может быть пакетный код, пригодный для переиспользования и разворачивания другим приложением; набор сервисов с Blocklet интерфейсом. К примеру, сервис распознавания изображений с помощью глубокого обучения может использовать сервисы, запущенные в другом месте и при этом предоставляя сервисы как Blocklets, чтобы другие  ArcBlock приложения могли их использовать.

Смарт-контракт определяет как вознаграждение майнера будет разделено, если компонент был разработан несколькими сторонами. Также он определяет правила, по которым производится “ветвление” кода компонента.

РЫНОК ARCBLOCK

ArcBlock Marketplace(Рынок ArcBlock) — это децентрализованное приложение блокчейн, построенное на платформе ArcBlock. Оно выполняет функции cоставления списков, поиска, оценки и ранжирования переиспользуемых компонентов, таких как Chain Adapters, Blocklets Components, а также приложений.

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

СЕРВИСЫ TOKEN FOUNDATION

Сервисы token foundation состоят из набора  Blocklet компонентов,  которые закладывают основу для сервисов токенов ArcBlock.

Токен ArcBlock целиком реализован с помощью Blocklet. Сервис token foundation также работает на Blocklet,а Token Economy Service состоит из группы Blocklet Building Blocks. Разработчики приложений могут применять Blocklet для обработки событий, вызванных токенами, и реализовывать сложную бизнес-логику. Распределенный реестр гарантирует, что токены защищены, высокопроизводительны и надежны.

Как и любые другие Blocklet-компоненты, Blocklet для основы токенов могут быть улучшены и расширены сообществом.

APPLICATION TOKENS

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

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

В ближайшем будущем, создав и развернув приложение с ArcBlock, вы сможете создавать ICO на основе токенов ArcBlock.

 

БЛАГОДАРНОСТИ

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

Этот технический документ был написан Robert Mao, который занимает должность Chief-Architect в  ArcBlock. Рецензировал документ  Flavien Charlon, Chief-Scientist of ArcBlock.

На протяжении всего процесса написания мы получили ценные советы от остальной  части команды ArcBlock, наших партнеров. Также мы получили много полезных замечаний по email, в группах WeChat и Telegram, на конференциях и форумах.

Мы хотим выразить особую благодарность всем нашим консультантам и сотрудникам за ценные обсуждения, и лично Ximen LiuShang, Justin Tomboulian, Violin Wang, Michael Yuan, Frank Lee, Richard Liu и Jonathan Lu.  Также мы хотим поблагодарить  Kate Dougherty и Jean Chen за помощь в корректуре и структуризации документа.

— The End —

Copyright © 2017 ArcBlock, Inc. All rights reserved.  Draft for community review. Subject to change.

26

[1] Ажотаж вокруг CrypoKitties замедляет транзакции Ethereum : (http://www.bbc.com/news/technology-42237162)

[2]  Metamask — это мост, который позволяет посещать сеть будущего из твоего браузера уже сегодня. С его помощью, ты можешь запускать  Ethereum dApps прямо в браузере без запуска Ethereum — узла. (https://metamask.io/).

[3]   IBM предоставляет «блокчейн-как-сервис» : https:/www.theregister.co.uk/2017/03/20blockchain_as_a_service_ibm/

[4]   Блокчейн от Azure https://azure.microsoft.com/en-us/solutions/blockchain/

[5]   C. Mohan, Tutorial: Blockchains and Databases,  2016, VLDB Endowment, https://dl.acm.org/citation.cfm?id=3137830

[6]   Микросервисы https://en.wikipedia.org/wiki/Microservices

[7]   Бессерверные вычисления https://en.wikipedia.org/wiki/Serverless_computing

[8]   Функция-как-сервис(FaaS) https://en.wikipedia.org/wiki/Function_as_a_service

[9] IPFS (InterPlanetary File System, межпланетная файловая система) — контентно-адресуемый, одноранговый гипермедийный протокол связи. Узлы IPFS-сети формируют распределенную файловую систему.https://ipfs.io/

[10] Swarm — это служба децентрализованного хранения файлов и она является частью единой концепции, которая видит сеть Эфириума как Интернет будущего — web 3.0. https://github.com/ethersphere/swarm

[11]    Electron — это библиотека с открытым исходным кодом, разработанная GitHub, для создания кросс-платформенных приложений с помощью

HTML, CSS и JavaScript. https://electronjs.org/

[12]   Jing Chen, Silvio Micali, Algorand, Technical Report, 2017, https: arxiv.org/abs/1607.01341

[13]   Gilad et al., Algorand: scaling Byzantine agreements for cryptocurrencies, SOSP’17, https: people.csail.mit.edu/nickolai/papers/gilad-algorand.pdf

[14]   Algorand: scaling Byzantine agreements for cryptocurrencies, https: blog.acolyer.org/2017/11/21/algorand-scaling-byzantine-agreements-for-cryptocurrencies/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

1 × 4 =