Оракулы для блокчейнов. Обзор платформы Exonum. Спикер: Алексей Сидоров

7 месяцев назад
65 в блокчейн

В данном докладе Core Developer проекта Exonum представит основную информацию об оракулах в Блокчейн, а также ознакомит с самой платформой Exonum.

Сначала разграничим понятия приватный и публичный Блокчейн:

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

Приватный Блокчейн - сеть с набором заранее оговоренных узлов, которые могут подписывать блоки

Exonum - это фреймфорк для разработки приватных блокчейнов, написанный на Rust.
слайд

Rust

Снимок экрана 2018-03-01 в 23.18.55.png

Rust - язык программирования, написанный компанией Mozilla. Данный язык, как и C++, компилируется в нативный код и обладает схожим синтаксисом, при этом у него есть некоторые особенности, например концепции заимствования и владения, которая позволяет забыть о таких распространенных ошибках, как висящие указателях, поскольку данными в определенный момент времени может владеть лишь одна сущность.

Консенсус

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

Теперь разберем понятие Анкоринг

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

Стоит отметить, что в Exonum есть поддержка для написания тонких клиентов

Снимок экрана 2018-03-01 в 23.20.03.png

Тонкий клиент - читает заголовки блоков и взаимодействует с набором pre commit, который может валидировать.
Помимо этого, можно построить доказательство Меркла не только для транзакций, как в сети Биткоин, но и для других данных. В результате, пользователь может запросить через API у Exonum свои данные и получить их вместе с доказательством и быть уверенным, что в Блокчейн они записаны верно.

Оракулы блокчейна

Обратимся к истории и расшифруем значение слова «Оракул» - оракулами в Древней Греции называли жрецов, которые общались с Богами и доносили их волю простым смертным людям. Переданные слова считались истинными и не подвергались сомнению.
В реалиях Блокчейн технологии «Оракул» - источник внешних данных для сети, связь с внешним миром.

Каким должен быть Оракул:

  • Это должен быть согласованный источник данных
  • Достоверный
  • Децентрализованный

Типы оракулов

Снимок экрана 2018-03-01 в 23.21.01.png

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

Оракулы: другие реализации

Снимок экрана 2018-03-01 в 23.21.34.png

  • В сети Эфириум есть оракул btc relay, который позволяет из смарт-контрактов сети видеть текущее состояние биткоина. Учитывая тот факт, что заголовок биткоин блока защищен Proof of Work, подделать данные практически невозможно (необходимо завладеть 51% мощностей), по этой причине оракул btc relay принимает данных от любых источников и их можно считать достоверными
  • Augur - рынок предсказаний. Основная идея сервиса заключается в том, что если предсказания пользователей сбываются, то они получают эфир и дополнительные баллы репутации. Оракулы в такой системе действуют следующим образом - создают мультисиг транзакцию с данными и если с транзакцией согласны большинство участников сети, которые проверяют эти данные, то транзакция исполняется и данные попадают в Augur.
  • В сети Hyperledger Fabric используется один оракул, который из внешнего источника берет данные и транслирует в Блокчейн Fabric

Оракулы в Exonum

Снимок экрана 2018-03-01 в 23.22.22.png

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

Рассмотрим на конкретном примере

Снимок экрана 2018-03-01 в 23.22.59.png

Алгоритм вычисления времени

Снимок экрана 2018-03-01 в 23.23.34.png

Почему время F+1

Снимок экрана 2018-03-01 в 23.24.04.png

Схема демонстрирует узлы валидаторов, часть из которых - византийцы.

Разберем возможные ситуации:

  • В первом случае византийцы сговорились и решили постить 3000 год, поскольку число византийцев F, то F+1 время по условию задачи точно не византийское
  • Во втором случае - византийцы постят разное время, прошлое и будущее, в этом случае они точно не повлияют на F+1 время
  • Если запостили время, которое оказывается между двумя временами - то, данное время устраивает по условиям точности

Следовательно, во всех случаях время F+1 - точное, что и требовалось доказать.

Приведем еще один пример - оракул Биткоин, который используется в Анкоринге

Снимок экрана 2018-03-01 в 23.24.19.png

Более подробную информацию о проекте можно узнать из официальный источников

Снимок экрана 2018-03-01 в 23.24.31.png

Авторы получают вознаграждение, когда пользователи голосуют за их посты.
Голосующие читатели также получают вознаграждение за свой голос.