[Из песочницы] Метод гарантирования доверия в блокчейнах

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

Консенсус как ахиллесова пята блокчейна


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

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

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

Реальность такова, что в упомянутой системе Биткоин осталось лишь небольшое число игроков, формирующих консенсус. По данным сайта Blockchain.info легко в этом убедиться.
d5ba56270f614e6e8812d7fbf6109d87.jpg
Текущие данные по распределению вычислительных мощностей доступны по ссылке blockchain.info/pools. Как видим, реальное число игроков не превышает двух десятков, а доминирует всего 5–6. В случае Биткоина, более 80% вычислительных ресурсов сосредоточено в одной всем известной азиатской стране.

Такая ситуация открывает далеко не гипотетическую возможность манипуляций с блокчейном в интересах некоторой группы лиц. Но не только Биткоин, все текущие реализации информационных систем на основе блокчейна в той или иной мере страдают этим недостатком. Существующие и вновь предлагаемые методы доверия, такие как PoW, PoS, DPoS, PoA, PoB, PoC и т.п., тоже не избавлены от подобных проблем. Порой манипуляции «освящаются» большой частью пользователей системы, как это было в примере с откатом в Эфириуме для восстановления справедливости после кражи монет в крупном масштабе. Это не только привело к форку со стороны недовольных, но так же поставило под сомнение использование Эфириума как среды для смарт-контрактов. Лично я не рискнул бы полагаться на этот блокчейн для подтверждения, например, своих прав на квартиру или земельный участок.

Риски подмены данных


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

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

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

Возникает закономерный вопрос: можно ли обеспечить гарантированный уровень доверия без использования избыточных вычислительных мощностей и в условиях реальной централизации при создании цепочки блоков?

Круговая порука как разновидность консенсуса


Такой способ есть, он заключается в изменении принципа консенсуса. В настоящее время консенсус в блокчейне отдельной информационной системе является внутренним процессом.
А если заменить внутренний консенсус на внешний? Точнее не консенсус в первоначальном смысле, а шире, делегировать подтверждение доверия в другие информационные системы. Иными словами, отдельные и независимые друг от друга блокчейны добровольно обмениваются значениями хэшей текущих сформированных блоков. Полученные хэши могут размещаться в блоках в виде особых записей, особых транзакций. Это не потребует коренной перестройки алгоритмов работы блокчейн-систем, но позволит гарантировать доверие по принципу all-round bail. В вольном русском переводе это звучит как «круговая порука».

6825ce102d1a43f586881f6288e86b04.jpg

Такой добровольный обмен хэшами решает ряд проблем.

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

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

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

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

Близкими аналогами предлагаемого метода является система с permissioned blockchain (дочерними, зависимыми блокчейнами) в Эфириуме, а так же Exonum компании Bitfury Group.

Пример решения на принципе «круговой поруки»


Упомянутое решение по взаимному обмену хэшами между различными цепочками блокчейнов было разработано в рамках реализации проекта Business Trust Rating System. Проект еще не завершен, но на описанную выше ключевую технологию решения подана патентная заявка. Одновременно с упомянутым проектом ведутся работы над некоммерческим проектом, позволяющим обеспечить асинхронный обмен хешами между независимыми блокчейнами и создать механизм проверки доверия к любому блокчейну любым желающим.

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

a4be6faa9683456ba4891ef7ca458f92.jpg

Такая схема вполне возможна, но она имеет ряд ограничений.

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

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

В-третьих, не совсем очевиден процесс контроля за достоверностью данных со стороны пользователя.

Независимый центр обмена (DLT Trust) в виде некоммерческой и общественной организации способен нивелировать указанные проблемы. Принцип его работы достаточно прост. Какой-нибудь блокчейн A после формирования очередного блока отсылает его хэш в данный центр обмена и в ответ получает актуальные хэши других блокчейнов (B и C) на текущий момент. Полученные хэши блокчейн записывает в очередной блок в виде специальной транзакции. Таким образом, достигается распределенное хранение хэшей, продублированное по числу участников обмена.

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

8d62621c3c3446e2a336d8dbd656a58c.jpg

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

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

© Habrahabr.ru